Browse Source

优化销售盯盘页面:
getProjectChargeTop

zhaoxian 1 năm trước cách đây
mục cha
commit
a223901b0b

+ 5 - 5
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/ManagerSaleValueMapper.java

@@ -30,7 +30,7 @@ public interface ManagerSaleValueMapper extends BaseMapper<ManagerSaleValue> {
 
     List<String> querySaleDirctorItsTeamMember(@Param("userId") String userId);
 
-    List<Long> querySalesDirectorAccountIds(@Param("companyId") String companyId, @Param("mediaId") String mediaId, @Param("userIds") List<String> saleTeaMber, @Param("operateUser") List<String> operateUser);
+    List<Long> querySalesDirectorAccountIds(@Param("companyId") String companyId, @Param("mediaId") String mediaId, @Param("userIds") List<String> saleTeaMber);
 
     List<Long> querySalesDirectorAccountIds2(@Param("companyId") String companyId, @Param("mediaId") String mediaId, @Param("userIds") List<String> saleTeaMber);
 
@@ -77,13 +77,13 @@ public interface ManagerSaleValueMapper extends BaseMapper<ManagerSaleValue> {
 
     List<Long> querySalesDirectorProjectIds(@Param("companyId") String companyId, @Param("mediaId") String mediaId, @Param("userIds") List<String> saleTeaMber);
 
-    Long queryKsHourProjectTopTotal(@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("companyId") String companyId);
+    Long queryKsHourProjectTopTotal(@Param("saleTeaMber") List<String> saleTeaMber, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("companyId") String companyId);
 
-    List<JSONObject> queryKsHourProjectTop(@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour, @Param("companyId") String companyId);
+    List<JSONObject> queryKsHourProjectTop(@Param("saleTeaMber") List<String> saleTeaMber,@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour, @Param("companyId") String companyId);
 
-    Long queryTtHourProjectTopTotal(@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("companyId") String companyId);
+    Long queryTtHourProjectTopTotal(@Param("saleTeaMber") List<String> saleTeaMber, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("companyId") String companyId);
 
-    List<JSONObject> queryTtHourProjectTop(@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour, @Param("companyId") String companyId);
+    List<JSONObject> queryTtHourProjectTop(@Param("saleTeaMber") List<String> saleTeaMber,@Param("accountIds") List<Long> accountIds, @Param("startTime") String startTime, @Param("endTime") String endTime, @Param("days") Long days, @Param("hour") Integer hour, @Param("companyId") String companyId);
 
 
 }

+ 19 - 35
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/mapper/xml/ManagerSaleValueMapper.xml

@@ -59,22 +59,6 @@
             </foreach>
         </if>
         )
-        <if test="operateUser !=null and operateUser.size()>0 ">
-            AND user_id in (
-            select user_id
-            from `application`.app_user_manage
-            where manage_id in
-            <foreach collection="operateUser" item="id" separator=","
-                     open="(" close=")">
-                #{id}
-            </foreach>
-            UNION ALL
-            SELECT
-            <foreach collection="operateUser" item="id" separator=" union all SELECT ">
-                #{id}
-            </foreach>
-            )
-        </if>
         GROUP BY
         account_id
     </select>
@@ -91,7 +75,7 @@
         FROM `jeecg-boot`.ctop_project
         WHERE company_id = #{companyId}
         <if test='mediaId ==2'>
-           and  media_id in(2,4)
+            and media_id in(2,4)
         </if>
         <if test='mediaId ==1'>
             AND media_id in(1,3)
