ソースを参照

红包统计加上部门筛选

xw 2 日 前
コミット
a8b7933aaa

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/course/FsCourseRedPacketLogController.java

@@ -319,7 +319,7 @@ public class FsCourseRedPacketLogController extends BaseController
 
     /**
      * 红包消耗统计(含当前企业红包余额 redPackageMoney)
-     * @param fsCourseRedPacketLog
+     * @param fsCourseRedPacketLog 支持 beginTime、endTime、deptId(部门筛选,含子部门,逻辑同 qwList)
      * @return TableDataInfo,其中 ext.redPackageMoney 为当前企业红包余额
      */
     @GetMapping("/getReadPackageTotal")

+ 3 - 0
fs-service/src/main/java/com/fs/course/domain/FsCourseRedPacketLog.java

@@ -76,4 +76,7 @@ public class FsCourseRedPacketLog extends BaseEntity
     //商户号
     private String mchId;
 
+    /** 部门ID(筛选,含子部门) */
+    private Long deptId;
+
 }

+ 15 - 9
fs-service/src/main/resources/mapper/course/FsCourseRedPacketLogMapper.xml

@@ -224,17 +224,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         t.amount
         FROM (
         SELECT
-        company_id,
-        DATE(create_time) as createDate,
-        SUM(amount) as amount
-        FROM fs_course_red_packet_log
-        WHERE create_time >= #{beginTime}
-        AND create_time < #{endTime}
-        AND status = 1
+        pl.company_id,
+        DATE(pl.create_time) as createDate,
+        SUM(pl.amount) as amount
+        FROM fs_course_red_packet_log pl
+        <if test="deptId != null and deptId != 0">
+        INNER JOIN company_user cu ON pl.company_user_id = cu.user_id
+        </if>
+        WHERE pl.create_time &gt;= #{beginTime}
+        AND pl.create_time &lt; #{endTime}
+        AND pl.status = 1
         <if test="companyId != null and  companyId != '' ">
-            and company_id = #{companyId}
+            and pl.company_id = #{companyId}
+        </if>
+        <if test="deptId != null and deptId != 0">
+            AND (cu.dept_id = #{deptId} OR cu.dept_id IN ( SELECT t.dept_id FROM company_dept t WHERE find_in_set(#{deptId}, ancestors) ))
         </if>
-        GROUP BY company_id, DATE(create_time)
+        GROUP BY pl.company_id, DATE(pl.create_time)
         ) t
         INNER JOIN company c ON c.company_id = t.company_id
         ORDER BY t.createDate DESC