Explorar o código

添加优化师头条相关统计接口

syh %!s(int64=5) %!d(string=hai) anos
pai
achega
53acc5c0da

+ 31 - 8
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/IPerformanceService2.java

@@ -15,17 +15,40 @@ import java.util.Map;
  * @date 2019-12-10
  */
 public interface IPerformanceService2 extends IService<Performance> {
+    /**
+     * 查询统计有效视频
+     *
+     * @param calcDateStr
+     */
     void efficientVideoTask(String calcDateStr);
 
-    //平台的总有效数量、素材总数、素材有效率、总跑量、当前可获得绩效
-    public Map<String,Object> getPerformanceInfo();
+    /**
+     * 平台的总有效数量、素材总数、素材有效率、总跑量、当前可获得绩效
+     *
+     * @return
+     */
+    Map<String, Object> getPerformanceInfo();
 
-    //有效率排行榜
-    public Map<String,Object> effiRateRank(Integer size);
+    /**
+     * 有效率排行榜
+     *
+     * @param size
+     * @return
+     */
+    Map<String, Object> effiRateRank(Integer size);
 
-    //素材、素材跑量、封面点击数、封面曝光数、行为数
-    public List<DesignMaterialInfo> materialInfoList();
+    /**
+     * 素材、素材跑量、封面点击数、封面曝光数、行为数
+     *
+     * @return
+     */
+    List<DesignMaterialInfo> materialInfoList();
 
-    //点击+符号 投放账户、投放账户、跑量
-    public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId);
+    /**
+     * 点击+符号 投放账户、投放账户、跑量
+     *
+     * @param materialInfoId
+     * @return
+     */
+    List<DesignMaterialInfo> materialAccountInfo(String materialInfoId);
 }

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/PerformanceServiceImpl2.java

@@ -49,6 +49,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
 
     //获取季度有效视频和角色对应关系的定时任务
     //每天定时任务:角色对应本季度有效视频计算--需要工具类有效视频计算工具类
