From 3f50415850d93bf58306583086bf5400e18aeee0 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期三, 10 三月 2021 07:59:05 +0800
Subject: [PATCH] fix(bug修复): 岗位管理

---
 febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/UserServiceImpl.java |   40 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 35 insertions(+), 5 deletions(-)

diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/UserServiceImpl.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/UserServiceImpl.java
index f3d9f42..1bc690d 100644
--- a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/UserServiceImpl.java
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/UserServiceImpl.java
@@ -15,12 +15,14 @@
 import cc.mrbird.febs.server.system.service.IUserRoleService;
 import cc.mrbird.febs.server.system.service.IUserService;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.logging.log4j.util.LambdaUtil;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -76,7 +78,13 @@
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void createUser(SystemUser user) {
+    public void createUser(SystemUser user) throws FebsException {
+        LambdaQueryWrapper<SystemUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(SystemUser::getCertificateNumb, user.getCertificateNumb());
+        lambdaQueryWrapper.eq(SystemUser::getUsername, user.getUsername());
+        if (this.count(lambdaQueryWrapper) > 0) {
+            throw new FebsException("此用户已存在");
+        }
         // 创建用户
         user.setCreateTime(new Date());
         user.setAvatar(SystemUser.DEFAULT_AVATAR);
@@ -84,15 +92,26 @@
         save(user);
         // 保存用户角色
         String[] roles = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getRoleId(), StringConstant.COMMA);
-        setUserRoles(user, roles);
-        // 保存用户数据权限关联关系
+        if(roles!=null){
+            setUserRoles(user, roles);
+        }
         String[] deptIds = StringUtils.splitByWholeSeparatorPreserveAllTokens(user.getDeptIds(), StringConstant.COMMA);
-        setUserDataPermissions(user, deptIds);
+        if(deptIds!=null){
+            // 保存用户数据权限关联关系
+            setUserDataPermissions(user, deptIds);
+        }
     }
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateUser(SystemUser user) {
+    public void updateUser(SystemUser user) throws FebsException {
+        LambdaQueryWrapper<SystemUser> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(SystemUser::getCertificateNumb, user.getCertificateNumb());
+        lambdaQueryWrapper.eq(SystemUser::getUsername, user.getUsername());
+        lambdaQueryWrapper.ne(SystemUser::getUserId,user.getUserId());
+        if (this.count(lambdaQueryWrapper) > 0) {
+            throw new FebsException("此用户已存在");
+        }
         // 更新用户
         user.setPassword(null);
         user.setUsername(null);
@@ -188,4 +207,15 @@
         CurrentUser currentUser = FebsUtil.getCurrentUser();
         return currentUser != null && id.equals(currentUser.getUserId());
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void updateUserByCertificateNumb(String certificateNumb) {
+        LambdaUpdateWrapper<SystemUser> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
+        lambdaUpdateWrapper.eq(SystemUser::getCertificateNumb,certificateNumb);
+        lambdaUpdateWrapper.set(SystemUser::getStatus,0);
+        lambdaUpdateWrapper.set(SystemUser::getModifyTime,new Date());
+        this.update(lambdaUpdateWrapper);
+    }
+
 }

--
Gitblit v1.8.0