Explorar el Código

app增员统计修改为查询为推荐表为当前登陆人的数据,递归获取到当前登陆人推荐的人数

hxl13994548489 hace 2 años
padre
commit
06df3506ce

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

@@ -21,21 +21,21 @@ public interface SysUserAccountHistoryMapper extends BaseMapper<SysUserAccountHi
      *  @Date: 2024/6/5 18:38
      *  @Date: 2024/6/5 18:38
      *  @Description: 查询年分
      *  @Description: 查询年分
      */
      */
-    List<RevenueReportDto> revenueReportYear(HashMap<String,String> map);
+    List<RevenueReportDto> revenueReportYear(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 18:39
      *  @Date: 2024/6/5 18:39
      *  @Description: 月分
      *  @Description: 月分
      */
      */
-    List<RevenueReportDto> revenueReportMonth(HashMap<String,String> map);
+    List<RevenueReportDto> revenueReportMonth(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 18:39
      *  @Date: 2024/6/5 18:39
      *  @Description: 日
      *  @Description: 日
      */
      */
-    List<RevenueReportDto> revenueReportDay(HashMap<String,String> map);
+    List<RevenueReportDto> revenueReportDay(HashMap<String,Object> map);
 }
 }
 
 
 
 

+ 68 - 9
src/main/java/com/ydtech/modules/admin/service/impl/AppReportServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.admin.service.impl;
 package com.ydtech.modules.admin.service.impl;
 
 
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.core.page.HttpResult;
 import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
 import com.ydtech.modules.admin.dao.SysUserAccountHistoryMapper;
 import com.ydtech.modules.admin.model.dto.*;
 import com.ydtech.modules.admin.model.dto.*;
@@ -9,15 +10,13 @@ import com.ydtech.modules.admin.service.AppReportService;
 import com.ydtech.modules.admin.utils.SliceUpDateUtil;
 import com.ydtech.modules.admin.utils.SliceUpDateUtil;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.base.controller.BaseController;
 import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
 import com.ydtech.modules.esm.dao.EsmUserReferrerMapper;
+import com.ydtech.modules.esm.model.EsmUserReferrer;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import com.ydtech.modules.order.dao.InsAreaCompanyMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
+import java.util.*;
 
 
 /**
 /**
  *  @version
  *  @version
@@ -99,8 +98,8 @@ public class AppReportServiceImpl implements AppReportService {
      *  @Date: 2024/6/6 15:05
      *  @Date: 2024/6/6 15:05
      *  @Description:  获取开始和结束时间
      *  @Description:  获取开始和结束时间
      */
      */
-    private static HashMap<String,String> getDateMap(ReportQueryVo reportQueryVo) {
-        HashMap<String,String> map=new HashMap<String,String>();
+    private static HashMap<String,Object> getDateMap(ReportQueryVo reportQueryVo) {
+        HashMap<String,Object> map=new HashMap<String,Object>();
         String beginTime="";
         String beginTime="";
         String endTime="";
         String endTime="";
         //获取所有的月分
         //获取所有的月分
@@ -258,21 +257,35 @@ public class AppReportServiceImpl implements AppReportService {
      */
      */
     @Override
     @Override
     public HttpResult<EmployeeIncreaseReportAllDto> employeeIncreaseReport(ReportQueryVo reportQueryVo) {
     public HttpResult<EmployeeIncreaseReportAllDto> employeeIncreaseReport(ReportQueryVo reportQueryVo) {
+        List<String> userIds = getUserIdsByUserId(BaseController.getUser().getId());
+        List<EmployeeIncreaseReportDto> allList=new ArrayList<EmployeeIncreaseReportDto>();
         //年分查询当年12月的数据
         //年分查询当年12月的数据
         if("1".equals(reportQueryVo.getSearchType())){
         if("1".equals(reportQueryVo.getSearchType())){
-            List<EmployeeIncreaseReportDto> allList= esmUserReferrerMapper.employeeIncreaseReportYear(getDateMap(reportQueryVo));
+            HashMap<String, Object> dateMap = getDateMap(reportQueryVo);
+            dateMap.put("ids",userIds);
+            if(userIds!=null && userIds.size()>0){
+                allList= esmUserReferrerMapper.employeeIncreaseReportYear(dateMap);
+            }
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchYear()));
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchYear()));
         }
         }
         //月分查询当月的数据
         //月分查询当月的数据
         if("2".equals(reportQueryVo.getSearchType())){
         if("2".equals(reportQueryVo.getSearchType())){
             reportQueryVo.setSearchMonth(reportQueryVo.getSearchYear()+"-"+reportQueryVo.getSearchMonth());
             reportQueryVo.setSearchMonth(reportQueryVo.getSearchYear()+"-"+reportQueryVo.getSearchMonth());
-            List<EmployeeIncreaseReportDto> allList= esmUserReferrerMapper.employeeIncreaseReportMonth(getDateMap(reportQueryVo));
+            HashMap<String, Object> dateMap = getDateMap(reportQueryVo);
+            dateMap.put("ids",userIds);
+            if(userIds!=null && userIds.size()>0){
+                allList= esmUserReferrerMapper.employeeIncreaseReportMonth(dateMap);
+            }
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchMonth()));
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchMonth()));
         }
         }
         //日查询当日的前20条数据
         //日查询当日的前20条数据
         if("3".equals(reportQueryVo.getSearchType())){
         if("3".equals(reportQueryVo.getSearchType())){
             reportQueryVo.setSearchDay(reportQueryVo.getSearchYear()+"-"+reportQueryVo.getSearchMonth()+"-"+reportQueryVo.getSearchDay());
             reportQueryVo.setSearchDay(reportQueryVo.getSearchYear()+"-"+reportQueryVo.getSearchMonth()+"-"+reportQueryVo.getSearchDay());
-            List<EmployeeIncreaseReportDto> allList= esmUserReferrerMapper.employeeIncreaseReportDay(getDateMap(reportQueryVo));
+            HashMap<String, Object> dateMap = getDateMap(reportQueryVo);
+            dateMap.put("ids",userIds);
+            if(userIds!=null && userIds.size()>0){
+                allList= esmUserReferrerMapper.employeeIncreaseReportDay(dateMap);
+            }
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchDay()));
             return HttpResult.ok(getEmployeeIncreaseReportAllDto(allList, getDateStrings(reportQueryVo),reportQueryVo.getSearchDay()));
         }
         }
         return null;
         return null;
