Przeglądaj źródła

关联账号修改

xujie 1 rok temu
rodzic
commit
5e1d891080

+ 14 - 2
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -233,7 +233,7 @@ public class SysUserController extends BaseController {
     @Log(title = "关联子用户", businessType = BusinessType.OTHER)
     @PutMapping("/mapperuser")
     public AjaxResult mapperUser(@RequestBody SysUserMapperDTO userMapperDTO) {
-        userService.insertUserMapper(userMapperDTO.getMasterUserId(), userMapperDTO.getMapperUserIds().toArray(new Long[0]));
+        userService.insertUserMapper(userMapperDTO.getMasterUserId(), userMapperDTO.getMapperUserIds().toArray(new Long[0]),userMapperDTO.getUserSource());
         return success();
     }
 
@@ -244,7 +244,19 @@ public class SysUserController extends BaseController {
     @Log(title = "关联子用户", businessType = BusinessType.OTHER)
     @GetMapping("/mapperlist/{userId}")
     public R<List<SysMasterSubUserVO>> mapperUser(@PathVariable(value = "userId") Long userId) {
-        return R.ok(userService.selectSwitchUserList(userId, null));
+        List<SysMasterSubUserVO> result = new ArrayList<>();
+        //查询关联用户
+        List<SysMasterSubUserVO> list = userService.selectSwitchUserList(userId, null);
+        if (list != null && list.size() > 0){
+            result.addAll(list);
+        }
+        //查询被关联用户
+        List<SysMasterSubUserVO> associatedList = userService.selectAssociatedList(userId);
+        if (associatedList != null && associatedList.size() > 0){
+            result.addAll(associatedList);
+        }
+
+        return R.ok(result);
     }
 
 

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/domain/vo/SysMasterSubUserVO.java

@@ -19,4 +19,7 @@ public class SysMasterSubUserVO {
     private String subUserName;
     private String subUserAccount;
     private String subUserOrgName;
+
+    //是否被关联 0.否 1.是
+    private String associated;
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/dto/SysUserMapperDTO.java

@@ -13,4 +13,7 @@ import java.util.List;
 public class SysUserMapperDTO {
     private Long masterUserId;
     private List<Long> mapperUserIds;
+
+    //用户来源 0.系统添加 1.fjnx同步
+    private Integer userSource;
 }

+ 3 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserAccountMapper.java

@@ -2,6 +2,7 @@ package com.xunmei.system.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xunmei.system.domain.SysUserMapperDomain;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -26,4 +27,6 @@ public interface SysUserAccountMapper extends BaseMapper<SysUserMapperDomain> {
      * @return 结果
      */
     int batchInsertMapperUser(List<SysUserMapperDomain> list);
+
+    int deleteByMasterUserIdAndSubUserId(@Param("masterUserId") Long masterUserId,@Param("subUserId") Long subUserId);
 }

+ 2 - 0
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/mapper/SysUserMapper.java

@@ -170,4 +170,6 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
     List<SysUser> selectUserByRoleIdAndOrgPath(@Param("roleIdList") List<Long> roleIdList, @Param("path") String path);
 
     List<SysMasterSubUserVO> selectSwitchUserList(@Param("masterUserId") Long masterUserId);
+
+    List<SysMasterSubUserVO> selectAssociatedList(@Param("subUserId") Long subUserId);
 }

+ 3 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/ISysUserService.java

@@ -262,13 +262,15 @@ public interface ISysUserService extends IService<SysUser> {
      */
     List<SysMasterSubUserVO> selectSwitchUserList(Long masterUserId,Long subUserId);
 
+    List<SysMasterSubUserVO> selectAssociatedList(Long subUserId);
+
     /**
      * 保存用户关系
      *
      * @param masterUserId  用户ID
      * @param mapperUserIds 角色组
      */
-    void insertUserMapper(Long masterUserId, Long[] mapperUserIds);
+    void insertUserMapper(Long masterUserId, Long[] mapperUserIds,Integer userSource);
 
     void importRole(MultipartFile file, HttpServletResponse response);
 }

+ 47 - 14
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/service/impl/SysUserServiceImpl.java

@@ -877,21 +877,54 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public void insertUserMapper(Long masterUserId, Long[] mapperUserIds) {
-        userAccountMapper.deleteMapperByMasterUserId(masterUserId);
-        if (StringUtils.isNotEmpty(mapperUserIds)) {
-            List<SysUserMapperDomain> list = new ArrayList<SysUserMapperDomain>();
-            for (Long userId : mapperUserIds) {
-                SysUserMapperDomain ur = new SysUserMapperDomain();
-                ur.setMasterUserId(masterUserId);
-                ur.setSubUserId(userId);
-                ur.setCreateBy(SecurityUtils.getUsername());
-                ur.setCreateTime(new Date());
-                ur.setUpdateBy(SecurityUtils.getUsername());
-                ur.setUpdateTime(new Date());
-                list.add(ur);
+    public List<SysMasterSubUserVO> selectAssociatedList(Long subUserId) {
+        List<SysMasterSubUserVO> result = new ArrayList<>();
+        if (ObjectUtil.isNotNull(subUserId)) {
+            result = baseMapper.selectAssociatedList(subUserId);
+        }
+        return result;
+    }
+
+    @Override
+    public void insertUserMapper(Long masterUserId, Long[] mapperUserIds,Integer userSource) {
+        if (ObjectUtil.equal(1,userSource)){
+            userAccountMapper.deleteMapperByMasterUserId(masterUserId);
+            if (StringUtils.isNotEmpty(mapperUserIds)) {
+                List<SysUserMapperDomain> list = new ArrayList<SysUserMapperDomain>();
+                for (Long userId : mapperUserIds) {
+                    SysUserMapperDomain ur = new SysUserMapperDomain();
+                    ur.setMasterUserId(masterUserId);
+                    ur.setSubUserId(userId);
+                    ur.setCreateBy(SecurityUtils.getUsername());
+                    ur.setCreateTime(new Date());
+                    ur.setUpdateBy(SecurityUtils.getUsername());
+                    ur.setUpdateTime(new Date());
+                    list.add(ur);
+                }
+                userAccountMapper.batchInsertMapperUser(list);
+            }
+        }else {
+            //查询当前userId被关联的数据
+            List<SysMasterSubUserVO> userVOList = this.selectAssociatedList(masterUserId);
+            if (userVOList != null && userVOList.size() > 0) {
+                //从被关联的数据中删除前端传过来的id,剩下的就是需要删除的数据
+                if (mapperUserIds != null && mapperUserIds.length > 0){
+                    Iterator<SysMasterSubUserVO> iterator = userVOList.iterator();
+                    while (iterator.hasNext()){
+                        SysMasterSubUserVO next = iterator.next();
+                        for (Long mapperUserId : mapperUserIds) {
+                            if (ObjectUtil.equal(mapperUserId,next.getMasterUserId())){
+                                iterator.remove();
+                            }
+                        }
+                    }
+                    if (userVOList != null && userVOList.size() > 0){
+                        for (SysMasterSubUserVO userVO : userVOList) {
+                            userAccountMapper.deleteByMasterUserIdAndSubUserId(userVO.getMasterUserId(),masterUserId);
+                        }
+                    }
+                }
             }
-            userAccountMapper.batchInsertMapperUser(list);
         }
     }
 

+ 3 - 0
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserAccountMapper.xml

@@ -7,6 +7,9 @@
     <delete id="deleteMapperByMasterUserId" parameterType="Long">
         delete from sys_user_account_mapper where master_user_id=#{masterUserId}
     </delete>
+    <delete id="deleteByMasterUserIdAndSubUserId">
+        delete from sys_user_account_mapper where master_user_id = #{masterUserId} and sub_user_id = #{subUserId}
+    </delete>
 
     <insert id="batchInsertMapperUser">
         insert into sys_user_account_mapper(master_user_id, sub_user_id,create_by,create_time) values

+ 18 - 1
soc-modules/soc-modules-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -779,7 +779,8 @@
         u.org_id as subUserOrgId,
         u.username as subUserAccount,
         u.`name` as subUserName,
-        o.short_name as subUserOrgName
+        o.short_name as subUserOrgName,
+        '0' as associated
         FROM
         sys_user_account_mapper um
         INNER JOIN sys_user u ON u.id = um.sub_user_id
@@ -794,4 +795,20 @@
 <!--        </foreach>-->
     </select>
 
+    <select id="selectAssociatedList" resultType="com.xunmei.system.domain.vo.SysMasterSubUserVO">
+        select
+        um.master_user_id as masterUserId,
+        u.id as subUserId,
+        u.org_id as subUserOrgId,
+        u.username as subUserAccount,
+        u.`name` as subUserName,
+        o.short_name as subUserOrgName,
+        '1' as associated
+        FROM
+        sys_user_account_mapper um
+        INNER JOIN sys_user u ON u.id = um.master_user_id
+        INNER JOIN sys_org o ON o.id=u.org_id
+        WHERE um.sub_user_id=#{subUserId}
+    </select>
+
 </mapper>