caozixuan il y a 1 an
Parent
commit
509fb7b022

+ 15 - 3
sop-business/src/main/java/com/qmth/sop/business/service/impl/TBUserArchivesServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.sop.business.bean.dto.RoleDto;
 import com.qmth.sop.business.bean.dto.UserArchivesImportDto;
 import com.qmth.sop.business.bean.params.UserArchivesParam;
 import com.qmth.sop.business.bean.result.*;
@@ -194,7 +195,7 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
             }
         }
         Long archivesTime = userArchivesParam.getArchivesTime();
-        Long[] roleIds = userArchivesParam.getRoleIds();
+        List<Long> roleIds = Arrays.stream(userArchivesParam.getRoleIds()).distinct().collect(Collectors.toList());
         Long authenticationTime = userArchivesParam.getAuthenticationTime();
         Double authenticationScore = userArchivesParam.getAuthenticationScore();
         Long authenticationValidTime = userArchivesParam.getAuthenticationValidTime();
@@ -265,16 +266,27 @@ public class TBUserArchivesServiceImpl extends ServiceImpl<TBUserArchivesMapper,
         tbUserArchivesSupplierService.save(tbUserArchivesSupplier);
 
         // 用户编辑 - 根据手机号关联更新
+        String loginName = mobileNumber;
         SysUser sysUser = new SysUser();
         if (userId != null && userId > 0) {
             // 编辑
             sysUser = sysUserService.getById(userId);
+            loginName = sysUser.getLoginName();
+            List<RoleTypeEnum> roleTypeList = new ArrayList<>();
+            roleTypeList.add(RoleTypeEnum.EFFECT_ENGINEER);
+            roleTypeList.add(RoleTypeEnum.ASSISTANT_ENGINEER);
+            roleTypeList.add(RoleTypeEnum.REGION_COORDINATOR);
+
+            List<Long> sysRoleIds = sysRoleService.listRolesByUserId(userId).stream().filter(e -> !roleTypeList.contains(e.getType())).map(
+                    RoleDto::getId).distinct().collect(
+                    Collectors.toList());
+            roleIds.addAll(sysRoleIds);
         }
-        sysUser.setLoginName(mobileNumber);
+        sysUser.setLoginName(loginName);
         sysUser.setRealName(name);
         sysUser.setMobileNumber(mobileNumber);
         sysUser.setGender(gender);
-        sysUser.setRoleIds(roleIds);
+        sysUser.setRoleIds(roleIds.stream().distinct().toArray(Long[]::new));
         sysUser.setSource(UserSourceEnum.ARCHIVES);
         sysUserService.saveUser(sysUser, requestUser);
         return id;