瀏覽代碼

release on 2020.8.26

jiequan.bi 4 年之前
父節點
當前提交
c1761101c7

+ 55 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MaterialTopCtrl.java

@@ -1,14 +1,27 @@
 package org.jeecg.modules.ctop.controller;
 
+import cn.com.ctop.common.module.utils.ExportExcelUtils;
+import cn.com.ctop.common.module.utils.HttpUtils;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.constant.AccountReportConstants;
+import org.jeecg.common.util.JsonResourceUtil;
 import org.jeecg.modules.ctop.service.IMaterialTopService;
 import org.jeecg.modules.ctop.vo.MaterialTopVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  *  Created by JQ.bi on 2020.5.21
  */
@@ -47,4 +60,46 @@ public class MaterialTopCtrl {
         }
         return result;
     }
+
+    @PostMapping("/top/excel")
+    public void getExcelReport(@RequestBody JSONObject requestBody,
+                               @RequestParam(defaultValue = "cost") String target,
+                               @RequestParam(defaultValue = "desc") String order,
+                               HttpServletRequest request,
+                               HttpServletResponse response) {
+
+        String startDate= requestBody.getString("startDate");
+        String endDate= requestBody.getString("endDate");
+        List<MaterialTopVO> excelData= materialTopService.selectList(endDate,startDate, target, order);
+
+        List<List<Object>> excelList= new ArrayList<>();
+        excelData.forEach(data->{
+            List<Object> temp= new ArrayList<>();
+            temp.add(data.getUrl());
+            temp.add(data.getName());
+            temp.add(data.getCost());
+            temp.add(data.getClick());
+            temp.add(data.getShowNum());
+            temp.add(data.getPlay3s());
+            temp.add(data.getPlay10s());
+            temp.add(data.getActive());
+            temp.add(data.getPay());
+            temp.add(data.getResidue());
+            temp.add(data.getRegister());
+            excelList.add(temp);
+        });
+        try{
+            String[] headers = {"视频","素材名","消耗","点击数","展示数","3s播放数","10s播放数","行为数","支付数","次留数","注册数"};
+            OutputStream os = response.getOutputStream();
+            ExportExcelUtils eeu = new ExportExcelUtils();
+            XSSFWorkbook workbook = new XSSFWorkbook();
+            eeu.exportExcel(workbook, 0, "top素材", headers, excelList);
+            HttpUtils.setResponseHeader(response, "top素材.xlsx");
+            workbook.write(os);
+            os.flush();
+            os.close();
+        }catch (IOException e){
+            log.error(e.getMessage());
+        }
+    }
 }

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProjectMemberController.java

@@ -380,16 +380,16 @@ public class ProjectMemberController {
     }
 
     /**
-     * 查询当前账户下的
+     * 查询当前账户下的快手头条传不同的mediaType
      *
      * @return
      */
     @GetMapping("/getProjectAccountByUserId")