@@ -314,4 +327,50 @@ public class AppReportServiceImpl implements AppReportService {
     public AllpremiumDto getAllpremium(String year) {
     public AllpremiumDto getAllpremium(String year) {
         return insAreaCompanyMapper.getAllpremium(year, BaseController.getUser().getId());
         return insAreaCompanyMapper.getAllpremium(year, BaseController.getUser().getId());
     }
     }
+
+    /**
+     * @version
+     * @author: hxl
+     * @Date: 2024/4/29 16:01
+     * @Description: 查询当前登陆人管理的渠道人 即领导人为当前登陆人的用户需要递归查询
+     */
+    public List<String> getUserIdsByUserId(String userId) {
+        List<EsmUserReferrer> esmUserReferrers = queryData(userId);
+        Set<String> set=new HashSet<>();
+        if(esmUserReferrers!=null && esmUserReferrers.size()>0){
+            for(EsmUserReferrer esmUserReferrer : esmUserReferrers){
+                set.add(esmUserReferrer.getId());
+            }
+        }
+        return new ArrayList<String>(set);
+    }
+
+    public  List<EsmUserReferrer> queryData(String userId) {
+        //通过
+        List<EsmUserReferrer> children = getChildrenFromDataSource(userId);
+        List<EsmUserReferrer> result = new ArrayList<>();
+        if(children!=null && children.size()>0){
+            for (EsmUserReferrer child : children) {
+                // 添加当前子节点到结果列表
+                result.add(child);
+                // 递归查询子节点的子节点
+                result.addAll(queryData(child.getId()));
+            }
+        }
+        return result;
+    }
+    /**
+     *  @version
+     *  @author: hxl
+     *  @Date: 2024/6/7 19:30
+     *  @Description: 查询下级的
+     */
+    public  List<EsmUserReferrer> getChildrenFromDataSource(String userId) {
+        // 模拟从数据库或其他数据源获取子节点数据
+        LambdaQueryWrapper<EsmUserReferrer> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(EsmUserReferrer::getReferrerId, userId);
+        queryWrapper.ne(EsmUserReferrer::getId, userId);
+        List<EsmUserReferrer> children = esmUserReferrerMapper.selectList(queryWrapper);
+        return children;
+    }
 }
 }

+ 3 - 10
src/main/java/com/ydtech/modules/esm/dao/EsmUserReferrerMapper.java

