Explorar el Código

代理人 渠道 添加批量设置管理人

xx hace 1 año
padre
commit
41a79dad78

+ 27 - 5
src/main/java/com/ydtech/modules/admin/controller/SysUserController.java

@@ -3,7 +3,6 @@ package com.ydtech.modules.admin.controller;
 
 import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.extra.spring.SpringUtil;
-import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -533,7 +532,7 @@ public class SysUserController extends BaseController {
             List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
             sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
             sysUserVo.setSysUserInfo(sysUserInfoService.getById(userId));
-            SpringUtil.getBean(RecordUserUtils.class).addRecord(JSONObject.parseObject(JSONObject.toJSONString(sysUserVo),SysUser2Vo.class),BaseController.getUserName());
+            SpringUtil.getBean(RecordUserUtils.class).addRecord(userId,BaseController.getUserName());
             return HttpResult.ok(sysUserVo);
         }
         // 查询推荐人
@@ -575,7 +574,7 @@ public class SysUserController extends BaseController {
         sysUserVo.setSysUserInfo(userInfo);
         sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
         //初始化添加人员修改记录
-        SpringUtil.getBean(RecordUserUtils.class).addRecord(JSONObject.parseObject(JSONObject.toJSONString(sysUserVo),SysUser2Vo.class),BaseController.getUserName());
+        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId,BaseController.getUserName());
         return HttpResult.ok(sysUserVo);
 
     }
@@ -1045,12 +1044,35 @@ public class SysUserController extends BaseController {
     }
 
 
+    /**
+     * 代理人和渠道取消管理人
+     */
+    @PostMapping("cancelManagementPersonnel")
+    public HttpResult cancelManagementPersonnel(@RequestBody UpdateManagementDto managementDto){
+        return sysUserService.cancelManagementPersonnel(managementDto);
+    }
+
+
+    /**
+     * @version
+     * @author: hxl
+     * @Date: 2024/7/11 16:04
+     * @Description: 查询的所有的后线人员
+     */
+    @ApiOperation(value = "后线用户查询不分页(管理人设置)")
+    @PostMapping(value = "/selectHxUserList")
+    public HttpResult selectHxUserList(@RequestBody SysUserDto sysUserDto) {
+        return HttpResult.ok(sysUserService.selectHxUserList(sysUserDto));
+    }
+
+
+
     /**
      * 代理人和渠道用户查询
      */
     @PostMapping("selectForAgentsAndChannelsPage")
