package com.ruixuan.isc.service.impl; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.kuaishou.merchant.open.api.KsMerchantApiException; import com.kuaishou.merchant.open.api.client.AccessTokenKsMerchantClient; import com.kuaishou.merchant.open.api.common.utils.GsonUtils; import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionCpsLeaderOrderCursorListRequest; import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionCpsLeaderOrderDetailRequest; import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityItemDetailRequest; import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityOpenItemListRequest; import com.kuaishou.merchant.open.api.request.distribution.OpenDistributionInvestmentActivityOpenListRequest; import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionCpsLeaderOrderCursorListResponse; import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionCpsLeaderOrderDetailResponse; import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityItemDetailResponse; import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityOpenItemListResponse; import com.kuaishou.merchant.open.api.response.distribution.OpenDistributionInvestmentActivityOpenListResponse; import com.ruixuan.common.utils.Check; import com.ruixuan.common.utils.DateUtils; import com.ruixuan.isc.constants.KuaiShouConstants; import com.ruixuan.isc.entity.ItemCheck; import com.ruixuan.isc.entity.KuaiShouActivityInfo; import com.ruixuan.isc.entity.KuaiShouActivityOpenItemList; import com.ruixuan.isc.entity.KuaishouAccessToken; import com.ruixuan.isc.entity.KuaishouSupplyChain; import com.ruixuan.isc.mapper.KuaishouItemListMapper; import com.ruixuan.isc.mapper.SupplyChainMapper; import com.ruixuan.isc.service.IAccessTokenService; import com.ruixuan.isc.service.ISupplyChainService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; @Slf4j @Service public class SupplyChainServiceImpl implements ISupplyChainService { @Autowired private SupplyChainMapper supplyChainMapper; @Autowired private KuaishouItemListMapper itemListMapper; @Autowired private IAccessTokenService accessTokenService; @Value("${ownership.id}") private String ownershipId; @Autowired private MongoTemplate mongoTemplate; // 获取订单数据  @Override public List getOrderList(Map requestMap) { List list = supplyChainMapper.getOrderList(requestMap); if (!Check.isNull(list)) { for (int i = 0; i < list.size(); i++) { JSONObject jsonObject = list.get(i); String promoterId = jsonObject.getString("promoterId"); requestMap.put("promoterId", promoterId); List topOrders = supplyChainMapper.getTopOrders(requestMap); jsonObject.put("topOrders", topOrders); List tags = supplyChainMapper.getPromoterId(Long.valueOf(promoterId)); jsonObject.put("tags", tags); } } return list; } //达人带货详情 @Override public List anchorOrderDetail(Map requestMap) { return supplyChainMapper.anchorOrderDetail(requestMap); } //订单统计 @Override public List orderStatistics(Map requestMap) { return supplyChainMapper.orderStatistics(requestMap); } //商品列表 @Override public List itemList(Map requestMap) { List list = supplyChainMapper.itemList(requestMap); return list; } @Override public List itemBindList(Map requestMap) { return supplyChainMapper.itemBindList(requestMap); } @Override public List itemDetail(Map requestMap) { return supplyChainMapper.itemDetail(requestMap); } @Override public List itemServiceCharge(Map requestMap) { return supplyChainMapper.itemServiceCharge(requestMap); } @Override public JSONObject getOrderTotal(Map requestMap) { return supplyChainMapper.getOrderTotal(requestMap); } @Override public Double getOrderTotalRatio(Map ratioMap) { return supplyChainMapper.getOrderTotalRatio(ratioMap); } @Override public JSONObject getAmountTotal(Map requestMap) { return supplyChainMapper.getAmountTotal(requestMap); } @Override public Double getAmountTotalRatio(Map ratioMap) { return supplyChainMapper.getAmountTotalRatio(ratioMap); } @Override public JSONObject getServiceAmountTotal(Map requestMap) { return supplyChainMapper.getServiceAmountTotal(requestMap); } @Override public List getOrderRankRatioList(Map requestMap) { return supplyChainMapper.getOrderRankRatioList(requestMap); } @Override public List getOrderRankList(Map requestMap) { return supplyChainMapper.getOrderRankList(requestMap); } @Override public List getPromoterRankRatioList(Map requestMap) { return supplyChainMapper.getPromoterRankRatioList(requestMap); } @Override public List getPromoterRatioList(Map requestMap) { return supplyChainMapper.getPromoterRatioList(requestMap); } @Override public List exportPromoterTotal(Map requestMap) { return supplyChainMapper.exportPromoterTotal(requestMap); } @Override public List exportPromoter(Map requestMap) { return supplyChainMapper.exportPromoter(requestMap); } @Override public List exportOrder(Map requestMap) { return supplyChainMapper.exportOrder(requestMap); } @Override public List getTopPromoterByItemId(Map requestMap) { return supplyChainMapper.getTopPromoterByItemId(requestMap); } @Override public List bindUserItemList(Map requestMap) { return supplyChainMapper.bindUserItemList(requestMap); } @Override public List getSupplyChainUserList() { return supplyChainMapper.getSupplyChainUserList(); } @Override public boolean unbindUser(Long itemId) { return supplyChainMapper.unbindUser(itemId); } @Override public boolean bindUser(Long itemId, Long userId, String nikeName) { return supplyChainMapper.bindUser(itemId, userId, nikeName); } @Override public List adminReportList(Map requestMap) { return supplyChainMapper.adminReportList(requestMap); } @Override public List userItemDetail(Map requestMap) { return supplyChainMapper.userItemDetail(requestMap); } @Override public JSONObject getTimeIntervalRatio(Map requestMap) { return supplyChainMapper.getTimeIntervalRatio(requestMap); } @Override public List indexStatistics(Map requestMap) { return supplyChainMapper.indexStatistics(requestMap); } @Override public JSONObject itemBindSummary() { return supplyChainMapper.itemBindSummary(); } @Override public JSONObject userItemTotal(Map requestMap) { return supplyChainMapper.userItemTotal(requestMap); } @Override public List exportUserItemDetail(Map requestMap) { return supplyChainMapper.exportUserItemDetail(requestMap); } @Override public JSONObject selectOrderInfo(Map requestMap) { return supplyChainMapper.selectOrderInfo(requestMap); } @Override public JSONObject selectOrderRate(List promoterIds, List itemIds, Long statDate, Long endDate, int hour) { return supplyChainMapper.selectOrderRate(promoterIds, itemIds, statDate, endDate, hour); } @Override public JSONObject selectOrderRateBytedance(List promoterIds, List itemIds, Long statDate, Long endDate, int hour) { return supplyChainMapper.selectOrderRateBytedance(promoterIds, itemIds, statDate, endDate, hour); } @Override public List getMonthOrderAmount(Map map) { return supplyChainMapper.getMonthOrderAmount(map); } @Override public List getMonthOrderAmountBytedance(Map map) { return supplyChainMapper.getMonthOrderAmountBytedance(map); } @Override public JSONObject getMonthOrderAmountTotalBytedance(Map map) { return supplyChainMapper.getMonthOrderAmountTotalBytedance(map); } @Override public List getMonthOrderAmountByItemsBytedance(Map map) { return supplyChainMapper.getMonthOrderAmountByItemsBytedance(map); } @Override public JSONObject getMonthOrderAmountTotalByItemsBytedance(Map map) { return supplyChainMapper.getMonthOrderAmountTotalByItemsBytedance(map); } @Override public List getOrderRankRatioListBytedance(Map requestMap) { return supplyChainMapper.getOrderRankRatioListBytedance(requestMap); } @Override public List getOrderRankListBytedance(Map requestMap) { return supplyChainMapper.getOrderRankListBytedance(requestMap); } @Override public List getPromoterRankRatioListBytedance(Map requestMap) { return supplyChainMapper.getPromoterRankRatioListBytedance(requestMap); } @Override public List getPromoterRatioListBytedance(Map requestMap) { return supplyChainMapper.getPromoterRatioListBytedance(requestMap); } @Override public JSONObject selectOrderInfoBytedance(Map parMap) { return supplyChainMapper.selectOrderInfoBytedance(parMap); } @Override public List bdReportListV2ByBind(Map requestMap) { return supplyChainMapper.bdReportListV2ByBind(requestMap); } @Override public List exportBindOrder(Map requestMap) { return supplyChainMapper.exportBindOrder(requestMap); } @Override public JSONObject getMonthOrderAmountTotal(Map map) { return supplyChainMapper.getMonthOrderAmountTotal(map); } @Override public JSONObject selectOrderInfoByItemIds(Map requestMap) { return supplyChainMapper.selectOrderInfoByItemIds(requestMap); } @Override public List getMonthOrderAmountByItems(Map map) { return supplyChainMapper.getMonthOrderAmountByItems(map); } @Override public JSONObject getMonthOrderAmountTotalByItems(Map map) { return supplyChainMapper.getMonthOrderAmountTotalByItems(map); } @Override public List bdReportList(Map requestMap) { return supplyChainMapper.bdReportList(requestMap); } @Override public List bdDetailList(Map requestMap) { return supplyChainMapper.bdDetailList(requestMap); } @Override public List bdTotal(Map requestMap) { return supplyChainMapper.bdTotal(requestMap); } @Override public List exportBdDetail(Map requestMap) { return supplyChainMapper.exportBdDetail(requestMap); } @Override public String getUserName(Long promoterId) { return supplyChainMapper.getUserName(promoterId); } @Override public List exportBdReportList(Map requestMap) { return supplyChainMapper.exportBdReportList(requestMap); } @Override public List exportAdminReportList(Map requestMap) { return supplyChainMapper.exportAdminReportList(requestMap); } @Override public List getSupplyChainCourtshipUserList() { return supplyChainMapper.getSupplyChainCourtshipUserList(); } @Override public List adminReportListByBind(Map requestMap) { return supplyChainMapper.adminReportListByBind(requestMap); } @Override public List exportAdminReportListByBind(Map requestMap) { return supplyChainMapper.exportAdminReportListByBind(requestMap); } @Override public List bdReportListV2(Map requestMap) { return supplyChainMapper.bdReportListV2(requestMap); } @Override public List bdTotalV2(Map requestMap) { return supplyChainMapper.bdTotalV2(requestMap); } @Override public List bdDetailListV2(Map requestMap) { List jsonObjects = supplyChainMapper.bdDetailListV2(requestMap); if (!Check.isNull(jsonObjects)) { for (int i = 0; i < jsonObjects.size(); i++) { JSONObject jsonObject = jsonObjects.get(i); Long promoterId = jsonObject.getLong("promoterId"); List tags = supplyChainMapper.getPromoterId(promoterId); jsonObject.put("tags", tags); } } return jsonObjects; } @Override public JSONObject selectOrderInfoByItemIdsBytedance(Map requestMap) { return supplyChainMapper.selectOrderInfoByItemIdsBytedance(requestMap); } @Override public void updateOrder(JSONObject eventJSon) { try { JSONObject info = eventJSon.getJSONObject("info"); if (!Check.isNull(info)) { Long oid = info.getLong("oid"); Integer cpsOrderStatus = info.getInteger("cpsOrderStatus"); if (cpsOrderStatus == 30) { return; } if (cpsOrderStatus == 60) { Integer i = updateOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (i > 0) { log.info("订单ID:{},状态:{} 修改成功", oid, cpsOrderStatus); } else { log.error("订单ID:{},状态:{} 修改失败", oid, cpsOrderStatus); } } else { Integer i = this.updateOrderStatus(oid, cpsOrderStatus); if (i > 0) { log.info("订单ID:{},状态:{} 修改成功", oid, cpsOrderStatus); } else { log.error("订单ID:{},状态:{} 修改失败", oid, cpsOrderStatus); } } } } catch (Exception e) { e.printStackTrace(); } } private Integer updateOrderStatus(Long oid, Integer cpsOrderStatus) { if ("ruixuan".equals(ownershipId)) { int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("miaogousi".equals(ownershipId)) { int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("rocket".equals(ownershipId)) { int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("yufu".equals(ownershipId)) { int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("yuxiu".equals(ownershipId)) { int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("zhishui".equals(ownershipId)) { int zhishui = supplyChainMapper.updateZhishuiOrder(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } int yuxiu = supplyChainMapper.updateYuXiuOrder(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int ruixuan = supplyChainMapper.updateRuixuanOrder(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrder(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrder(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrder(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } } return 0; } private Integer updateOrderRegimentalSettleAmount(Long oid, Integer cpsOrderStatus) { if ("ruixuan".equals(ownershipId)) { int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("miaogousi".equals(ownershipId)) { int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("rocket".equals(ownershipId)) { int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("yufu".equals(ownershipId)) { int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("yuxiu".equals(ownershipId)) { int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } } if ("zhishui".equals(ownershipId)) { int zhishui = supplyChainMapper.updateZhishuiOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (zhishui > 0) { return zhishui; } int ruixuan = supplyChainMapper.updateRuiXuanOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (ruixuan > 0) { return ruixuan; } int mgs = supplyChainMapper.updateMgsOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (mgs > 0) { return mgs; } int rocket = supplyChainMapper.updateRocketOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (rocket > 0) { return rocket; } int yufu = supplyChainMapper.updateYufuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yufu > 0) { return yufu; } int yuxiu = supplyChainMapper.updateYuxiuOrderRegimentalSettleAmount(oid, cpsOrderStatus); if (yuxiu > 0) { return yuxiu; } } return 0; } @Override public void updateItem(JSONObject eventJSon) { try { JSONObject info = eventJSon.getJSONObject("info"); if (!Check.isNull(info)) { Long itemId = info.getLong("itemId"); Integer status = info.getInteger("status"); supplyChainMapper.updateItem(itemId, status); log.info("商品id:{},状态:{} 修改成功", itemId, status); } } catch (Exception e) { e.printStackTrace(); } } @Override public void insertOrder(JSONObject eventJSon) { JSONObject info = eventJSon.getJSONObject("info"); if (!Check.isNull(info)) { Integer messageType = info.getInteger("messageType"); //新增 if (1 == messageType) { KuaishouSupplyChain supplyChain = new KuaishouSupplyChain(info); String ownership = null; Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(supplyChain.getItemId()); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (!Check.isNull(itemCheck)) { ownership = itemCheck.getOwnership(); } // supplyChainMapper.replaceOne(ownership, supplyChain); supplyChainMapper.replaceOne("rocket", supplyChain);// todo 测试完 删除改行 放开上面 并修改数据表 } //更新 else if (2 == messageType) { Integer cpsOrderStatus = info.getInteger("cpsOrderStatus"); Long oid = info.getLong("oid"); if (cpsOrderStatus == 60 || cpsOrderStatus == 40) { // Integer i = updateOrderRegimentalSettleAmount(oid, cpsOrderStatus); Integer i = updateOrderRegimentalSettleAmountCeshi(oid, cpsOrderStatus);// todo 测试完 删除改行 放开上面 if (i <= 0) { log.error("订单ID:{},状态:{} 修改失败", oid, cpsOrderStatus); } } else { Integer i = this.updateOrderStatus(oid, cpsOrderStatus); if (i <= 0) { log.error("订单ID:{},状态:{} 修改失败", oid, cpsOrderStatus); } } } } } /*测完删除*/ private Integer updateOrderRegimentalSettleAmountCeshi(Long oid, Integer cpsOrderStatus) { return supplyChainMapper.updateRocketOrderRegimentalSettleAmountCS(oid, cpsOrderStatus); } @Override public void addList(String beginDate, String endDate, String pcursor) throws InterruptedException { String url = KuaiShouConstants.KFX_URL; Long beginTime = DateUtils.getStartLongTime(beginDate); Long endTime = DateUtils.getEndLongTime(endDate); // Map itemMap = getItemMap(); List tokens = accessTokenService.getTokenInfos(); for (KuaishouAccessToken accessToken : tokens) { getInfo(accessToken, beginTime, endTime, url, pcursor, 1); } Thread.sleep(3000); List mgsTokens = accessTokenService.getMgsTokenInfos(); for (KuaishouAccessToken accessToken : mgsTokens) { getMgsInfo(accessToken, beginTime, endTime, url, pcursor, 1); } Thread.sleep(3000); List rocketTokens = accessTokenService.getRocketTokenInfos(); for (KuaishouAccessToken accessToken : rocketTokens) { getRocketInfo(accessToken, beginTime, endTime, url, pcursor, 1); } Thread.sleep(3000); List yufuTokens = accessTokenService.getYufuTokenInfos(); for (KuaishouAccessToken accessToken : yufuTokens) { getYufuInfo(accessToken, beginTime, endTime, url, pcursor, 1); } Thread.sleep(3000); List yuxiuTokens = accessTokenService.getYuxiuTokenInfos(); for (KuaishouAccessToken accessToken : yuxiuTokens) { getYuxiuInfo(accessToken, beginTime, endTime, url, pcursor, 1); } Thread.sleep(3000); List zhishuiTokens = accessTokenService.getZhishuiTokenInfos(); for (KuaishouAccessToken accessToken : zhishuiTokens) { getZhishuiInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } @Override public void insertOrderList(Long tokenId, Integer queryType, String beginDate, String endDate) throws Exception { Long beginTime = DateUtils.getStartLongTime(beginDate); Long endTime = DateUtils.getEndLongTime(endDate); KuaishouAccessToken token = accessTokenService.getAccessToken(tokenId); insertRuixuanOrderList(queryType, token, beginTime, endTime, KuaiShouConstants.KFX_URL, "", 1); } public static void main(String[] args) { Long beginTime = DateUtils.getTimeStamp(DateUtils.getHourTime(-2)); //当前时间 Long endTime = DateUtils.getTimeStamp(DateUtils.getTime()); System.err.println(beginTime); System.err.println(endTime); } @Override public void insertNowdayOrderList(Long tokenId) throws Exception { //2小时前 时间戳 Long beginTime = DateUtils.getTimeStamp(DateUtils.getHourTime(-2)); //当前时间 Long endTime = DateUtils.getTimeStamp(DateUtils.getTime()); KuaishouAccessToken token = accessTokenService.getAccessToken(tokenId); insertRuixuanOrderList(1, token, beginTime, endTime, KuaiShouConstants.KFX_URL, "", 1); } private void insertRuixuanOrderList(Integer queryType, KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, int counts) { try { List commonlist = new ArrayList<>(); List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(queryType); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); KuaishouSupplyChain supplyChain = new KuaishouSupplyChain(info, "1"); String ownership = null; // Criteria criteria = new Criteria(); // criteria = Criteria.where("_id").is(supplyChain.getItemId()); // Query query = new Query(criteria); // ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); // if (!Check.isNull(itemCheck)) { // ownership = itemCheck.getOwnership(); // } if (Check.isNull(ownership)) { commonlist.add(supplyChain); } else { if ("ruixuan".equals(ownership)) { ruixuanList.add(supplyChain); } else if ("miaogousi".equals(ownership)) { mgsList.add(supplyChain); } else if ("rocket".equals(ownership)) { rocketList.add(supplyChain); } else if ("yufu".equals(ownership)) { yufuList.add(supplyChain); } else if ("yuxiu".equals(ownership)) { yuxiuList.add(supplyChain); } else if ("zhishui".equals(ownership)) { zhishuiList.add(supplyChain); } } } } else { log.error("===查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("msg")); log.error("游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { insertRuixuanOrderList(queryType, accessToken, beginTime, endTime, url, pcursor, counts + 1); } } //入库操作 if (!Check.isNull(commonlist)) { supplyChainMapper.replaceBatchOrder(null, commonlist); } if (!Check.isNull(ruixuanList)) { supplyChainMapper.replaceBatchOrder("ruixuan", ruixuanList); //TODO 测试完 修改该方法数据表 } if (!Check.isNull(mgsList)) { supplyChainMapper.replaceBatchOrder("miaogousi", mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.replaceBatchOrder("rocket", rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.replaceBatchOrder("yufu", yufuList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.replaceBatchOrder("yuxiu", yuxiuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.replaceBatchOrder("zhishui", zhishuiList); } if (!"nomore".equals(pcursor)) { insertRuixuanOrderList(queryType, accessToken, beginTime, endTime, url, pcursor, 1); } } catch (Exception e) { e.printStackTrace(); } } static ExecutorService insertShopInfoService = Executors.newFixedThreadPool(6); @Override public void insertShopInfo(Long tokenId, String bdtype, Integer date) throws Exception { KuaishouAccessToken token = accessTokenService.getAccessTokenBybd(tokenId, bdtype); List list = supplyChainMapper.getAllOid(bdtype, date); list.forEach(data -> insertShopInfoService.submit(() -> { try { insertShopInfo(data, token, KuaiShouConstants.KFX_URL); } catch (Exception e) { e.printStackTrace(); } })); } private void insertShopInfo(JSONObject data, KuaishouAccessToken accessToken, String url) { try { String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderDetailRequest request = new OpenDistributionCpsLeaderOrderDetailRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); request.setOid(data.getLong("oid")); request.setSellerId(data.getLong("seller_id")); request.setFundType(1); OpenDistributionCpsLeaderOrderDetailResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONArray arr = obj.getJSONArray("data"); for (int i = 0; i < arr.size(); i++) { JSONObject info = arr.getJSONObject(i); addKuaishouActivityShopInfo(info); } } } catch (Exception e) { e.printStackTrace(); } } private void addKuaishouActivityShopInfo(JSONObject info) { List list = new ArrayList<>(); JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); for (int i = 0; i < cpsOrderProductView.size(); i++) { JSONObject object = cpsOrderProductView.getJSONObject(i); list.add(object); } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceBatchShopInfo(list); } } private void getInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); if (!Check.isNull(cpsOrderProductView)) { JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { ruixuanList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } } else { log.error("===查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("msg")); log.error("游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!"nomore".equals(pcursor)) { getInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private void getMgsInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { mgsList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } else { log.error("===MGS查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg")); log.error("MGS游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getMgsInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!"nomore".equals(pcursor)) { getMgsInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private void getRocketInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { rocketList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } else { log.error("===Rocket查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg")); log.error("Rocket游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getRocketInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!"nomore".equals(pcursor)) { getRocketInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private void getYufuInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { yufuList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } else { log.error("===yufu查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg")); log.error("yufu游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getYufuInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!"nomore".equals(pcursor)) { getYufuInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private void getYuxiuInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { yuxiuList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } else { log.error("===yuxiu查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg")); log.error("yuxiu游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getYuxiuInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!"nomore".equals(pcursor)) { getYuxiuInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private void getZhishuiInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException { List ruixuanList = new ArrayList<>(); List mgsList = new ArrayList<>(); List rocketList = new ArrayList<>(); List yufuList = new ArrayList<>(); List yuxiuList = new ArrayList<>(); List zhishuiList = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionCpsLeaderOrderCursorListRequest request = new OpenDistributionCpsLeaderOrderCursorListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //排序类型 [1:按指定查询类型降序] [2:按指定查询类型升序] request.setSortType(1); //查询类型 [1:按分销订单创建时间查询] [2:按分销订单更新时间查询][4:按订单实际创建时间查询] request.setQueryType(2); //分销订单状态 [0:全部订单] [30:已付款] [50:已收货] [60:已结算] [80:已失效] request.setCpsOrderStatus(0); request.setDistributorId(0l); request.setBeginTime(beginTime); request.setEndTime(endTime); request.setPcursor(pcursor); request.setPageize(100); request.setFundType(1); OpenDistributionCpsLeaderOrderCursorListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); pcursor = data.getString("pcursor"); JSONArray orderView = data.getJSONArray("orderView"); for (int i = 0; i < orderView.size(); i++) { JSONObject info = orderView.getJSONObject(i); Integer sendStatus = info.getInteger("sendStatus"); if (Check.isNotNull(sendStatus) && sendStatus == 1) { JSONArray cpsOrderProductView = info.getJSONArray("cpsOrderProductView"); JSONObject itemJson = cpsOrderProductView.getJSONObject(0); Long itemId = itemJson.getLong("itemId"); Criteria criteria = new Criteria(); criteria = Criteria.where("_id").is(itemId); Query query = new Query(criteria); ItemCheck itemCheck = mongoTemplate.findOne(query, ItemCheck.class); if (Check.isNull(itemCheck)) { zhishuiList.add(info.getLong("oid")); } if (!Check.isNull(itemCheck)) { String ownership = itemCheck.getOwnership(); if ("ruixuan".equals(ownership)) { ruixuanList.add(info.getLong("oid")); } if ("miaogousi".equals(ownership)) { mgsList.add(info.getLong("oid")); } if ("rocket".equals(ownership)) { rocketList.add(info.getLong("oid")); } if ("yufu".equals(ownership)) { yufuList.add(info.getLong("oid")); } if ("yuxiu".equals(ownership)) { yuxiuList.add(info.getLong("oid")); } if ("zhishui".equals(ownership)) { zhishuiList.add(info.getLong("oid")); } } } } } else { log.error("===zhishui查询分销团长订单列表(open.distribution.cps.leader.order.cursor.list)失败,信息:{}", obj.getString("error_msg")); log.error("zhishui游标:{},执行次数:{}", pcursor, counts); if (counts <= 3) { getZhishuiInfo(accessToken, beginTime, endTime, url, pcursor, counts + 1); } } if (!Check.isNull(zhishuiList)) { supplyChainMapper.updateZhishuiKuaishouSupplyChain(zhishuiList); } if (!Check.isNull(yuxiuList)) { supplyChainMapper.updateYuxiuKuaishouSupplyChain(yuxiuList); } if (!Check.isNull(ruixuanList)) { supplyChainMapper.updateKuaishouSupplyChain(ruixuanList); } if (!Check.isNull(mgsList)) { supplyChainMapper.updateMgsKuaishouSupplyChain(mgsList); } if (!Check.isNull(rocketList)) { supplyChainMapper.updateRocketKuaishouSupplyChain(rocketList); } if (!Check.isNull(yufuList)) { supplyChainMapper.updateYufuKuaishouSupplyChain(yufuList); } if (!"nomore".equals(pcursor)) { getZhishuiInfo(accessToken, beginTime, endTime, url, pcursor, 1); } } private KuaishouSupplyChain organizeData(JSONObject jsonObject, Map itemMap) { KuaishouSupplyChain supplyChain = new KuaishouSupplyChain(); supplyChain.setOid(jsonObject.getLong("oid")); JSONObject item = jsonObject.getJSONArray("cpsOrderProductView").getJSONObject(0); if (!Check.isNull(item)) { supplyChain.setItemId(item.getLong("itemId")); supplyChain.setItemTitle(item.getString("itemTitle")); supplyChain.setReservePrice(item.getLong("itemPrice")); supplyChain.setImageUrl(itemListMapper.getItemImgUrl(item.getLong("itemId"))); supplyChain.setSellerId(item.getLong("sellerId")); } supplyChain.setOrderStatus(jsonObject.getInteger("cpsOrderStatus")); supplyChain.setOrderCreateTime(jsonObject.getLong("orderCreateTime")); supplyChain.setSendStatus(jsonObject.getInteger("sendStatus")); supplyChain.setSettlementBizType(jsonObject.getInteger("settlementBizType")); supplyChain.setSettlementBizTypeDesc(getSettlementBizTypeDesc(jsonObject.getInteger("settlementBizType"))); supplyChain.setSendTime(jsonObject.getLong("sendTime")); supplyChain.setRecvTime(jsonObject.getLong("recvTime")); supplyChain.setPromoterId(jsonObject.getLong("promotionId")); supplyChain.setPromoterNickName(jsonObject.getString("promotionNickName")); supplyChain.setActivityId(jsonObject.getLong("activityId")); supplyChain.setOrderAmount(jsonObject.getLong("payAmount")); supplyChain.setPayAmount(jsonObject.getLong("payAmount")); supplyChain.setRegimentalPromotionRate(jsonObject.getLong("regimentalPromotionRate")); if (!jsonObject.getString("shareRateStr").contains("正在计算中")) { supplyChain.setShareRate(jsonObject.getString("shareRateStr")); } supplyChain.setBaseAmount(jsonObject.getLong("baseAmount")); supplyChain.setRegimentalPromotionAmount(jsonObject.getLong("regimentalPromotionAmount") / 1000); supplyChain.setTotalRegimentalSettleAmount(jsonObject.getLong("settlementAmount")); supplyChain.setStatDate(DateUtils.tempToDate(jsonObject.getLong("orderCreateTime"))); supplyChain.setItemCommissionRate(itemMap.get(item.getLong("itemId"))); return supplyChain; } private String getSettlementBizTypeDesc(Integer settlementBizType) { return settlementBizType == 1 ? "快分销" : "聚力计划"; } // 获取订单佣金率 public Map getItemMap() { Map returnMap = new HashMap<>(); List list = itemListMapper.itemList(); if (!Check.isNull(list)) { for (int i = 0; i < list.size(); i++) { JSONObject jsonObject = list.get(i); returnMap.put(jsonObject.getLong("itemId"), jsonObject.getLong("itemCommissionRate")); } } return returnMap; } @Override public void addListKuaishouActivityInfo() throws InterruptedException { String url = KuaiShouConstants.KFX_URL; List mgsTokens = accessTokenService.getMgsTokenInfos(); for (KuaishouAccessToken mgsToken : mgsTokens) { getMgsInfoKuaishouActivityInfo(mgsToken, url); } Thread.sleep(3000); List rocketTokens = accessTokenService.getRocketTokenInfos(); for (KuaishouAccessToken token : rocketTokens) { getRocketInfoKuaishouActivityInfo(token, url); } Thread.sleep(3000); List tokens = accessTokenService.getTokenInfos(); for (KuaishouAccessToken accessToken : tokens) { getInfoKuaishouActivityInfo(accessToken, url); } Thread.sleep(3000); List yufutokens = accessTokenService.getYufuTokenInfos(); for (KuaishouAccessToken accessToken : yufutokens) { getYufuInfoKuaishouActivityInfo(accessToken, url); } Thread.sleep(3000); List yuxiutokens = accessTokenService.getYuxiuTokenInfos(); for (KuaishouAccessToken accessToken : yuxiutokens) { getYuxiuInfoKuaishouActivityInfo(accessToken, url); } Thread.sleep(3000); List zhishuitokens = accessTokenService.getZhishuiTokenInfos(); for (KuaishouAccessToken accessToken : zhishuitokens) { getZhishuiInfoKuaishouActivityInfo(accessToken, url); } } @Override public void addKuaishouActivityOpenItemList() throws InterruptedException { String url = KuaiShouConstants.KFX_URL; List mgsActivityIds = supplyChainMapper.getMgsKuaishouActivityInfoList(); List mgsTokens = accessTokenService.getMgsTokenInfos(); for (KuaishouAccessToken mgsToken : mgsTokens) { for (Long activityId : mgsActivityIds) { getKuaishouActivityOpenItemList(mgsToken, url, activityId, 1, "miaogousi"); } } Thread.sleep(3000); List rocketActivityIds = supplyChainMapper.getRocketKuaishouActivityInfoList(); List rocketTokens = accessTokenService.getRocketTokenInfos(); for (KuaishouAccessToken token : rocketTokens) { for (Long activityId : rocketActivityIds) { getKuaishouActivityOpenItemList(token, url, activityId, 1, "rocket"); } } Thread.sleep(3000); List activityIds = supplyChainMapper.getKuaishouActivityInfoList(); List tokens = accessTokenService.getTokenInfos(); for (KuaishouAccessToken accessToken : tokens) { for (Long activityId : activityIds) { getKuaishouActivityOpenItemList(accessToken, url, activityId, 1, "ruixuan"); } } Thread.sleep(3000); List yufuActivityIds = supplyChainMapper.getYufuKuaishouActivityInfoList(); List yufutokens = accessTokenService.getYufuTokenInfos(); for (KuaishouAccessToken accessToken : yufutokens) { for (Long activityId : yufuActivityIds) { getKuaishouActivityOpenItemList(accessToken, url, activityId, 1, "yufu"); } } Thread.sleep(30000); List yuxiuActivityIds = supplyChainMapper.getYuxiuKuaishouActivityInfoList(); List yuxiutokens = accessTokenService.getYuxiuTokenInfos(); for (KuaishouAccessToken accessToken : yuxiutokens) { for (Long activityId : yuxiuActivityIds) { getKuaishouActivityOpenItemList(accessToken, url, activityId, 1, "yuxiu"); } } Thread.sleep(30000); List zhishuiActivityIds = supplyChainMapper.getZhishuiKuaishouActivityInfoList(); List zhishuitokens = accessTokenService.getZhishuiTokenInfos(); for (KuaishouAccessToken accessToken : zhishuitokens) { for (Long activityId : zhishuiActivityIds) { getKuaishouActivityOpenItemList(accessToken, url, activityId, 1, "zhishui"); } } } @Override public List getBytedanceOrderHourDataList(Long date) { return supplyChainMapper.getBytedanceOrderHourDataList(date); } @Override public List getKuaishouOrderHourDataList(Long date) { return supplyChainMapper.getKuaishouOrderHourDataList(date); } @Override public List getTopOrders(Map requestMap) { return supplyChainMapper.getTopOrders(requestMap); } @Override public List exportItemDetail(Map requestMap) { return supplyChainMapper.exportItemDetail(requestMap); } @Override public List getKsChannelGmvHourByDate(List userList, Integer nowDate, Integer hourType) { return supplyChainMapper.getKsChannelGmvHourByDate(userList, nowDate, hourType); } @Override public List getKsCourtshipGmvHourByDate(List userList, Integer nowDate, Integer hourType) { return supplyChainMapper.getKsCourtshipGmvHourByDate(userList, nowDate, hourType); } @Override public List getBytedanceChannelGmvHourByDate(List userList, Long date, Integer hourType) { return supplyChainMapper.getBytedanceChannelGmvHourByDate(userList, date, hourType); } @Override public List getBytedanceCourtshipGmvHourByDate(List userList, Long data, Integer hourType) { return supplyChainMapper.getBytedanceCourtshipGmvHourByDate(userList, data, hourType); } @Override public List shopList(Map requestMap) { return supplyChainMapper.shopList(requestMap); } @Override public List shopDetail(Map requestMap) { return supplyChainMapper.shopDetail(requestMap); } @Override public List getItemIdsByUserId(Long userId) { return supplyChainMapper.getItemIdsByUserId(userId); } @Override public List getItemIdsByDeptId(Long deptId) { return supplyChainMapper.getItemIdsByDeptId(deptId); } @Override public List getKsChannelGmvHourByDateRoi(List userList, Integer nowDate, Integer hourType) { return supplyChainMapper.getKsChannelGmvHourByDateRoi(userList, nowDate, hourType); } @Override public List getKsCourtshipGmvHourByDateRoi(List userList, Integer nowDate, Integer hourType) { return supplyChainMapper.getKsCourtshipGmvHourByDateRoi(userList, nowDate, hourType); } @Override public List getBytedanceChannelGmvHourByDateRoi(List userList, Long dataNow, Integer hourType) { return supplyChainMapper.getBytedanceChannelGmvHourByDateRoi(userList, dataNow, hourType); } @Override public List getBytedanceCourtshipGmvHourByDateRoi(List userList, Long dataNow, Integer hourType) { return supplyChainMapper.getBytedanceCourtshipGmvHourByDateRoi(userList, dataNow, hourType); } private void getInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,tokenId:{},返回信息:{}", accessToken.getId(), obj.toJSONString()); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceKuaishouActivityInfo(list); } } private void getKuaishouActivityOpenItemList(KuaishouAccessToken accessToken, String url, Long activityId, Integer page, String dbtype) { String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenItemListRequest request = new OpenDistributionInvestmentActivityOpenItemListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); Integer offset = (page - 1) * 200; request.setOffset(offset); request.setActivityId(activityId); OpenDistributionInvestmentActivityOpenItemListResponse response = null; try { Thread.sleep(1000); response = client.execute(request); } catch (Exception e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); Integer total = null; String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("activityItemDataList"); total = data.getInteger("total"); List itemIds = new ArrayList<>(); List list = new ArrayList<>(); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); //商品活动审核状态:1-待审核,2-审核通过,3-审核拒绝,5-已失效 // if (info.getLong("itemAuditStatus") == 1 || info.getLong("itemAuditStatus") == 2) { KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info); list.add(activityInfo); // } //2-审核通过 if (info.getLong("itemAuditStatus") == 2) { itemIds.add(info.getLong("itemId")); } } if (Check.isNotNull(list) && list.size() > 0) { if ("ruixuan".equals(dbtype)) { supplyChainMapper.replaceKuaiShouActivityOpenItemList(list); } else if ("miaogousi".equals(dbtype)) { supplyChainMapper.replaceMgsKuaiShouActivityOpenItemList(list); } else if ("rocket".equals(dbtype)) { supplyChainMapper.replaceRocketKuaiShouActivityOpenItemList(list); } else if ("yufu".equals(dbtype)) { supplyChainMapper.replaceYufuKuaiShouActivityOpenItemList(list); } else if ("yuxiu".equals(dbtype)) { supplyChainMapper.replaceYuxiuKuaiShouActivityOpenItemList(list); } else if ("zhishui".equals(dbtype)) { supplyChainMapper.replaceZhishuiKuaiShouActivityOpenItemList(list); } } List> splits = Lists.newArrayList(Lists.partition(itemIds, 10)); for (List itIds : splits) { getActivityItemDetail(accessToken, url, activityId, itIds, dbtype); } } else { log.error("===团长招商活动已报名商品列表(open.distribution.investment.activity.open.item.list)失败,tokenId:{},活动ID:{}" + "\n返还信息:{}", accessToken.getId(), activityId, obj); return; } if (total - page * 200 > 0) { getKuaishouActivityOpenItemList(accessToken, url, activityId, page + 1, dbtype); } } /** * open.distribution.investment.activity.item.detail * 招商活动商品详情接口 */ private void getActivityItemDetail(KuaishouAccessToken accessToken, String url, Long activityId, List itemIds, String dbtype) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityItemDetailRequest request = new OpenDistributionInvestmentActivityItemDetailRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); request.setActivityId(activityId); request.setItemId(itemIds); OpenDistributionInvestmentActivityItemDetailResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONArray data = obj.getJSONArray("data"); for (int i = 0; i < data.size(); i++) { JSONObject info = data.getJSONObject(i); KuaiShouActivityOpenItemList activityInfo = new KuaiShouActivityOpenItemList(info); list.add(activityInfo); } if (Check.isNotNull(list) && list.size() > 0) { if ("ruixuan".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } else if ("miaogousi".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateMgsKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } else if ("rocket".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateRocketKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } else if ("yufu".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateYufuKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } else if ("yuxiu".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateYuxiuKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } else if ("zhishui".equals(dbtype)) { for (KuaiShouActivityOpenItemList kuaiShouActivityOpenItemList : list) { supplyChainMapper.updateZhishuiKuaiShouActivityOpenItemList(kuaiShouActivityOpenItemList); } } } } else { log.error("===招商活动商品详情接口(open.distribution.investment.activity.item.detail)失败,信息:{}", obj.getString("error_msg")); return; } } private KuaiShouActivityInfo organizeKuaishouActivityInfo(JSONObject jsonObject) { KuaiShouActivityInfo activityInfo = new KuaiShouActivityInfo(); activityInfo.setActivityId(jsonObject.getLong("activityId")); activityInfo.setRegimentalId(jsonObject.getLong("activityUserId")); activityInfo.setActivityTitle(jsonObject.getString("activityTitle")); activityInfo.setActivityType(jsonObject.getInteger("activityType")); activityInfo.setActivityBeginTime(DateUtils.tempToDate(jsonObject.getLong("activityBeginTime"))); activityInfo.setActivityEndTime(DateUtils.tempToDate(jsonObject.getLong("activityEndTime"))); activityInfo.setActivityStatus(jsonObject.getInteger("activityStatus")); JSONObject activityItemDataInfo = jsonObject.getJSONObject("activityItemDataView"); if (!Check.isNull(activityItemDataInfo)) { activityInfo.setApplyItemCount(activityItemDataInfo.getInteger("applyItemCount")); activityInfo.setWaitAuditItemCount(activityItemDataInfo.getInteger("waitAuditItemCount")); activityInfo.setAuditPassItemCount(activityItemDataInfo.getInteger("auditPassItemCount")); } return activityInfo; } private void getMgsInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}", obj.getString("msg")); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceMgsKuaishouActivityInfo(list); } } private void getRocketInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===Rocket团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}", obj.getString("msg")); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceRocketKuaishouActivityInfo(list); } } private void getYufuInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===Yufu团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}", obj.getString("msg")); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceYufuKuaishouActivityInfo(list); } } private void getYuxiuInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===Yuxiu团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}", obj.getString("msg")); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceYuxiuKuaishouActivityInfo(list); } } private void getZhishuiInfoKuaishouActivityInfo(KuaishouAccessToken accessToken, String url) { List list = new ArrayList<>(); String appKey = accessToken.getAppKey(); String signSecret = accessToken.getSignSecret(); if (Check.isNull(signSecret) || Check.isNull(appKey)) { return; } AccessTokenKsMerchantClient client = new AccessTokenKsMerchantClient(url, appKey, signSecret); OpenDistributionInvestmentActivityOpenListRequest request = new OpenDistributionInvestmentActivityOpenListRequest(); request.setAccessToken(accessToken.getAccessToken()); request.setApiMethodVersion(1L); //每页活动数量 request.setLimit(200); OpenDistributionInvestmentActivityOpenListResponse response = null; try { response = client.execute(request); } catch (KsMerchantApiException e) { e.printStackTrace(); } JSONObject obj = JSONObject.parseObject(GsonUtils.toJSON(response)); String code = obj.getString("code"); if ("1".equals(code)) { JSONObject data = obj.getJSONObject("data"); JSONArray result = data.getJSONArray("result"); for (int i = 0; i < result.size(); i++) { JSONObject info = result.getJSONObject(i); KuaiShouActivityInfo activityInfo = organizeKuaishouActivityInfo(info); list.add(activityInfo); } } else { log.error("===zhishui团长查询招商活动列表(open.distribution.investment.activity.open.list)失败,信息:{}", obj.getString("msg")); return; } if (Check.isNotNull(list) && list.size() > 0) { supplyChainMapper.replaceZhishuiKuaishouActivityInfo(list); } } }