This commit is contained in:
2024-11-28 15:10:09 +08:00
commit 901691aaea
90 changed files with 4919 additions and 0 deletions

View File

@ -0,0 +1,157 @@
package com.ycwl.basic.service.impl.pc;
import cn.hutool.crypto.digest.DigestUtil;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.constant.BaseContextHandler;
import com.ycwl.basic.exception.RoleStatusException;
import com.ycwl.basic.mapper.pc.AdminUserMapper;
import com.ycwl.basic.mapper.pc.RoleMapper;
import com.ycwl.basic.model.jwt.JwtInfo;
import com.ycwl.basic.model.pc.adminUser.entity.LoginEntity;
import com.ycwl.basic.model.pc.adminUser.req.*;
import com.ycwl.basic.model.pc.adminUser.resp.AdminUserListRespVO;
import com.ycwl.basic.model.pc.adminUser.resp.LoginRespVO;
import com.ycwl.basic.model.pc.menu.MenuNode;
import com.ycwl.basic.service.pc.AdminUserService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.JwtTokenUtil;
import com.ycwl.basic.utils.SnowFlakeUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import static com.ycwl.basic.constant.PermissionConstant.ROLE_STATUS;
@Service
public class AdminUserServiceImpl implements AdminUserService {
@Autowired
AdminUserMapper adminUserMapper;
@Autowired
RoleMapper roleMapper;
@Autowired
JwtTokenUtil jwtTokenUtil;
@Autowired
RedisTemplate redisTemplate;
@Override
public ApiResponse list(AdminUserListReqVO adminUserListReqVO) {
PageHelper.startPage(adminUserListReqVO.getPage(), adminUserListReqVO.getPageSize());
List<AdminUserListRespVO> list = adminUserMapper.list(adminUserListReqVO);
PageInfo<AdminUserListRespVO> pageInfo = new PageInfo(list);
return ApiResponse.buildSuccessResponse(pageInfo);
}
@Override
public ApiResponse addOrUpdate(AddOrUpdateAdminUserReqVO addOrUpdateAdminUserReqVO) {
addOrUpdateAdminUserReqVO.setPassword(DigestUtil.md5Hex(addOrUpdateAdminUserReqVO.getPassword()));
String id = addOrUpdateAdminUserReqVO.getId();
if (StringUtils.isBlank(id)) {
addOrUpdateAdminUserReqVO.setId(SnowFlakeUtil.getId());
String password = addOrUpdateAdminUserReqVO.getPassword();
addOrUpdateAdminUserReqVO.setPassword(password);
int add = adminUserMapper.add(addOrUpdateAdminUserReqVO);
if (add > 0) {
return ApiResponse.buildSuccessResponse(null);
}
} else {
int update = adminUserMapper.update(addOrUpdateAdminUserReqVO);
if (update > 0) {
return ApiResponse.buildSuccessResponse(null);
}
}
return ApiResponse.buildCommonErrorResponse("失败");
}
@Override
public ApiResponse delete(String id) {
if (adminUserMapper.delete(id) > 0) {
return ApiResponse.buildSuccessResponse(null);
}
return ApiResponse.buildCommonErrorResponse("失败");
}
@Override
public ApiResponse resetPassword(ResetPasswordReqVO resetPasswordReqVO) {
resetPasswordReqVO.setPassword(DigestUtil.md5Hex(resetPasswordReqVO.getPassword()));
if (adminUserMapper.resetPassword(resetPasswordReqVO) > 0) {
return ApiResponse.buildSuccessResponse(null);
}
return ApiResponse.buildCommonErrorResponse("失败");
}
@Override
public ApiResponse login(LoginReqVO loginReqVO) throws Exception {
String account = loginReqVO.getAccount();
String password = loginReqVO.getPassword();
LoginEntity login = adminUserMapper.login(account);
if (login == null) {
return ApiResponse.buildCommonErrorResponse("账号不存在或密码错误");
}
if (!login.getPassword().equals(DigestUtil.md5Hex(password))) {
return ApiResponse.buildCommonErrorResponse("账号不存在或密码错误");
}
String roleId = login.getRoleId();
Object roleObject = redisTemplate.opsForValue().get(ROLE_STATUS + roleId);
if (roleObject != null) {
if (roleObject.toString().equals("1")) {
throw new RoleStatusException("该角色下的账号已被封禁,请联系管理员");
}
}
List<MenuNode> menuById = roleMapper.getMenuById(roleId);
List<MenuNode> MenuList = new ArrayList<>();
for (MenuNode item : menuById) {
if ("-1".equals(item.getParentId())) {
MenuList.add(item);
}
for (MenuNode item2 : menuById) {
if (item2.getParentId().equals(item.getId())) {
if (item.getChildrenList() == null) {
item.setChildrenList(new ArrayList<>());
}
item.getChildrenList().add(item2);
}
}
}
LoginRespVO loginRespVO = new LoginRespVO();
String token = jwtTokenUtil.generateToken(new JwtInfo(login.getStaffName(), login.getStaffId(), roleId, login.getAccount(), login.getAccount(), null));
loginRespVO.setToken(token);
loginRespVO.setName(login.getStaffName());
loginRespVO.setTypeName(login.getTypeName());
loginRespVO.setMenuNodeList(MenuList);
return ApiResponse.buildSuccessResponse(loginRespVO);
}
@Override
public ApiResponse updatePassword(UpdatePasswordReqVO updatePasswordReqVO) {
String userId = BaseContextHandler.getUserId();
updatePasswordReqVO.setId(userId);
String passwordByAccount = adminUserMapper.getPasswordByAccount(updatePasswordReqVO.getId());
String pwd = DigestUtil.md5Hex(updatePasswordReqVO.getPwd());
if (!passwordByAccount.equals(pwd)) {
return ApiResponse.buildCommonErrorResponse("密码错误!修改失败");
}
String newPwd = DigestUtil.md5Hex(updatePasswordReqVO.getNewPwd());
updatePasswordReqVO.setNewPwd(newPwd);
if (adminUserMapper.updatePassword(updatePasswordReqVO) > 0) {
return ApiResponse.buildSuccessResponse(null);
}
return ApiResponse.buildCommonErrorResponse("失败");
}
}

