|
@@ -13,12 +13,15 @@ import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.xxl.job.core.enums.NoEn;
|
|
import com.xxl.job.core.enums.NoEn;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
import org.jeecg.common.util.DateUtils;
|
|
import org.jeecg.common.util.DateUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
|
+import java.util.concurrent.Executors;
|
|
|
|
|
|
import static java.lang.Integer.valueOf;
|
|
import static java.lang.Integer.valueOf;
|
|
|
|
|
|
@@ -30,6 +33,7 @@ import static java.lang.Integer.valueOf;
|
|
* @date 2020-12-22
|
|
* @date 2020-12-22
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
|
|
+@Slf4j
|
|
public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCampaignCopyDataMapper, KuaishouCampaignCopyData> implements IKuaishouCampaignCopyDataService {
|
|
public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCampaignCopyDataMapper, KuaishouCampaignCopyData> implements IKuaishouCampaignCopyDataService {
|
|
@Autowired
|
|
@Autowired
|
|
private IBatchService batchService;
|
|
private IBatchService batchService;
|
|
@@ -49,6 +53,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
private IMessageTemplate messageTemplate;
|
|
private IMessageTemplate messageTemplate;
|
|
@Autowired
|
|
@Autowired
|
|
private IKuaiShouGroupTemplateService groupTemplateService;
|
|
private IKuaiShouGroupTemplateService groupTemplateService;
|
|
|
|
+ static ExecutorService executorService = Executors.newFixedThreadPool(15);
|
|
|
|
|
|
/**
|
|
/**
|
|
* 批量复制计划
|
|
* 批量复制计划
|
|
@@ -60,8 +65,6 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
*/
|
|
*/
|
|
@Override
|
|
@Override
|
|
public void batchCopyCampaign(KuaishouCampaignCopyData copyData) {
|
|
public void batchCopyCampaign(KuaishouCampaignCopyData copyData) {
|
|
-
|
|
|
|
-
|
|
|
|
try {
|
|
try {
|
|
CtopOauthToken token = tokenService.getTokenByAccountId(copyData.getAccountId());
|
|
CtopOauthToken token = tokenService.getTokenByAccountId(copyData.getAccountId());
|
|
if (Check.isNull(token)) {
|
|
if (Check.isNull(token)) {
|
|
@@ -96,6 +99,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
*/
|
|
*/
|
|
private void delOldCampaigns(Long accountId, Long campaignId) throws Exception {
|
|
private void delOldCampaigns(Long accountId, Long campaignId) throws Exception {
|
|
try {
|
|
try {
|
|
|
|
+ log.info("删除老计划下想关联数据,accountId:{},campaignId:{}", accountId, campaignId);
|
|
//删除组
|
|
//删除组
|
|
kuaiShouGroupService.delAllGroupByCampaignId(accountId, campaignId);
|
|
kuaiShouGroupService.delAllGroupByCampaignId(accountId, campaignId);
|
|
//删除创意
|
|
//删除创意
|
|
@@ -116,6 +120,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
private JSONObject getNewCampaigns(String accessToken, KuaishouCampaignCopyData copyData) throws Exception {
|
|
private JSONObject getNewCampaigns(String accessToken, KuaishouCampaignCopyData copyData) throws Exception {
|
|
JSONObject data = new JSONObject();
|
|
JSONObject data = new JSONObject();
|
|
try {
|
|
try {
|
|
|
|
+ log.info("获取计划下最新数据,accountId:{},campaignId:{}", copyData.getAccountId(), copyData.getOldCampaignId());
|
|
Long campaignId = copyData.getOldCampaignId();
|
|
Long campaignId = copyData.getOldCampaignId();
|
|
//根据计划ID查询快手广告组并入库
|
|
//根据计划ID查询快手广告组并入库
|
|
kuaiShouGroupService.getGroupListByPage(accessToken, copyData.getAccountId(), campaignId, 1);
|
|
kuaiShouGroupService.getGroupListByPage(accessToken, copyData.getAccountId(), campaignId, 1);
|
|
@@ -147,10 +152,12 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
* @author ZHAOXA
|
|
* @author ZHAOXA
|
|
*/
|
|
*/
|
|
private boolean createCopyUnits(CtopOauthToken token, JSONObject data) throws Exception {
|
|
private boolean createCopyUnits(CtopOauthToken token, JSONObject data) throws Exception {
|
|
|
|
+
|
|
int count = 0;
|
|
int count = 0;
|
|
String msg = "";
|
|
String msg = "";
|
|
JSONArray groups = data.getJSONArray("groups");
|
|
JSONArray groups = data.getJSONArray("groups");
|
|
JSONObject copyData = data.getJSONObject("copyData");
|
|
JSONObject copyData = data.getJSONObject("copyData");
|
|
|
|
+ log.info("开始创建组,accountId:{},campaign_id:{}", token.getAccountId(), copyData.getLong("newCampaignId"));
|
|
for (int i = 0; i < groups.size(); i++) {
|
|
for (int i = 0; i < groups.size(); i++) {
|
|
try {
|
|
try {
|
|
JSONObject group = groups.getJSONObject(i);
|
|
JSONObject group = groups.getJSONObject(i);
|
|
@@ -423,18 +430,7 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
Integer code = (Integer) returnUnitMap.get("code");
|
|
Integer code = (Integer) returnUnitMap.get("code");
|
|
if (code == 0) {
|
|
if (code == 0) {
|
|
Long unitId = (Long) returnUnitMap.get("unitId");
|
|
Long unitId = (Long) returnUnitMap.get("unitId");
|
|
- Thread thread = new Thread() {
|
|
|
|
- @Override
|
|
|
|
- public void run() {
|
|
|
|
- try {
|
|
|
|
- kuaiShouGroupService.getCreativeByUnit(token.getAccessToken(), token.getAccountId(), group.getLong("unitId"));
|
|
|
|
- batchService.copyCreative(token.getAccountId(), unitId, group.getLong("unitId"), null);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- log.error("复制创建广告创意异常", e);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- };
|
|
|
|
- thread.start();
|
|
|
|
|
|
+ createCopyCreatives(token, unitId, group.getLong("unitId"));
|
|
} else {
|
|
} else {
|
|
count++;
|
|
count++;
|
|
msg = (String) returnUnitMap.get("message");
|
|
msg = (String) returnUnitMap.get("message");
|
|
@@ -464,8 +460,22 @@ public class KuaishouCampaignCopyDataServiceImpl extends ServiceImpl<KuaishouCam
|
|
* @throws
|
|
* @throws
|
|
* @author ZHAOXA
|
|
* @author ZHAOXA
|
|
*/
|
|
*/
|
|
- private void createCopyCreatives(CtopOauthToken token, JSONObject data, KuaishouCampaignCopyData
|
|
|
|
- copyData) throws Exception {
|
|
|
|
|
|
+ private void createCopyCreatives(CtopOauthToken token, Long unitId, Long copyUnitId) {
|
|
|
|
+ executorService.submit(new Runnable() {
|
|
|
|
+ @Override
|
|
|
|
+ public void run() {
|
|
|
|
+ try {
|
|
|
|
+ log.info("开始多线程执行创建创意,accountId:{},新组:{},老组:{}", token.getAccountId(), unitId, copyUnitId);
|
|
|
|
+ kuaiShouGroupService.getCreativeByUnit(token.getAccessToken(), token.getAccountId(), copyUnitId);
|
|
|
|
+ Thread.sleep(200l);
|
|
|
|
+ batchService.copyCreative(token.getAccountId(), unitId, copyUnitId, null);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|