@@ -736,9 +720,9 @@
         (select 1 from application.kuaishou_account_report_daily_dw t1
         where t1.stat_date >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and t1.stat_date &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
-        <if test="accountIds !=null and accountIds.size()>0">
-            and account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>
@@ -753,9 +737,9 @@
         (select 1 from application.bytedance_advertiser_report_daily_dw t1
         where t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d')
         and t1.stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d')
-        <if test="accountIds !=null and accountIds.size()>0">
-            and account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>
@@ -797,9 +781,9 @@
         LEFT JOIN (
         SELECT project_id, SUM( charge ) AS 'charge' FROM application.kuaishou_account_report_daily_dw
         WHERE 1=1
-        <if test="accountIds !=null and accountIds.size()>0">
-            and account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>
@@ -811,9 +795,9 @@
         LEFT JOIN ( SELECT t1.id, realname FROM `jeecg-boot`.ctop_project t1 LEFT JOIN `jeecg-boot`.sys_user t2 ON
         t1.responsible_id = t2.id ) t5 ON t1.project_id = t5.id
         WHERE 1=1
-        <if test="accountIds !=null and accountIds.size()>0">
-            and t1.account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and t1.sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>
@@ -858,9 +842,9 @@
         SELECT project_id, SUM( cost ) AS 'charge' FROM application.bytedance_advertiser_report_daily_dw
         WHERE stat_datetime >= DATE_FORMAT(DATE_ADD(#{startTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
         AND stat_datetime &lt;= DATE_FORMAT(DATE_ADD(#{endTime}, INTERVAL - ${days} DAY ), '%Y%m%d' )
-        <if test="accountIds !=null and accountIds.size()>0">
-            and account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>
@@ -871,9 +855,9 @@
         t1.responsible_id = t2.id ) t5 ON t1.project_id = t5.id
         WHERE t1.stat_datetime >= DATE_FORMAT(#{startTime}, '%Y%m%d' )
         AND t1.stat_datetime &lt;= DATE_FORMAT(#{endTime}, '%Y%m%d' )
-        <if test="accountIds !=null and accountIds.size()>0">
-            and account_id IN
-            <foreach collection="accountIds" item="id" separator=","
+        <if test="saleTeaMber !=null and saleTeaMber.size()>0">
+            and t1.sale_id IN
+            <foreach collection="saleTeaMber" item="id" separator=","
                      open="(" close=")">
                 #{id}
             </foreach>

+ 20 - 22
jeecg-boot-material-view/src/main/java/org/jeecg/ctop/material/service/impl/ManagerSaleValueServiceImpl.java

@@ -76,7 +76,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             //丁兆明特殊处理
             if ("b161b7d9793942f980dbfe8c931cd1b0".equals(userId) || "228c45f913924639bf20c79ce5dadb16".equals(userId)) {
                 //账户集合
-                List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null, null);
+                List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null);
                 if (Check.isNull(accountIds)) {
                     return Result.error("未查询到账户!");
                 }
@@ -87,7 +87,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             List<String> saleTeaMber = baseMapper.querySaleDirctorItsTeamMember(userId);
             saleTeaMber.add(userId);
             //账户集合
-            List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, saleTeaMber, null);
+            List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, saleTeaMber);
             if (Check.isNull(accountIds)) {
                 return Result.error("未查询到账户!");
             }
@@ -96,7 +96,7 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
             //分公司总经理
         } else if ("CompanyManager".equals(roleCode) || "admin".equals(roleCode)) {
             //账户集合
-            List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null, null);
+            List<Long> accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null);
             if (Check.isNull(accountIds)) {
                 return Result.error("未查询到账户!");
             }
@@ -358,8 +358,6 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
 
     @Override
     public PageInfo getProjectChargeTop(String userId, String mediaId, String startTime, String endTime, String operate, Integer pageNo, Integer pageSize) throws Exception {
-        List<String> operateUser = new ArrayList<>();
-
         //账户集合
         List<Long> accountIds = null;
         //当天日期
@@ -370,48 +368,48 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
         if ("saleDirector".equals(roleCode) || "saleAm".equals(roleCode)) {
             //丁兆明特殊处理
             if ("b161b7d9793942f980dbfe8c931cd1b0".equals(userId) || "228c45f913924639bf20c79ce5dadb16".equals(userId)) {
-                accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null, operateUser);
+                accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null);
                 if (Check.isNull(accountIds)) {
                     throw new Exception("未查询到账户!");
                 }
                 if (startTime.equals(endTime) && today.equals(startTime)) {
-                    return getProjectDailyCharges(accountIds, null, mediaId, startTime, null, pageNo, pageSize);
+                    return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, null, pageNo, pageSize);
                 } else if (startTime.equals(endTime)) {
-                    return getProjectDailyCharges(accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
+                    return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
                 } else {
-                    return getProjectDailyCharges(accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
+                    return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
                 }
             }
             //查询销售总监及旗下的人员 集
             List<String> saleTeaMber = baseMapper.querySaleDirctorItsTeamMember(userId);
             saleTeaMber.add(userId);
-            accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, saleTeaMber, operateUser);
+            accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, saleTeaMber);
             if (startTime.equals(endTime) && today.equals(startTime)) {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, null, pageNo, pageSize);
+                return getProjectDailyCharges(saleTeaMber, accountIds, null, mediaId, startTime, null, pageNo, pageSize);
             } else if (startTime.equals(endTime)) {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
+                return getProjectDailyCharges(saleTeaMber, accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
             } else {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
+                return getProjectDailyCharges(saleTeaMber, accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
             }
             //分公司总经理
         } else if ("CompanyManager".equals(roleCode) || "admin".equals(roleCode)) {
-            accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null, operateUser);
+            accountIds = baseMapper.querySalesDirectorAccountIds(null, mediaId, null);
             if (Check.isNull(accountIds)) {
                 throw new Exception("未查询到账户!");
             }
             if (startTime.equals(endTime) && today.equals(startTime)) {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, null, pageNo, pageSize);
+                return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, null, pageNo, pageSize);
             } else if (startTime.equals(endTime)) {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
+                return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, startTime, pageNo, pageSize);
             } else {
-                return getProjectDailyCharges(accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
+                return getProjectDailyCharges(null, accountIds, null, mediaId, startTime, endTime, pageNo, pageSize);
             }
         } else {
             throw new Exception("该用户角色权限不足!");
         }
     }
 