+    @Override
     public void efficientVideoTask(String calcDateStr) {
         //本周五-下一个周四 为一周的计算起止时间
         //
@@ -247,6 +248,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //1
     //季度到前一天为止个人的有效数量、素材总数、素材有效率、总跑量
     //{"effiVideoCount有效数":70,"videoCount素材总数":200,"effiRate":40,"cost":2019;performance绩效":20000}
+    @Override
     public Map<String, Object> getPerformanceInfo() {
         Map<String, Object> performanceInfoMap = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -297,6 +299,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //2
     //有效率排行榜
     //{"list":[{"name":"pipi","effiRate":50},{"name":"pipixia","effiRate":40},{"name":"pipiqiu","effiRate":30}],"performance":performance}
+    @Override
     public Map<String, Object> effiRateRank(Integer size) {
         Map<String, Object> resultMap = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
@@ -410,6 +413,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //3
     //素材、素材跑量、封面点击数、封面曝光数、行为数
     //{"videoUrl":"http://dadfadfadf.mp4","videoCost":34.56,"pageClickCount":1200,"pageExposureCount":3939,"behaviorCount":5000}
+    @Override
     public List<DesignMaterialInfo> materialInfoList() {
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
         //LoginUser sysUser = new LoginUser();
@@ -433,6 +437,7 @@ public class PerformanceServiceImpl2 extends ServiceImpl<PerformanceMapper, Perf
     //4
     //点击+符号 投放账户、投放账户、跑量
     //{"videoAccount":"aabbcc","servingAccount":"ttyyhh","cost":34234.43}
+    @Override
     public List<DesignMaterialInfo> materialAccountInfo(String materialInfoId) {
         log.info("materialAccountInfo接口开始");
         Date date = new Date();

+ 5 - 4
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/controller/PerformanceController.java

@@ -165,13 +165,14 @@ public class PerformanceController {
 
     @GetMapping("/project/list")
     public Map<String, Object> projectList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
-        return performanceService.getUserOptimizerProjectList(pageNo, pageSize);
+                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, String appType) {
+        return performanceService.getUserOptimizerProjectList(pageNo, pageSize, appType);
     }
 
     @GetMapping("/account/list")
     public Map<String, Object> accountList(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, Long projectId) {
-        return performanceService.getUserOptimizerAccountList(projectId, pageNo, pageSize);
+                                           @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                           Long projectId, String appType) {
+        return performanceService.getUserOptimizerAccountList(appType, projectId, pageNo, pageSize);
     }
 }

+ 18 - 4
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/controller/PerformanceOptimizerController.java

@@ -64,7 +64,7 @@ public class PerformanceOptimizerController {
                                                              @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                              @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
                                                              HttpServletRequest req) {
-        Result<IPage<PerformanceOptimizer>> result = new Result<IPage<PerformanceOptimizer>>();
+        Result<IPage<PerformanceOptimizer>> result = new Result<>();
         QueryWrapper<PerformanceOptimizer> queryWrapper = QueryGenerator.initQueryWrapper(performanceOptimizer, req.getParameterMap());
         Page<PerformanceOptimizer> page = new Page<PerformanceOptimizer>(pageNo, pageSize);
         IPage<PerformanceOptimizer> pageList = performanceOptimizerService.page(page, queryWrapper);
@@ -73,20 +73,34 @@ public class PerformanceOptimizerController {
         return result;
     }
 
+    /**
+     * 优化师绩效详情
+     *
+     * @param pageNo
+     * @param pageSize
+     * @param mediaType
+     * @return
+     */
     @GetMapping(value = "/detail")
     @ResponseBody
     public Map<String, Object> getPerformanceDetail(@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
                                                     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
-                                                    HttpServletRequest req, @RequestParam(name = "mediaType", defaultValue = "2") String mediaType) {
+                                                    @RequestParam(name = "mediaType", defaultValue = "2") String mediaType) {
         return performanceOptimizerService.getPerformanceDetail(mediaType, pageNo, pageSize);
     }
 
+    /**
+     * 优化师绩效排行榜
+     * @param mediaType
+     * @param pageNo
+     * @param pageSize
+     * @return
+     */
     @GetMapping(value = "/ranking/list")
     @ResponseBody
     public Map<String, Object> getRankingList(@RequestParam(name = "mediaType", defaultValue = "2") String mediaType,
                                               @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
-                                              @RequestParam(name = "pageSize", defaultValue = "3") Integer pageSize,
-                                              HttpServletRequest req) {
+                                              @RequestParam(name = "pageSize", defaultValue = "3") Integer pageSize) {
         return performanceOptimizerService.getRankingList(mediaType, pageNo, pageSize);
     }
 

+ 14 - 5
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/mapper/PerformanceMapper.java

@@ -15,16 +15,25 @@ import java.util.List;
  * @cersion: V1.0
  */
 public interface PerformanceMapper extends BaseMapper<Performance> {
+    List<OptimizerCostDetailVO> getKuaishouOptimizerTotalCostDetailGroupByUserId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize);
 
-    List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize);
+    List<OptimizerCostDetailVO> getBytedanceOptimizerTotalCostDetailGroupByUserId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize);
 
     List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize);
 
-    List<OptimizerCostDetailVO> getUserOptimizerTotalCostGroupByProjectId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId);
+    List<OptimizerCostDetailVO> getKuaishouUserOptimizerTotalCostGroupByProjectId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId);
 
-    List<OptimizerCostDetailVO> getUserOptimizerTotalCostGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId, @Param(value = "accountId") Long accountId);
+    List<OptimizerCostDetailVO> getBytedanceUserOptimizerTotalCostGroupByProjectId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId);
 
-    List<OptimizerCostDetailVO> getMemberPerformanceByOrgCode(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "orgCode") String orgCode);
+    List<OptimizerCostDetailVO> getKuaishouUserOptimizerTotalCostGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId, @Param(value = "accountId") Long accountId);
 
-    OptimizerCostDetailVO getOptimizerTotalCost(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter);
+    List<OptimizerCostDetailVO> getBytedanceUserOptimizerTotalCostGroupByAccountId(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "userId") String userId, @Param(value = "startIndex") Integer startIndex, @Param(value = "pageSize") Integer pageSize, @Param(value = "projectId") Long projectId, @Param(value = "accountId") Long accountId);
+
+    List<OptimizerCostDetailVO> getKuaishouMemberPerformanceByOrgCode(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "orgCode") String orgCode);
+
+    List<OptimizerCostDetailVO> getBytedanceMemberPerformanceByOrgCode(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter, @Param(value = "orgCode") String orgCode);
+
+    OptimizerCostDetailVO getKuaishouOptimizerTotalCost(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter);
+
+    OptimizerCostDetailVO getBytedanceOptimizerTotalCost(@Param(value = "startDate") String startDate, @Param(value = "endDate") String endDate, @Param(value = "year") String year, @Param(value = "quarter") String quarter);
 }

