瀏覽代碼

媒介报表

hcst_sunzhen 4 年之前
父節點
當前提交
250a5fb746

+ 13 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/MediaReportCtrl.java

@@ -11,6 +11,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.util.DateUtils;
 import org.jeecg.modules.ctop.service.IMediaReportService;
  import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -20,6 +21,7 @@ import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.io.OutputStream;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -74,12 +76,13 @@ public class MediaReportCtrl {
     //获取所有产品
     @ResponseBody
     @RequestMapping(value = "/getAllProductList")
-    public Result<List<Product>> deleteProduct(HttpServletRequest request, HttpServletResponse response){
+    public Result<List<Product>> getAllProductList(@RequestBody JSONObject requestBody,
+                                                   HttpServletRequest request, HttpServletResponse response){
         log.info("/ctop/product/getAllProductList 方法开始");
         Result<List<Product>> result = new Result();
 
         try {
-            List<Product> allProductList = mediaReportService.getAllProductList();
+            List<Product> allProductList = mediaReportService.getAllProductList(requestBody.getInteger("mediaType"));
             result.setResult(allProductList);
         }catch (Exception e){
             log.error(e.getMessage());
@@ -221,12 +224,17 @@ public class MediaReportCtrl {
             result.setMessage("参数有误");
         }
 
+        String today = requestBody.getString("todayDate");
+        Date todayDate = DateUtils.parseDate(today, "yyyy-MM-dd");
+        Date yesterdayDate = DateUtils.addDay(todayDate, -1);
+        String yesterday = DateUtils.formatDate(yesterdayDate);
+
         List<JSONObject> excelData = mediaReportService.exportMediaReportExcel(requestBody);
 
         List<List<Object>> excelList= new ArrayList<>();
         excelData.forEach(data->{
             List<Object> temp= new ArrayList<>();
-            temp.add(data.get("mediaType")==null?"-":data.get("mediaType"));
+            temp.add(data.get("mediaType")==null?"-":(data.getInteger("mediaType")==1?"头条":"快手"));
             //temp.add(data.get("advertiserId")==null?"-":data.get("advertiserId"));
             temp.add(data.get("advertiserName")==null?"-":data.get("advertiserName"));
             temp.add(data.get("productName")==null?"-":data.get("productName"));
@@ -236,10 +244,11 @@ public class MediaReportCtrl {
             temp.add(data.get("todayCost"));
             temp.add(data.get("yesterdayCost"));
             temp.add(data.get("diffCost"));
+            temp.add(data.get("companyName"));
             excelList.add(temp);
         });
         try{
-            String[] headers = {"媒体类型","广告主","产品","运营","销售",requestBody.getString("todayDate"),requestBody.getString("yesterdayDate"),"消耗差"};
+            String[] headers = {"媒体类型","广告主","产品","运营","销售",requestBody.getString("todayDate"),yesterday,"消耗差","区域"};
             OutputStream os = response.getOutputStream();
             ExportExcelUtils eeu = new ExportExcelUtils();
             XSSFWorkbook workbook = new XSSFWorkbook();

+ 23 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/controller/ProductController.java

@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 
@@ -272,8 +273,29 @@ public class ProductController {
             return result;
         }
 
+        List<Long> dtoProjectIds = dto.getProjectIds();
+        List<Long> projectIdsHas = productService.getProjectIdsByProductId(dto.getProductId());
+        List<Long> addProjectIds = new ArrayList<>();
+
+        for(Long dtoProjectId:dtoProjectIds){
+            int filter = 0;
+            for(Long projectIdHas:projectIdsHas){
+                if(projectIdHas.equals(dtoProjectId)){
+                    filter = -1;
+                    break;
+                }
+            }
+            if(filter == 0){
+                addProjectIds.add(dtoProjectId);
+            }
+        }
+
+        if(addProjectIds==null || addProjectIds.size()==0){
+            return result;
+        }
+
         try {
-            productService.insertProductProjectMap(dto.getProductId(), dto.getProjectIds());
+            productService.insertProductProjectMap(dto.getProductId(), addProjectIds);
         }catch (Exception e){
             log.error(e.getMessage());
             result.setSuccess(false);

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/MediaReportMapper.java

@@ -23,6 +23,6 @@ public interface MediaReportMapper {
     //头条媒介报表
     List<JSONObject> toutiaoMediaReport(@Param("today") String today ,@Param("yesterday") String yesterday, @Param("advertiserId") String advertiserId, @Param("companyId")String companyId, @Param("productId")Long productId);
 
-    List<Product> getAllProductList();
+    List<Product> getAllProductList(@Param("mediaType")Integer mediaType);
 
 }

+ 5 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/ctop/mapper/xml/MediaReportMapper.xml

@@ -366,7 +366,7 @@
                         d.company_id
                 ) t
         ORDER BY
-            t.todayCost DESC
+        t.companyName,t.todayCost DESC
     </select>
 
     <select id="toutiaoMediaReport" resultType="com.alibaba.fastjson.JSONObject">
@@ -468,7 +468,7 @@
                     a.id,
                     d.company_id
             ) t
-        ORDER BY t.todayCost DESC
+        ORDER BY t.companyName, t.todayCost DESC
 
     </select>
 
@@ -481,6 +481,9 @@
         ctop_product
         where
         product_status = 1
+        <if test="mediaType != null">
+            and media_id = #{mediaType}
+        </if>
     </select>
 
 </mapper>

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

@@ -12,7 +12,7 @@ public interface IMediaReportService {
 
     List<JSONObject> queryProjectNameByAdvertiserId(String advertiserId);
 
-    List<Product> getAllProductList();
+    List<Product> getAllProductList(Integer mediaType);
 
     PageInfo<JSONObject> queryReportByCondition(int pageNo,int pageSize,JSONObject requestBody);
 

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

@@ -30,8 +30,8 @@ public class MediaReportServiceImpl implements IMediaReportService {
     }
 
     @Override
-    public List<Product> getAllProductList(){
-        return mediaReportMapper.getAllProductList();
+    public List<Product> getAllProductList(Integer mediaType){
+        return mediaReportMapper.getAllProductList(mediaType);
     }
 
 
@@ -183,7 +183,7 @@ public class MediaReportServiceImpl implements IMediaReportService {
         if(mediaType == 2){
             return mediaReportMapper.kuaishouMediaReport(today, yesterday, advertiserId, companyId, productId);
         }else if(mediaType == 1){
-            return mediaReportMapper.kuaishouMediaReport(today, yesterday, advertiserId, companyId, productId);
+            return mediaReportMapper.toutiaoMediaReport(today, yesterday, advertiserId, companyId, productId);
         }
         return null;
     }

+ 1 - 3
module-common/src/main/java/cn/com/ctop/common/module/service/IProductService.java

@@ -40,8 +40,6 @@ public interface IProductService extends IService<Product> {
 
     PageInfo<ProductVO> getProductList(String advertiserName, String productName, Integer pageNum, Integer pageSize);
 
-
-
-
+    List<Long> getProjectIdsByProductId(Long productId);
 
 }

+ 7 - 0
module-common/src/main/java/cn/com/ctop/common/module/service/impl/ProductServiceImpl.java

@@ -131,6 +131,13 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
 
     }
 
+    @Override
+    public List<Long> getProjectIdsByProductId(Long productId){
+
+        return productMapper.getProjectIdsByProductId(productId);
+
+    }
+
 
 
 

+ 1 - 1
module-toutiao/src/main/java/cn/com/ctop/toutiao/modules/report/service/impl/BytedanceInterfaceServiceImpl.java

@@ -251,7 +251,7 @@ public class BytedanceInterfaceServiceImpl implements IBytedanceInterfaceService
             retry.setStartDate(startDate);
             retry.setEndDate(endDate);
             retry.setStatusCode(code);
-            retry.setType(2);  //1素材报表重试,2视频素材报表重试
+            retry.setType(1);  //1试玩报表
             bytedanceReportPlayableDailyMapper.replaceMaterialRetry(retry);
         }
         log.info("头条试玩报表当前accountId为:{}  {}~{},结束" , accountId, startDate,endDate);