|
@@ -37,6 +37,8 @@ import java.util.ArrayList;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.concurrent.ExecutorService;
|
|
|
+import java.util.concurrent.Executors;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -806,14 +808,15 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
|
|
|
if (!Check.isNull(itemCheck)) {
|
|
|
ownership = itemCheck.getOwnership();
|
|
|
}
|
|
|
- supplyChainMapper.rinsertOne("rocket", supplyChain);
|
|
|
+// 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);
|
|
|
+ Integer i = updateOrderRegimentalSettleAmountCeshi(oid, cpsOrderStatus);// todo 测试完 删除改行 放开上面
|
|
|
if (i <= 0) {
|
|
|
log.error("订单ID:{},状态:{} 修改失败", oid, cpsOrderStatus);
|
|
|
}
|
|
@@ -874,6 +877,218 @@ public class SupplyChainServiceImpl implements ISupplyChainService {
|
|
|
|
|
|
}
|
|
|
|
|
|
+ static ExecutorService ruixuanService = Executors.newFixedThreadPool(6);
|
|
|
+ static ExecutorService miaogousiService = Executors.newFixedThreadPool(3);
|
|
|
+ static ExecutorService rocketService = Executors.newFixedThreadPool(3);
|
|
|
+ static ExecutorService yufuService = Executors.newFixedThreadPool(3);
|
|
|
+ static ExecutorService yuxiuService = Executors.newFixedThreadPool(3);
|
|
|
+ static ExecutorService zhishuiService = Executors.newFixedThreadPool(3);
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void insertOrderList(Integer queryType, String beginDate, String endDate) throws Exception {
|
|
|
+ String url = "https://openapi.kwaixiaodian.com";
|
|
|
+ Long beginTime = DateUtils.getStartLongTime(beginDate);
|
|
|
+ Long endTime = DateUtils.getEndLongTime(endDate);
|
|
|
+
|
|
|
+ /* List<KuaishouAccessToken> tokens = accessTokenService.getTokenInfos();
|
|
|
+ tokens.forEach(token -> ruixuanService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ //秒构思
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> mgsTokens = accessTokenService.getMgsTokenInfos();
|
|
|
+ mgsTokens.forEach(token -> miaogousiService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ */
|
|
|
+ //TODO 测完放开
|
|
|
+ //王炸
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
|
|
|
+ rocketTokens.forEach(token -> rocketService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ //TODO 测完放开
|
|
|
+ /*//预付
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> yufuTokens = accessTokenService.getYufuTokenInfos();
|
|
|
+ yufuTokens.forEach(token -> yufuService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+
|
|
|
+ //毓秀
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> yuxiuTokens = accessTokenService.getYuxiuTokenInfos();
|
|
|
+ yuxiuTokens.forEach(token -> yuxiuService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+
|
|
|
+ //止水
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> zhishuiTokens = accessTokenService.getZhishuiTokenInfos();
|
|
|
+ zhishuiTokens.forEach(token -> zhishuiService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));*/
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void insertNowdayOrderList() throws Exception {
|
|
|
+ String url = "https://openapi.kwaixiaodian.com";
|
|
|
+ //2小时前 时间戳
|
|
|
+ Long beginTime = DateUtils.getTimeStamp(DateUtils.getHourTime(-2));
|
|
|
+ //当前时间
|
|
|
+ Long endTime = DateUtils.getTimeStamp(DateUtils.getTime());
|
|
|
+ /* List<KuaishouAccessToken> tokens = accessTokenService.getTokenInfos();
|
|
|
+ tokens.forEach(token -> ruixuanService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ //秒构思
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> mgsTokens = accessTokenService.getMgsTokenInfos();
|
|
|
+ mgsTokens.forEach(token -> miaogousiService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ */
|
|
|
+ //TODO 测完放开
|
|
|
+ //王炸
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> rocketTokens = accessTokenService.getRocketTokenInfos();
|
|
|
+ rocketTokens.forEach(token -> rocketService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(1, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+ //TODO 测完放开
|
|
|
+ /*//预付
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> yufuTokens = accessTokenService.getYufuTokenInfos();
|
|
|
+ yufuTokens.forEach(token -> yufuService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+
|
|
|
+ //毓秀
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> yuxiuTokens = accessTokenService.getYuxiuTokenInfos();
|
|
|
+ yuxiuTokens.forEach(token -> yuxiuService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));
|
|
|
+
|
|
|
+ //止水
|
|
|
+ Thread.sleep(3000);
|
|
|
+ List<KuaishouAccessToken> zhishuiTokens = accessTokenService.getZhishuiTokenInfos();
|
|
|
+ zhishuiTokens.forEach(token -> zhishuiService.submit(() -> {
|
|
|
+ insertRuixuanOrderList(queryType, token, beginTime, endTime, url, "", 1);
|
|
|
+ }));*/
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void insertRuixuanOrderList(Integer queryType, KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, int counts) {
|
|
|
+ try {
|
|
|
+ List<KuaishouSupplyChain> ruixuanList = new ArrayList<>();
|
|
|
+ List<KuaishouSupplyChain> mgsList = new ArrayList<>();
|
|
|
+ List<KuaishouSupplyChain> rocketList = new ArrayList<>();
|
|
|
+ List<KuaishouSupplyChain> yufuList = new ArrayList<>();
|
|
|
+ List<KuaishouSupplyChain> yuxiuList = new ArrayList<>();
|
|
|
+ List<KuaishouSupplyChain> 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();
|
|
|
+ }
|
|
|
+ //TODO 放开下面代码
|
|
|
+ /* if (Check.isNull(ownership) || "ruixuan".equals(ownership)) {
|
|
|
+ ruixuanList.add(supplyChain);
|
|
|
+ }
|
|
|
+ if ("miaogousi".equals(ownership)) {
|
|
|
+ mgsList.add(supplyChain);
|
|
|
+ }*/
|
|
|
+ if ("rocket".equals(ownership)) {
|
|
|
+ rocketList.add(supplyChain);
|
|
|
+ }
|
|
|
+ /*if ("yufu".equals(ownership)) {
|
|
|
+ yufuList.add(supplyChain);
|
|
|
+ }
|
|
|
+ if ("yuxiu".equals(ownership)) {
|
|
|
+ yuxiuList.add(supplyChain);
|
|
|
+ }
|
|
|
+ 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(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();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void getInfo(KuaishouAccessToken accessToken, Long beginTime, Long endTime, String url, String pcursor, Integer counts) throws InterruptedException {
|
|
|
List<Long> ruixuanList = new ArrayList<>();
|
|
|
List<Long> mgsList = new ArrayList<>();
|