员工账号接口实现

This commit is contained in:
张松
2025-02-12 15:14:55 +08:00
parent 7000892d9b
commit 119ef4397d
16 changed files with 392 additions and 24 deletions

View File

@@ -37,4 +37,14 @@ public class CommonServiceImpl implements CommonService {
smsUtil.sendCode(sysUser.getPhone(), String.valueOf(code));
return true;
}
@Override
public Boolean checkSmsCode(String type, String code) {
SysUser sysUser = sysUserService.queryChain().eq(SysUser::getId, StpKit.ADMIN.getLoginIdAsLong()).one();
if (StrUtil.isBlank(sysUser.getPhone())) {
throw new ApiNotPrintException("账号未绑定手机号");
}
Object value = redisService.get(RedisCst.SMS_CODE + sysUser.getPhone() + ":" + type);
return code.equals(value);
}
}

View File

@@ -64,25 +64,7 @@ public class ShopInfoServiceImpl extends ServiceImpl<ShopInfoMapper, ShopInfo> i
}
// 添加系统账号
SysUser sysUser = new SysUser();
sysUser.setAccount(shopInfoAddDTO.getAccountName());
sysUser.setNickName(shopInfoAddDTO.getShopName());
sysUser.setPhone(shopInfoAddDTO.getPhone());
sysUser.setStauts(1);
sysUser.setCreateUserId(StpKit.ADMIN.getLoginIdAsLong());
sysUserService.save(sysUser);
sysUser.setPassword(SecureUtil.md5(sysUser.getId() + shopInfoAddDTO.getAccountPwd()));
sysUserService.updateById(sysUser);
// 绑定角色
long roleCount = sysRoleService.queryChain().eq(SysRole::getId, shopInfoAddDTO.getRoleId()).count();
if (roleCount == 0) {
throw new CzgException("角色不存在");
}
SysUsersRoles usersRoles = new SysUsersRoles();
usersRoles.setUserId(sysUser.getId());
usersRoles.setRoleId(shopInfoAddDTO.getRoleId());
sysUsersRolesService.save(usersRoles);
SysUser sysUser = sysUserService.addUser(shopInfoAddDTO.getShopName(), shopInfoAddDTO.getAccountName(), shopInfoAddDTO.getAccountPwd(), shopInfoAddDTO.getPhone(), shopInfoAddDTO.getRoleId());
// 保存店铺信息
ShopInfo shopInfo = BeanUtil.copyProperties(shopInfoAddDTO, ShopInfo.class);

View File

@@ -1,9 +1,25 @@
package com.czg.service.account.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.czg.account.dto.staff.ShopStaffAddDTO;
import com.czg.account.dto.staff.ShopStaffEditDTO;
import com.czg.account.dto.staff.ShopStaffRemoveDTO;
import com.czg.account.entity.ShopStaff;
import com.czg.account.entity.SysRole;
import com.czg.account.entity.SysUser;
import com.czg.account.service.ShopStaffService;
import com.czg.account.service.SysRoleService;
import com.czg.account.service.SysUserService;
import com.czg.account.service.SysUsersRolesService;
import com.czg.exception.ApiNotPrintException;
import com.czg.sa.StpKit;
import com.czg.service.account.mapper.ShopStaffMapper;
import com.czg.utils.PageUtil;
import com.mybatisflex.core.paginate.Page;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
@@ -14,5 +30,58 @@ import org.springframework.stereotype.Service;
*/
@Service
public class ShopStaffServiceImpl extends ServiceImpl<ShopStaffMapper, ShopStaff> implements ShopStaffService {
@Resource
private SysUserService sysUserService;
@Resource
private SysRoleService sysRoleService;
@Resource
private SysUsersRolesService sysUsersRolesService;
@Override
public Boolean add(ShopStaffAddDTO shopStaffAddDTO) {
SysUser sysUser = sysUserService.addUser(shopStaffAddDTO.getName(), shopStaffAddDTO.getAccountName(), shopStaffAddDTO.getAccountPwd(), shopStaffAddDTO.getPhone(), shopStaffAddDTO.getRoleId());
ShopStaff shopStaff = BeanUtil.copyProperties(shopStaffAddDTO, ShopStaff.class);
shopStaff.setShopId(StpKit.ADMIN.getLoginIdAsLong());
return save(shopStaff);
}
@Override
public Boolean edit(ShopStaffEditDTO shopStaffEditDTO) {
long sysUserId = StpKit.ADMIN.getLoginIdAsLong();
ShopStaff shopStaff = queryChain().eq(ShopStaff::getShopId, sysUserId).eq(ShopStaff::getId, shopStaffEditDTO.getId()).one();
if (shopStaffEditDTO.getRoleId() != null) {
sysUsersRolesService.updateRole(shopStaff.getId(), shopStaffEditDTO.getRoleId());
}
sysUserService.updateSysUserPwd(shopStaff.getId(), shopStaffEditDTO.getAccountPwd());
BeanUtil.copyProperties(shopStaffEditDTO, shopStaff);
return updateById(shopStaff);
}
@Override
public Page<ShopStaff> get(String name, String code) {
QueryWrapper queryWrapper = new QueryWrapper();
if (StrUtil.isNotBlank(name)) {
queryWrapper.like(ShopStaff::getName, name);
}
if (StrUtil.isNotBlank(code)) {
queryWrapper.like(ShopStaff::getCode, name);
}
queryWrapper.eq(ShopStaff::getShopId, StpKit.ADMIN.getLoginIdAsLong());
return page(PageUtil.buildPage(), queryWrapper);
}
@Override
public Boolean delete(ShopStaffRemoveDTO shopStaffRemoveDTO) {
long sysUserId = StpKit.ADMIN.getLoginIdAsLong();
ShopStaff shopStaff = queryChain().eq(ShopStaff::getShopId, sysUserId).eq(ShopStaff::getId, shopStaffRemoveDTO.getId()).one();
if (shopStaff == null) {
throw new ApiNotPrintException("员工账号不存在");
}
sysUserService.removeUserAndRole(shopStaff.getId());
return removeById(shopStaff.getId());
}
}

