|
@@ -2,17 +2,20 @@ package org.jeecg.modules.bytedance.advertise.service.impl;
|
|
|
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
-import org.checkerframework.checker.units.qual.A;
|
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
|
+import org.jeecg.common.util.DateUtils;
|
|
import org.jeecg.modules.bytedance.advertise.dockapi.marketing;
|
|
import org.jeecg.modules.bytedance.advertise.dockapi.marketing;
|
|
import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
|
|
import org.jeecg.modules.bytedance.advertise.entity.AiBytedanceAdvertiserStrategy;
|
|
|
|
+import org.jeecg.modules.bytedance.advertise.entity.ByteDanceVideoInfo;
|
|
import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
|
|
import org.jeecg.modules.bytedance.advertise.entity.UpdAdStaOrCpaOrBudget;
|
|
-import org.jeecg.modules.bytedance.advertise.entity.UpdPriceVo;
|
|
|
|
|
|
+import org.jeecg.modules.bytedance.advertise.enums.BytedanceCreativeMatTypeEnum;
|
|
import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
|
|
import org.jeecg.modules.bytedance.advertise.mapper.AiBytedanceAdvertiserStrategyMapper;
|
|
import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
|
|
import org.jeecg.modules.bytedance.advertise.service.IAiBytedanceAdvertiserStrategyService;
|
|
|
|
+import org.jeecg.modules.bytedance.advertise.service.IByteDanceVideoInfoService;
|
|
import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
|
|
import org.jeecg.modules.bytedance.common.entity.CtopOauthToken;
|
|
|
|
+import org.jeecg.modules.bytedance.common.entity.UserAllocation;
|
|
import org.jeecg.modules.bytedance.common.service.ICtopOauthTokenService;
|
|
import org.jeecg.modules.bytedance.common.service.ICtopOauthTokenService;
|
|
-import org.jeecg.modules.bytedance.common.utils.Check;
|
|
|
|
|
|
+import org.jeecg.modules.bytedance.common.service.IUserAllocationService;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
@@ -35,7 +38,8 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private AiBytedanceAdvertiserStrategyMapper aiBytedanceAdvertiserStrategyMapper;
|
|
private AiBytedanceAdvertiserStrategyMapper aiBytedanceAdvertiserStrategyMapper;
|
|
-
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private IUserAllocationService userAllocationService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -46,16 +50,48 @@ public class AiBytedanceAdvertiserStrategyServiceImpl extends ServiceImpl<AiByte
|
|
log.info("token获取失败=>accountId:{}", token.getAccountId());
|
|
log.info("token获取失败=>accountId:{}", token.getAccountId());
|
|
return videoCnt;
|
|
return videoCnt;
|
|
}
|
|
}
|
|
- //TODO 需要添加定时获取视频+图片的定时任务
|
|
|
|
|
|
+
|
|
|
|
+ UserAllocation userAllocation = userAllocationService.getByAccountId(strategy.getAccountId());
|
|
|
|
+ if(null == userAllocation||userAllocation.getAccountStatus()!=0){
|
|
|
|
+ log.info("此账户不存在或者已经被关闭=>accountId:{}", token.getAccountId());
|
|
|
|
+ return videoCnt;
|
|
|
|
+ }
|
|
|
|
+ //查询相应的素材信息
|
|
|
|
+ Long timeStart = BytedanceCreativeMatTypeEnum.getStartTimeByType(createType.toString());
|
|
|
|
+ Long timeEnd = BytedanceCreativeMatTypeEnum.getEndTimeByType(createType.toString());
|
|
|
|
+ Long now = System.currentTimeMillis();
|
|
|
|
+ String startTime = DateUtils.formatDateTime(now + timeStart * 60 * 1000L);
|
|
|
|
+ String endTime = DateUtils.formatDateTime(now + timeEnd * 60 * 1000L);
|
|
|
|
+ List<ByteDanceVideoInfo> videoInfos = getVideoInfoByCreateType(userAllocation.getProjectId(),strategy,startTime,endTime,createType,videoCnt);
|
|
|
|
+ if(null == videoInfos||videoInfos.isEmpty()){
|
|
|
|
+ log.info("获取视频素材为空=>accountId:{}", token.getAccountId());
|
|
|
|
+ return videoCnt;
|
|
|
|
+ }
|
|
|
|
+ //
|
|
/**
|
|
/**
|
|
* 1:创建组
|
|
* 1:创建组
|
|
* 查询当前账户排列到的dp链接标识号
|
|
* 查询当前账户排列到的dp链接标识号
|
|
|
|
+ *
|
|
*/
|
|
*/
|
|
-
|
|
|
|
//2:创建计划
|
|
//2:创建计划
|
|
//3:创建创意
|
|
//3:创建创意
|
|
return videoCnt;
|
|
return videoCnt;
|
|
}
|
|
}
|
|
|
|
+ @Autowired
|
|
|
|
+ private IByteDanceVideoInfoService videoInfoService;
|
|
|
|
+ private List<ByteDanceVideoInfo> getVideoInfoByCreateType(Long projectId,AiBytedanceAdvertiserStrategy strategy, String startTime, String endTime, Integer createType, Long videoCnt) {
|
|
|
|
+ //1:上新素材 2:跑量素材 3:遗漏素材 4:打捞素材
|
|
|
|
+ if(createType == 1||createType == 3){
|
|
|
|
+ return videoInfoService.listByParams(strategy.getAccountId(),startTime,endTime,videoCnt,0);
|
|
|
|
+ }else if(createType == 2){
|
|
|
|
+ startTime = startTime.substring(0,10);
|
|
|
|
+ endTime = endTime.substring(0,10);
|
|
|
|
+ return videoInfoService.topMatByParams(projectId,strategy.getAccountId(),startTime,endTime,videoCnt);
|
|
|
|
+ }else if(createType == 4){
|
|
|
|
+ return videoInfoService.listByParams(strategy.getAccountId(),startTime,endTime,videoCnt,20);
|
|
|
|
+ }
|
|
|
|
+ return null;
|
|
|
|
+ }
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|