-    public HttpResult selectForAgentsAndChannelsPage(@RequestBody  AgentsAndChannelsDto agentsAndChannelsDto){
-        return sysUserService.selectForAgentsAndChannelsPage(agentsAndChannelsDto);
+    public HttpResult selectForAgentsAndChannelsPage(@RequestBody PageDto<SysUserDto> pageDto){
+        return HttpResult.ok(sysUserService.selectForAgentsAndChannelsPage(pageDto));
     }
 
     /**

+ 6 - 0
src/main/java/com/ydtech/modules/admin/dao/SysUserMapper.java

@@ -17,6 +17,7 @@ import org.springframework.stereotype.Repository;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @author Administrator
@@ -486,6 +487,11 @@ public interface SysUserMapper extends BaseMapper<SysUser> {
 
     Page<SysUser>  getChanelList(@Param("page") Page page,@Param("vo") SysUserDeptRelationshipVo sysUserDeptRelationshipVo);
 
+    IPage<SysUserBaseVO> selectForAgentsAndChannelsPage(@Param("page") Page page,@Param("sysUserVO") SysUserDto sysUserVO);
+
+    List<Map<String,String>> selectHxUserList(@Param("sysUserDto") SysUserDto sysUserDto);
+
+    Integer cancelManagementPersonnel(@Param("managementDto") UpdateManagementDto managementDto);
 }
 
 

+ 5 - 3
src/main/java/com/ydtech/modules/admin/dao/SysUserTrackMapper.java

@@ -1,11 +1,13 @@
 package com.ydtech.modules.admin.dao;
 
-import com.ydtech.modules.admin.model.SysUserTrack;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-
-import java.util.Date;
+import com.ydtech.modules.admin.model.SysUserTrack;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysUserTrackMapper extends BaseMapper<SysUserTrack> {
 
     SysUserTrack getLastTime(String userId);
+
+    String getApproveMessByUserId(@Param("userId")String userId,@Param("rowNum") String rowNum);
+
 }

+ 5 - 0
src/main/java/com/ydtech/modules/admin/model/dto/SysUserDto.java

@@ -35,6 +35,9 @@ public class SysUserDto extends PageRequest {
     @ApiModelProperty("状态")
     private String status;
 
+    @ApiModelProperty("领导人Id")
+    private String leaderId;
+
     @ApiModelProperty("领导人")
     private String leaderName;
 
@@ -47,4 +50,6 @@ public class SysUserDto extends PageRequest {
 
     @ApiModelProperty("内部机构id")
     private String deptNBId;
+
+    private String notSelected;
 }

+ 9 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysUserBaseVO.java

@@ -84,4 +84,13 @@ public class SysUserBaseVO {
     @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
     private Date createTime;
 
+    @ApiModelProperty(value = "领导人")
+    private String leaderId;
+
+    @ApiModelProperty(value = "领导人名称")
+    private String leaderName;
+
+    @ApiModelProperty(value = "是否选中")
+    private boolean selectedNot;
+
 }

+ 6 - 1
src/main/java/com/ydtech/modules/admin/service/SysUserService.java

@@ -16,6 +16,7 @@ import com.ydtech.modules.base.model.dto.PageDto;
 import com.ydtech.modules.base.model.vo.PageVo;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Set;
 
 public interface SysUserService extends BaseIService<SysUser> {
@@ -248,7 +249,7 @@ public interface SysUserService extends BaseIService<SysUser> {
 
     HttpResult updateManagementPersonnel(UpdateManagementDto managementDto);
 
-    HttpResult selectForAgentsAndChannelsPage(AgentsAndChannelsDto agentsAndChannelsDto);
+    IPage<SysUserBaseVO> selectForAgentsAndChannelsPage(PageDto<SysUserDto> pageDto);
 
     /**
      * 获取当前用户的所有代理人
@@ -263,6 +264,10 @@ public interface SysUserService extends BaseIService<SysUser> {
      *  @Description:  查询电销的管理人列表
      */
     List<SysUser> findDxUserList();
+
+    List<Map<String,String>>  selectHxUserList(SysUserDto sysUserDto);
+
+    HttpResult cancelManagementPersonnel(UpdateManagementDto managementDto);
 }
 
 

+ 3 - 2
src/main/java/com/ydtech/modules/admin/service/SysUserTrackService.java

@@ -3,8 +3,9 @@ package com.ydtech.modules.admin.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ydtech.modules.admin.model.SysUserTrack;
 
-import java.util.Date;
-
 public interface SysUserTrackService extends IService<SysUserTrack> {
     SysUserTrack getLastTime(String userId);
+
+    String getApproveMessByUserId(String userId,String rowNum);
+
 }

+ 26 - 4
src/main/java/com/ydtech/modules/admin/service/impl/SysUserServiceImpl.java

@@ -672,7 +672,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
         String finalUserId = userId;
         List<EsmUserImage> esmUserImages = esmUserImageVo.stream().map(x -> new EsmUserImage(x, finalUserId)).collect(Collectors.toList());
         esmUserImageService.saveBatch(esmUserImages);
-
+        SpringUtil.getBean(RecordUserUtils.class).addRecord(userId,BaseController.getUserName());
         return HttpResult.ok("新增成功");
     }
 
@@ -1666,6 +1666,25 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
             return  new ArrayList<>();
         }
     }
