|
@@ -0,0 +1,161 @@
|
|
|
+package cn.com.ctop.kuaishou.modules.batch.service.impl;
|
|
|
+
|
|
|
+import cn.com.ctop.common.module.utils.Check;
|
|
|
+import cn.com.ctop.common.module.utils.HttpUtils;
|
|
|
+import cn.com.ctop.common.module.utils.KuaishouInterfaceConstant;
|
|
|
+import cn.com.ctop.common.module.utils.PropertiesUtils;
|
|
|
+import cn.com.ctop.kuaishou.modules.batch.entity.KuaishouOperationRecord;
|
|
|
+import cn.com.ctop.kuaishou.modules.batch.mapper.KuaishouOperationRecordMapper;
|
|
|
+import cn.com.ctop.kuaishou.modules.batch.service.IKuaishouInterfaceService2;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.apache.commons.collections.ArrayStack;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class KuaishouInterfaceServiceImpl2 implements IKuaishouInterfaceService2 {
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private KuaishouOperationRecordMapper kuaishouOperationRecordMapper;
|
|
|
+
|
|
|
+
|
|
|
+ public void getOperationRecord(){
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getOperationRecordByPage(Long advertiserId, String accessToken, Integer page, Integer pageSize, Integer operationTarget) {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.OPERATION_RECORD;
|
|
|
+ Map<String, String> headers = new HashMap<>();
|
|
|
+ headers.put("Access-Token", accessToken);
|
|
|
+ headers.put("Content-Type", " application/json");
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("advertiser_id", advertiserId);
|
|
|
+ //if(operationType != null){
|
|
|
+ // json.put("operation_type", operationType);
|
|
|
+ //}
|
|
|
+ if(operationTarget != null){
|
|
|
+ json.put("operation_target", operationTarget);
|
|
|
+ }
|
|
|
+
|
|
|
+ json.put("page", page);
|
|
|
+ json.put("page_size", pageSize);
|
|
|
+ String result = HttpUtils.kuaiShouhttpPostRequest(url, json.toJSONString(), headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+
|
|
|
+ if(!Check.isNull(resultJson)){
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ JSONObject data = resultJson.getJSONObject("data");
|
|
|
+ if (!Check.isNull(data)) {
|
|
|
+ List<KuaishouOperationRecord> recordList = new ArrayList();
|
|
|
+
|
|
|
+ Integer totalCount = data.getInteger("total_count");
|
|
|
+ JSONArray dataArr = data.getJSONArray("details");
|
|
|
+ for (int i = 0; i < dataArr.size(); i++) {
|
|
|
+ JSONObject dataJson = JSONObject.parseObject(dataArr.get(i).toString());
|
|
|
+ if (!Check.isNull(dataJson)) {
|
|
|
+
|
|
|
+ Date operationTime = dataJson.getDate("operation_time");
|
|
|
+ Integer operationType = dataJson.getInteger("operation_type");
|
|
|
+ operationTarget = dataJson.getInteger("operation_target");
|
|
|
+ Integer roleType = dataJson.getInteger("role_type");
|
|
|
+ String objectId = dataJson.getString("object_id");
|
|
|
+ String objectName = dataJson.getString("object_name");
|
|
|
+
|
|
|
+ if (page == 1) { //如果页数为1,删除原来的数据
|
|
|
+ KuaishouOperationRecord recordDelete = new KuaishouOperationRecord();
|
|
|
+ recordDelete.setAccountId(advertiserId);
|
|
|
+ recordDelete.setOperationTime(operationTime);
|
|
|
+ recordDelete.setOperationType(operationType);
|
|
|
+ recordDelete.setRoleType(roleType);
|
|
|
+ recordDelete.setObjectName(objectName);
|
|
|
+ recordDelete.setOperationTarget(operationTarget);
|
|
|
+ recordDelete.setObjectId(objectId);
|
|
|
+ operationRecordDelete(recordDelete,operationTarget);
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray contentLogArray = dataJson.getJSONArray("content_log");
|
|
|
+ int jsize = contentLogArray.size();
|
|
|
+ for(int j=0; j<jsize;j++){
|
|
|
+ JSONObject log = contentLogArray.getJSONObject(j);
|
|
|
+ KuaishouOperationRecord record = new KuaishouOperationRecord();
|
|
|
+ record.setAccountId(advertiserId);
|
|
|
+ record.setOperationTime(operationTime);
|
|
|
+ record.setOperationType(operationType);
|
|
|
+ record.setRoleType(roleType);
|
|
|
+ record.setObjectName(objectName);
|
|
|
+ record.setOperationTarget(operationTarget);
|
|
|
+ record.setObjectId(objectId);
|
|
|
+ record.setFieldName(log.getString("field_name"));
|
|
|
+ record.setOriginalData(log.getString("original_data"));
|
|
|
+ record.setUpdateData(log.getString("update_data"));
|
|
|
+
|
|
|
+ recordList.add(record);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ operationRecordInsert(recordList,operationTarget);
|
|
|
+
|
|
|
+ Integer totalPage = (totalCount - 1) / pageSize + 1;
|
|
|
+ if (page < totalPage) {
|
|
|
+ getOperationRecordByPage(advertiserId, accessToken, page + 1, pageSize, operationTarget);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("获取地域列表返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void operationRecordDelete(KuaishouOperationRecord recordDelete, Integer operationTarget){
|
|
|
+ if(operationTarget == 1){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoAccount(recordDelete);
|
|
|
+ }else if(operationTarget == 2){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoCampaign(recordDelete);
|
|
|
+ }else if(operationTarget == 3){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoUnit(recordDelete);
|
|
|
+ }else if(operationTarget == 4){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoCreative(recordDelete);
|
|
|
+ }else if(operationTarget == 5){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoVideo(recordDelete);
|
|
|
+ }else if(operationTarget == 6){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoApp(recordDelete);
|
|
|
+ }else if(operationTarget == 7){
|
|
|
+ kuaishouOperationRecordMapper.deleteOperationRecordInfoPackage(recordDelete);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void operationRecordInsert(List<KuaishouOperationRecord> recordList, Integer operationTarget){
|
|
|
+ if(operationTarget == 1){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoAccount(recordList);
|
|
|
+ }else if(operationTarget == 2){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoCampaign(recordList);
|
|
|
+ }else if(operationTarget == 3){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoUnit(recordList);
|
|
|
+ }else if(operationTarget == 4){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoCreative(recordList);
|
|
|
+ }else if(operationTarget == 5){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoVideo(recordList);
|
|
|
+ }else if(operationTarget == 6){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoApp(recordList);
|
|
|
+ }else if(operationTarget == 7){
|
|
|
+ kuaishouOperationRecordMapper.insertOperationRecordInfoPackage(recordList);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+}
|