BytedanceServiceImpl.java 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460
  1. package com.ruixuan.bytedance.service.impl;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.doudian.open.api.alliance_colonelActivityProduct.AllianceColonelActivityProductRequest;
  4. import com.doudian.open.api.alliance_colonelActivityProduct.AllianceColonelActivityProductResponse;
  5. import com.doudian.open.api.alliance_colonelActivityProduct.param.AllianceColonelActivityProductParam;
  6. import com.doudian.open.api.alliance_instituteColonelActivityList.AllianceInstituteColonelActivityListRequest;
  7. import com.doudian.open.api.alliance_instituteColonelActivityList.AllianceInstituteColonelActivityListResponse;
  8. import com.doudian.open.api.alliance_instituteColonelActivityList.data.ActivityListItem;
  9. import com.doudian.open.api.alliance_instituteColonelActivityList.data.AllianceInstituteColonelActivityListData;
  10. import com.doudian.open.api.alliance_instituteColonelActivityList.param.AllianceInstituteColonelActivityListParam;
  11. import com.doudian.open.api.buyin_colonelActivityDetail.BuyinColonelActivityDetailRequest;
  12. import com.doudian.open.api.buyin_colonelActivityDetail.BuyinColonelActivityDetailResponse;
  13. import com.doudian.open.api.buyin_colonelActivityDetail.data.BuyinColonelActivityDetailData;
  14. import com.doudian.open.api.buyin_colonelActivityDetail.param.BuyinColonelActivityDetailParam;
  15. import com.doudian.open.api.buyin_colonelMultiSettlementOrders.BuyinColonelMultiSettlementOrdersRequest;
  16. import com.doudian.open.api.buyin_colonelMultiSettlementOrders.BuyinColonelMultiSettlementOrdersResponse;
  17. import com.doudian.open.api.buyin_colonelMultiSettlementOrders.param.BuyinColonelMultiSettlementOrdersParam;
  18. import com.doudian.open.api.buyin_colonel_trusteeshipList.BuyinColonelTrusteeshipListRequest;
  19. import com.doudian.open.api.buyin_colonel_trusteeshipList.BuyinColonelTrusteeshipListResponse;
  20. import com.doudian.open.api.buyin_colonel_trusteeshipList.param.BuyinColonelTrusteeshipListParam;
  21. import com.doudian.open.api.buyin_decryptContactInfo.BuyinDecryptContactInfoRequest;
  22. import com.doudian.open.api.buyin_decryptContactInfo.BuyinDecryptContactInfoResponse;
  23. import com.doudian.open.api.buyin_decryptContactInfo.data.BuyinDecryptContactInfoData;
  24. import com.doudian.open.api.buyin_decryptContactInfo.param.BuyinDecryptContactInfoParam;
  25. import com.doudian.open.api.buyin_instituteOrderColonel.BuyinInstituteOrderColonelRequest;
  26. import com.doudian.open.api.buyin_instituteOrderColonel.BuyinInstituteOrderColonelResponse;
  27. import com.doudian.open.api.buyin_instituteOrderColonel.data.ColonelOrderInfo;
  28. import com.doudian.open.api.buyin_instituteOrderColonel.data.ColonelOrderInfoSecond;
  29. import com.doudian.open.api.buyin_instituteOrderColonel.data.Data;
  30. import com.doudian.open.api.buyin_instituteOrderColonel.data.OrdersItem;
  31. import com.doudian.open.api.buyin_instituteOrderColonel.param.BuyinInstituteOrderColonelParam;
  32. import com.doudian.open.core.AccessToken;
  33. import com.ruixuan.bytedance.entity.BytedanceColonelActivity;
  34. import com.ruixuan.bytedance.entity.BytedanceColonelActivityDetail;
  35. import com.ruixuan.bytedance.entity.BytedanceOrderList;
  36. import com.ruixuan.bytedance.mapper.BytedanceColonelActivityMapper;
  37. import com.ruixuan.bytedance.mapper.BytedanceMapper;
  38. import com.ruixuan.bytedance.service.IBytedanceAccessTokenService;
  39. import com.ruixuan.bytedance.service.IBytedanceService;
  40. import com.ruixuan.common.utils.Check;
  41. import com.ruixuan.common.utils.DateUtils;
  42. import lombok.extern.slf4j.Slf4j;
  43. import org.springframework.beans.BeanUtils;
  44. import org.springframework.beans.factory.annotation.Autowired;
  45. import org.springframework.stereotype.Service;
  46. import java.util.ArrayList;
  47. import java.util.List;
  48. @Slf4j
  49. @Service
  50. public class BytedanceServiceImpl implements IBytedanceService {
  51. @Autowired
  52. private IBytedanceAccessTokenService tokenService;
  53. @Autowired
  54. private BytedanceColonelActivityMapper bytedanceColonelActivityMapper;
  55. @Autowired
  56. private BytedanceMapper bytedanceMapper;
  57. /**
  58. * 新增团长活动 信息
  59. *
  60. * @param 信息
  61. */
  62. @Override
  63. public void addBytedanceColonelActivityList(Long page) {
  64. AccessToken accessToken = tokenService.getAccessToken(1L);
  65. AllianceInstituteColonelActivityListRequest request = new AllianceInstituteColonelActivityListRequest();
  66. AllianceInstituteColonelActivityListParam param = request.getParam();
  67. param.setStatus(0);
  68. param.setSearchType(0L);
  69. param.setSortType(0L);
  70. param.setPage(page);
  71. param.setPageSize(20L);
  72. AllianceInstituteColonelActivityListResponse response = request.execute(accessToken);
  73. if (Check.isNull(response) || !"10000".equals(response.getCode())) {
  74. log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/alliance/instituteColonelActivityList;(团长活动查询接口)", param, response);
  75. return;
  76. }
  77. AllianceInstituteColonelActivityListData data = response.getData();
  78. List<ActivityListItem> activityList = data.getActivityList();
  79. if (Check.isNotNull(activityList)) {
  80. List<BytedanceColonelActivity> list = new ArrayList<>();
  81. for (ActivityListItem activityItem : activityList) {
  82. BytedanceColonelActivity activity = new BytedanceColonelActivity();
  83. BeanUtils.copyProperties(activityItem, activity);
  84. activity.setActivityStartTime(DateUtils.strDateToInt(activityItem.getActivityStartTime()));
  85. activity.setActivityEndTime(DateUtils.strDateToInt(activityItem.getActivityEndTime()));
  86. activity.setApplicationStartTime(DateUtils.strDateToInt(activityItem.getApplicationStartTime()));
  87. activity.setApplicationEndTime(DateUtils.strDateToInt(activityItem.getApplicationEndTime()));
  88. if (Check.isNotNull(activityItem.getCategoriesLimit())) {
  89. activity.setCategoriesLimit(JSONObject.toJSON(activityItem.getCategoriesLimit()).toString());
  90. }
  91. activity.setInstitutionId(data.getInstitutionId());
  92. activity.setColonelBuyinId(data.getColonelBuyinId());
  93. list.add(activity);
  94. }
  95. bytedanceMapper.replaceBatchActivitys(list);
  96. //添加详情
  97. for (BytedanceColonelActivity activity : list) {
  98. BytedanceColonelActivityDetail activityDetail = bytedanceColonelActivityMapper.getDetailByActivityId(activity.getActivityId());
  99. if (Check.isNull(activityDetail)) {
  100. addBytedanceColonelActivityDetail(activity.getActivityId());
  101. }
  102. }
  103. int size = data.getActivityList().size();
  104. if (size >= 20) {
  105. addBytedanceColonelActivityList(page + 1);
  106. }
  107. }
  108. }
  109. @Override
  110. public void addBytedanceColonelActivityDetail(Long activityId) {
  111. AccessToken accessToken = tokenService.getAccessToken(1L);
  112. BuyinColonelActivityDetailRequest request = new BuyinColonelActivityDetailRequest();
  113. BuyinColonelActivityDetailParam param = request.getParam();
  114. param.setActivityId(activityId);
  115. BuyinColonelActivityDetailResponse response = request.execute(accessToken);
  116. if (Check.isNull(response) || !"10000".equals(response.getCode())) {
  117. log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/buyin/colonelActivityDetail;(获取团长活动详情)", param, response);
  118. return;
  119. }
  120. BuyinColonelActivityDetailData data = response.getData();
  121. if (Check.isNotNull(data)) {
  122. BytedanceColonelActivityDetail activityDetail = new BytedanceColonelActivityDetail();
  123. BeanUtils.copyProperties(data, activityDetail);
  124. if (Check.isNotNull(data.getIsNewShop())) {
  125. activityDetail.setIsNewShop(data.getIsNewShop() ? 1 : 0);
  126. }
  127. if (Check.isNotNull(data.getHasThreshold())) {
  128. activityDetail.setHasThreshold(data.getHasThreshold() ? 1 : 0);
  129. }
  130. if (Check.isNotNull(data.getShopType())) {
  131. activityDetail.setShopType(JSONObject.toJSON(data.getShopType()).toString());
  132. }
  133. if (Check.isNotNull(data.getWechatId())) {
  134. activityDetail.setWechatId(decryptContactInfo(accessToken, data.getWechatId(), activityId));
  135. }
  136. if (Check.isNotNull(data.getPhoneNum())) {
  137. activityDetail.setPhoneNum(decryptContactInfo(accessToken, data.getPhoneNum(), activityId));
  138. }
  139. //招商类目
  140. if (Check.isNotNull(data.getCategories())) {
  141. activityDetail.setCategories(JSONObject.toJSON(data.getCategories()).toString());
  142. }
  143. activityDetail.setApplyStartTime(DateUtils.strDateToInt(data.getApplyStartTime()));
  144. activityDetail.setApplyEndTime(DateUtils.strDateToInt(data.getApplyEndTime()));
  145. bytedanceMapper.insertDetail(activityDetail);
  146. }
  147. }
  148. @Override
  149. public JSONObject addBytedanceColonelActivityProduct(Long activityId, Long productInfo) {
  150. JSONObject returnJson = new JSONObject();
  151. AccessToken accessToken = tokenService.getAccessToken(1L);
  152. AllianceColonelActivityProductRequest request = new AllianceColonelActivityProductRequest();
  153. AllianceColonelActivityProductParam param = request.getParam();
  154. param.setActivityId(activityId);
  155. param.setProductInfo(String.valueOf(productInfo));//商品ID/名称(支持根据商品id或者商品名称搜索,商品ID精准匹配,商品名称模糊匹配)
  156. param.setPage(1L);//页码,从1开始。分页模式下生效,超过10000条会被限制,推荐使用游标模式 retrieve_mode=1
  157. param.setCount(20L);//每页数量(每页最多20)
  158. // param.setSearchType(4L);//0:报名时间;1:活动价格排序;2:活动佣金比例排序;4:更新时间排序
  159. // param.setSortType(0L);//排序顺序。0:升序;1:降序
  160. // param.setCooperationInfo("23412312");//商家ID or 商家名称 or 一级团长名称 or 一级团长ID
  161. // param.setCooperationType(0);//合作类型. 0: 不限; 1: 商家; 2: 团长
  162. // param.setStatus(0L);//活动商品状态,不传查所有状态。0:待审核;1:推广中;2:申请未通过;3:合作已终止;6:合作已到期
  163. // param.setRetrieveMode(1);//获取模式。0: 分页模式(默认),最多返回10000条数据;1: 游标模式(推荐),返回条数无限制
  164. AllianceColonelActivityProductResponse response = request.execute(accessToken);
  165. JSONObject jsonObject = JSONObject.parseObject(response.toString());
  166. Integer code = jsonObject.getInteger("code");
  167. String msg = jsonObject.getString("msg");
  168. if (code == 10000) {
  169. returnJson.put("code", 0);
  170. returnJson.put("message", "请求成功");
  171. returnJson.put("judgeStatus", "1");
  172. JSONObject dataJson = jsonObject.getJSONObject("data");
  173. JSONObject data = dataJson.getJSONArray("data").getJSONObject(0);
  174. if (!Check.isNull(data)) {
  175. JSONObject itemJson = new JSONObject();
  176. Long product_id = data.getLong("product_id");//商品ID
  177. String title = data.getString("title");//商品名称
  178. Long price = data.getLong("price");//商品售价
  179. Double cos_ratio = data.getDouble("cos_ratio");// 佣金比例
  180. Long cos_fee = data.getLong("cos_fee");// 佣金金额,单位分
  181. Long first_cid = data.getLong("first_cid");// 商品一级类目
  182. Long second_cid = data.getLong("second_cid");// 商品二级类目
  183. Long third_cid = data.getLong("third_cid");// 商品商品三级类目
  184. Long sales = data.getLong("sales");// 销量
  185. String cover = data.getString("cover");// 商品主图
  186. String detail_url = data.getString("detail_url");// 商品团长活动链接
  187. Long shop_id = data.getLong("shop_id");// 店铺ID
  188. String shop_name = data.getString("shop_name");// 店铺名称
  189. Integer status = data.getInteger("status");// 审核状态
  190. String reason = data.getString("reason");// reason
  191. Long category_id = data.getLong("category_id");// 行业类目ID
  192. String category_name = data.getString("category_name");// 行业类目名称
  193. String product_stock = data.getString("product_stock");// 商品库存
  194. String shop_score = data.getString("shop_score");// 店铺分
  195. Double service_ratio = data.getDouble("service_ratio");// 店铺分
  196. itemJson.put("itemId", product_id);
  197. itemJson.put("itemTitle", title);
  198. itemJson.put("itemPrice", price);
  199. itemJson.put("itemDesc", title);
  200. itemJson.put("zkFinalPrice", price);
  201. itemJson.put("itemImgUrl", cover);
  202. itemJson.put("shopStar", "-");
  203. itemJson.put("mallLogisticsScore", shop_name);
  204. if (status == 0) {
  205. itemJson.put("activityItemStatus", 1);
  206. } else if (status == 1) {
  207. itemJson.put("activityItemStatus", 2);
  208. } else if (status == 2) {
  209. itemJson.put("activityItemStatus", 3);
  210. } else {
  211. itemJson.put("activityItemStatus", 5);
  212. }
  213. itemJson.put("categoryId", category_id);
  214. itemJson.put("categoryName", category_name);
  215. itemJson.put("itemGalleryUrls", null); // 轮播图
  216. itemJson.put("itemDescUrls", null); // 详情图
  217. itemJson.put("activityId", activityId);
  218. itemJson.put("shopTitle", shop_name);
  219. if(!Check.isNull(cos_ratio)){
  220. itemJson.put("commissionRate", cos_ratio * 10);
  221. }else {
  222. itemJson.put("commissionRate", 0);
  223. }
  224. itemJson.put("mallServiceScore", shop_score);
  225. itemJson.put("mallQualityScore", ""); // 店铺质量分
  226. itemJson.put("skuList", ""); // sku信息
  227. itemJson.put("postArea", ""); // 发货地址
  228. itemJson.put("detailUrl", detail_url);
  229. if(!Check.isNull(service_ratio)){
  230. itemJson.put("regimentalPromotionRate", service_ratio * 10);
  231. }else {
  232. itemJson.put("regimentalPromotionRate",0);
  233. }
  234. returnJson.put("itemJson", itemJson);
  235. }
  236. } else {
  237. returnJson.put("code", -1);
  238. returnJson.put("message", msg);
  239. }
  240. return returnJson;
  241. }
  242. @Override
  243. public JSONObject trusteeship(Long activityId, Long itemId) {
  244. JSONObject returnJson = new JSONObject();
  245. AccessToken accessToken = tokenService.getAccessToken(1L);
  246. BuyinColonelTrusteeshipListRequest request = new BuyinColonelTrusteeshipListRequest();
  247. BuyinColonelTrusteeshipListParam param = request.getParam();
  248. param.setProductId(itemId);
  249. param.setStatus(1);
  250. param.setPage(1L);
  251. param.setPageSize(20L);
  252. param.setRetrieveMode(1);
  253. BuyinColonelTrusteeshipListResponse response = request.execute(accessToken);
  254. JSONObject jsonObject = JSONObject.parseObject(response.toString());
  255. Integer code = jsonObject.getInteger("code");
  256. String msg = jsonObject.getString("msg");
  257. if (code == 10000) {
  258. returnJson.put("code", 0);
  259. returnJson.put("message", "请求成功");
  260. returnJson.put("judgeStatus", "1");
  261. JSONObject dataJson = jsonObject.getJSONObject("data");
  262. if (!Check.isNull(dataJson)) {
  263. JSONObject record = dataJson.getJSONArray("records").getJSONObject(0);
  264. if (!Check.isNull(record)) {
  265. String update_time = record.getString("update_time"); // 更新时间
  266. Long product_id = record.getLong("product_id"); // 商品id
  267. String product_name = record.getString("product_name"); // 商品id
  268. Long product_price = record.getLong("product_price"); // 商品售价
  269. String product_img = record.getString("product_img"); // 商品图片
  270. Long shop_id = record.getLong("shop_id"); // 商家ID
  271. String shop_name = record.getString("shop_name"); // 商家名称
  272. String shop_score = record.getString("shop_score"); // 店铺体验分
  273. Long trusteeship_commission_rate = record.getLong("trusteeship_commission_rate"); // 托管佣金率
  274. Long trusteeship_service_rate = record.getLong("trusteeship_service_rate"); // 托管服务费率
  275. Long product_stock = record.getLong("product_stock"); // 商品库存
  276. Integer status = record.getInteger("status"); // 托管状态。0:待审核;1:生效中;2:已结束
  277. JSONObject itemJson = new JSONObject();
  278. itemJson.put("itemId", product_id);
  279. itemJson.put("itemTitle", product_name);
  280. itemJson.put("itemPrice", product_price);
  281. itemJson.put("itemDesc", product_name);
  282. itemJson.put("zkFinalPrice", product_price);
  283. itemJson.put("itemImgUrl", product_img);
  284. itemJson.put("shopStar", "-");
  285. itemJson.put("mallLogisticsScore", shop_score);
  286. itemJson.put("activityItemStatus", 2);
  287. itemJson.put("categoryId", 0);
  288. itemJson.put("categoryName", "托管商品");
  289. itemJson.put("itemGalleryUrls", null); // 轮播图
  290. itemJson.put("itemDescUrls", null); // 详情图
  291. itemJson.put("activityId", activityId);
  292. itemJson.put("shopTitle", shop_name);
  293. if (!Check.isNull(trusteeship_commission_rate)) {
  294. itemJson.put("commissionRate", trusteeship_commission_rate / 10);
  295. } else {
  296. itemJson.put("commissionRate", 0);
  297. }
  298. if (!Check.isNull(trusteeship_service_rate)) {
  299. itemJson.put("regimentalPromotionRate", trusteeship_service_rate / 10);
  300. } else {
  301. itemJson.put("regimentalPromotionRate", 0);
  302. }
  303. itemJson.put("mallServiceScore", shop_score);
  304. itemJson.put("mallQualityScore", shop_score); // 店铺质量分
  305. itemJson.put("skuList", ""); // sku信息
  306. itemJson.put("postArea", ""); // 发货地址
  307. itemJson.put("detailUrl", "https://haohuo.jinritemai.com/ecommerce/trade/detail/index.html?id=" + product_id);
  308. // itemJson.put("regimentalPromotionRate", null);
  309. returnJson.put("itemJson", itemJson);
  310. }
  311. }
  312. } else {
  313. returnJson.put("code", -1);
  314. returnJson.put("message", msg);
  315. }
  316. return returnJson;
  317. }
  318. @Override
  319. public void addBytedanceInstituteOrderColonel(String startTime, String endTime, String cursor) {
  320. AccessToken accessToken = tokenService.getAccessToken(1L);
  321. cursor = Check.isNull(cursor) ? "0" : cursor;
  322. BuyinInstituteOrderColonelRequest request = new BuyinInstituteOrderColonelRequest();
  323. BuyinInstituteOrderColonelParam param = request.getParam();
  324. param.setSize(200L);
  325. param.setCursor(cursor);
  326. param.setStartTime(startTime.concat(" 00:00:00"));
  327. param.setEndTime(endTime.concat(" 23:59:59"));
  328. param.setTimeType("pay");// 查询时间类型。pay: 支付时间(默认); update:联盟侧更新时间,非订单状态更新时间
  329. BuyinInstituteOrderColonelResponse response = request.execute(accessToken);
  330. if (Check.isNull(response) || !"10000".equals(response.getCode())) {
  331. log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/buyin/instituteOrderColonel;(查询团长订单)", param, response);
  332. return;
  333. }
  334. Data data = response.getData();
  335. if (Check.isNotNull(data)) {
  336. List<OrdersItem> orders = data.getOrders();
  337. cursor = data.getCursor();
  338. if (Check.isNotNull(orders) && orders.size() > 0) {
  339. List<BytedanceOrderList> list = new ArrayList<>();
  340. for (OrdersItem order : orders) {
  341. BytedanceOrderList orderList = new BytedanceOrderList();
  342. BeanUtils.copyProperties(order, orderList);
  343. orderList.setOrderId(Long.valueOf(order.getOrderId()));
  344. if (Check.isNotNull(order.getUpdateTime())) {
  345. orderList.setUpdateTime(DateUtils.strDateTimsToInt(order.getUpdateTime()));
  346. }
  347. if (Check.isNotNull(order.getPaySuccessTime())) {
  348. orderList.setPaySuccessTime(DateUtils.strDateTimsToInt(order.getPaySuccessTime()));
  349. }
  350. if (Check.isNotNull(order.getRefundTime())) {
  351. orderList.setRefundTime(DateUtils.strDateTimsToInt(order.getRefundTime()));
  352. }
  353. if (Check.isNotNull(order.getSettleTime())) {
  354. orderList.setSettleTime(DateUtils.strDateTimsToInt(order.getSettleTime()));
  355. }
  356. if (Check.isNotNull(order.getIsTrusteeship())) {
  357. orderList.setIsTrusteeship(order.getIsTrusteeship() ? "1" : "0");
  358. }
  359. ColonelOrderInfo colonelInfo = order.getColonelOrderInfo();
  360. if (Check.isNotNull(colonelInfo)) {
  361. orderList.setColonelCommissionRate(colonelInfo.getCommissionRate());
  362. orderList.setColonelActivityId(colonelInfo.getActivityId());
  363. orderList.setColonelBuyinId(colonelInfo.getColonelBuyinId());
  364. orderList.setColonelEstimatedCommission(colonelInfo.getEstimatedCommission());
  365. orderList.setColonelInstitutionId(colonelInfo.getInstitutionId());
  366. orderList.setColonelInstitutionName(colonelInfo.getInstitutionName());
  367. orderList.setColonelRealCommission(colonelInfo.getRealCommission());
  368. orderList.setColonelSettledTechServiceFee(colonelInfo.getSettledTechServiceFee());
  369. orderList.setColonelTechServiceFee(colonelInfo.getTechServiceFee());
  370. orderList.setColonelTechServiceFeeRate(colonelInfo.getTechServiceFeeRate());
  371. }
  372. ColonelOrderInfoSecond secondInfo = order.getColonelOrderInfoSecond();
  373. if (Check.isNotNull(secondInfo)) {
  374. orderList.setSecondCommissionRate(secondInfo.getCommissionRate());
  375. orderList.setSecondActivityId(secondInfo.getActivityId());
  376. orderList.setSecondColonelBuyinId(secondInfo.getColonelBuyinId());
  377. orderList.setSecondInstitutionId(secondInfo.getInstitutionId());
  378. orderList.setSecondInstitutionName(secondInfo.getInstitutionName());
  379. orderList.setSecondEstimatedCommission(secondInfo.getEstimatedCommission());
  380. orderList.setSecondRealCommission(secondInfo.getRealCommission());
  381. }
  382. list.add(orderList);
  383. }
  384. bytedanceMapper.replaceBatchOrders(list);
  385. int size = orders.size();
  386. if (size >= 200) {
  387. addBytedanceInstituteOrderColonel(startTime, endTime, cursor);
  388. }
  389. }
  390. }
  391. }
  392. @Override
  393. public void addBytedanceMultiSettlementOrders(String startTime, String endTime, String cursor) {
  394. AccessToken accessToken = tokenService.getAccessToken(1L);
  395. cursor = Check.isNull(cursor) ? "0" : cursor;
  396. BuyinColonelMultiSettlementOrdersRequest request = new BuyinColonelMultiSettlementOrdersRequest();
  397. BuyinColonelMultiSettlementOrdersParam param = request.getParam();
  398. param.setSize(100L);
  399. param.setCursor(cursor);
  400. param.setTimeType("settle");//查询时间类型。settle: 结算时间); update:更新时间(默认)
  401. param.setStartTime(startTime.concat(" 00:00:00"));
  402. param.setEndTime(endTime.concat(" 23:59:59"));
  403. BuyinColonelMultiSettlementOrdersResponse response = request.execute(accessToken);
  404. if (Check.isNull(response) || !"10000".equals(response.getCode())) {
  405. log.error("\n【请求接口】: {}\n【请求参数】:{}\n【响应数据】:{}", "/buyin/colonelMultiSettlementOrders;(团长分次结算订单)", param, response);
  406. return;
  407. }
  408. com.doudian.open.api.buyin_colonelMultiSettlementOrders.data.Data data = response.getData();
  409. }
  410. /**
  411. * 联系方式解密
  412. */
  413. public String decryptContactInfo(AccessToken accessToken, String text, Long activityId) {
  414. try {
  415. BuyinDecryptContactInfoRequest request = new BuyinDecryptContactInfoRequest();
  416. BuyinDecryptContactInfoParam param = request.getParam();
  417. param.setText(text);
  418. BuyinDecryptContactInfoResponse response = request.execute(accessToken);
  419. BuyinDecryptContactInfoData data = response.getData();
  420. return data.getContactInfo();
  421. } catch (Exception e) {
  422. e.printStackTrace();
  423. log.error("联系方式解密失败,活动ID:{}", activityId);
  424. }
  425. return null;
  426. }
  427. }