Pārlūkot izejas kodu

素材池功能

zhaoxian 4 gadi atpakaļ
vecāks
revīzija
4fa6a2a38a

+ 48 - 8
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/controller/KuaishouProjectVideoGetController.java

@@ -1,6 +1,7 @@
 package cn.com.ctop.kuaishou.modules.batch.controller;
 
 import cn.com.ctop.common.module.annotation.AutoLog;
+import cn.com.ctop.common.module.utils.Check;
 import cn.com.ctop.common.module.utils.QueryGenerator;
 import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouProjectVideoGet;
 import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouProjectVideoGetService;
@@ -20,7 +21,6 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.PutMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMethod;
@@ -60,7 +60,6 @@ public class KuaishouProjectVideoGetController {
      * @param kuaishouProjectVideoGet
      * @param pageNo
      * @param pageSize
-     * @param req
      * @return
      */
     @GetMapping(value = "/list")
@@ -74,18 +73,18 @@ public class KuaishouProjectVideoGetController {
         }
         return Result.error("查询失败");
     }
+
     /**
      * 素材数量统计
      *
-     * @param kuaishouProjectVideoGet
-     * @param pageNo
-     * @param pageSize
-     * @param req
      * @return
      */
     @GetMapping(value = "/getVideoTotalNumber")
     public Result<Object> getVideoTotalNumber(Long projectId) {
         try {
+            if (Check.isNull(projectId)) {
+                return Result.error("请选择项目");
+            }
             return kuaishouProjectVideoGetService.getVideoTotalNumber(projectId);
         } catch (Exception e) {
             e.printStackTrace();
@@ -94,6 +93,47 @@ public class KuaishouProjectVideoGetController {
     }
 
     /**
+     * 素材详情数据
+     * put_start_time
+     *
+     * @return
+     */
+    @GetMapping(value = "/getVideoDetails")
+    public Result<Object> getVideoDetails(String signature) {
+        try {
+            if (Check.isNull(signature)) {
+                return Result.error("请选择素材");
+            }
+            return kuaishouProjectVideoGetService.getVideoDetails(signature);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+    /**
+     * 素材已关联账户数据
+     * put_start_time
+     *
+     * @return
+     */
+    @GetMapping(value = "/getAccountVideos")
+    public Result<Object> getAccountVideos(String signature, Long projectId, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) {
+        try {
+            if (Check.isNull(signature)) {
+                return Result.error("请选择素材");
+            }
+            if (Check.isNull(projectId)) {
+                return Result.error("请选择项目");
+            }
+            return kuaishouProjectVideoGetService.getAccountVideos(signature, projectId, pageNo, pageSize);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return Result.error("查询失败");
+    }
+
+    /**
      * 添加
      *
      * @param kuaishouProjectVideoGet
@@ -132,7 +172,7 @@ public class KuaishouProjectVideoGetController {
      */
     @AutoLog(value = "快手-项目下视频信息-编辑")
     @ApiOperation(value = "快手-项目下视频信息-编辑", notes = "快手-项目下视频信息-编辑")
-    @PutMapping(value = "/edit")
+    @PostMapping(value = "/edit")
     public Result<KuaishouProjectVideoGet> edit(@RequestBody KuaishouProjectVideoGet kuaishouProjectVideoGet) {
         Result<KuaishouProjectVideoGet> result = new Result<KuaishouProjectVideoGet>();
         KuaishouProjectVideoGet kuaishouProjectVideoGetEntity = kuaishouProjectVideoGetService.getById(kuaishouProjectVideoGet.getId());
@@ -141,7 +181,7 @@ public class KuaishouProjectVideoGetController {
         } else {
             boolean ok = kuaishouProjectVideoGetService.updateById(kuaishouProjectVideoGet);
             if (ok) {
-                result.success("修改成功!");
+                result.success("操作成功!");
             }
         }
 

+ 8 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/entity/KuaishouProjectVideoGet.java

@@ -106,6 +106,14 @@ public class KuaishouProjectVideoGet {
     @ApiModelProperty(value = "素材名称")
     private String photoName;
     /**
+     * 允许投放起始时间
+     */
+    private String putStartTime;
+    /**
+     * 允许投放结束时间
+     */
+    private String putEndTime;
+    /**
      * 创建时间
      */
     @Excel(name = "创建时间", width = 20, format = "yyyy-MM-dd HH:mm:ss")

+ 9 - 1
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/KuaishouProjectVideoGetMapper.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * 快手-项目下视频信息
@@ -24,5 +25,12 @@ public interface KuaishouProjectVideoGetMapper extends BaseMapper<KuaishouProjec
 
     List<KuaishouProjectVideoGet> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet);
 
-    JSONObject getVideoTotalNumber(@Param("projectId") Long projectId);
+    JSONObject getVideoTotalNumber(Map<String, Object> paramsMap);
+
+    JSONObject getVideoDetails(@Param("signature") String signature);
+
+    Long getAccountVideosTotal(@Param("signature") String signature, @Param("projectId") Long projectId);
+
+    List<JSONObject> getAccountVideos(@Param("signature") String signature, @Param("projectId") Long projectId);
+
 }

+ 108 - 3
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/mapper/xml/KuaishouProjectVideoGetMapper.xml

@@ -17,7 +17,10 @@
         stat_date,
         signature,
         photo_name,
-        update_time
+        update_time,
+        material_tag,
+        supplier_account_id,
+        supplier_account_name
         )
         values
         <foreach collection="list" item="video" separator=",">
@@ -36,6 +39,9 @@
             #{video.signature},
             #{video.photoName},
             #{video.updateTime}
+            #{video.materialTag},
+            #{video.supplierAccountId},
+            #{video.supplierAccountName}
             )
         </foreach>
     </insert>
@@ -98,9 +104,108 @@
     </select>
 
      <select id="getVideoTotalNumber" resultType="com.alibaba.fastjson.JSONObject">
+         SELECT
+            IFNULL(t1.total,0) 'total',
+            IFNULL(t2.validCount,0) 'validCount',
+            IFNULL(t3.todayUpCount,0) 'todayUpCount',
+            IFNULL(t4.yesterdayUpCount,0) 'yesterdayUpCount',
+            IFNULL(t5.thisWeekCount,0) 'thisWeekCount',
+            IFNULL(t6.lastWeekCount,0) 'lastWeekCount'
+         FROM
+         (
+         SELECT COUNT(1) total FROM ctop_kuaishou_project_video_get where project_id = #{projectId}
+         ) t1
+         LEFT JOIN
+         (
+         SELECT COUNT(1) validCount FROM ctop_kuaishou_report_daily_material t1
+         INNER JOIN ctop_user_allocation t2 ON t1.account_id = t2.account_id
+         WHERE t2.project_id = #{projectId}
+         AND t1.stat_date = #{today}
+         AND t1.charge>0
+         ) t2 ON 1=1
+         LEFT JOIN
+         (
+         SELECT COUNT(1) todayUpCount FROM ctop_kuaishou_project_video_get where project_id = #{projectId}
+         AND stat_date LIKE CONCAT(#{today},'%')
+         ) t3 ON 1=1
+         LEFT JOIN
+         (
+         SELECT COUNT(1) yesterdayUpCount FROM ctop_kuaishou_project_video_get where project_id = #{projectId}
+         AND stat_date LIKE CONCAT(DATE_SUB(#{today},INTERVAL 1 day),'%')
+         ) t4 ON 1=1
+         LEFT JOIN
+         (
+         SELECT COUNT(1) thisWeekCount FROM ctop_kuaishou_project_video_get where project_id = #{projectId}
+         AND stat_date >= #{monday}
+         AND stat_date &lt;= now()
+         ) t5 ON 1=1
+         LEFT JOIN
+         (
+         SELECT COUNT(1) lastWeekCount FROM ctop_kuaishou_project_video_get where project_id = #{projectId}
+         AND stat_date >= #{lastStartDate}
+         AND stat_date &lt;= CONCAT(#{lastEndDate},' 23:59:59')
+         ) t6 ON 1=1
+    </select>
+
+    <select id="getVideoDetails" resultType="com.alibaba.fastjson.JSONObject">
         SELECT
-        FROM ctop_kuaishou_project_video_get
-        where project_id = #{projectId}
+            IFNULL(t1.id,'') 'id',
+            IFNULL(t1.photo_name,'') 'photoName',
+            IFNULL(t1.signature,'') 'signature',
+            IFNULL(t1.`status`,'') 'status',
+            IFNULL(t1.channel_type,'') 'channelType',
+            IFNULL(t1.stat_date,'') 'statDate',
+            IFNULL(t1.create_time,'') 'createTime',
+            IFNULL(t1.put_start_time,'') 'putStartTime',
+            IFNULL(t1.put_end_time,'') 'putEndTime',
+            IFNULL(t2.plan_name,'') 'planName',
+            IFNULL(t2.shot_name,'') 'shotName',
+            IFNULL(t2.clip_name,'') 'clipName',
+            IFNULL(t1.supplier_account_name,'无') 'supplierAccountName'
+        FROM ctop_kuaishou_project_video_get t1
+                 LEFT JOIN ctop_material_ascription t2 ON t1.signature = t2.material_id
+        WHERE t1.signature = #{signature}
+    </select>
+
+    <select id="getAccountVideosTotal" resultType="java.lang.Long">
+        SELECT
+            IFNULL(COUNT(1),0)
+        FROM (
+                 select t1.account_id
+                 FROM ctop_kuaishou_report_daily_material t1
+                          LEFT JOIN ctop_user_allocation t2 ON t1.account_id = t2.account_id
+                 WHERE t2.project_id = #{projectId}
+                   AND t1.signature =#{signature}
+                 GROUP BY t1.account_id
+             ) t
+    </select>
+
+    <select id="getAccountVideos" resultType="com.alibaba.fastjson.JSONObject">
+        SELECT
+            t2.auth_name 'authName',
+            t2.account_id 'accountId',
+            t1.stat_date 'statDate',
+            t3.rejectCount,
+            (SELECT COUNT(0) FROM ctop_kuaishou_creative WHERE account_id = t1.account_id) 'creativeCount',
+            IFNULL(SUM(t1.charge),0) 'charge',
+            IFNULL(SUM(t1.photo_show),0) 'photoShow',
+            IFNULL(SUM(t1.photo_click),0) 'photoClick',
+            IFNULL(SUM(t1.aclick),0) 'aclick',
+            IFNULL(SUM(t1.bclick),0) 'bclick',
+            CONCAT(IFNULL(CAST(ROUND(SUM(t1.photo_click)/SUM(t1.photo_show)*100,2) AS CHAR),0),'%') 'photoClickRatio',
+            CONCAT(IFNULL(CAST(ROUND(SUM(t1.bclick)/SUM(t1.aclick)*100,2) AS CHAR),0),'%') 'actionRatio',
+            IFNULL(ROUND(SUM(t1.charge)/SUM(t1.aclick)*1000,2),0) 'impression1kCost',
+            IFNULL(ROUND(SUM(t1.charge)/SUM(t1.photo_click),2),0) 'photoClickCost',
+            IFNULL(ROUND(SUM(t1.charge)/SUM(t1.bclick),2),0) 'actionCost'
+        FROM ctop_kuaishou_report_daily_material t1
+         LEFT JOIN ctop_user_allocation t2 ON t1.account_id = t2.account_id
+         LEFT JOIN (
+            SELECT COUNT(1) 'rejectCount',account_id FROM ctop_kuaishou_creative WHERE `status` =42 GROUP BY account_id
+        ) t3 ON t1.account_id = t3.account_id
+        WHERE t2.project_id = #{projectId}
+          AND t1.signature =#{signature}
+        GROUP BY t1.account_id
+
     </select>
 
 </mapper>

+ 5 - 0
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/IKuaishouProjectVideoGetService.java

@@ -20,4 +20,9 @@ public interface IKuaishouProjectVideoGetService extends IService<KuaishouProjec
     Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet,Integer pageNo,Integer pageSize);
 
     Result<Object> getVideoTotalNumber(Long projectId);
+
+    Result<Object> getVideoDetails(String signature);
+
+    Result<Object> getAccountVideos(String signature,Long projectId,Integer pageNo,Integer pageSize);
+
 }

+ 4 - 2
module-kuaishou/src/main/java/cn/com/ctop/kuaishou/modules/batch/service/impl/KuaishouProjectVideoGetServiceImpl.java

@@ -11,13 +11,15 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.github.pagehelper.PageHelper;
 import com.github.pagehelper.PageInfo;
-import com.xxl.job.core.util.DateUtil;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.util.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * 快手-项目下视频信息
@@ -50,7 +52,7 @@ public class KuaishouProjectVideoGetServiceImpl extends ServiceImpl<KuaishouProj
 
     @Override
     public Result<Object> queryPageList(KuaishouProjectVideoGet kuaishouProjectVideoGet, Integer pageNo, Integer pageSize) {
-        Long total =projectVideoGetMapper.queryPageListTotal(kuaishouProjectVideoGet);
+        Long total = projectVideoGetMapper.queryPageListTotal(kuaishouProjectVideoGet);
         PageHelper.startPage(pageNo, pageSize, false);
         PageInfo pageInfo = new PageInfo(projectVideoGetMapper.queryPageList(kuaishouProjectVideoGet));
         pageInfo.setTotal(total);