|
|
@@ -0,0 +1,90 @@
|
|
|
+package cn.com.ctop.job.kuaishou.data.service.impl;
|
|
|
+
|
|
|
+import cn.com.ctop.job.kuaishou.data.constant.KuaishouConstant;
|
|
|
+import cn.com.ctop.job.kuaishou.data.entity.KuaishouAccountOperationRecordList;
|
|
|
+import cn.com.ctop.job.kuaishou.data.entity.OauthToken;
|
|
|
+import cn.com.ctop.job.kuaishou.data.mapper.OauthTokenMapper;
|
|
|
+import cn.com.ctop.job.kuaishou.data.mapper.OperationRecordMapper;
|
|
|
+import cn.com.ctop.job.kuaishou.data.service.IOauthTokenService;
|
|
|
+import cn.com.ctop.job.kuaishou.data.service.IOperationRecordService;
|
|
|
+import cn.com.ctop.job.kuaishou.data.utils.HttpUtils;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Value;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 账户操作记录
|
|
|
+ *
|
|
|
+ * @version V1.0
|
|
|
+ */
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class OperationRecordServiceImpl implements IOperationRecordService {
|
|
|
+
|
|
|
+
|
|
|
+ @Value("${api.kuaishou.postUrl}")
|
|
|
+ private String postUrl;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private OperationRecordMapper operationRecordMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void getOperationRecordList(String accessToken, Long advertiserId, String startDate, String endDate, int page) {
|
|
|
+
|
|
|
+ log.info("快手账户操作记录=======》》》账户:{},日期{}---{},page----{}",advertiserId,startDate,endDate,page);
|
|
|
+ String url = postUrl + KuaishouConstant.OPERATION_RECORD_LIST;
|
|
|
+ Map<String, String> headers = new HashMap<>();
|
|
|
+ headers.put("Access-Token", accessToken);
|
|
|
+ Map<String, Object> param = new HashMap<>();
|
|
|
+ param.put("start_date", startDate);
|
|
|
+ param.put("end_date", endDate);
|
|
|
+ param.put("advertiser_id", advertiserId);
|
|
|
+
|
|
|
+ param.put("page_size", 500);
|
|
|
+ param.put("page", page);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, param, headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ String message = resultJson.getString("message");
|
|
|
+ if (null == code || code != 0) {
|
|
|
+ log.error("获取快手账户操作记录表异常:{},accountId:{}", message, advertiserId);
|
|
|
+ log.error("入参:{}", param);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JSONArray details = resultJson.getJSONObject("data").getJSONArray("details");
|
|
|
+
|
|
|
+ if (null == details || details.size() <= 0) {
|
|
|
+ log.error("快手账户操作记录返回详情为空,accountId:{}", advertiserId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<KuaishouAccountOperationRecordList> recordList = new ArrayList();
|
|
|
+
|
|
|
+ for (Object detail : details) {
|
|
|
+ JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(detail));
|
|
|
+ KuaishouAccountOperationRecordList operationRecordList = JSONObject.toJavaObject(jsonObject, KuaishouAccountOperationRecordList.class);
|
|
|
+ operationRecordList.setAdvertiserId(advertiserId);
|
|
|
+ recordList.add(operationRecordList);
|
|
|
+ }
|
|
|
+ operationRecordMapper.replaceAdvertiserOperationRecord(recordList);
|
|
|
+ getOperationRecordList(accessToken,advertiserId,startDate,endDate,page+1);
|
|
|
+
|
|
|
+ log.info("快手操作记录========获取完成:accountId:{}", advertiserId);
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|