Przeglądaj źródła

账户维度-盯盘投放数据接口2

zhaoxian 4 lat temu
rodzic
commit
83d992c57b

+ 16 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/controller/EtlKuaiShouGroupDailyReportController.java

@@ -7,6 +7,8 @@ import cn.com.ctop.kuaishou.modules.report.service.IEtlKuaiShouGroupDailyReportS
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
@@ -66,7 +68,20 @@ public class EtlKuaiShouGroupDailyReportController {
      */
     @AutoLog(value = "快手组日报数据清洗-分页列表查询")
     @ApiOperation(value = "快手组日报数据清洗-分页列表查询", notes = "快手组日报数据清洗-分页列表查询")
-    @PostMapping(value = "/list")
+    @GetMapping(value = "/list")
+    public Result<IPage<EtlKuaiShouGroupDailyReport>> queryPageList(EtlKuaiShouGroupDailyReport etlKuaiShouGroupDailyReport,
+                                                                    @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
+                                                                    @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
+                                                                    HttpServletRequest req) {
+        Result<IPage<EtlKuaiShouGroupDailyReport>> result = new Result<>();
+        QueryWrapper<EtlKuaiShouGroupDailyReport> queryWrapper = QueryGenerator.initQueryWrapper(etlKuaiShouGroupDailyReport, req.getParameterMap());
+        Page<EtlKuaiShouGroupDailyReport> page = new Page<EtlKuaiShouGroupDailyReport>(pageNo, pageSize);
+        IPage<EtlKuaiShouGroupDailyReport> pageList = etlKuaiShouGroupDailyReportService.page(page, queryWrapper);
+        result.setSuccess(true);
+        result.setResult(pageList);
+        return result;
+    }
+    @PostMapping(value = "/queryPageList")
     public Result<Object> queryPageList(@RequestBody JSONObject request) {
         try {
             return etlKuaiShouGroupDailyReportService.queryPageList(request);
@@ -76,7 +91,6 @@ public class EtlKuaiShouGroupDailyReportController {
         }
         return Result.error("查询失败");
     }
-
     /**
      * 添加
      *

+ 5 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/EtlKuaiShouGroupDailyReportMapper.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.report.mapper;
 
 import cn.com.ctop.kuaishou.modules.report.entity.EtlKuaiShouGroupDailyReport;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -17,5 +18,8 @@ public interface EtlKuaiShouGroupDailyReportMapper extends BaseMapper<EtlKuaiSho
 
     void replaceBatch(@Param("addList") List<EtlKuaiShouGroupDailyReport> addList);
 
-    List<EtlKuaiShouGroupDailyReport> queryPageList(Long accountId);
+    Long getTotal(Long accountId);
+
+    List<JSONObject> queryPageList(@Param("accountId") Long accountId, @Param("sortCode") String sortCode, @Param("sortType") String sortType);
+
 }

+ 39 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/mapper/xml/EtlKuaiShouGroupDailyReportMapper.xml

@@ -52,9 +52,47 @@
         </foreach>
     </insert>
 
-    <select id="queryPageList" resultType="cn.com.ctop.kuaishou.modules.report.entity.EtlKuaiShouGroupDailyReport">
+    <select id="getTotal" resultType="java.lang.Long">
+        SELECT count(1)
+        FROM ctop_etl_kuaishou_group_daily_report t1
+        WHERE account_id = #{accountId}
+          AND t1.charge > 0
+          AND stat_date = DATE_FORMAT(now(), '%Y-%m-%d')
+    </select>
 
+    <select id="queryPageList" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+        account_id as 'accountId',
+        unit_name as 'unitName',
+        t1.charge,
+        ROUND(t1.charge/activation,2) as 'activationCost',
+        bid,
+        unit_status as 'unitStatus',
+        activation,
+        ROUND((t1.charge-t2.charge)/t2.charge*100,2) 'grew'
+        FROM ctop_etl_kuaishou_group_daily_report t1
+        LEFT JOIN (
+        SELECT charge,unit_id FROM ctop_etl_kuaishou_group_daily_report
+        WHERE account_id = 1
+        AND stat_date = DATE_FORMAT(date_sub(now(), interval 1 day), '%Y-%m-%d')
+        ) t2 ON t1.unit_id = t2.unit_id
+        WHERE account_id = #{accountId}
+        AND t1.charge > 0
+        AND stat_date = DATE_FORMAT(now(), '%Y-%m-%d')
+        <if test="sortCode == 'charge' ">
+            ORDER BY t1.charge
+        </if>
+        <if test="sortCode == 'activationCost' ">
 
+            ORDER BY t1.charge/activation
+        </if>
+        <if test="sortCode == 'bid' ">
+            ORDER BY bid
+        </if>
+        <if test="sortCode == 'activation' ">
+            ORDER BY activation
+        </if>
+        ${sortType}
     </select>
 
 </mapper>

+ 12 - 8
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/report/service/impl/EtlKuaiShouGroupDailyReportServiceImpl.java

@@ -82,15 +82,19 @@ public class EtlKuaiShouGroupDailyReportServiceImpl extends ServiceImpl<EtlKuaiS
             pageSize = 10;
         }
         Long accountId = request.getLong("accountId");
-//        Long total = groupDailyReportMapper.getTotalByMap(requestMap);
-//        PageHelper.startPage(pageNo, pageSize, false);
-//        PageInfo pageInfo = new PageInfo(ksVideoReportMapper.getKuaiShouVideoReportByMap(requestMap));
-//        pageInfo.setTotal(total);
-//        return pageInfo;
+        String sortCode = request.getString("sortCode");
+        String sortType = request.getString("sortType");
+        if (Check.isNull(sortCode)) {
+            sortCode = "charge";
+        }
+        if (Check.isNull(sortType)) {
+            sortType = "DESC";
+        }
+        Long total = groupDailyReportMapper.getTotal(accountId);
         PageHelper.startPage(pageNo, pageSize, false);
-        List<EtlKuaiShouGroupDailyReport> list = groupDailyReportMapper.queryPageList(accountId);
-
-        return null;
+        PageInfo pageInfo = new PageInfo(groupDailyReportMapper.queryPageList(accountId, sortCode, sortType));
+        pageInfo.setTotal(total);
+        return Result.ok(pageInfo);
     }
 
     /**