Răsfoiți Sursa

血缘查询修改

guoweisong 2 ani în urmă
părinte
comite
e43519401c

+ 10 - 0
src/main/java/com/ydtech/modules/admin/model/vo/SysReferrerVo.java

@@ -1,5 +1,6 @@
 package com.ydtech.modules.admin.model.vo;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.ydtech.modules.admin.model.SysUser;
 import com.ydtech.modules.admin.model.SysUserInfo;
 import com.ydtech.modules.base.model.BaseEntity;
@@ -7,6 +8,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
 @ApiModel("推荐人信息")
 public class SysReferrerVo {
@@ -41,5 +44,12 @@ public class SysReferrerVo {
     @ApiModelProperty("推荐人归属用户ID")
     private String affiliation;
 
+    @ApiModelProperty("上级推荐人id")
+    private String referrerId;
+
+    @ApiModelProperty("上级推荐人名称")
+    private String referrerName;
 
+    @ApiModelProperty("工号集合")
+    private List<String> ids;
 }

+ 27 - 2
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -26,6 +26,8 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
             ",u.mobile as userMobile" +
             ",ui.sex  as userSex" +
             ",t.level  as level" +
+            ",t.referrer_id  as referrerId" +
+            ",t.referrer_name  as referrerName" +
             ",t.affiliation"
             ;
 
@@ -40,9 +42,15 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
 
     String referrerWhereSql = "" +
             "<if test='page.dto !=null  '> " +
-                    "<if test='page.dto.affiliation !=null and page.dto.affiliation!=\"\" '> " +
+                "<if test='page.dto.affiliation !=null and page.dto.affiliation!=\"\" '> " +
                     " and t.affiliation = #{page.dto.affiliation}" +
-                    "</if> " +
+                "</if> " +
+                "<if test='page.dto.ids !=null '> " +
+                    "and t.id in "+
+                    "<foreach item='item' index='index' collection='page.dto.ids'  open='(' separator=',' close=')'> " +
+                    " #{item}" +
+                    "</foreach > " +
+                "</if> " +
             "</if> "
             ;
     String referrerOrderSql = "" +
@@ -71,11 +79,27 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
             referrerFieldSql,
             referrerFromSql,
             referrerWhereSql,
+            referrerOrderSql,
            // referrerOrderSql,
             " limit #{page.pageNum},#{page.pageSize} ) aaa",
             "</script>"})
     List<SysReferrerVo> selectReferrerByAffiliation(@Param("page") PageDto pageDto);
 
+    @Select("select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id=#{userId} and b.status=1 " +
+            "union  " +
+            "select a.id " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id=#{userId}) " +
+            "and b.status=1  " +
+            "union  " +
+            "select a.id  " +
+            "from esm_user_referrer a left join sys_user b on a.id=b.id " +
+            "where a.referrer_id in (select id from esm_user_referrer t where t.referrer_id in ( " +
+            "select id from esm_user_referrer t2 where t2.referrer_id=#{userId})) " +
+            "and b.status=1 ")
+    List<String> getIdDown3(@Param("userId") String userId);
 
     @Select({"<script>", "select count(1) ", referrerFromSql,referrerWhereSql, "</script>"})
     int countReferrerByAffiliation(@Param("page") PageDto pageDto);
@@ -83,4 +107,5 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
     @Select("select id,referrer_id,referrer_name,`level`,affiliation from esm_user_referrer t where t.affiliation=#{affiliation}")
     List<EsmUserReferrer> queryList(@Param("affiliation") String affiliation);
 
+
 }

+ 1 - 1
src/main/java/com/ydtech/modules/esm/service/EsmUserReferrerService.java

@@ -39,7 +39,7 @@ public interface EsmUserReferrerService extends IService<EsmUserReferrer> {
      * @author: lig
      * @date: 2023年08月08日 0008
      */
-    public PageVo<SysReferrerVo> gainReferrerPage(PageDto pageDto);
+    public PageVo<SysReferrerVo> gainReferrerPage(PageDto<SysReferrerVo> pageDto);
 
     public List<EsmUserPolicyVO> countUserPolicy(String wCase, Object[] paramValues);
 

+ 25 - 5
src/main/java/com/ydtech/modules/esm/service/impl/EsmUserReferrerServiceImpl.java

@@ -117,9 +117,32 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         return remove(queryWrapper);
     }
 
-    @Override
-    public PageVo gainReferrerPage(PageDto pageDto) {
+ 
+    List<String>  getUpUser(String userId,List<String> list){
+
+        EsmUserReferrer esmUserReferrer=this.getById(userId);
+        list.add(esmUserReferrer.getId());
+        if(!esmUserReferrer.getReferrerId().equals(userId)){
+            getUpUser(esmUserReferrer.getReferrerId(),list);
+        }
+
+        return list;
+    }
 
+    @Override
+    public PageVo gainReferrerPage(PageDto<SysReferrerVo> pageDto) {
+
+        if(StringUtils.isNotEmpty(pageDto.getDto().getAffiliation())){
+            List<String> up3list=new ArrayList<>();
+            getUpUser(pageDto.getDto().getAffiliation(),up3list);
+            List<String> down3list=this.baseMapper.getIdDown3(pageDto.getDto().getAffiliation());
+            List<String> ids=new ArrayList<>();
+            ids.addAll(up3list);
+            ids.addAll(down3list);
+            ids.add(pageDto.getDto().getAffiliation());
+            pageDto.getDto().setIds(ids);
+            pageDto.getDto().setAffiliation(null);
+        }
         PageVo<SysReferrerVo> pageVo = new PageVo();
 
         //获取分页数量
@@ -134,8 +157,6 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         //计算mysql分页总页数
         int totalPages = total % pageDto.getPageSize() == 0 ? total / pageDto.getPageSize() : total / pageDto.getPageSize() + 1;
 
-
-
        //响应
         pageVo.setTotalSize(total);
         pageVo.setPageNum(pageDto.getPageNum());
@@ -146,7 +167,6 @@ public class EsmUserReferrerServiceImpl extends ServiceImpl<EsmUserReferrerMappe
         pageDto.setPageNum(firstIndex);
         pageVo.setContent(super.baseMapper.selectReferrerByAffiliation(pageDto));
 
-
         return pageVo;
     }