|
@@ -0,0 +1,424 @@
|
|
|
+package org.jeecg.modules.kuaishou.service.impl;
|
|
|
+
|
|
|
+import cn.com.ctop.common.utils.Check;
|
|
|
+import cn.com.ctop.common.utils.HttpUtils;
|
|
|
+import cn.com.ctop.common.utils.PropertiesUtils;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import constant.KuaishouInterfaceConstant;
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jeecg.modules.kuaishou.entity.*;
|
|
|
+import org.jeecg.modules.kuaishou.mapper.*;
|
|
|
+import org.jeecg.modules.kuaishou.service.IKuaiShouUpdateService;
|
|
|
+import org.jeecg.modules.kuaishou.service.IKuaishouInterfaceService;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+@Slf4j
|
|
|
+@Service
|
|
|
+public class KuaiShouUpdateServiceImpl implements IKuaiShouUpdateService {
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouCampaignMapper campaignMapper;
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouCampaignDayBudgetMapper campaignDayBudgetMapper;
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouGroupMapper groupMapper;
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouGroupDayBudgetMapper groupDayBudgetMapper;
|
|
|
+ @Autowired
|
|
|
+ private IKuaishouInterfaceService interfaceService;
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouGroupBidMapper groupBidMapper;
|
|
|
+ @Autowired
|
|
|
+ private KuaiShouCampaignStatusMapper campaignStatusMapper;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateCampaign(String token, Long advertiserId, Long campaignId, Long dayBudget, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_CAMPAIGN;
|
|
|
+ Map<String, String> headers = new HashMap<String, String>();
|
|
|
+ headers.put("Content-Type", "application/json");
|
|
|
+ headers.put("Access-Token", token);
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("campaign_id", campaignId);
|
|
|
+ params.put("day_budget", dayBudget);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ QueryWrapper<KuaiShouCampaign> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("accountId", advertiserId);
|
|
|
+ queryWrapper.eq("campaign_id", campaignId);
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
|
+ queryWrapper.last("limit 1");
|
|
|
+ KuaiShouCampaign campaign = campaignMapper.selectOne(queryWrapper);// 查询本地记录信息
|
|
|
+ KuaiShouCampaignDayBudget campaignDayBudget = new KuaiShouCampaignDayBudget();
|
|
|
+ campaignDayBudget.setAccountId(advertiserId);
|
|
|
+ campaignDayBudget.setCampaignId(campaignId);
|
|
|
+ campaignDayBudget.setLoginId(loginId);
|
|
|
+ campaignDayBudget.setDayBudget(campaign.getDayBudget());
|
|
|
+ campaignDayBudget.setUpdateDayBudget(dayBudget);
|
|
|
+ int i = campaignDayBudgetMapper.insert(campaignDayBudget);
|
|
|
+ if (i > 0) {
|
|
|
+ log.info("修改广告计划预算记录表添加成功,campaignId:{}", campaignId);
|
|
|
+ }
|
|
|
+ interfaceService.getCampaign(token, advertiserId, campaignId);
|
|
|
+ returnMap.put("code", 0);
|
|
|
+ returnMap.put("success", true);
|
|
|
+ returnMap.put("message", "修改成功");
|
|
|
+
|
|
|
+ } else {
|
|
|
+ log.error("修改广告计划预算失败,advertiserId:{},campaignId:{},返回信息:{}", advertiserId, campaignId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告计划预算返回结果为空,advertiserId:{},campaignId:{}", advertiserId, campaignId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告计划预算异常,advertiserId:{},campaignId:{}", advertiserId, campaignId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告计划预算异常");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改广告组预算
|
|
|
+ *
|
|
|
+ * @param token
|
|
|
+ * @param advertiserId
|
|
|
+ * @param unitId
|
|
|
+ * @param dayBudget
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateUnitDayBudget(String token, Long advertiserId, Long unitId, Long dayBudget, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_UNIT;
|
|
|
+ Map<String, String> headers = new HashMap<String, String>();
|
|
|
+ headers.put("Content-Type", "application/json");
|
|
|
+ headers.put("Access-Token", token);
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("day_budget", dayBudget);
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("unit_id", unitId);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ QueryWrapper<KuaiShouGroup> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("accountId", advertiserId);
|
|
|
+ queryWrapper.eq("unit_id", unitId);
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
|
+ queryWrapper.last("limit 1");
|
|
|
+ KuaiShouGroup group = groupMapper.selectOne(queryWrapper);
|
|
|
+
|
|
|
+ KuaiShouGroupDayBudget groupDayBudget = new KuaiShouGroupDayBudget();
|
|
|
+ groupDayBudget.setAccountId(advertiserId);
|
|
|
+ groupDayBudget.setUnitId(unitId);
|
|
|
+ groupDayBudget.setDayBudget(group.getDayBudget());
|
|
|
+ groupDayBudget.setUpdateDayBudget(dayBudget);
|
|
|
+ groupDayBudget.setLoginId(loginId);
|
|
|
+ int i = groupDayBudgetMapper.insert(groupDayBudget);
|
|
|
+ if (i > 0) {
|
|
|
+ log.info("修改广告组预算本地记录添加成功,unitId:{}", unitId);
|
|
|
+ }
|
|
|
+ interfaceService.getGroup(token, advertiserId, unitId); // 重新请求数据
|
|
|
+ returnMap.put("code", 0);
|
|
|
+ returnMap.put("success", true);
|
|
|
+ returnMap.put("message", "修改成功");
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组预算失败,advertiserId:{},unitId:{},返回信息:{}", advertiserId, unitId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组预算返回结果为空,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告组算异常,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改广告组出价
|
|
|
+ *
|
|
|
+ * @param token
|
|
|
+ * @param advertiserId
|
|
|
+ * @param unitId
|
|
|
+ * @param bid
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateUnitBid(String token, Long advertiserId, Long unitId, Long bid, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_UNIT_BID;
|
|
|
+ Map<String, String> headers = new HashMap<String, String>();
|
|
|
+ headers.put("Content-Type", "application/json");
|
|
|
+ headers.put("Access-Token", token);
|
|
|
+
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("bid", bid);
|
|
|
+ params.put("unit_id", unitId);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ QueryWrapper<KuaiShouGroup> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("unit_id", unitId);
|
|
|
+ queryWrapper.eq("accountId", advertiserId);
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
|
+ queryWrapper.last("limit 1");
|
|
|
+ KuaiShouGroup group = groupMapper.selectOne(queryWrapper);
|
|
|
+
|
|
|
+ KuaiShouGroupBid groupBid = new KuaiShouGroupBid();
|
|
|
+ groupBid.setAccountId(advertiserId);
|
|
|
+ groupBid.setUnitId(unitId);
|
|
|
+ groupBid.setBid(group.getBid());
|
|
|
+ groupBid.setUpdateBid(bid);
|
|
|
+ groupBid.setLoginId(loginId);
|
|
|
+ int i = groupBidMapper.insert(groupBid);
|
|
|
+ if (i > 0) {
|
|
|
+ log.info("修改广告组出价本地记录添加成功,unitId:{}", unitId);
|
|
|
+ }
|
|
|
+ interfaceService.getGroup(token, advertiserId, unitId); // 重新请求数据
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组出价失败,advertiserId:{},unitId:{},返回信息:{}", advertiserId, unitId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组出价返回结果为空,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告组出价异常,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组出价异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改广告计划状态
|
|
|
+ *
|
|
|
+ * @param token
|
|
|
+ * @param advertiserId
|
|
|
+ * @param campaignId
|
|
|
+ * @param putStatus
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateCampaignStatus(String token, Long advertiserId, Long campaignId, int putStatus, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_CAMPAIGN_STATUS;
|
|
|
+ Map<String, String> headers = new HashMap<>();
|
|
|
+ headers.put("Access-Token", token);
|
|
|
+ headers.put("Content-Type", "application/json");
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("put_status", putStatus);
|
|
|
+ params.put("campaign_id", campaignId);
|
|
|
+
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, headers);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+
|
|
|
+ QueryWrapper<KuaiShouCampaign> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.eq("campaign_id", campaignId);
|
|
|
+ queryWrapper.eq("accountId", advertiserId);
|
|
|
+ queryWrapper.orderByDesc("create_time");
|
|
|
+ queryWrapper.last("limit 1");
|
|
|
+ KuaiShouCampaign campaign = campaignMapper.selectOne(queryWrapper);// 查询本地记录信息
|
|
|
+
|
|
|
+ KuaiShouCampaignStatus campaignStatus = new KuaiShouCampaignStatus();
|
|
|
+ campaignStatus.setAccountId(advertiserId);
|
|
|
+ campaignStatus.setCampaignId(campaignId);
|
|
|
+ campaignStatus.setPutStatus(campaign.getStatus());
|
|
|
+ campaignStatus.setUpdatePutStatus(putStatus);
|
|
|
+ campaignStatus.setLoginId(loginId);
|
|
|
+ int i = campaignStatusMapper.insert(campaignStatus);
|
|
|
+ if (i > 0) {
|
|
|
+ log.info("修改广告计划状态本地记录添加成功,campaignId:{}", campaignId);
|
|
|
+ }
|
|
|
+
|
|
|
+ interfaceService.getCampaign(token, advertiserId, campaignId);
|
|
|
+ returnMap.put("code", 0);
|
|
|
+ returnMap.put("success", true);
|
|
|
+ returnMap.put("message", "修改成功");
|
|
|
+ } else {
|
|
|
+ log.error("修改广告计划状态失败,advertiserId:{},campaignId:{},返回信息:{}", advertiserId, campaignId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告计划状态返回结果为空,advertiserId:{},campaignId:{}", advertiserId, campaignId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告计划状态异常,advertiserId:{},campaignId:{}", advertiserId, campaignId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告计划状态算异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * TODO
|
|
|
+ * 修好广告组状态
|
|
|
+ *
|
|
|
+ * @param token
|
|
|
+ * @param advertiserId
|
|
|
+ * @param unitId
|
|
|
+ * @param putStatus
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateUnitStatus(String token, Long advertiserId, Long unitId, int putStatus, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_UNIT_STATUS;
|
|
|
+ Map<String, String> header = new HashMap<>();
|
|
|
+ header.put("Access-Token", token);
|
|
|
+ header.put("Content-Type", "application/json");
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("unit_id", unitId);
|
|
|
+ params.put("put_status", putStatus);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, header);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ returnMap.put("code", 0);
|
|
|
+ returnMap.put("success", true);
|
|
|
+ returnMap.put("message", "修改成功");
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组状态失败,advertiserId:{},unitId:{},返回信息:{}", advertiserId, unitId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告组状态返回结果为空,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告组状态异常,advertiserId:{},unitId:{}", advertiserId, unitId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组状态异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改 广告创意状态
|
|
|
+ *
|
|
|
+ * @param token
|
|
|
+ * @param advertiserId
|
|
|
+ * @param creativeId
|
|
|
+ * @param putStatus
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public Map<String, Object> updateCreativeStatus(String token, Long advertiserId, Long creativeId, int putStatus, String loginId) {
|
|
|
+ Map<String, Object> returnMap = new HashMap<>();
|
|
|
+ try {
|
|
|
+ String url = PropertiesUtils.getConfig("kuaishou_api_url") + KuaishouInterfaceConstant.UPDATE_CREATIVE_STATUS;
|
|
|
+ Map<String, String> header = new HashMap<>();
|
|
|
+ header.put("Access-Token", token);
|
|
|
+ header.put("Content-Type", "application/json");
|
|
|
+ JSONObject params = new JSONObject();
|
|
|
+ params.put("put_status", putStatus);
|
|
|
+ params.put("advertiser_id", advertiserId);
|
|
|
+ params.put("creative_id", creativeId);
|
|
|
+ String result = HttpUtils.httpPostRequest(url, params, header);
|
|
|
+ JSONObject resultJson = JSONObject.parseObject(result);
|
|
|
+ if (!Check.isNull(resultJson)) {
|
|
|
+ Integer code = resultJson.getInteger("code");
|
|
|
+ if (code == 0) {
|
|
|
+ returnMap.put("code", 0);
|
|
|
+ returnMap.put("success", true);
|
|
|
+ returnMap.put("message", "修改成功");
|
|
|
+ } else {
|
|
|
+ log.error("修改广告创意状态失败,advertiserId:{},creativeId:{},返回信息:{}", advertiserId, creativeId, resultJson);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", resultJson.getString("message"));
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ log.error("修改广告创意状态返回结果为空,advertiserId:{},creativeId:{}", advertiserId, creativeId);
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告组预算返回结果为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("修改广告创意状态异常,advertiserId:{},creativeId:{}", advertiserId, creativeId);
|
|
|
+ e.printStackTrace();
|
|
|
+ returnMap.put("code", -1);
|
|
|
+ returnMap.put("success", false);
|
|
|
+ returnMap.put("message", "修改广告创意状态异常");
|
|
|
+ }
|
|
|
+
|
|
|
+ return returnMap;
|
|
|
+ }
|
|
|
+}
|