-    public Result<List<Map<String, Object>>> getProjectAccountBy() {
+    public Result<List<Map<String, Object>>> getProjectAccountBy(String mediaType) {
         Result<List<Map<String, Object>>> resultBody = new Result<>();
         try {
             String userId = ((LoginUser) SecurityUtils.getSubject().getPrincipal()).getId();
-            List<Map<String, Object>> result = projectMemberService.getProjectAccountByUserId(userId);
+            List<Map<String, Object>> result = projectMemberService.getProjectAccountByUserId(userId,mediaType);
             resultBody.setSuccess(true);
             resultBody.setResult(result);
         } catch (Exception e) {

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/UReportFileController.java

@@ -5,18 +5,21 @@ 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 com.bstek.ureport.export.ExportManager;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.modules.ctop.entity.UReportFile;
+import org.jeecg.modules.ctop.entity.UReportFileBindUser;
 import org.jeecg.modules.ctop.service.IUReportFileService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.Arrays;
+import java.util.List;
 import java.util.Map;
 
 /**

+ 5 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/UReportFile.java

@@ -32,6 +32,7 @@ public class UReportFile {
     @TableId(type = IdType.UUID)
     @ApiModelProperty(value = "id")
     private String id;
+
     /**
      * 报表名称
      */
@@ -46,6 +47,10 @@ public class UReportFile {
     private String content;
 
     /**
+     *  报表类型 时报、日报
+     */
+    private Integer reportType;
+    /**
      * 创建时间
      */
     @ApiModelProperty(value = "创建时间")

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/entity/UReportFileBindUser.java

@@ -57,6 +57,10 @@ public class UReportFileBindUser {
     @ApiModelProperty(value = "fileName")
     private String fileName;
     /**
+     * isSubscribe
+     */
+    private Boolean isSubscribe;
+    /**
      * createTime
      */
     @ApiModelProperty(value = "createTime")

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/MaterialTopMapper.java

@@ -7,10 +7,14 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.ctop.vo.MaterialTopVO;
 
+import java.util.List;
+
 public interface MaterialTopMapper {
 
     IPage<MaterialTopVO> selectMapsPage(Page<MaterialTopVO> page, @Param(Constants.WRAPPER)QueryWrapper<MaterialTopVO> wrapper);
 
+    List<MaterialTopVO> selectList(@Param("endDate") String endDate,@Param("startDate") String startDate,@Param("target") String target,@Param("order") String order);
+
     int insertByteDanceMaterialReportAccountByDate(@Param("statDate") String statDate);
 
     int insertKuaiShouMaterialReportAccountByDate(@Param("statDate") String statDate);

+ 30 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/MaterialTopMapper.xml

@@ -26,6 +26,36 @@
             ${ew.sqlSegment}
     </select>
 
+    <select id="selectList" resultType="org.jeecg.modules.ctop.vo.MaterialTopVO">
+        SELECT
+            code,
+            url,
+            cover_url,
+            name,
+            stat_date ,
+            sum(cost) as cost,
+            sum(click) as click,
+            sum(show_num) as show_num,
+            sum(active) as active,
+            sum(register) as register,
+            sum(pay) as pay,
+            sum(phone_convert) as phone_convert,
+            sum(form_convert) as form_convert,
+            convert_rate,
+            sum(residue) as residue,
+            sum(play3s) as play3s,
+            sum(play10s) as play10s
+        FROM
+            ctop_material_report_total_result
+        where
+            stat_date&lt;=#{endDate}
+        and stat_date&gt;=#{startDate}
+        and url is not null
+        and url!=''
+        group by code
+        order by ${target} ${order}
+    </select>
+
     <insert id="insertByteDanceMaterialReportAccountByDate">
         INSERT INTO ctop_material_report_total_result (
             CODE,

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IMaterialTopService.java

@@ -3,7 +3,10 @@ package org.jeecg.modules.ctop.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.jeecg.modules.ctop.vo.MaterialTopVO;
 
+import java.util.List;
+
 public interface IMaterialTopService {
     IPage<MaterialTopVO> selectByPage(String endDate, String startDate, String target, String order, int pageNo, int pageSize);
+    List<MaterialTopVO> selectList(String endDate, String startDate, String target, String order);
     boolean insertMaterialReportAccount(String statDate);
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/IProjectMemberService.java

@@ -22,7 +22,7 @@ public interface IProjectMemberService extends IService<ProjectMember> {
 
     List<ProjectMember> getProjects(List<Integer> mediaIds);
 
-    List<Map<String, Object>> getProjectAccountByUserId(String userId);
+    List<Map<String, Object>> getProjectAccountByUserId(String userId,String mediaType);
 
     ProjectMember getProjectByParams(Long targetProject, String userId);
 

+ 7 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/service/impl/MaterialTopServiceImpl.java

@@ -12,6 +12,8 @@ import org.jeecg.modules.ctop.vo.MaterialTopVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+
 /**
  *  Created by JQ.bi on 2020.05.22
  */
@@ -38,6 +40,11 @@ public class MaterialTopServiceImpl  implements IMaterialTopService {
     }
 
     @Override
+    public List<MaterialTopVO> selectList(String endDate, String startDate, String target, String order) {
+        return materialTopMapper.selectList(endDate,startDate,target,order);
+    }
+
+    @Override
     public boolean insertMaterialReportAccount(String statDate) {
 
         int resultByteDance=materialTopMapper.insertByteDanceMaterialReportAccountByDate(statDate);
@@ -49,7 +56,6 @@ public class MaterialTopServiceImpl  implements IMaterialTopService {
             materialTopMapper.deletedMaterialReportAccountByDate(statDate);
             log.info("delete dirty data is success");
         }
-
         return resultByteDance != 0 && resultKuaishou != 0;
     }
 

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

@@ -103,11 +103,17 @@ public class ProjectMemberServiceImpl extends ServiceImpl<ProjectMemberMapper, P
     }
 
     @Override
-    public List<Map<String, Object>> getProjectAccountByUserId(String userId) {
+    public List<Map<String, Object>> getProjectAccountByUserId(String userId,String mediaType) {
         List<Map<String, Object>> result = new ArrayList<>();
         List<Integer> mediaList = new ArrayList<>();
-        mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INT);
-        mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INSIDE_INT);
+        if(mediaType.equals(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE)){
+            mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INT);
+            mediaList.add(CtopAdConstant.PLATFORM_TYPE_BYTEDANCE_INSIDE_INT);
+        }else if(mediaType.equals(CtopAdConstant.PLATFORM_TYPE_KUAISHOU)){
+            mediaList.add(CtopAdConstant.PLATFORM_TYPE_KUAISHOU_INT);
+            mediaList.add(CtopAdConstant.PLATFORM_TYPE_KUAISHOU_INSIDE_INT);
+        }
+
         //查询登录账号下的项目
         List<ProjectMember> projectMemberList = this.queryProjectMemberBy(userId, mediaList);
         if (projectMemberList.isEmpty()) {