Explorar o código

判断登录用户是否禁用

lyhzzz %!s(int64=2) %!d(string=hai) anos
pai
achega
b273232ac2

+ 1 - 0
src/main/java/com/fdkankan/sale/common/ResultCode.java

@@ -40,6 +40,7 @@ public enum ResultCode  {
     PART_STOCK_ERROR(60018, "备件库存不足"),
     REPAIR_SN_EXITS(60019, "设备正在维修,请勿重复报修。"),
     MATH_TO_MAX(60020, "请输入正确金额"),
+    DEL_USER_REPAIR(60021, "当前用户存在未完结的工单,不可删除"),
 
 
 

+ 1 - 0
src/main/java/com/fdkankan/sale/config/SaTokenConfigure.java

@@ -125,6 +125,7 @@ public class SaTokenConfigure {
         //sysUserService.saveByRedisKey(redisKey);
         redisUtil.expire(String.format(RedisKeyUtil.loginToken,StpUtil.getTokenValue()),21600);
         StpUtil.checkLogin();
+
     }
 
 

+ 3 - 1
src/main/java/com/fdkankan/sale/config/StpInterfaceImpl.java

@@ -58,7 +58,9 @@ public class StpInterfaceImpl implements StpInterface {
             LambdaQueryWrapper<SysUser> wrapper = new LambdaQueryWrapper<>();
             wrapper.eq(SysUser::getId,loginId);
             SysUser one = sysUserService.getOne(wrapper);
-
+            if(one.getStatus() == 0){
+                throw new BusinessException(ResultCode.USERNAME_ERROR);
+            }
             SysRole sysRole = sysRoleService.getById(one.getRoleId());
             return Arrays.asList(sysRole.getRoleType());
         }catch (Exception e){

+ 11 - 1
src/main/java/com/fdkankan/sale/controller/SysUserController.java

@@ -7,6 +7,7 @@ import com.fdkankan.sale.common.ResultData;
 import com.fdkankan.sale.entity.SysRole;
 import com.fdkankan.sale.entity.SysUser;
 import com.fdkankan.sale.exception.BusinessException;
+import com.fdkankan.sale.service.IRepairService;
 import com.fdkankan.sale.service.ISysRoleService;
 import com.fdkankan.sale.service.ISysUserService;
 import com.fdkankan.sale.vo.request.SysUserParam;
@@ -57,13 +58,22 @@ public class SysUserController extends BaseController{
         return ResultData.ok();
     }
 
+    @PostMapping("/update")
+    public ResultData update(@RequestBody SysUserParam param){
+        if(param.getId() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        sysUserService.updateUser(param);
+        return ResultData.ok();
+    }
+
 
     @PostMapping("/delete")
     public ResultData delete(@RequestBody SysUserParam param){
         if(param.getId() == null){
             throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
         }
-        sysUserService.removeById(param.getId());
+        sysUserService.delUser(param.getId());
         return ResultData.ok();
     }
 

+ 2 - 0
src/main/java/com/fdkankan/sale/service/IRepairLogService.java

@@ -25,4 +25,6 @@ public interface IRepairLogService extends IService<RepairLog> {
     List<RepairLog> getByRepairId(String repairId);
 
     List<RepairLogVo> getVoByRepairId(String repairId);
+
+    List<RepairLog> getBySysUserId(Long sysUserId);
 }

+ 4 - 0
src/main/java/com/fdkankan/sale/service/ISysUserService.java

@@ -44,4 +44,8 @@ public interface ISysUserService extends IService<SysUser> {
     Object allList(String userName);
 
     void setSaleNameAndRepairManName(List<RepairerVo> records);
+
+    void delUser(Long id);
+
+    void updateUser(SysUserParam param);
 }

+ 8 - 0
src/main/java/com/fdkankan/sale/service/impl/RepairLogServiceImpl.java

@@ -79,4 +79,12 @@ public class RepairLogServiceImpl extends ServiceImpl<IRepairLogMapper, RepairLo
     public List<RepairLogVo> getVoByRepairId(String repairId) {
         return this.getBaseMapper().getVoByRepairId(repairId);
     }
+
+    @Override
+    public List<RepairLog> getBySysUserId(Long sysUserId) {
+        LambdaQueryWrapper<RepairLog> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(RepairLog::getSysUserId,sysUserId);
+        wrapper.orderByDesc(RepairLog::getCreateTime);
+        return this.list(wrapper);
+    }
 }

+ 33 - 3
src/main/java/com/fdkankan/sale/service/impl/SysUserServiceImpl.java

@@ -3,20 +3,20 @@ package com.fdkankan.sale.service.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.util.Base64Converter;
 import com.fdkankan.common.util.SecurityUtil;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.sale.common.PageInfo;
 import com.fdkankan.sale.common.ResultCode;
+import com.fdkankan.sale.entity.RepairLog;
 import com.fdkankan.sale.entity.SysRole;
 import com.fdkankan.sale.entity.SysUser;
 import com.fdkankan.sale.entity.User;
 import com.fdkankan.sale.exception.BusinessException;
 import com.fdkankan.sale.mapper.ISysUserMapper;
-import com.fdkankan.sale.service.ISysMenuService;
-import com.fdkankan.sale.service.ISysRoleService;
-import com.fdkankan.sale.service.ISysUserService;
+import com.fdkankan.sale.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.sale.vo.request.SysUserParam;
 import com.fdkankan.sale.vo.response.ManageLoginResponse;
@@ -50,6 +50,8 @@ public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> imp
     private ISysMenuService sysMenuService;
     @Autowired
     private RedisUtil redisUtil;
+    @Autowired
+    private IRepairLogService repairLogService;
 
 
     @Override
@@ -204,4 +206,32 @@ public class SysUserServiceImpl extends ServiceImpl<ISysUserMapper, SysUser> imp
             }
         }
     }
+
+    @Override
+    public void delUser(Long id) {
+        List<RepairLog> list = repairLogService.getBySysUserId(id);
+        Integer maxStatus = null;
+        for (RepairLog repairLog : list) {
+            if(maxStatus == null || repairLog.getRepairStatus() > maxStatus){
+                maxStatus = repairLog.getRepairStatus();
+            }
+        }
+        if(maxStatus == null || maxStatus >=11 ){
+            this.removeById(id);
+            return;
+        }
+        throw new BusinessException(ResultCode.DEL_USER_REPAIR);
+
+    }
+
+    @Override
+    public void updateUser(SysUserParam param) {
+        if(param.getId() == null || param.getStatus() == null){
+            throw new BusinessException(ResultCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        LambdaUpdateWrapper<SysUser> wrapper = new LambdaUpdateWrapper<>();
+        wrapper.eq(SysUser::getId,param.getId());
+        wrapper.set(SysUser::getStatus,param.getStatus());
+        this.update(wrapper);
+    }
 }