+ 143 - 8
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/mapper/xml/PerformanceMapper.xml

@@ -12,7 +12,7 @@
         <result column="projectName" property="projectName"/>
         <result column="accountName" property="accountName"/>
     </resultMap>
-    <select id="getOptimizerTotalCostDetailGroupByUserId" resultMap="OptimizerTotalCostDetail">
+    <select id="getKuaishouOptimizerTotalCostDetailGroupByUserId" resultMap="OptimizerTotalCostDetail">
         SELECT
         sysUser.id as userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS year,#{quarter} as
         quarter,2 as appType
@@ -40,6 +40,34 @@
         limit #{startIndex},#{pageSize}
     </select>
 
+    <select id="getBytedanceOptimizerTotalCostDetailGroupByUserId" resultMap="OptimizerTotalCostDetail">
+        SELECT
+        sysUser.id as userId,sysUser.realname as realName,SUM(dailiAccount.cost) as totalCost,
+        #{year} AS year,#{quarter} as quarter,1 as appType
+        FROM
+        ctop_bytedance_report_advertiser_daily dailyAccount
+        LEFT JOIN
+        ctop_user_allocation allocation ON dailyAccount.advertiser_id = allocation.account_id
+        LEFT JOIN
+        sys_user_role userRole ON userRole.user_id = allocation.user_id
+        LEFT JOIN
+        sys_user sysUser ON sysUser.id = userRole.user_id
+        WHERE
+        userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
+        <if test="userId != null">
+            and sysUser.id = #{userId}
+        </if>
+        AND
+        dailyAccount.stat_datetime &gt;= #{startDate}
+        AND
+        dailyAccount.stat_datetime &lt; #{endDate}
+        GROUP BY
+        sysUser.id
+        ORDER BY
+        SUM(dailyAccount.cost) DESC
+        limit #{startIndex},#{pageSize}
+    </select>
+
     <select id="getOptimizerTotalCostDetailGroupByAccountId" resultMap="OptimizerTotalCostDetail">
         SELECT
         dailiAccount.account_id,sysUser.id as userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS
@@ -68,11 +96,11 @@
         limit #{startIndex},#{pageSize}
     </select>
 
-    <select id="getUserOptimizerTotalCostGroupByProjectId" resultMap="OptimizerTotalCostDetail">
+    <select id="getKuaishouUserOptimizerTotalCostGroupByProjectId" resultMap="OptimizerTotalCostDetail">
         SELECT
-        allocation.project_id as projectId,allocation.project_name as projectName,allocation.auth_name as
-        accountName,sysUser.id as
-        userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
+        allocation.project_id as projectId,allocation.project_name as projectName,
+        allocation.auth_name as accountName,sysUser.id as userId,sysUser.realname as realName,
+        SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
         FROM
         ctop_kuaishou_report_daily_account dailiAccount
         LEFT JOIN
@@ -99,7 +127,40 @@
         SUM(charge) DESC
         limit #{startIndex},#{pageSize}
     </select>