View File

@@ -1,9 +1,19 @@
package com.czg.service.account.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.crypto.SecureUtil;
import com.czg.account.entity.SysRole;
import com.czg.account.entity.SysUser;
import com.czg.account.entity.SysUsersRoles;
import com.czg.account.service.SysUserService;
import com.czg.exception.CzgException;
import com.czg.sa.StpKit;
import com.czg.service.account.mapper.SysRoleMapper;
import com.czg.service.account.mapper.SysUserMapper;
import com.czg.service.account.mapper.SysUsersRolesMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
/**
@@ -15,4 +25,50 @@ import org.springframework.stereotype.Service;
@Service
public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> implements SysUserService {
@Resource
private SysRoleMapper sysRoleMapper;
@Resource
private SysUsersRolesMapper sysUsersRolesMapper;
@Override
public SysUser addUser(String nickname, String accountName, String accountPwd, String phone, Long roleId) {
// 添加系统账号
SysUser sysUser = new SysUser();
sysUser.setAccount(accountName);
sysUser.setNickName(nickname);
sysUser.setPhone(phone);
sysUser.setStauts(1);
sysUser.setCreateUserId(StpKit.ADMIN.getLoginIdAsLong());
save(sysUser);
sysUser.setPassword(SecureUtil.md5(sysUser.getId() + accountPwd));
updateById(sysUser);
// 绑定角色
long roleCount = sysRoleMapper.selectCountByQuery(new QueryWrapper().eq(SysRole::getId, roleId).eq(SysRole::getCreateUserId, StpKit.ADMIN.getLoginIdAsLong()));
if (roleCount == 0) {
throw new CzgException("角色不存在");
}
SysUsersRoles usersRoles = new SysUsersRoles();
usersRoles.setUserId(sysUser.getId());
usersRoles.setRoleId(roleId);
sysUsersRolesMapper.insert(usersRoles);
return sysUser;
}
@Override
public Boolean updateSysUserPwd(long sysUserId, String accountPwd) {
SysUser sysUser = new SysUser();
sysUser.setId(sysUserId);
sysUser.setPassword(SecureUtil.md5(sysUser.getId() + accountPwd));
sysUser.setUpdateUserId(sysUserId);
sysUser.setUpdateTime(DateUtil.date().toLocalDateTime());
return updateById(sysUser);
}
@Override
public Boolean removeUserAndRole(Integer id) {
sysUsersRolesMapper.deleteByQuery(new QueryWrapper().eq(SysUsersRoles::getUserId, id));
return removeById(id);
}
}

View File

@@ -3,6 +3,7 @@ package com.czg.service.account.service.impl;
import com.czg.account.entity.SysUsersRoles;
import com.czg.account.service.SysUsersRolesService;
import com.czg.service.account.mapper.SysUsersRolesMapper;
import com.mybatisflex.core.query.QueryWrapper;
import com.mybatisflex.spring.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@@ -14,5 +15,13 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SysUsersRolesServiceImpl extends ServiceImpl<SysUsersRolesMapper, SysUsersRoles> implements SysUsersRolesService {
@Override
public Boolean updateRole(long sysUserId, Long roleId) {
remove(new QueryWrapper().eq(SysUsersRoles::getUserId, sysUserId));
SysUsersRoles usersRoles = new SysUsersRoles();
usersRoles.setUserId(sysUserId);
usersRoles.setRoleId(roleId);
return save(usersRoles);
}
}