View File

@ -0,0 +1,131 @@
package com.ycwl.basic.service.impl.pc;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.ycwl.basic.mapper.pc.MenuMapper;
import com.ycwl.basic.mapper.pc.RoleMapper;
import com.ycwl.basic.model.pc.menu.MenuNode;
import com.ycwl.basic.model.pc.role.req.AddOrUpdateRoleReqVO;
import com.ycwl.basic.model.pc.role.req.RoleListReqVO;
import com.ycwl.basic.model.pc.role.resp.RoleListRespVO;
import com.ycwl.basic.service.pc.RoleService;
import com.ycwl.basic.utils.ApiResponse;
import com.ycwl.basic.utils.SnowFlakeUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import static com.ycwl.basic.constant.PermissionConstant.ROLE_STATUS;
@Service
public class RoleServiceImpl implements RoleService {
@Autowired
RoleMapper roleMapper;
@Autowired
MenuMapper menuMapper;
@Autowired
RedisTemplate redisTemplate;
@Override
public ApiResponse list(RoleListReqVO roleListReqVO) {
PageHelper.startPage(roleListReqVO.getPage(),roleListReqVO.getPageSize());
if(roleListReqVO.getType()==null){
roleListReqVO.setType(0);
}
List<RoleListRespVO> list = roleMapper.list(roleListReqVO);
PageInfo<RoleListRespVO> pageInfo = new PageInfo(list);
return ApiResponse.buildSuccessResponse(pageInfo);
}
@Override
public ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO) {
String id = addOrUpdateRoleReqVO.getId();
if(StringUtils.isBlank(id)){
String roleId = SnowFlakeUtil.getId();
addOrUpdateRoleReqVO.setId(roleId);
if(roleMapper.add(addOrUpdateRoleReqVO)>0){
menuMapper.addRoleMenu(roleId,addOrUpdateRoleReqVO.getMenuIdList());
return ApiResponse.buildSuccessResponse(null);
}
}else {
if(roleMapper.update(addOrUpdateRoleReqVO)>0){
menuMapper.delete(addOrUpdateRoleReqVO.getId());
if(addOrUpdateRoleReqVO.getMenuIdList()!=null&addOrUpdateRoleReqVO.getMenuIdList().size()>0){
menuMapper.addRoleMenu(addOrUpdateRoleReqVO.getId(),addOrUpdateRoleReqVO.getMenuIdList());
}
return ApiResponse.buildSuccessResponse(null);
}
}
return ApiResponse.buildCommonErrorResponse("失败");
}
@Override
public ApiResponse delete(String id) {
if(roleMapper.delete(id)>0){
menuMapper.delete(id);
return ApiResponse.buildSuccessResponse(null);
}
return ApiResponse.buildCommonErrorResponse("失败");
}
@Override
public ApiResponse updateReturnMenu(String id) {
List<MenuNode> menuById = roleMapper.getMenuById(id);
List<MenuNode> MenuList = new ArrayList<>();
for (MenuNode item :menuById) {
if ("-1".equals(item.getParentId())) {
MenuList.add(item);
}
for (MenuNode item2 : menuById) {
if (item2.getParentId().equals(item.getId())) {
if (item.getChildrenList() == null) {
item.setChildrenList(new ArrayList<>());
}
item.getChildrenList().add(item2);
}
}
}
return ApiResponse.buildSuccessResponse(MenuList);
}
@Override
public ApiResponse menu(Integer type) {
if(type==null){
type=1;
}
List<MenuNode> listByType = menuMapper.getListByType(type);
List<MenuNode> MenuList = new ArrayList<>();
for (MenuNode item :listByType) {
if ("-1".equals(item.getParentId())) {
MenuList.add(item);
}
for (MenuNode item2 : listByType) {
if (item2.getParentId().equals(item.getId())) {
if (item.getChildrenList() == null) {
item.setChildrenList(new ArrayList<>());
}
item.getChildrenList().add(item2);
}
}
}
return ApiResponse.buildSuccessResponse(MenuList);
}
@Override
public ApiResponse updateStatus(String id) {
if(roleMapper.updateStatus(id)>0){
redisTemplate.opsForValue().set(ROLE_STATUS+id,roleMapper.getRoleStatus(id));
return ApiResponse.buildSuccessResponse(null);
}
return ApiResponse.buildCommonErrorResponse("失败");
}
}