-    <select id="getUserOptimizerTotalCostGroupByAccountId" resultMap="OptimizerTotalCostDetail">
+
+    <select id="getBytedanceUserOptimizerTotalCostGroupByProjectId" resultMap="OptimizerTotalCostDetail">
+        SELECT
+        allocation.project_id as projectId,allocation.project_name as projectName,
+        allocation.auth_name as accountName,sysUser.id as userId,sysUser.realname as realName,
+        SUM(dailyAccount.cost) as totalCost,#{year} AS year,#{quarter} as quarter,1 as appType
+        FROM
+        ctop_bytedance_report_advertiser_daily dailyAccount
+        LEFT JOIN
+        ctop_user_allocation allocation ON dailyAccount.advertiser_id = allocation.account_id
+        LEFT JOIN
+        sys_user_role userRole ON userRole.user_id = allocation.user_id
+        LEFT JOIN
+        sys_user sysUser ON sysUser.id = userRole.user_id
+        WHERE
+        userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
+        <if test="userId != null">
+            and sysUser.id = #{userId}
+        </if>
+        <if test="projectId != null">
+            and allocation.project_id = #{projectId}
+        </if>
+        AND
+        dailyAccount.stat_datetime &gt;= #{startDate}
+        AND
+        dailyAccount.stat_datetime &lt; #{endDate}
+        GROUP BY
+        allocation.project_id
+        ORDER BY
+        SUM(dailyAccount.cost) DESC
+        limit #{startIndex},#{pageSize}
+    </select>
+
+    <select id="getKuaishouUserOptimizerTotalCostGroupByAccountId" resultMap="OptimizerTotalCostDetail">
         SELECT
         allocation.project_id as projectId,allocation.project_name as projectName,allocation.auth_name as accountName
         ,sysUser.id as
@@ -133,7 +194,41 @@
         limit #{startIndex},#{pageSize}
     </select>
 
-    <select id="getOptimizerTotalCost" resultMap="OptimizerTotalCostDetail">
+    <select id="getBytedanceUserOptimizerTotalCostGroupByAccountId" resultMap="OptimizerTotalCostDetail">
+        SELECT
+        allocation.project_id as projectId,allocation.project_name as projectName,
+        allocation.auth_name as accountName,sysUser.id as userId,sysUser.realname as realName,
+        SUM(dailyAccount.cost) as totalCost,#{year} AS year,#{quarter} as quarter,1 as appType
+        FROM
+        ctop_bytedance_report_advertiser_daily dailyAccount
+        LEFT JOIN
+        ctop_user_allocation allocation ON dailyAccount.advertiser_id = allocation.account_id
+        LEFT JOIN
+        sys_user_role userRole ON userRole.user_id = allocation.user_id
+        LEFT JOIN
+        sys_user sysUser ON sysUser.id = userRole.user_id
+        WHERE
+        1=1
+        and
+        userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
+        <if test="projectId != null">
+            and allocation.project_id = #{projectId}
+        </if>
+        <if test="userId != null">
+            and sysUser.id = #{userId}
+        </if>
+        AND
+        dailyAccount.stat_datetime &gt;= #{startDate}
+        AND
+        dailyAccount.stat_datetime &lt; #{endDate}
+        GROUP BY
+        allocation.account_id
+        ORDER BY
+        SUM(dailyAccount.cost) DESC
+        limit #{startIndex},#{pageSize}
+    </select>
+
+    <select id="getKuaishouOptimizerTotalCost" resultMap="OptimizerTotalCostDetail">
         SELECT
             '账户总计' as realname,SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
         FROM
@@ -153,7 +248,27 @@
         GROUP BY userRole.role_id
     </select>
 
-    <select id="getMemberPerformanceByOrgCode" resultMap="OptimizerTotalCostDetail">
+    <select id="getBytedanceOptimizerTotalCost" resultMap="OptimizerTotalCostDetail">
+        SELECT
+            '账户总计' as realname,SUM(dailyAccount.cost) as totalCost,#{year} AS year,#{quarter} as quarter,1 as appType
+        FROM
+            ctop_bytedance_report_advertiser_daily dailyAccount
+        LEFT JOIN
+            ctop_user_allocation allocation ON dailyAccount.advertiser_id = allocation.account_id
+        LEFT JOIN
+            sys_user_role userRole ON userRole.user_id = allocation.user_id
+        LEFT JOIN
+            sys_user sysUser ON sysUser.id = userRole.user_id
+        WHERE
+            userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
+        AND
+            dailyAccount.stat_date &gt;= #{startDate}
+        AND
+            dailyAccount.stat_date &lt; #{endDate}
+        GROUP BY userRole.role_id
+    </select>
+
+    <select id="getKuaishouMemberPerformanceByOrgCode" resultMap="OptimizerTotalCostDetail">
         SELECT
             sysUser.id as userId,sysUser.realname as realName,SUM(charge) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
         FROM
@@ -172,6 +287,26 @@
             sysUser.id
         ORDER BY
             SUM(charge) DESC
+    </select>
 
