Browse Source

修改人员card逻辑

车车 3 tháng trước cách đây
mục cha
commit
e16ecef310

+ 4 - 6
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/jobcard/JobCardServiceImpl.java

@@ -117,12 +117,10 @@ public class JobCardServiceImpl extends ServiceImpl<JobCardMapper, JobCardDO> im
 
     @Override
     public AuthLoginRespVO loginByCard(JobCardLoginVO vo) {
-        JobCardDO one = getOne(Wrappers.<JobCardDO>lambdaQuery()
-                .eq(JobCardDO::getCardNfc, vo.getCardNfc()));
-        Assert.isTrue(one != null, "该卡尚未绑定用户!");
-        AdminUserDO user = adminUserService.getUser(one.getUserId());
-        Assert.isTrue(user != null, "用户不存在!");
-        AuthLoginRespVO authLoginRespVO = authService.passwordFreeLogin(new AuthPasswordFreeLoginReqVO().setUsername(user.getUsername()));
+        AdminUserDO adminUserDO = adminUserService.getOne(Wrappers.<AdminUserDO>lambdaQuery()
+                .eq(AdminUserDO::getCardNfc, vo.getCardNfc()));
+        Assert.isTrue(adminUserDO != null, "用户不存在!");
+        AuthLoginRespVO authLoginRespVO = authService.passwordFreeLogin(new AuthPasswordFreeLoginReqVO().setUsername(adminUserDO.getUsername()));
         return authLoginRespVO;
     }
 

+ 26 - 5
yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/service/user/AdminUserServiceImpl.java

@@ -53,6 +53,7 @@ import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.*;
@@ -124,6 +125,16 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
         // 1.2 校验正确性
         validateUserForCreateOrUpdate(null, createReqVO.getUsername(),
                 createReqVO.getMobile(), createReqVO.getEmail(), createReqVO.getDeptId(), createReqVO.getPostIds());
+        // 1.3 校验新增的卡号
+        if (StringUtils.isNotBlank(createReqVO.getCardNfc())) {
+            // 检查卡号是否被别人使用
+            List<AdminUserDO> list = list(Wrappers.<AdminUserDO>lambdaQuery()
+                    .eq(AdminUserDO::getCardNfc, createReqVO.getCardNfc()));
+            if (!list.isEmpty()) {
+                String collect = list.stream().map(AdminUserDO::getNickname).collect(Collectors.joining(","));
+                Assert.isTrue(false, collect + "正在使用该卡号!");
+            }
+        }
         // 2.1 插入用户
         AdminUserDO user = BeanUtils.toBean(createReqVO, AdminUserDO.class);
         user.setStatus(CommonStatusEnum.ENABLE.getStatus()); // 默认开启
@@ -139,8 +150,8 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
             userWorkstationService.saveBatch(convertList(createReqVO.getWorkstationIds(),
                     workstationId -> new UserWorkstationDO().setUserId(user.getId()).setWorkstationId(workstationId)));
         }
-        // 2.4 插入card
-        iscsService.createJobCard(user.getId(), createReqVO.getCardNfc());
+        // 2.4 插入card(mars逻辑现在不要了)
+        // iscsService.createJobCard(user.getId(), createReqVO.getCardNfc());
         // 3. 记录操作日志上下文
         LogRecordContext.putVariable("user", user);
         return user.getId();
@@ -179,7 +190,17 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
         // 1. 校验正确性
         AdminUserDO oldUser = validateUserForCreateOrUpdate(updateReqVO.getId(), updateReqVO.getUsername(),
                 updateReqVO.getMobile(), updateReqVO.getEmail(), updateReqVO.getDeptId(), updateReqVO.getPostIds());
-
+        // 1.1 校验修改的卡号
+        if (StringUtils.isNotBlank(updateReqVO.getCardNfc())) {
+            // 检查卡号是否被别人使用
+            List<AdminUserDO> list = list(Wrappers.<AdminUserDO>lambdaQuery()
+                    .ne(AdminUserDO::getId, updateReqVO.getId())
+                    .eq(AdminUserDO::getCardNfc, updateReqVO.getCardNfc()));
+            if (!list.isEmpty()) {
+                String collect = list.stream().map(AdminUserDO::getNickname).collect(Collectors.joining(","));
+                Assert.isTrue(false, collect + "正在使用该卡号!");
+            }
+        }
         // 2.1 更新用户
         AdminUserDO updateObj = BeanUtils.toBean(updateReqVO, AdminUserDO.class);
         userMapper.updateById(updateObj);
@@ -191,8 +212,8 @@ public class AdminUserServiceImpl extends ServiceImpl<AdminUserMapper, AdminUser
             userWorkstationService.saveBatch(convertList(updateReqVO.getWorkstationIds(),
                     workstationId -> new UserWorkstationDO().setUserId(updateReqVO.getId()).setWorkstationId(workstationId)));
         }
-        // 2.4 更新card
-        iscsService.createJobCard(oldUser.getId(), updateReqVO.getCardNfc());
+        // 2.4 更新card(mars逻辑 现在不要)
+        // iscsService.createJobCard(oldUser.getId(), updateReqVO.getCardNfc());
         // 3. 记录操作日志上下文
         LogRecordContext.putVariable(DiffParseFunction.OLD_OBJECT, BeanUtils.toBean(oldUser, UserSaveReqVO.class));
         LogRecordContext.putVariable("user", oldUser);