-    private PageInfo getProjectDailyCharges(List<Long> accountIds, String companyId, String mediaId, String startTime, String endTime, Integer pageNo, Integer pageSize) throws ParseException {
+    private PageInfo getProjectDailyCharges(List<String> saleTeaMber, List<Long> accountIds, String companyId, String mediaId, String startTime, String endTime, Integer pageNo, Integer pageSize) throws ParseException {
         Long days = 1L;
         Integer hour = DateUtils.getHour(DateUtils.formatDateTime());
         if (endTime == null) {
@@ -422,16 +420,16 @@ public class ManagerSaleValueServiceImpl extends ServiceImpl<ManagerSaleValueMap
         }
         //1 头条
         if ("1".equals(mediaId)) {
-            Long total = baseMapper.queryTtHourProjectTopTotal(accountIds, startTime, endTime, companyId);
+            Long total = baseMapper.queryTtHourProjectTopTotal(saleTeaMber, startTime, endTime, companyId);
             PageHelper.startPage(pageNo, pageSize, false);
-            List<JSONObject> list = baseMapper.queryTtHourProjectTop(accountIds, startTime, endTime, days, hour, companyId);
+            List<JSONObject> list = baseMapper.queryTtHourProjectTop(saleTeaMber, accountIds, startTime, endTime, days, hour, companyId);
             PageInfo pageInfo = new PageInfo(list);
             pageInfo.setTotal(total);
             return pageInfo;
         } else if ("2".equals(mediaId)) {
-            Long total = baseMapper.queryKsHourProjectTopTotal(accountIds, startTime, endTime, companyId);
+            Long total = baseMapper.queryKsHourProjectTopTotal(saleTeaMber, startTime, endTime, companyId);
             PageHelper.startPage(pageNo, pageSize, false);
-            List<JSONObject> list = baseMapper.queryKsHourProjectTop(accountIds, startTime, endTime, days, hour, companyId);
+            List<JSONObject> list = baseMapper.queryKsHourProjectTop(saleTeaMber, accountIds, startTime, endTime, days, hour, companyId);
             PageInfo pageInfo = new PageInfo(list);
             pageInfo.setTotal(total);
             return pageInfo;