+    <select id="getBytedanceMemberPerformanceByOrgCode" resultMap="OptimizerTotalCostDetail">
+        SELECT
+            sysUser.id as userId,sysUser.realname as realName,SUM(dailyAccount.cost) as totalCost,#{year} AS year,#{quarter} as quarter,2 as appType
+        FROM
+            ctop_bytedance_report_advertiser_daily dailyAccount
+        LEFT JOIN
+            ctop_user_allocation allocation ON dailyAccount.advertiser_id = allocation.account_id
+        LEFT JOIN
+            sys_user_role userRole ON userRole.user_id = allocation.user_id
+        LEFT JOIN
+            sys_user sysUser ON sysUser.id = userRole.user_id
+        WHERE
+            userRole.role_id = '79fba4f45f1b8e284af9c68311c6c771'
+		AND
+			sysUser.org_code = #{orgCode}
+        GROUP BY
+            sysUser.id
+        ORDER BY
+            SUM(dailyAccount.cost) DESC
     </select>
 </mapper>

+ 4 - 4
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/IPerformanceService.java

@@ -25,13 +25,13 @@ public interface IPerformanceService extends IService<Performance> {
     /**
      * 获取优化师总消耗数据信息
      */
-    List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String userId, Integer startIndex, Integer pageSize);
+    List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String mediaType, String userId, Integer startIndex, Integer pageSize);
 
-    OptimizerCostDetailVO getOptimizerTotalCost();
+    OptimizerCostDetailVO getOptimizerTotalCost(String mediaType);
 
-    Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize);
+    Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize, String appType);
 
-    Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize);
+    Map<String, Object> getUserOptimizerAccountList(String apptype, Long projectId, Integer pageNo, Integer pageSize);
 
     Map<String, Object> getMemberPerformanceByUserId(OptimizerConfig config, OptimizerCostDetailVO totalCostVo);
 }

+ 6 - 6
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceOptimizerServiceImpl.java

@@ -52,13 +52,13 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
             return result;
         }
         //:查询当前用户截止到目前当前季度的消耗统计数据
-        List<OptimizerCostDetailVO> vos = performanceService.getOptimizerTotalCostDetailGroupByUserId(sysUser.getId(), startIndex, pageSize);
+        List<OptimizerCostDetailVO> vos = performanceService.getOptimizerTotalCostDetailGroupByUserId(mediaType, sysUser.getId(), startIndex, pageSize);
         if (null == vos || vos.size() <= 0) {
             ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_OPTINIZER_PERSONNAL_DATA_IS_NULL.getCode());
             return result;
         }
         //2: 查询媒体季度任务完成情况
-        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost(mediaType);
         OptimizerCostDetailVO detailVO = vos.get(0);
         detailVO.setTotalRoyalty(getTotalRoyalty(config, detailVO, totalCostVo));
         JSONObject detail = new JSONObject();
@@ -80,15 +80,15 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
     public Map<String, Object> getRankingList(String mediaType, Integer pageNo, Integer pageSize) {
         Map<String, Object> result = new HashMap<>();
         Integer startIndex = (pageNo - 1) * pageSize;
-        List<OptimizerCostDetailVO> vos = performanceService.getOptimizerTotalCostDetailGroupByUserId(null, startIndex, pageSize);
+        List<OptimizerCostDetailVO> vos = performanceService.getOptimizerTotalCostDetailGroupByUserId(mediaType, null, startIndex, pageSize);
         if (null == vos || vos.size() <= 0) {
             ResultMapUtils.setResultMap(result, StatusCode.KUAISHOU_CRAWLER_APP_ELEMENT_IS_NULL.getCode());
             return result;
         }
         //查询优化师系统设置数据
-        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType("2");
+        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType);
         //2: 查询媒体季度任务完成情况
