Просмотр исходного кода

添加新增付费人数、率、成本

zhaoxian 3 лет назад
Родитель
Сommit
05f08a995d

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

@@ -17,7 +17,6 @@ import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
-import java.text.DecimalFormat;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -303,9 +302,9 @@ public class DesignerServiceImpl implements IDesignerService {
         Map<String, Object> bytedanceMap = new HashMap<>();
         Map<String, Object> kuaishouMap = new HashMap<>();
         bytedanceMap.put("type", "byteDance");
-        bytedanceMap.put("cost", String.format("%.2f", bytedanceCost));
+        bytedanceMap.put("cost", String.format("%.3f", bytedanceCost));
         kuaishouMap.put("type", "kuaiShou");
-        kuaishouMap.put("cost", String.format("%.2f", kuaishouCost));
+        kuaishouMap.put("cost", String.format("%.3f", kuaishouCost));
         quarterCostList.add(bytedanceMap);
         quarterCostList.add(kuaishouMap);
 
@@ -314,12 +313,12 @@ public class DesignerServiceImpl implements IDesignerService {
 
         //季度素材 总消耗
         Double tatolCost = quarterCostList.stream().mapToDouble(json -> new Double(json.get("cost") + "")).reduce(Double::sum).orElse(new Double("0"));
-        userFrozen.put("tatolQuarterCost", String.format("%.2f", tatolCost));
+        userFrozen.put("tatolQuarterCost", String.format("%.3f", tatolCost));
 
         //季度 管理消耗汇总
         Double bytedanceLeaderCost = leaderCostList.stream().mapToDouble(json -> new Double(json.get("bytedanceCost") + "")).reduce(Double::sum).orElse(new Double("0"));
         Double kuaishouLeaderCost = leaderCostList.stream().mapToDouble(json -> new Double(json.get("kuaishouCost") + "")).reduce(Double::sum).orElse(new Double("0"));
-        userFrozen.put("leaderCost", String.format("%.2f", bytedanceLeaderCost + kuaishouLeaderCost));
+        userFrozen.put("leaderCost", String.format("%.3f", bytedanceLeaderCost + kuaishouLeaderCost));
 
 
         //判断素材消耗是否达标
@@ -390,7 +389,7 @@ public class DesignerServiceImpl implements IDesignerService {
             }
             commissionJson.put("monthTime", bytedance.get(i).get(0).getBigInteger("monthTime"));
             commissionJson.put("xishu", userHappyProbability);
-            commissionJson.put("commission", String.format("%.2f", (bytedanceCommission + kuaishouCommission) * userHappyProbability));
+            commissionJson.put("commission", String.format("%.3f", (bytedanceCommission + kuaishouCommission) * userHappyProbability));
             commissionList.add(commissionJson);
         }
         bytedanceJson.get(0);
@@ -409,7 +408,7 @@ public class DesignerServiceImpl implements IDesignerService {
             Double designerLeaderCommissionKuaishou = kuaishouLeaderCost * 0.003 * 0.2;
             designerLeaderCommission = designerLeaderCommissionBytedance + designerLeaderCommissionKuaishou;
         }
-        userFrozen.put("designerLeaderCommission", String.format("%.2f", designerLeaderCommission));
+        userFrozen.put("designerLeaderCommission", String.format("%.3f", designerLeaderCommission));
 
         //提成汇总 = 季度汇总 + 负责人提成
         totalCommission += designerLeaderCommission;
@@ -442,7 +441,7 @@ public class DesignerServiceImpl implements IDesignerService {
 
         //提成发放金额 = 总提成 * 爆款达标发放系数
         Double userHappyGetMoney = totalCommission * coefficient;
-        userFrozen.put("userHappyGetMoney", String.format("%.2f", userHappyGetMoney));
+        userFrozen.put("userHappyGetMoney", String.format("%.3f", userHappyGetMoney));
 
         return userFrozen;
     }
@@ -477,14 +476,19 @@ public class DesignerServiceImpl implements IDesignerService {
 
     @Override
     public Result getDesignerBasicsAndAch(String userId, String yearTime, String monthTime, int pageNum, int pageSize) {
+        long startTime = System.currentTimeMillis() / 1000;
         //取当前时间的季度的月份
         List<Map<String, Integer>> timeMap = DateUtils.getQuarStartAndEndTime(Integer.valueOf(monthTime));
         //基础信息 + 绩效
         PageInfo<JSONObject> baseics = getDesignBasicsInfoList(userId, pageNum, pageSize, timeMap);
+        long endTime1 = System.currentTimeMillis() / 1000;
+        System.out.println("------------------查询人员用时---------->" + (endTime1 - startTime) + "S");
         for (JSONObject jsonObject : baseics.getList()) {
             //绩效
             getDesignerAchievements(jsonObject, yearTime, timeMap);
         }
+        long endTime = System.currentTimeMillis() / 1000;
+        System.out.println("------------------总共用时---------->" + (endTime - startTime) + "S");
         return Result.successMsg("基础+绩效查询成功。", baseics);
     }
 

+ 9 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/common/constant/AccountReportConstants.java

@@ -796,8 +796,16 @@ public class AccountReportConstants {
             "    \"filed\": \"CASE WHEN sum(aclick) != 0 THEN CONCAT(CAST(ROUND( sum(t1.play_3s_count) / sum(t1.aclick),2 )  * 100 AS CHAR),'%') ELSE '-' END AS play3sRate\",\n" +
             "    \"comment\": \"3s播放率\"\n" +
             "  },\n" +
+            "  \"eventNewUserPay\": {\n" +
+            "    \"filed\": \"sum(t1.event_new_user_pay) as eventNewUserPay\",\n" +
+            "    \"comment\": \"新增付费人数\"\n" +
+            "  },\n" +
+            "  \"eventNewUserPayCost\": {\n" +
+            "    \"filed\": \"CASE WHEN sum(t1.charge) / sum(t1.event_new_user_pay) IS NULL THEN 0 ELSE round(sum(t1.charge)/sum(t1.event_new_user_pay),3) end as eventNewUserPayCost \",\n" +
+            "    \"comment\": \"新增付费人数成本\"\n" +
+            "  },\n" +
             "  \"eventNewUserPayRatio\": {\n" +
-            "    \"filed\": \"CASE WHEN  sum(t1.activation) != 0 THEN concat(CAST(round(sum(t1.event_pay) / sum(t1.activation)*100,2) AS CHAR) ,'%') else '0.00%' end as eventNewUserPayRatio \",\n" +
+            "    \"filed\": \"CASE WHEN  sum(t1.activation)+sum(t1.event_app_invoked)+sum(t1.form_count) != 0 THEN concat(CAST(round(sum(t1.event_new_user_pay) / (sum(t1.activation)+sum(t1.event_app_invoked)+sum(t1.form_count))*100,2) AS CHAR) ,'%') else '0.00%' end as eventNewUserPayRatio \",\n" +
             "    \"comment\": \"新增付费人数率\"\n" +
             "  }\n" +
             "}";

+ 6 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/MaterialReportOverViewServiceImpl.java

@@ -287,14 +287,16 @@ public class MaterialReportOverViewServiceImpl implements IMaterialReportOverVie
             projects = getProjectsByCurrentUser(mediaId);
         }
         if (mediaId == CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INT) {
-            String filedAll = JsonResourceUtil.joinAllFiled(AccountReportConstants.getDicMapByVideo());
+            String filedAll = null;
+//                    JsonResourceUtil.joinAllFiled(AccountReportConstants.getDicMapByVideo());
             PageHelper.startPage(pageNo, pageSize, false);
             List<JSONObject> list = materialReportOverViewMapper.queryBytedanceMaterialReport(filedAll, startDate, endDate, projects, md5, target, order);
             Long count = materialReportOverViewMapper.queryBytedanceMaterialReportCount(startDate, endDate, projects, md5);
             result.setTotal(count);
             result.setList(list);
         } else if (mediaId == CtopAdConstant.PLATFORM_TYPE_KUAISHOU_INT) {
-            String filedAll = JsonResourceUtil.joinAllFiled(AccountReportConstants.getKuaishouVideoReportMap());
+            String filedAll =  null;
+//                    JsonResourceUtil.joinAllFiled(AccountReportConstants.getKuaishouVideoReportMap());
             PageHelper.startPage(pageNo, pageSize, false);
             List<JSONObject> list = materialReportOverViewMapper.queryKuaishouMaterialReport(filedAll, startDate, endDate, projects, channelType, md5, target, order);
             Long count = materialReportOverViewMapper.queryKuaishouMaterialReportCount(startDate, endDate, projects, channelType, md5);
@@ -373,7 +375,8 @@ public class MaterialReportOverViewServiceImpl implements IMaterialReportOverVie
             columns2.add(columns2.size(), columns.getString(i));
         }
         List<String> titles = getfileIds(AccountReportConstants.getKuaishouVideoReportDict(), columns2);
-        String filedAll = JsonResourceUtil.joinAllFiled(AccountReportConstants.getKuaishouVideoReportMap());
+        String filedAll = "";
+//                JsonResourceUtil.joinAllFiled(AccountReportConstants.getKuaishouVideoReportMap());
         List<JSONObject> excelData = materialReportOverViewMapper.queryKuaishouMaterialReport(filedAll, requestBody.getString("startDate"), requestBody.getString("endDate"),
                 projects, requestBody.getString("channelType"), requestBody.getString("md5"), requestBody.getString("target") == null ? "cost" : requestBody.getString("target")
                 , requestBody.getString("order") == null ? "desc" : requestBody.getString("order"));