@@ -206,26 +206,19 @@ public interface EsmUserReferrerMapper extends BaseMapper<EsmUserReferrer> {
      *  @Date: 2024/6/5 18:10
      *  @Date: 2024/6/5 18:10
      *  @Description: 查询年分数据
      *  @Description: 查询年分数据
      */
      */
-    List<EmployeeIncreaseReportDto> employeeIncreaseReportYear(HashMap<String,String> map);
+    List<EmployeeIncreaseReportDto> employeeIncreaseReportYear(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 18:15
      *  @Date: 2024/6/5 18:15
      *  @Description: 查询月分数据
      *  @Description: 查询月分数据
      */
      */
-    List<EmployeeIncreaseReportDto> employeeIncreaseReportMonth(HashMap<String,String> map);
+    List<EmployeeIncreaseReportDto> employeeIncreaseReportMonth(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 18:16
      *  @Date: 2024/6/5 18:16
      *  @Description: 查询天数数据
      *  @Description: 查询天数数据
      */
      */
-    List<EmployeeIncreaseReportDto> employeeIncreaseReportDay(HashMap<String,String> map);
-    /**
-     *  @version
-     *  @author: hxl
-     *  @Date: 2024/6/7 17:59
-     *  @Description:  通过用户id查询用户数据
-     */
-    List<String> findReferrerIds(@Param("userId") String userId);
+    List<EmployeeIncreaseReportDto> employeeIncreaseReportDay(HashMap<String,Object> map);
 }
 }

+ 3 - 3
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -99,21 +99,21 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
      *  @Date: 2024/6/5 16:19
      *  @Date: 2024/6/5 16:19
      *  @Description: 保费报表统计
      *  @Description: 保费报表统计
      */
      */
-    List<PremiumReportDto> premiumReportYear(HashMap<String,String> map);
+    List<PremiumReportDto> premiumReportYear(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 16:19
      *  @Date: 2024/6/5 16:19
      *  @Description: 保费报表统计
      *  @Description: 保费报表统计
      */
      */
-    List<PremiumReportDto> premiumReportMonth(HashMap<String,String> map);
+    List<PremiumReportDto> premiumReportMonth(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl
      *  @Date: 2024/6/5 16:19
      *  @Date: 2024/6/5 16:19
      *  @Description: 保费报表统计
      *  @Description: 保费报表统计
      */
      */
-    List<PremiumReportDto> premiumReportDay(HashMap<String,String> map);
+    List<PremiumReportDto> premiumReportDay(HashMap<String,Object> map);
     /**
     /**
      *  @version
      *  @version
      *  @author: hxl
      *  @author: hxl

+ 18 - 12
src/main/resources/mapper/modules/esm/EsmUserReferrerMapper.xml

@@ -146,7 +146,12 @@
                 LEFT JOIN sys_user us ON eur.id = us.id
                 LEFT JOIN sys_user us ON eur.id = us.id
         WHERE
         WHERE
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
-            and eur.referrer_id=#{userId}
+            <if test="ids != null  and ids.size() > 0">
+                and eur.id in
+                <foreach collection="ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         GROUP BY  CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'))
         GROUP BY  CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'))
     </select>
     </select>
 
 
@@ -159,7 +164,12 @@
                 LEFT JOIN sys_user us ON eur.id = us.id
                 LEFT JOIN sys_user us ON eur.id = us.id
         WHERE
         WHERE
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
-            and eur.referrer_id=#{userId}
+           <if test="ids != null  and ids.size() > 0">
+                and eur.id in
+                <foreach collection="ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         GROUP BY  CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'),'-',LPAD(Day(us.create_time), 2, '0'))
         GROUP BY  CONCAT(YEAR(us.create_time),'-',LPAD(MONTH(us.create_time), 2, '0'),'-',LPAD(Day(us.create_time), 2, '0'))
     </select>
     </select>
 
 
@@ -174,16 +184,12 @@
                 LEFT JOIN sys_user us ON eur.id = us.id
                 LEFT JOIN sys_user us ON eur.id = us.id
         WHERE
         WHERE
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
             us.create_time &gt;= #{beginTime}  and  us.create_time &lt;= #{endTime}
-            and eur.referrer_id=#{userId}
+            <if test="ids != null  and ids.size() > 0">
+                and eur.id in
+                <foreach collection="ids" item="item" open="(" separator="," close=")">
+                    #{item}
+                </foreach>
+            </if>
         GROUP BY  CONCAT(YEAR ( us.create_time ),'-',LPAD( MONTH ( us.create_time ), 2, '0' ),'-',LPAD( DAY ( us.create_time ), 2, '0' ),' ',LPAD( HOUR ( us.create_time ), 2, '0' ))
         GROUP BY  CONCAT(YEAR ( us.create_time ),'-',LPAD( MONTH ( us.create_time ), 2, '0' ),'-',LPAD( DAY ( us.create_time ), 2, '0' ),' ',LPAD( HOUR ( us.create_time ), 2, '0' ))
     </select>
     </select>
-
-    <select id="findReferrerIds" resultType="java.lang.String">
-        SELECT
-           id as id
-        FROM
-            esm_user_referrer eur
-            where eur.referrer_id=#{userId}
-    </select>
-
 </mapper>
 </mapper>