+
+    @Override
+    public List<Map<String,String>>  selectHxUserList(SysUserDto sysUserDto) {
+        return sysUserMapper.selectHxUserList( sysUserDto);
+    }
+
+    @Override
+    public HttpResult cancelManagementPersonnel(UpdateManagementDto managementDto) {
+        try {
+            if (CollectionUtils.isEmpty(managementDto.getUserIds())){
+                return HttpResult.error("用户数据不能为空");
+            }
+            return HttpResult.ok(baseMapper.cancelManagementPersonnel(managementDto));
+        }catch (Exception e){
+            log.error("取消管理人员出错{}" + e.getMessage());
+            return HttpResult.error("取消失败");
+        }
+    }
+
     @Override
     public HttpResult updateManagementPersonnel(UpdateManagementDto managementDto) {
         try {
@@ -1680,9 +1699,12 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
     }
 
     @Override
-    public HttpResult selectForAgentsAndChannelsPage(AgentsAndChannelsDto agentsAndChannelsDto) {
-        return HttpResult.ok();
-
+    public IPage<SysUserBaseVO> selectForAgentsAndChannelsPage(PageDto<SysUserDto> pageDto) {
+        SysUserDto sysUserVO = JSONObject.parseObject(JSONObject.toJSONString(pageDto.getDto()), SysUserDto.class);
+        if (StringUtils.isNotEmpty(sysUserVO.getNotSelected())){
+            sysUserVO.setLeaderId(null);
+        }
+        return sysUserMapper.selectForAgentsAndChannelsPage(new Page(pageDto.getPageNum(), pageDto.getPageSize()), sysUserVO);
     }
     /**
      *  @version

+ 5 - 2
src/main/java/com/ydtech/modules/admin/service/impl/SysUserTrackServiceImpl.java

@@ -6,12 +6,15 @@ import com.ydtech.modules.admin.model.SysUserTrack;
 import com.ydtech.modules.admin.service.SysUserTrackService;
 import org.springframework.stereotype.Service;
 
-import java.util.Date;
-
 @Service
 public class SysUserTrackServiceImpl extends ServiceImpl<SysUserTrackMapper, SysUserTrack> implements SysUserTrackService {
     @Override
     public SysUserTrack getLastTime(String userId) {
         return baseMapper.getLastTime(userId);
     }
+
+    @Override
+    public String getApproveMessByUserId(String userId, String rowNum) {
+        return baseMapper.getApproveMessByUserId(userId,rowNum);
+    }
 }

+ 33 - 33
src/main/java/com/ydtech/modules/admin/utils/DifferentPropertyUtils.java

@@ -3,12 +3,15 @@ package com.ydtech.modules.admin.utils;
 import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.ydtech.modules.admin.constants.UserWorkStatus;
+import com.ydtech.modules.admin.model.SysPosition;
+import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserRecord;
 import com.ydtech.modules.admin.model.record.UserInfoRecord;
 import com.ydtech.modules.admin.model.record.UserRecord;
 import com.ydtech.modules.admin.model.vo.SysUserInfoQuery;
 import com.ydtech.modules.admin.service.SysPositionService;
 import com.ydtech.modules.admin.service.SysUserService;
+import com.ydtech.modules.admin.service.SysUserTrackService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.util.CollectionUtils;
 
@@ -28,35 +31,33 @@ public class DifferentPropertyUtils {
         if (CollectionUtils.isEmpty(userList)){
             return new ArrayList<>();
         }
-
         UserRecord sysUser = JSONObject.parseObject(JSONObject.toJSONString(sysUserVo.getSysUser()), UserRecord.class);
         Map<String, String> mapValue = objectToMap(sysUser);
-
         UserInfoRecord userInfoRecord = JSONObject.parseObject(JSONObject.toJSONString(sysUserVo.getSysUserInfo()), UserInfoRecord.class);
         Map<String, String> userInfoMapValue = objectToMap(userInfoRecord);
-
-        List<Object> list = new ArrayList<>();
-
+        List<Object> list = new ArrayList<>(userList.size());
+        int rowNum = 1;
         for (SysUserRecord userRecord : userList) {
             HashMap<String, Object> objectHashMap = new HashMap<>();
             ArrayList<Object> objectArrayList = new ArrayList<>();
             Map<String, String> newRecord = objectToMap(JSONObject.parseObject(userRecord.getSysUser(), UserRecord.class));
-            for (String name :  getFiledName(sysUser)) {
-                if ("status".equals(name)){
-                    continue;
-                }
+            for (String name : getFiledName(sysUser)) {
+                HashMap<String, Object> hashMap = new HashMap<>();
                 if (!mapValue.get(name).equals(newRecord.get(name))){
-                    HashMap<String, Object> hashMap = new HashMap<>();
                     hashMap.put("propertyName",name);
                     if (Arrays.asList(userKey).contains(name)){
-                        hashMap.put("newValue",getDistName(name,mapValue.get(name)));
+                        String newValue = getDistName(name, mapValue.get(name));
+                        if ("status".equals(name)){
+                            String mess = SpringUtil.getBean(SysUserTrackService.class).getApproveMessByUserId(mapValue.get("id"), String.valueOf(rowNum));
+                            if (StringUtils.isNotEmpty(mess)){
+                                newValue += " (驳回原因:" + mess + ")";
+                            }
+                            rowNum ++ ;
+                        }
+                        hashMap.put("newValue",newValue);
                         hashMap.put("oldValue",getDistName(name,newRecord.get(name)));
-                    } else if (Arrays.asList(dateTimeKey).contains(name)) {
-                        hashMap.put("newValue",dateTime(mapValue.get(name)));
-                        hashMap.put("oldValue",dateTime(newRecord.get(name)));
-                    }else {
-                        hashMap.put("newValue",mapValue.get(name));
-                        hashMap.put("oldValue",newRecord.get(name));
+                    } else {
+                        getByKey(mapValue, newRecord, name, hashMap);
                     }
                     objectArrayList.add(hashMap);
                 }
@@ -66,13 +67,8 @@ public class DifferentPropertyUtils {
             objectHashMap.put("createTime",userRecord.getCreateTime());
             objectHashMap.put("user",objectArrayList);
             mapValue = newRecord;
-
-
-
-
             ArrayList<Object> userInfoList = new ArrayList<>();
             Map<String, String> userInfoNewRecord = objectToMap(JSONObject.parseObject(userRecord.getSysUserInfo(), UserInfoRecord.class));
-
             for (String name :  getFiledName(userInfoRecord)) {
                 if ("salary".equals(name)){
                     if (new BigDecimal(userInfoMapValue.get(name)).compareTo(new BigDecimal(userInfoNewRecord.get(name))) != 0){
@@ -86,13 +82,7 @@ public class DifferentPropertyUtils {
                     if (!userInfoMapValue.get(name).equals(userInfoNewRecord.get(name))){
                         HashMap<String, Object> hashMap = new HashMap<>();
                         hashMap.put("propertyName",name);
-                        if (Arrays.asList(dateTimeKey).contains(name)){
-                            hashMap.put("newValue",dateTime(userInfoMapValue.get(name)));
-                            hashMap.put("oldValue",dateTime(userInfoNewRecord.get(name)));
-                        }else {
-                            hashMap.put("newValue",userInfoMapValue.get(name));
-                            hashMap.put("oldValue",userInfoNewRecord.get(name));
-                        }
+                        getByKey(userInfoMapValue, userInfoNewRecord, name, hashMap);
                         userInfoList.add(hashMap);
                     }
                 }
@@ -103,11 +93,19 @@ public class DifferentPropertyUtils {
                 list.add(objectHashMap);
             }
         }
-
-
         return list;
     }
 
+    private static void getByKey(Map<String, String> mapValue, Map<String, String> newRecord, String name, HashMap<String, Object> hashMap) {
+        if (Arrays.asList(dateTimeKey).contains(name)) {
+            hashMap.put("newValue",dateTime(mapValue.get(name)));
+            hashMap.put("oldValue",dateTime(newRecord.get(name)));
+        }else {
+            hashMap.put("newValue",mapValue.get(name));
+            hashMap.put("oldValue",newRecord.get(name));
+        }
+    }
+
     public static String dateTime(String timestamp){
         if (StringUtils.isEmpty(timestamp) || "null".equals(timestamp)){
             return "";
@@ -123,9 +121,11 @@ public class DifferentPropertyUtils {
         }
         switch (key){
             case "leaderId":
-                return SpringUtil.getBean(SysUserService.class).getById(value).getName();
+                SysUser user = SpringUtil.getBean(SysUserService.class).getById(value);
+                return null == user ? "" : user.getName();
             case "positionId":
-                return SpringUtil.getBean(SysPositionService.class).getById(value).getPostName();
+                SysPosition position = SpringUtil.getBean(SysPositionService.class).getById(value);
+                return null == position ? "" : position.getPostName();
             case "status":
                 return UserWorkStatus.getNameByRole(Integer.valueOf(value));
             default:

+ 82 - 4
src/main/java/com/ydtech/modules/admin/utils/RecordUserUtils.java

@@ -1,20 +1,32 @@
 package com.ydtech.modules.admin.utils;
 
 
+import cn.hutool.extra.spring.SpringUtil;
 import com.alibaba.fastjson.JSONObject;
+import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.SysUserRecordMapper;
-import com.ydtech.modules.admin.model.SysUserRecord;
+import com.ydtech.modules.admin.model.*;
+import com.ydtech.modules.admin.model.po.SysUserBankCard;
 import com.ydtech.modules.admin.model.record.UserInfoRecord;
 import com.ydtech.modules.admin.model.record.UserRecord;
 import com.ydtech.modules.admin.model.vo.SysUser2Vo;
+import com.ydtech.modules.admin.model.vo.SysUserInfoQuery;
+import com.ydtech.modules.admin.service.*;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
+import com.ydtech.modules.esm.model.vo.EsmUserImageQueryVo;
+import com.ydtech.modules.esm.service.EsmUserImageService;
+import com.ydtech.modules.esm.service.EsmUserReferrerService;
 import com.ydtech.utils.StringUtils;
 import com.ydtech.utils.idgen.IdGenerate;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.Optional;
 
 @Service
 public class RecordUserUtils {
@@ -23,13 +35,79 @@ public class RecordUserUtils {
     @Autowired
     private SysUserRecordMapper sysUserRecordMapper;
 
+    @Autowired
+    private SysUserService sysUserService;
+
+    @Autowired
+    private EsmUserImageService esmUserImageService;
+
+    @Autowired
+    private SysUserInfoService sysUserInfoService;
+
     @Async
-    public void addRecord (SysUser2Vo sysUserVo,String createBy){
-        String userId = sysUserVo.getSysUser().getId();
+    public void addRecord (String userId ,String createBy){
         SysUserRecord sysUserRecord = sysUserRecordMapper.selectByUserId(userId);
         if (null == sysUserRecord){
-            addRecord(sysUserVo, userId,createBy);
+            addRecord( getSysUser(userId), userId,createBy);
+        }
+    }
+
+    public SysUser2Vo getSysUser(String userId){
+        SysUserInfoQuery sysUserVo = new SysUserInfoQuery();
+        // 查询用户
+        SysUser sysUser = sysUserService.getById(userId);
+        // 查询角色
+        SysUserRole sysUserRole = SpringUtil.getBean(SysUserRoleService.class).selectByUserId(userId);
+        if (!ObjectUtils.isEmpty(sysUserRole)) {
+            sysUser.setRoleId(StringUtils.toString(sysUserRole.getRoleId()));
+        }
+        //查询 机构的上级
+        SysDept sysDept = SpringUtil.getBean(SysDeptService.class).getById(sysUser.getDeptId());
+        sysUser.setPdeptId(sysDept.getParentId());
+        if ("19".equals(sysUser.getRoleId())) {
+            SysUser operator = sysUserService.getById(sysUser.getOperatorCode());
+            sysUser.setReferrerId(operator != null ? operator.getId() : "");
+            sysUser.setReferrerName(operator != null ? operator.getName() : "");
+            sysUserVo.setSysUser(sysUser);
+            List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
+            sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
+            sysUserVo.setSysUserInfo(sysUserInfoService.getById(userId));
+            return JSONObject.parseObject(JSONObject.toJSONString(sysUserVo),SysUser2Vo.class);
+        }
+        // 查询推荐人
+        EsmUserReferrer referrer = SpringUtil.getBean(EsmUserReferrerService.class).getById(userId);
+        if (ObjectUtils.isEmpty(referrer)) {
+            sysUser.setReferrerId(null);
+            sysUser.setReferrerName(null);
+        } else {
+            sysUser.setReferrerId(referrer.getReferrerId());
+            sysUser.setReferrerName(referrer.getReferrerName());
+        }
+        //查询详情信息
+        SysUserInfo userInfo = sysUserInfoService.getById(userId);
+        String addr = Optional.ofNullable(userInfo).map(SysUserInfo::getLiveAddress).orElse(null);
+        if (StringUtils.isNotEmpty(addr)){
+            userInfo.setLiveAddressString(addr.split(","));
+        }
+        //查询用户绑定的银行卡信息
+        SysUserBankCard queryBank = new SysUserBankCard();
+        queryBank.setUserId(userId);
+        queryBank.setAuditStatus("1");
+        HttpResult<List<SysUserBankCard>> userBankList = SpringUtil.getBean(SysUserBankCardService.class).getUserBankListByQueryParam(queryBank);
+        if (!Objects.isNull(userInfo)) {
+            if (userBankList.getData().isEmpty()) {
+                userInfo.setBankName(null);
+                userInfo.setAccountno(null);
+            } else {
+                userInfo.setBankName(userBankList.getData().get(0).getBankAccount());
+                userInfo.setAccountno(userBankList.getData().get(0).getBankNumber());
+            }
         }
+        List<EsmUserImageQueryVo> esmUserImageQueryVo = esmUserImageService.getEsmUserImageQueryVo(userId);
+        sysUserVo.setSysUser(sysUser);
+        sysUserVo.setSysUserInfo(userInfo);
+        sysUserVo.setEsmUserImageVo(esmUserImageQueryVo);
+        return JSONObject.parseObject(JSONObject.toJSONString(sysUserVo),SysUser2Vo.class);
     }
 
 

+ 105 - 0
src/main/resources/mapper/modules/admin/SysUserMapper.xml

@@ -1562,6 +1562,111 @@
         </choose>
     </select>
 
+    <select id="selectForAgentsAndChannelsPage"  resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
+        SELECT
+            su.id as userId,
+            su.name,
+            info.sex,
+            su.mobile,
+            su.status,
+            su.leader_id,
+            su.leader_name,
+            sd.id as deptId,
+            sd.name as deptName,
+            t4.id as roleId,
+            t4.name as roleName,
+            sd.management_source,
+            psd.id as pDeptId,
+            psd.name as pDeptName,
+            su.create_time as submitTime,
+            IF(su.leader_id = #{sysUserVO.leaderId},TRUE,FALSE) AS selectedNot,
+            (select approve_by from sys_user_track  where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveBy,
+        (select approve_time from sys_user_track  where user_id = su.id ORDER BY approve_time desc LIMIT 1) as approveTime
+        FROM
+            sys_user su
+            LEFT JOIN sys_user_info info ON info.id = su.id
+            LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+            left join sys_dept psd on psd.id = sd.parent_id
+            LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
+            LEFT JOIN sys_role t4 ON t3.role_id = t4.id
+            AND sd.del_flag = '0'
+        WHERE
+        1=1
+        <if test='sysUserVO !=null  '>
+            <if test='sysUserVO.leaderId !=null and sysUserVO.leaderId!="" '>
+                and su.leader_id = #{sysUserVO.leaderId}
+            </if>
+            <if test='sysUserVO.status !=null and sysUserVO.status!="" '>
+                and su.status = #{sysUserVO.status}
+            </if>
+            <if test='sysUserVO.name !=null and sysUserVO.name!="" '>
+                and su.name like concat('%',#{sysUserVO.name},'%')
+            </if>
+            <if test='sysUserVO.userId !=null and sysUserVO.userId!="" '>
+                and su.id = #{sysUserVO.userId}
+            </if>
+            <if test='sysUserVO.mobile !=null and sysUserVO.mobile!=""  '>
+                and su.mobile = #{sysUserVO.mobile}
+            </if>
+            <if test='sysUserVO.deptId !=null and sysUserVO.deptId!=""  '>
+                and su.dept_id like concat('%',#{sysUserVO.deptId},'%')
+            </if>
+            <if test='sysUserVO.leaderName !=null and sysUserVO.leaderName!=""  '>
+                and su.leader_name like concat('%',#{sysUserVO.leaderName},'%')
+            </if>
+            <if test='sysUserVO.roleId !=null and sysUserVO.roleId!=""  '>
+                and t3.role_id in (${sysUserVO.roleId})
+            </if>
+            <if test="sysUserVO.agentFlag !=null and sysUserVO.agentFlag != 0 ">
+                and sd.management_source = #{sysUserVO.agentFlag}
+            </if>
+            <if test="sysUserVO.agentFlag != null and sysUserVO.agentFlag == 0">
+                and sd.management_source is null
+            </if>
+            <if test="sysUserVO.notSelected != null and sysUserVO.notSelected == 0">
+                AND  (su.leader_id IS NULL OR su.leader_id = '')
+            </if>
+        </if>
+        ORDER BY selectedNot DESC
+    </select>
+
+    <select id="selectHxUserList" resultType="java.util.Map">
+        SELECT
+            t1.id AS id,
+            t1.name AS name,
+            t1.mobile AS mobile,
+            (
+                SELECT
+                    COUNT(1)
+                FROM
+                    sys_user su
+                        LEFT JOIN sys_dept sd ON su.dept_id = sd.id
+                        LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
+                        AND sd.del_flag = '0'
+                WHERE 1 = 1
+                <if test='sysUserDto.roleId !=null and sysUserDto.roleId!=""  '>
+                    and t3.role_id in (${sysUserDto.roleId})
+                </if>
+                <if test="sysUserDto.agentFlag !=null and sysUserDto.agentFlag != 0 ">
+                    and sd.management_source = #{sysUserDto.agentFlag}
+                </if>
+                <if test="sysUserDto.agentFlag != null and sysUserDto.agentFlag == 0">
+                    and sd.management_source is null
+                </if>
+                  AND su.leader_id = t1.id
+            ) totalNum
+        FROM
+            sys_user t1
+        WHERE
+            t1.`status` = 1 AND t1.id NOT LIKE '%M%'
+    </select>
+
+    <update id="cancelManagementPersonnel">
+        UPDATE sys_user SET leader_id = NULL  , leader_name =  NULL  WHERE id in
+        <foreach item="item" collection="managementDto.userIds" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </update>
 
     <update id="updateManagementPersonnel">
         UPDATE sys_user SET leader_id = #{managementDto.leaderId} , leader_name = #{managementDto.leaderName}  WHERE id in

+ 8 - 0
src/main/resources/mapper/modules/admin/SysUserTrackMapper.xml

@@ -16,4 +16,12 @@
         where user_id = #{userId} order by approve_time desc limit 1
     </select>
 
+
+    <select id="getApproveMessByUserId" resultType="java.lang.String">
+        SELECT db.approve_mess FROM (
+                          SELECT * ,ROW_NUMBER() OVER (ORDER BY approve_time DESC) AS row_num FROM sys_user_track WHERE user_id = #{userId}
+               ) db where db.row_num = #{rowNum}
+
+    </select>
+
 </mapper>