|
@@ -3,8 +3,10 @@ package cn.com.ctop.kuaishou.modules.report.service.impl;
|
|
|
import cn.com.ctop.common.module.service.IMaterialAscriptionService;
|
|
|
import cn.com.ctop.kuaishou.modules.batch.service.IKuaiShouReportDailyMaterialService;
|
|
|
import cn.com.ctop.kuaishou.modules.report.entity.KuaiShouReportDailyMaterial;
|
|
|
+import cn.com.ctop.kuaishou.modules.report.entity.KuaishouProjectVideoEtlInfo;
|
|
|
import cn.com.ctop.kuaishou.modules.report.entity.KuaishouVideoEtlInfo;
|
|
|
import cn.com.ctop.kuaishou.modules.report.mapper.KuaishouVideoEtlInfoMapper;
|
|
|
+import cn.com.ctop.kuaishou.modules.report.service.IKuaishouProjectVideoEtlInfoService;
|
|
|
import cn.com.ctop.kuaishou.modules.report.service.IKuaishouVideoEtlInfoService;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -51,7 +53,7 @@ public class KuaishouVideoEtlInfoServiceImpl extends ServiceImpl<KuaishouVideoEt
|
|
|
|
|
|
String signature = material.getSignature();
|
|
|
KuaishouVideoEtlInfo etlInfo = this.getBySignature(signature);
|
|
|
- KuaiShouReportDailyMaterial nowData = dailyMaterialService.getEtlDataByParams(signature,date);
|
|
|
+ KuaiShouReportDailyMaterial nowData = dailyMaterialService.getEtlDataByParams(signature,date,null);
|
|
|
String minDate = nowData.getStatDate();
|
|
|
Integer days = DateUtils.getdaysOfTwoDate(minDate,date);
|
|
|
if(null == etlInfo){
|
|
@@ -169,6 +171,118 @@ public class KuaishouVideoEtlInfoServiceImpl extends ServiceImpl<KuaishouVideoEt
|
|
|
}
|
|
|
|
|
|
@Autowired
|
|
|
+ private IKuaishouProjectVideoEtlInfoService kuaishouProjectVideoEtlInfoService;
|
|
|
+ @Override
|
|
|
+ public void etlKuaishouVideoInfoGroupByProjectId(Date getDate) {
|
|
|
+ String date = DateUtils.formatDate(getDate);
|
|
|
+ //1:查询单当日视频信息--以项目汇总
|
|
|
+ List<KuaiShouReportDailyMaterial> materials = dailyMaterialService.getSignatureByDateGroupByProjectId(date);
|
|
|
+ if(null!=materials&&!materials.isEmpty()){
|
|
|
+ CountDownLatch countDownLatch= new CountDownLatch(materials.size());
|
|
|
+ materials.forEach(material->{
|
|
|
+ executorService.submit(()->{
|
|
|
+ try {
|
|
|
+ if(null == material.getSignature()||material.getSignature().trim().equals("")){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if(null == material.getProjectId()||material.getProjectId() == 0){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ String signature = material.getSignature();
|
|
|
+ Long projectId = material.getProjectId();
|
|
|
+ KuaishouProjectVideoEtlInfo etlInfo = kuaishouProjectVideoEtlInfoService.getByProjectVideoEtlInfoByParams(signature,projectId);
|
|
|
+ KuaiShouReportDailyMaterial nowData = dailyMaterialService.getEtlDataByParams(signature,date,projectId);
|
|
|
+ String minDate = nowData.getStatDate();
|
|
|
+ Integer days = DateUtils.getdaysOfTwoDate(minDate,date);
|
|
|
+ if(null == etlInfo){
|
|
|
+ //第一次查询的数据
|
|
|
+ etlInfo = new KuaishouProjectVideoEtlInfo(nowData,projectId);
|
|
|
+ JSONObject ascription = materialAscriptionService.getDetailByCode(signature);
|
|
|
+ String planId = null;
|
|
|
+ if(null!=ascription){
|
|
|
+ planId = ascription.getString("planId");
|
|
|
+ if(null!=planId&&!planId.trim().equals("")){
|
|
|
+ etlInfo.setPlanId(planId);
|
|
|
+ }
|
|
|
+ String planName = ascription.getString("planName");
|
|
|
+ if(null!=planName&&!planName.trim().equals("")){
|
|
|
+ etlInfo.setPlanName(planName);
|
|
|
+ }
|
|
|
+ String clipId = ascription.getString("clipId");
|
|
|
+ if(null!=clipId&&!clipId.trim().equals("")){
|
|
|
+ etlInfo.setClipId(clipId);
|
|
|
+ }
|
|
|
+ String clipName = ascription.getString("clipName");
|
|
|
+ if(null!=clipName&&!clipName.trim().equals("")){
|
|
|
+ etlInfo.setClipName(clipName);
|
|
|
+ }
|
|
|
+ String shotId = ascription.getString("shotId");
|
|
|
+ if(null!=shotId&&!shotId.trim().equals("")){
|
|
|
+ etlInfo.setShotId(shotId);
|
|
|
+ }
|
|
|
+ String shotName = ascription.getString("shotName");
|
|
|
+ if(null!=shotName&&!shotName.trim().equals("")){
|
|
|
+ etlInfo.setShotName(shotName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(null!=planId){
|
|
|
+ String companyName = kuaishouVideoEtlInfoMapper.getCompanyNameByUserId(planId);
|
|
|
+ if (null!=companyName&&!companyName.trim().equals("")){
|
|
|
+ etlInfo.setCompanyName(companyName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //计算投放总天数
|
|
|
+ if(days <= 7){
|
|
|
+ etlInfo.setSingleWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ if(days <= 14){
|
|
|
+ etlInfo.setTwoWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ if(days <= 28){
|
|
|
+ etlInfo.setFourWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ etlInfo.setCreateTime(new Date());
|
|
|
+ etlInfo.setUpdateTime(new Date());
|
|
|
+ kuaishouProjectVideoEtlInfoService.save(etlInfo);
|
|
|
+ }else{
|
|
|
+ //只需要更新汇总数据
|
|
|
+ etlInfo.setTotalCost(nowData.getCharge());
|
|
|
+ etlInfo.setAclick(nowData.getAclick());
|
|
|
+ etlInfo.setBclick(nowData.getBclick());
|
|
|
+ etlInfo.setPhotoClick(nowData.getPhotoClick());
|
|
|
+ etlInfo.setPhotoShow(nowData.getPhotoShow());
|
|
|
+ etlInfo.setUpdateTime(new Date());
|
|
|
+ //计算投放总天数
|
|
|
+ if(days <= 7){
|
|
|
+ etlInfo.setSingleWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ if(days <= 14){
|
|
|
+ etlInfo.setTwoWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ if(days <= 28){
|
|
|
+ etlInfo.setFourWeekCost(nowData.getCharge());
|
|
|
+ }
|
|
|
+ kuaishouProjectVideoEtlInfoService.updateById(etlInfo);
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+
|
|
|
+ }finally {
|
|
|
+ countDownLatch.countDown();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+ try {
|
|
|
+ countDownLatch.await();
|
|
|
+ } catch (InterruptedException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ log.info("{}数据获取完成",date);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
private IMaterialAscriptionService materialAscriptionService;
|
|
|
@Override
|
|
|
public KuaishouVideoEtlInfo getBySignature(String signature) {
|