View File

@ -0,0 +1,14 @@
package com.ycwl.basic.service.pc;
import com.ycwl.basic.model.pc.adminUser.req.*;
import com.ycwl.basic.utils.ApiResponse;
public interface AdminUserService {
ApiResponse list(AdminUserListReqVO adminUserListReqVO);
ApiResponse addOrUpdate(AddOrUpdateAdminUserReqVO addOrUpdateAdminUserReqVO);
ApiResponse delete(String id);
ApiResponse resetPassword(ResetPasswordReqVO resetPasswordReqVO);
ApiResponse login(LoginReqVO loginReqVO) throws Exception;
ApiResponse updatePassword(UpdatePasswordReqVO updatePasswordReqVO);
}

View File

@ -0,0 +1,4 @@
package com.ycwl.basic.service.pc;
public interface MerchantService {
}

View File

@ -0,0 +1,15 @@
package com.ycwl.basic.service.pc;
import com.ycwl.basic.model.pc.role.req.AddOrUpdateRoleReqVO;
import com.ycwl.basic.model.pc.role.req.RoleListReqVO;
import com.ycwl.basic.utils.ApiResponse;
public interface RoleService {
ApiResponse list(RoleListReqVO roleListReqVO);
ApiResponse addOrUpdate(AddOrUpdateRoleReqVO addOrUpdateRoleReqVO);
ApiResponse delete(String id);
ApiResponse updateReturnMenu(String id);
ApiResponse menu(Integer type);
ApiResponse updateStatus(String id);
}