-        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost(mediaType);
         //3:计算单个优化师提成总额
         List<OptimizerCostDetailVO> getDetailVos = new ArrayList<>();
         if (null != vos && vos.size() > 0) {
@@ -109,7 +109,7 @@ public class PerformanceOptimizerServiceImpl extends ServiceImpl<PerformanceOpti
         //查询优化师系统设置数据
         OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType(mediaType);
         //2: 查询媒体季度任务完成情况
-        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost();
+        OptimizerCostDetailVO totalCostVo = performanceService.getOptimizerTotalCost(mediaType);
         result.put("totalCost", totalCostVo.getTotalCost().toString());
         if (totalCostVo.getTotalCost().compareTo(config.getMediaTask()) < 0) {
             //当前消耗季度任务未完成

+ 37 - 47
performance-appraisal/src/main/java/cn/com/ctop/performanceappraisal/service/impl/PerformanceServiceImpl.java

@@ -1,13 +1,11 @@
 package cn.com.ctop.performanceappraisal.service.impl;
 
+import cn.com.ctop.common.module.utils.CtopAdConstant;
 import cn.com.ctop.common.module.utils.ResultMapUtils;
 import cn.com.ctop.common.module.utils.StatusCode;
 import cn.com.ctop.performanceappraisal.entity.OptimizerConfig;
 import cn.com.ctop.performanceappraisal.entity.Performance;
-import cn.com.ctop.performanceappraisal.entity.PerformanceOptimizer;
 import cn.com.ctop.performanceappraisal.mapper.PerformanceMapper;
-import cn.com.ctop.performanceappraisal.mapper.PerformanceOptimizerMapper;
-import cn.com.ctop.performanceappraisal.service.IOptimizerConfigService;
 import cn.com.ctop.performanceappraisal.service.IPerformanceService;
 import cn.com.ctop.performanceappraisal.vo.DesignerCostDetailVO;
 import cn.com.ctop.performanceappraisal.vo.OptimizerCostDetailVO;
@@ -33,10 +31,6 @@ import java.util.*;
 public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Performance> implements IPerformanceService {
     @Autowired
     private PerformanceMapper performanceMapper;
-    @Autowired
-    private PerformanceOptimizerMapper optimizerMapper;
-    @Autowired
-    private IOptimizerConfigService optimizerConfigService;
     /**
      * 计算设计岗位绩效逻辑
      * 1:查询用户总消耗以及总视频数
@@ -50,58 +44,43 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
     }
 
     @Override
-    public List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String userId, Integer startIndex, Integer pageSize) {
+    public List<OptimizerCostDetailVO> getOptimizerTotalCostDetailGroupByUserId(String mediaType, String userId, Integer startIndex, Integer pageSize) {
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
         String startDate = DateUtils.getQuarterStartDate(getDate);
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
-        return performanceMapper.getOptimizerTotalCostDetailGroupByUserId(startDate, endDate, year, quarter, userId, startIndex, pageSize);
-    }
-
-    /**
-     * 计算优化师岗位绩效逻辑
-     * 1:查询所有优化师总消耗数据
-     * 2:查询媒体季度任务完成情况
-     * 3:计算单个优化师提成总额
-     */
-    public List<OptimizerCostDetailVO> getOptimizerPerformance() {
-        //1:查询所有优化师总消耗数据
-        List<OptimizerCostDetailVO> detailVOS = getOptimizerTotalCostDetailGroupByUserId(null, 1, 10);
-        //查询优化师系统设置数据
-        OptimizerConfig config = optimizerConfigService.getEnabledConfigByMediaType("2");
-        //2: 查询媒体季度任务完成情况
-        OptimizerCostDetailVO totalCostVo = getOptimizerTotalCost();
-        //3:计算单个优化师提成总额
-        List<OptimizerCostDetailVO> getDetailVos = new ArrayList<>();
-        if (null != detailVOS && detailVOS.size() > 0) {
-            for (OptimizerCostDetailVO vo : detailVOS) {
-                vo.setTotalRoyalty(getTotalRoyalty(config, vo, totalCostVo));
-                PerformanceOptimizer optimizer = new PerformanceOptimizer(vo);
-                optimizerMapper.insert(optimizer);
-            }
+        if (null != mediaType && mediaType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)) {
+            //快手
+            return performanceMapper.getKuaishouOptimizerTotalCostDetailGroupByUserId(startDate, endDate, year, quarter, userId, startIndex, pageSize);
+        } else {
+            //头条
+            return performanceMapper.getBytedanceOptimizerTotalCostDetailGroupByUserId(startDate, endDate, year, quarter, userId, startIndex, pageSize);
         }
-        return getDetailVos;
     }
 
     @Override
-    public OptimizerCostDetailVO getOptimizerTotalCost() {
+    public OptimizerCostDetailVO getOptimizerTotalCost(String mediaType) {
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
         String startDate = DateUtils.getQuarterStartDate(getDate);
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
-        return performanceMapper.getOptimizerTotalCost(startDate, endDate, year, quarter);
+        if (null != mediaType && mediaType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)) {
+            //快手
+            return performanceMapper.getKuaishouOptimizerTotalCost(startDate, endDate, year, quarter);
+        } else {
+            //头条
+            return performanceMapper.getBytedanceOptimizerTotalCost(startDate, endDate, year, quarter);
+        }
     }
 
     @Override
-    public Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize) {
+    public Map<String, Object> getUserOptimizerProjectList(Integer pageNo, Integer pageSize, String appType) {
         Map<String, Object> result = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-//        LoginUser sysUser = new LoginUser();
-//        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         Integer startIndex = (pageNo - 1) * pageSize;
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
@@ -109,18 +88,21 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
-        List<OptimizerCostDetailVO> detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByProjectId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, null);
+        List<OptimizerCostDetailVO> detailVOS = null;
+        if (null != appType && appType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)) {
+            detailVOS = performanceMapper.getKuaishouUserOptimizerTotalCostGroupByProjectId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, null);
+        } else {
+            detailVOS = performanceMapper.getBytedanceUserOptimizerTotalCostGroupByProjectId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, null);
+        }
         result.put("data", detailVOS);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
         return result;
     }
 
     @Override
