소스 검색

设计绩效-接口拆分;增加季度查询

yangzian 2 년 전
부모
커밋
8d2100240b

+ 7 - 3
jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/common/util/DateUtils.java

@@ -2199,8 +2199,12 @@ public class DateUtils extends PropertyEditorSupport {
 //        }
 //
 
-        System.out.println(getQuarterEndDay("2022-01-01"));
-        System.out.println(getMonth("yyyy-MM-dd","2022-01-01"));
+        //System.out.println(getQuarterEndDay("2022-01-01"));
+        //System.out.println(getMonth("yyyy-MM-dd","2022-01-01"));
+
+
+        System.out.println(quarterStartEndDate(2022,4));
+
 
     }
 
@@ -2210,7 +2214,7 @@ public class DateUtils extends PropertyEditorSupport {
      */
     public static Map<String,Object> getCurrentQuarterMonths(String dateStr){
 
-        Date date = parseDate(dateStr,"yyyy-MM-dd HH:mm:ss");
+        Date date = parseDate(dateStr,"yyyy-MM-dd");
 
         Map<String,Object> map = new HashMap<>();
         String quarter[] = new String[]{};

+ 31 - 7
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/achievements/controller/DesignerAchievementsController.java

@@ -52,9 +52,11 @@ public class DesignerAchievementsController {
      * @return
      */
     @GetMapping(value = "/getHotVideoData")
-    public List<Map<String,Object>> getHotVideoData(@RequestParam(name = "userId") String userId) {
+    public List<Map<String,Object>> getHotVideoData(@RequestParam(name = "userId") String userId,
+                                                    @RequestParam(name = "yearTime")String yearTime,
+                                                    @RequestParam(name = "monthTime")String monthTime) {
 
-        return designerService.getHotVideoData(userId);
+        return designerService.getHotVideoData(userId,yearTime,monthTime);
 
     }
 
@@ -66,8 +68,10 @@ public class DesignerAchievementsController {
      * @return
      */
     @GetMapping(value = "/getDesignerAchievements")
-    public Map<String,Object> getDesignerAchievements(@RequestParam(name = "userId") String userId) {
-        return designerService.getDesignerAchievements(userId);
+    public Map<String,Object> getDesignerAchievements(@RequestParam(name = "userId") String userId,
+                                                      @RequestParam(name = "yearTime")String yearTime,
+                                                      @RequestParam(name = "monthTime")String monthTime) {
+        return designerService.getDesignerAchievements(userId,yearTime,monthTime);
 
     }
 
@@ -79,8 +83,10 @@ public class DesignerAchievementsController {
      * @return
      */
     @GetMapping(value = "/getDesignerCommission")
-    public JSONObject getDesignerCommission(@RequestParam(name = "userId") String userId) {
-        return designerService.getDesignerCommission(userId);
+    public JSONObject getDesignerCommission(@RequestParam(name = "userId") String userId,
+                                            @RequestParam(name = "yearTime")String yearTime,
+                                            @RequestParam(name = "monthTime")String monthTime) {
+        return designerService.getDesignerCommission(userId,yearTime,monthTime);
 
     }
 
@@ -120,7 +126,25 @@ public class DesignerAchievementsController {
 
 
     /**
-     * 基础信息+绩效+提成
+     * 基础信息+绩效
+     * @param userId
+     * @param pageNum
+     * @param pageSize
+     * @return
+     */
+    @GetMapping(value = "/getDesignerBasicsAndAch")
+    public Result getDesignerBasicsAndAch(@RequestParam(name = "userId") String userId,
+                                                    @RequestParam(name = "yearTime") String yearTime,
+                                                    @RequestParam(name = "monthTime") String monthTime,
+                                        @RequestParam(name = "pageNum",defaultValue = "1") Integer pageNum,
+                                        @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+       return designerService.getDesignerBasicsAndAch(userId,yearTime,monthTime,pageNum,pageSize);
+
+    }
+
+
+    /**
+     * 基础信息+提成
      * @param userId
      * @param pageNum
      * @param pageSize

+ 20 - 1
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/achievements/mapper/DesignerMapper.java

@@ -51,12 +51,31 @@ public interface DesignerMapper{
                                      @Param("yearTime") String yearTime,
                                      @Param("monthTime") String monthTime);
 
+
+     List<JSONObject>  getDesignerAchievementsKuaishou(@Param("userId")String userId,
+                                     @Param("yearTime") String yearTime,
+                                     @Param("monthTime") String monthTime);
+
+
+
+
     /**
      * 查询设计 本季度 头条和快手季度消耗汇总
      * @param userId
      * @return
      */
-    List<JSONObject>  getDesignerBytedanceAndKuaishouQuaterCost(@Param("userId")String userId);
+    List<JSONObject>  getDesignerBytedanceAndKuaishouQuaterCost(@Param("userId")String userId,@Param("yearTime") String yearTime,
+                                                                @Param("monthTime") String monthTime);
+
+    /**
+     * 管理消耗
+     * @param userId
+     * @param yearTime
+     * @param monthTime
+     * @return
+     */
+    JSONObject  getDesignerManagerLeaderCost(@Param("userId")String userId,@Param("yearTime") String yearTime,
+                                                                @Param("monthTime") String monthTime);
 
     /**
      * 查询人员离职时间

+ 24 - 7
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/achievements/mapper/xml/DesignerMapper.xml

@@ -176,9 +176,8 @@
             (
             d.clip_id = #{userId} OR d.shot_id = #{userId} OR d.plan_id = #{userId}
             )
-          AND
-            QUARTER ( d.first_cost_day ) = QUARTER (NOW())
-          AND YEAR ( d.first_cost_day ) = YEAR (NOW())
+          AND DATE_FORMAT( d.first_cost_day, '%Y' ) = #{yearTime}
+          AND DATE_FORMAT( d.first_cost_day, '%m' ) = #{monthTime}
         UNION ALL
         SELECT
             QUARTER( d.first_cost_day ) quaterTime,
@@ -192,9 +191,27 @@
             (
             d.clip_id = #{userId} OR d.shot_id = #{userId} OR d.plan_id = #{userId}
             )
-          and
-            QUARTER ( d.first_cost_day ) = QUARTER (NOW())
-          AND YEAR ( d.first_cost_day ) = YEAR (NOW())
+          AND DATE_FORMAT( d.first_cost_day, '%Y' ) = #{yearTime}
+          AND DATE_FORMAT( d.first_cost_day, '%m' ) = #{monthTime}
+    </select>
+
+   <!-- 管理消耗-->
+    <select id="getDesignerManagerLeaderCost" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT IFNULL(SUM(cost),0) FROM
+            (
+                SELECT SUM(cost) cost,leader_id FROM
+                    application.bytedance_material_cost_daily
+                WHERE leader_id = #{userId}
+                  AND DATE_FORMAT( first_cost_day, '%Y' ) = #{yearTime}
+                  AND DATE_FORMAT( first_cost_day, '%m' ) = #{monthTime}
+                UNION
+                SELECT SUM(charge) cost,leader_id FROM
+                    application.kuaishou_material_cost_daily
+                WHERE leader_id = #{userId}
+                AND DATE_FORMAT( first_cost_day, '%Y' ) = #{yearTime}
+                AND DATE_FORMAT( first_cost_day, '%m' ) = #{monthTime}
+            )  t
+        GROUP BY leader_id
     </select>
 
 
@@ -273,7 +290,7 @@
         LEFT JOIN `jeecg-boot`.sys_role r ON r.id = ur.role_id
         <where>
             <if test="roleName != null and roleName != ''">
-                and r.role_name LIKE concat('%',#{roleName},'%')
+                and r.role_name LIKE concat('%',#{roleName},'%') or r.role_code LIKE concat('%',#{roleName},'%')
             </if>
         </where>
     </select>

+ 4 - 3
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/achievements/service/IDesignerService.java

@@ -19,15 +19,16 @@ public interface IDesignerService{
 
     PageInfo<JSONObject> getDesignBasicsInfoList(String userId, int pageNum, int pageSize);
 
-    List<Map<String,Object>> getHotVideoData(String userId);
+    List<Map<String,Object>> getHotVideoData(String userId,String yearTime,String monthTime);
 
-    Map<String,Object> getDesignerAchievements(String userId);
+    Map<String,Object> getDesignerAchievements(String userId,String yearTime,String monthTime);
 
-    JSONObject getDesignerCommission(String userId);
+    JSONObject getDesignerCommission(String userId,String yearTime,String monthTime);
 
     Result updateUserHappyProbability(JSONObject jsonObject);
 
     Result getDesignerBasicsAndHotVideoInfo(String userId,String yearTime,String monthTime,int pageNum,int pageSize);
+    Result getDesignerBasicsAndAch(String userId,String yearTime,String monthTime,int pageNum,int pageSize);
     Result getDesignerBasicsAndAchAndComInfo(String userId,String yearTime,String monthTime,int pageNum,int pageSize);
 
 

+ 42 - 24
jeecg-boot-module-system/src/main/java/cn/com/ctop/common/module/achievements/service/impl/DesignerServiceImpl.java

@@ -75,7 +75,7 @@ public class DesignerServiceImpl implements IDesignerService {
      * @author: zianY
      */
     @Override
-    public List<Map<String,Object>> getHotVideoData(String userId) {
+    public List<Map<String,Object>> getHotVideoData(String userId,String yearTime,String monthTime) {
         String roleName = null;
         //查询用户角色
         String roleCode = roleService.getRoleCodeByUserId(userId);
@@ -86,8 +86,11 @@ public class DesignerServiceImpl implements IDesignerService {
         }else if (roleCode.contains("plan")){
             roleName = "plan";
         }
-        //取当前时间的季度的月份
-        Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(DateUtils.dateToStringTime(new Date()));
+
+        //获取季度的开始和截止时间
+        Map<String,String> map = DateUtils.quarterStartEndDate(Integer.valueOf(yearTime),Integer.valueOf(monthTime));
+        //取时间的季度的月份
+        Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(map.get("endDate"));
         String[] quarterStr = (String[])timeMap.get("quarter");
         List<Map<String,Object>> resultList = new ArrayList<>();
         List<Map<String,Object>> byteDanceList = new ArrayList<>();
@@ -96,12 +99,12 @@ public class DesignerServiceImpl implements IDesignerService {
         Map<String,Object> kuaishouMap = new HashMap<>();
         for (String month : quarterStr ){
             //头条
-            JSONObject bytedanceJson = designerMapper.getHotVideoData(userId,roleName,"1",timeMap.get("yearTime")+"",month);
+            JSONObject bytedanceJson = designerMapper.getHotVideoData(userId,roleName,"1",yearTime,month);
             bytedanceJson.put("monthTime",month);
             byteDanceList.add(bytedanceJson);
             bytedanceMap.put("byteDance",byteDanceList);
             //快手
-            JSONObject kuaishouJson = designerMapper.getHotVideoData(userId,roleName,"2",timeMap.get("yearTime")+"",month);
+            JSONObject kuaishouJson = designerMapper.getHotVideoData(userId,roleName,"2",yearTime,month);
             kuaishouJson.put("monthTime",month);
             kuaishouList.add(kuaishouJson);
             kuaishouMap.put("kuaishou",kuaishouList);
@@ -113,9 +116,11 @@ public class DesignerServiceImpl implements IDesignerService {
 
 
    @Override
-    public Map<String,Object> getDesignerAchievements(String userId) {
-        //取当前时间的季度的月份
-        Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(DateUtils.dateToStringTime(new Date()));
+    public Map<String,Object> getDesignerAchievements(String userId,String yearTime,String monthTime) {
+       //获取季度的开始和截止时间
+       Map<String,String> map = DateUtils.quarterStartEndDate(Integer.valueOf(yearTime),Integer.valueOf(monthTime));
+       //取当前时间的季度的月份
+       Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(map.get("endDate"));
         String[] quarterStr = (String[])timeMap.get("quarter");
        Map<String,Object> resultMap = new HashMap<>();
        List<Map<String,Object>> byteDanceList = new ArrayList<>();
@@ -125,13 +130,13 @@ public class DesignerServiceImpl implements IDesignerService {
             Map<String,Object> bytedanceMap = new HashMap<>();
             Map<String,Object> kuaishouMap = new HashMap<>();
             //头条
-            List<JSONObject> bytedanceJson = designerMapper.getDesignerAchievementsBytedance(userId,timeMap.get("yearTime")+"",month);
+            List<JSONObject> bytedanceJson = designerMapper.getDesignerAchievementsBytedance(userId,yearTime,month);
             bytedanceMap.put("monthTime",month );
             bytedanceMap.put("yearTime",timeMap.get("yearTime")+"" );
             bytedanceMap.put("byteDance",bytedanceJson);
             byteDanceList.add(bytedanceMap);
             //快手
-            List<JSONObject> kuaishouJson = designerMapper.getDesignerAchievementsBytedance(userId,timeMap.get("yearTime")+"",month);
+            List<JSONObject> kuaishouJson = designerMapper.getDesignerAchievementsKuaishou(userId,yearTime,month);
             kuaishouMap.put("monthTime",month );
             bytedanceMap.put("yearTime",timeMap.get("yearTime")+"" );
             kuaishouMap.put("kuaiShou",kuaishouJson);
@@ -236,24 +241,27 @@ public class DesignerServiceImpl implements IDesignerService {
 
 
    @Override
-    public JSONObject getDesignerCommission(String userId) {
-        //取当前时间的季度的月份
-        Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(DateUtils.dateToStringTime(new Date()));
+    public JSONObject getDesignerCommission(String userId,String yearTime,String monthTime) {
+       //获取季度的开始和截止时间
+       Map<String,String> map = DateUtils.quarterStartEndDate(Integer.valueOf(yearTime),Integer.valueOf(monthTime));
+       //取当前时间的季度的月份
+       Map<String,Object> timeMap = DateUtils.getCurrentQuarterMonths(map.get("endDate"));
         String[] quarterStr = (String[])timeMap.get("quarter");
-
        //人员离职信息
        JSONObject userFrozen = designerMapper.getUserFrozenInfo(userId);
 
-
        //季度 分媒体 素材消耗
-       List<JSONObject> quarterCost = designerMapper.getDesignerBytedanceAndKuaishouQuaterCost(userId);
+       List<JSONObject> quarterCost = designerMapper.getDesignerBytedanceAndKuaishouQuaterCost(userId,yearTime,monthTime);
        userFrozen.put("quarterCostList",quarterCost);
 
        //季度素材 总消耗
        Double tatolCost = quarterCost.stream().mapToDouble(json -> json.getDouble("cost")).reduce(Double::sum).orElse(new Double("0"));
        userFrozen.put("tatolQuarterCost",tatolCost);
 
-       //消耗是否达标
+       //管理消耗
+       JSONObject leaderCost = designerMapper.getDesignerManagerLeaderCost(userId,yearTime,monthTime);
+       userFrozen.put("leaderCost",leaderCost.getString("cost"));
+
 
        //离职时间
        String frozenTime = userFrozen.getString("frozenTime");
@@ -307,7 +315,7 @@ public class DesignerServiceImpl implements IDesignerService {
            Double bytedanceCommission = bytedanceJson.stream().mapToDouble(json -> json.getDouble("commission")).reduce(Double::sum).orElse(new Double("0"));
 
            //快手提成
-           List<JSONObject> kuaishouJson = designerMapper.getDesignerAchievementsBytedance(userId, timeMap.get("yearTime") + "", month);
+           List<JSONObject> kuaishouJson = designerMapper.getDesignerAchievementsKuaishou(userId, timeMap.get("yearTime") + "", month);
            Double kuaishouCommission = kuaishouJson.stream().mapToDouble(json -> json.getDouble("commission")).reduce(Double::sum).orElse(new Double("0"));
 
            commissionJson.put("monthTime", month);
@@ -371,7 +379,7 @@ public class DesignerServiceImpl implements IDesignerService {
         //基础信息 + 爆款信息
         PageInfo<JSONObject> baseics = getDesignBasicsInfoList(userId,pageNum,pageSize);
         for (JSONObject jsonObject : baseics.getList()) {
-            List<Map<String,Object>> hotVideo = getHotVideoData(jsonObject.getString("userId"));
+            List<Map<String,Object>> hotVideo = getHotVideoData(jsonObject.getString("userId"),yearTime,monthTime);
             jsonObject.put("hotVideoInfo",hotVideo);
         }
         return Result.successMsg("基础+爆款查询成功。",baseics);
@@ -381,18 +389,28 @@ public class DesignerServiceImpl implements IDesignerService {
 
 
     @Override
-    public Result getDesignerBasicsAndAchAndComInfo(String userId,String yearTime,String monthTime,int pageNum,int pageSize){
-        //基础信息 + 绩效+提成
+    public Result getDesignerBasicsAndAch(String userId,String yearTime,String monthTime,int pageNum,int pageSize){
+        //基础信息 + 绩效
         PageInfo<JSONObject> baseics = getDesignBasicsInfoList(userId,pageNum,pageSize);
         for (JSONObject jsonObject : baseics.getList()) {
             //绩效
-            Map<String,Object> achievementsMap = getDesignerAchievements(jsonObject.getString("userId"));
+            Map<String,Object> achievementsMap = getDesignerAchievements(jsonObject.getString("userId"),yearTime,monthTime);
             jsonObject.put("achievementsMap",achievementsMap);
+        }
+        return Result.successMsg("基础+绩效查询成功。",baseics);
+    }
+
+
+    @Override
+    public Result getDesignerBasicsAndAchAndComInfo(String userId,String yearTime,String monthTime,int pageNum,int pageSize){
+        //基础信息 +提成
+        PageInfo<JSONObject> baseics = getDesignBasicsInfoList(userId,pageNum,pageSize);
+        for (JSONObject jsonObject : baseics.getList()) {
             //提成
-            JSONObject userFrozen = getDesignerCommission(jsonObject.getString("userId"));
+            JSONObject userFrozen = getDesignerCommission(jsonObject.getString("userId"),yearTime,monthTime);
             jsonObject.put("userFrozen",userFrozen);
         }
-        return Result.successMsg("基础+绩效+提成查询成功。",baseics);
+        return Result.successMsg("基础+提成查询成功。",baseics);
     }