-    public Map<String, Object> getUserOptimizerAccountList(Long projectId, Integer pageNo, Integer pageSize) {
+    public Map<String, Object> getUserOptimizerAccountList(String appType, Long projectId, Integer pageNo, Integer pageSize) {
         Map<String, Object> result = new HashMap<>();
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-//        LoginUser sysUser = new LoginUser();
-//        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
         Integer startIndex = (pageNo - 1) * pageSize;
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
@@ -128,7 +110,12 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         String endDate = DateUtils.getQuarterEndDate(getDate);
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
-        List<OptimizerCostDetailVO> detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByAccountId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, projectId, null);
+        List<OptimizerCostDetailVO> detailVOS = null;
+        if (null != appType && appType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)) {
+            detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByAccountId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, projectId, null);
+        } else {
+            detailVOS = performanceMapper.getUserOptimizerTotalCostGroupByAccountId(startDate, endDate, year, quarter, sysUser.getId(), startIndex, pageSize, projectId, null);
+        }
         result.put("data", detailVOS);
         ResultMapUtils.setResultMap(result, StatusCode.COMMON_SUCCESS.getCode());
         return result;
@@ -139,9 +126,6 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         Map<String, Object> result = new HashMap<>();
         //查询此机构下其他运营专员跑量数据
         LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
-//        LoginUser sysUser = new LoginUser();
-//        sysUser.setId("fcb3fbf6192640adaadb2a7df9c02dae");
-//        sysUser.setOrgCode("A01A07A01");
         Date date = new Date();
         Date getDate = DateUtils.addDay(date, -1);
         String startDate = DateUtils.getQuarterStartDate(getDate);
@@ -149,7 +133,13 @@ public class PerformanceServiceImpl extends ServiceImpl<PerformanceMapper, Perfo
         String year = DateUtils.getYear(getDate) + "";
         String quarter = DateUtils.getQuarter(getDate) + "";
         //查询用户相关机构编号
-        List<OptimizerCostDetailVO> detailVOS = performanceMapper.getMemberPerformanceByOrgCode(startDate, endDate, year, quarter, sysUser.getOrgCode());
+        List<OptimizerCostDetailVO> detailVOS = null;
+        if (null != config.getAppType() && config.getAppType() + "" == CtopAdConstant.PLATFORM_TYPE_KUAISHOU) {
+            performanceMapper.getKuaishouMemberPerformanceByOrgCode(startDate, endDate, year, quarter, sysUser.getOrgCode());
+        } else {
+            performanceMapper.getBytedanceMemberPerformanceByOrgCode(startDate, endDate, year, quarter, sysUser.getOrgCode());
+        }
+
         List<OptimizerCostDetailVO> getDetails = new ArrayList<>();
         BigDecimal memberTotaRoyalty = BigDecimal.ZERO;
         BigDecimal memberTotaCost = BigDecimal.ZERO;