package com.iamberry.rst.controllers.mq; import com.alibaba.fastjson.JSONObject; //import com.iamberry.redis.RedisUtils; import com.iamberry.rst.controllers.order.AdminJingdongAuthController; import com.iamberry.rst.core.address.City; import com.iamberry.rst.core.address.District; import com.iamberry.rst.core.address.Province; import com.iamberry.rst.core.cm.SalesOrder; import com.iamberry.rst.core.cm.SalesOrderItem; import com.iamberry.rst.core.order.OrderSyncLog; import com.iamberry.rst.core.order.ProductColor; import com.iamberry.rst.core.order.ProductCombinatInfo; import com.iamberry.rst.core.sys.SysConfig; import com.iamberry.rst.faces.address.AddressService; import com.iamberry.rst.faces.cm.SalesOrderService; import com.iamberry.rst.faces.sys.SysConfigService; import com.iamberry.rst.service.order.mapper.OrderSyncLogMapper; import com.iamberry.rst.service.product.mapper.ProductColorMapper; import com.iamberry.rst.service.product.mapper.ProductMapper; import com.iamberry.rst.util.GenerateKeyUtil; import com.iamberry.rst.util.JingdongConfig; import com.iamberry.wechat.tools.DateTimeUtil; import com.jd.open.api.sdk.DefaultJdClient; import com.jd.open.api.sdk.JdClient; import com.jd.open.api.sdk.JdException; import com.jd.open.api.sdk.domain.order.IOrderService.response.getmobilelist.OrderPrivacyModel; import com.jd.open.api.sdk.domain.order.IOrderService.response.getmobilelist.ResponseData; import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderResult; import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.ItemInfo; import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.OrderListResult; import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.OrderSearchInfo; import com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enSearch.UserInfo; import com.jd.open.api.sdk.domain.order.OrderShipmentService.response.shipment.OperatorResult; import com.jd.open.api.sdk.request.order.PopOrderEnGetRequest; import com.jd.open.api.sdk.request.order.PopOrderEnSearchRequest; import com.jd.open.api.sdk.request.order.PopOrderGetmobilelistRequest; import com.jd.open.api.sdk.request.order.PopOrderShipmentRequest; import com.jd.open.api.sdk.response.order.PopOrderEnGetResponse; import com.jd.open.api.sdk.response.order.PopOrderEnSearchResponse; import com.jd.open.api.sdk.response.order.PopOrderGetmobilelistResponse; import com.jd.open.api.sdk.response.order.PopOrderShipmentResponse; import com.taobao.api.internal.util.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; import java.util.*; /** * @author root */ @Component @Lazy(false) public class JingdongTask { private static Logger logger = LoggerFactory.getLogger(JingdongTask.class); /** 是否允许淘宝抓取订单,true表示允许,false表示不允许 */ private static boolean isDebug = false; @Autowired private GenerateKeyUtil generateKeyUtil ; @Autowired private AddressService addressService; @Autowired private ProductColorMapper productColorMapper; @Autowired private ProductMapper productMapper; @Autowired private SalesOrderService salesOrderService; @Autowired private OrderSyncLogMapper orderSyncLogMapper; @Autowired private SysConfigService sysConfigService; static { String debug = System.getProperty("isJingdong"); System.out.println("读取到的配置数据:" + debug); if ("true".equalsIgnoreCase(debug)) { isDebug = true; } } //每30分钟执行一次 // @PostConstruct @Scheduled(fixedDelay = 1000 * 60 * 10, initialDelay = 3000) public void syncOrder() { if (!isDebug) { logger.info("【京东订单】debug模式,无法运行正式任务"); return; } logger.info("【京东订单】开始抓取数据......"); // 组装请求数据 SysConfig sysConfigTime = sysConfigService.getSysConfigAll(28); String startTime = sysConfigTime.getConfigParameter(); if (StringUtils.isEmpty(startTime)) { startTime = DateTimeUtil.format(DateTimeUtil.addDay(-20), "yyyy-MM-dd HH:mm:ss"); sysConfigTime.setConfigParameter(startTime); sysConfigService.updateSysConfig(sysConfigTime); } // 结束时间 String endTime = DateTimeUtil.format(new Date(), "yyyy-MM-dd HH:mm:ss"); logger.info("开始时间:{}, 结束时间:{}", startTime, endTime); // 批次号 String batchIdST = generateKeyUtil.getSalesBatchIdJD(); // 循环抓取 boolean hasNext = true; int pageNo = 1; try { int total = 0; // 开始循环 while (hasNext) { logger.info("【京东订单】抓取第{}页的数据......", pageNo); // 抓取京东数据 JdClient client = null; PopOrderEnSearchRequest orderSearchRequest = null; PopOrderEnSearchResponse rsp = null; try { SysConfig sysConfig = sysConfigService.getSysConfigAll(27); client = new DefaultJdClient(TaobaoConfig.JINGDONG_API_URL, (String) AdminJingdongAuthController.getToken(sysConfig).get("token"), TaobaoConfig.jd_appkey, TaobaoConfig.jd_secret); orderSearchRequest = new PopOrderEnSearchRequest(); orderSearchRequest.setStartDate(startTime); orderSearchRequest.setEndDate(endTime); orderSearchRequest.setOrderState("WAIT_SELLER_STOCK_OUT,WAIT_SELLER_DELIVERY");//待出库和境外待发货, 一般仅存在前者 orderSearchRequest.setOptionalFields("orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType," + "invoiceEasyInfo," + "invoiceCode,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime," + "consigneeInfo," + "itemInfoList," + "couponDetailList," + "venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId," + "vatInfo," + "modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee," + "pauseBizInfo," + "taxFee,tuiHuoWuYou,orderSign,storeId,realPin,orderMarkDesc,open_id,xid,open_id_buyer,xid_buyer"); orderSearchRequest.setPage("" + pageNo); orderSearchRequest.setPageSize("" + 40L); orderSearchRequest.setDateType(0);//按照最后修改时间查询 rsp = client.execute(orderSearchRequest); } catch (Exception e) { logger.error("", e); } if (rsp == null) { logger.error("【京东订单】请求京东服务器失败!"); return; } // 判断数据 String code = rsp.getCode(); if (!"0".equals(rsp.getCode())) { logger.info("【京东订单】请求京东服务器,返回错误码:{}, 错误信息:{}", code, rsp.getMsg()); break; } logger.info("【京东订单】请求京东服务器,返回信息:{}", rsp.getMsg()); // debug测试数据 // String info = "{\"jingdong_pop_order_enSearch_responce\":{\"code\":\"0\",\"searchorderinfo_result\":{\"orderInfoList\":[{\"orderSellerPrice\":\"120.00\",\"orderType\":\"22\",\"logisticsId\":\"\",\"orderSign\":\"00000000200000000000000002001000030100100000000000600000000001030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000103020000000000000000000000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"orderId\":\"273600481921\",\"paymentConfirmTime\":\"2023-05-17 09:29:59\",\"orderStateRemark\":\"等待出库\",\"orderState\":\"WAIT_SELLER_STOCK_OUT\",\"payType\":\"4-在线支付\",\"itemInfoList\":[{\"wareId\":\"11593682516\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源 (Aiberle) R3净水机通用替换滤芯耗材(T1-T4套装) PP棉 活性炭 反渗透滤芯 T1(PP棉滤芯)\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730191\",\"jdPrice\":\"99.00\",\"invoiceContentId\":\"\",\"productNo\":\"T1-4\",\"skuId\":\"27797583782\",\"newStoreId\":\"0\"},{\"wareId\":\"11593682516\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源 (Aiberle) R3净水机通用替换滤芯耗材(T1-T4套装) PP棉 活性炭 反渗透滤芯 T2(前置活性炭滤芯)\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730207\",\"jdPrice\":\"99.00\",\"invoiceContentId\":\"\",\"productNo\":\"T1-4\",\"skuId\":\"27797583783\",\"newStoreId\":\"0\"}],\"waybill\":\"\",\"pin\":\"jFUvE6CChwnsN1P/N/7b1njhgMsjAKQapdCvfv7nQs85sdxW+MFokhhohj1DWlhL\",\"modified\":\"2023-05-17 09:30:01\",\"freightPrice\":\"0.00\",\"balanceUsed\":\"0.00\",\"orderTotalPrice\":\"198.00\",\"idSopShipmenttype\":67,\"sellerDiscount\":\"78.00\",\"venderRemark\":\"\",\"couponDetailList\":[{\"orderId\":\"273600481921\",\"couponType\":\"30-单品促销优惠\",\"couponPrice\":\"39.00\",\"skuId\":\"27797583783\"},{\"orderId\":\"273600481921\",\"couponType\":\"30-单品促销优惠\",\"couponPrice\":\"39.00\",\"skuId\":\"27797583782\"}],\"venderId\":\"751965\",\"orderRemark\":\"\",\"vatInfo\":{},\"invoiceInfo\":\"不需要开具发票\",\"orderSource\":\"移动端订单\",\"deliveryType\":\"任意时间\",\"storeId\":\"0\",\"orderPayment\":\"120.00\",\"consigneeInfo\":{\"town\":\"耀华道街道\",\"city\":\"廊坊市\",\"county\":\"廊坊经济技术开发区\",\"mobile\":\"136*******1\",\"telephone\":\"136*******1\",\"cityId\":\"274\",\"townId\":\"49864\",\"provinceId\":\"5\",\"province\":\"河北\",\"countyId\":\"4097\",\"fullAddress\":\"河北廊坊市廊坊经济技术开发区耀华道街道憩园小区4号楼二单元101\",\"fullname\":\"王小云\",\"desen_telephone\":\"626538be8e44a11d8354141849408991226e96ec2d375c50effd58900d9d0d79e04218\",\"desen_mobile\":\"626538be8e44a11d8354141849408991226e96ec2d375c50effd58900d9d0d79e04218\"},\"returnOrder\":\"0\",\"invoiceEasyInfo\":{\"invoiceType\":\"0\",\"invoiceContentId\":\"1\",\"invoiceTitle\":\"个人\"},\"storeOrder\":\"\",\"realPin\":\"jFUvE6CChwnsN1P/N/7b1njhgMsjAKQapdCvfv7nQs85sdxW+MFokhhohj1DWlhL\",\"orderStartTime\":\"2023-05-17 09:29:48\"},{\"orderSellerPrice\":\"398.00\",\"orderType\":\"22\",\"logisticsId\":\"\",\"orderSign\":\"30000000200000002000000002001300034100100000000000600000000001030000000000000000000010000000000000000000000000090000000000000000000000000100000000000000000000000000000000002000000000000103020000000000000000000000000000000000000010000000402000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"orderId\":\"273604468651\",\"paymentConfirmTime\":\"2023-05-17 09:00:23\",\"orderStateRemark\":\"等待出库\",\"orderState\":\"WAIT_SELLER_STOCK_OUT\",\"payType\":\"4-在线支付\",\"itemInfoList\":[{\"wareId\":\"10020911319873\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源(Aiberle) C1净水器替换滤芯耗材 净水机替换芯PP棉RO膜活性炭滤芯 滤芯套装\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730726\",\"jdPrice\":\"598.00\",\"invoiceContentId\":\"\",\"productNo\":\"\",\"skuId\":\"10029457268148\",\"newStoreId\":\"110008434\"}],\"waybill\":\"\",\"pin\":\"x4McJL4ZdvHbVMlxbQyrNzupaB0GwKZK8OavMVBSqhp1/Drbn8UUQUWGGgv3dBuB\",\"modified\":\"2023-05-17 09:40:20\",\"freightPrice\":\"0.00\",\"balanceUsed\":\"0.00\",\"orderTotalPrice\":\"598.00\",\"idSopShipmenttype\":68,\"sellerDiscount\":\"200.00\",\"venderRemark\":\"\",\"couponDetailList\":[{\"orderId\":\"273604468651\",\"couponType\":\"30-单品促销优惠\",\"couponPrice\":\"200.00\",\"skuId\":\"10029457268148\"}],\"venderId\":\"751965\",\"orderRemark\":\"\",\"vatInfo\":{},\"invoiceInfo\":\"不需要开具发票\",\"orderSource\":\"移动端订单\",\"deliveryType\":\"任意时间\",\"storeId\":\"110008434\",\"orderPayment\":\"398.00\",\"consigneeInfo\":{\"town\":\"和平街道\",\"city\":\"武汉市\",\"county\":\"洪山区\",\"mobile\":\"139*******0\",\"telephone\":\"139*******0\",\"cityId\":\"1381\",\"townId\":\"62957\",\"provinceId\":\"17\",\"province\":\"湖北\",\"countyId\":\"50718\",\"fullAddress\":\"湖北武汉市洪山区和平街道仁和路福星惠誉东湖城一期5号楼2单元102室\",\"fullname\":\"王海燕\",\"desen_telephone\":\"30316401d32518a2e26c735ba81d753d727f7c1901063f23689aa633835737d299c331\",\"desen_mobile\":\"30316401d32518a2e26c735ba81d753d727f7c1901063f23689aa633835737d299c331\"},\"returnOrder\":\"0\",\"invoiceEasyInfo\":{\"invoiceType\":\"0\",\"invoiceContentId\":\"1\",\"invoiceTitle\":\"个人\"},\"storeOrder\":\"京仓订单\",\"realPin\":\"x4McJL4ZdvHbVMlxbQyrNzupaB0GwKZK8OavMVBSqhp1/Drbn8UUQUWGGgv3dBuB\",\"orderStartTime\":\"2023-05-17 09:00:19\"},{\"orderSellerPrice\":\"144.00\",\"orderType\":\"22\",\"logisticsId\":\"\",\"orderSign\":\"00000000200000000000000002001000030100100000000000600000000001030000000000000000000000000000000000001040000000000000000000000000000000000000000000000000000000000000000000002000000000000103020000000000000000000000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"orderId\":\"273614260424\",\"paymentConfirmTime\":\"2023-05-17 10:03:57\",\"orderStateRemark\":\"等待出库\",\"orderState\":\"WAIT_SELLER_STOCK_OUT\",\"payType\":\"4-在线支付\",\"itemInfoList\":[{\"wareId\":\"10022113838430\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源 (Aiberle) R3长效款净水机通用替换滤芯耗材PP棉 活性炭 反渗透RO膜 后置活性炭 T1\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730818\",\"jdPrice\":\"72.00\",\"invoiceContentId\":\"\",\"productNo\":\"\",\"skuId\":\"10048528465799\",\"newStoreId\":\"0\"},{\"wareId\":\"10022113838430\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源 (Aiberle) R3长效款净水机通用替换滤芯耗材PP棉 活性炭 >反渗透RO膜 后置活性炭 T2\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730825\",\"jdPrice\":\"72.00\",\"invoiceContentId\":\"\",\"productNo\":\"\",\"skuId\":\"10048528465800\",\"newStoreId\":\"0\"}],\"waybill\":\"\",\"pin\":\"1d402yjy5Ry6sjTn8DstRhhZSfWrvPUEC87Ob8XRD6OA5pxkv9aKgUHskOsoY9JD\",\"modified\":\"2023-05-17 10:03:58\",\"freightPrice\":\"0.00\",\"balanceUsed\":\"0.00\",\"orderTotalPrice\":\"144.00\",\"idSopShipmenttype\":67,\"sellerDiscount\":\"0.00\",\"venderRemark\":\"\",\"couponDetailList\":[{}],\"venderId\":\"751965\",\"orderRemark\":\"\",\"vatInfo\":{},\"invoiceInfo\":\"不需要开具发票\",\"orderSource\":\"移动端订单\",\"deliveryType\":\"任意时间\",\"storeId\":\"0\",\"orderPayment\":\"144.00\",\"consigneeInfo\":{\"town\":\"桂城街道\",\"city\":\"佛山市\",\"county\":\"南海区\",\"mobile\":\"138*******6\",\"telephone\":\"138*******6\",\"cityId\":\"1666\",\"townId\":\"36272\",\"provinceId\":\"19\",\"province\":\"广东\",\"countyId\":\"36267\",\"fullAddress\":\"广东佛山市南海区桂城街道深海路22号越秀星汇瀚府10栋1903室\",\"fullname\":\"彭亚枚\",\"desen_telephone\":\"34326242bad3da91e05c11b6e94a51289bac875cce014832f610735d50fbf62c618d9f\",\"desen_mobile\":\"34326242bad3da91e05c11b6e94a51289bac875cce014832f610735d50fbf62c618d9f\"},\"returnOrder\":\"0\",\"invoiceEasyInfo\":{\"invoiceType\":\"0\",\"invoiceContentId\":\"1\",\"invoiceTitle\":\"个人\"},\"storeOrder\":\"\",\"realPin\":\"1d402yjy5Ry6sjTn8DstRhhZSfWrvPUEC87Ob8XRD6OA5pxkv9aKgUHskOsoY9JD\",\"orderStartTime\":\"2023-05-17 10:03:55\"},{\"orderSellerPrice\":\"599.00\",\"orderType\":\"22\",\"logisticsId\":\"\",\"orderSign\":\"00000000200000000000000002001000030100100010000000600000000001030000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000103020400000000000000000000000000000000000010000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\",\"orderId\":\"273554272238\",\"paymentConfirmTime\":\"2023-05-17 11:09:01\",\"orderStateRemark\":\"等待出库\",\"orderState\":\"WAIT_SELLER_STOCK_OUT\",\"payType\":\"4-在线支付\",\"itemInfoList\":[{\"wareId\":\"11593682516\",\"giftPoint\":\"0\",\"skuName\":\"爱贝源 (Aiberle) R3净水机通用替换滤芯耗材(T1-T4套装) PP棉 活性炭 反渗透滤芯 滤芯套装(6支装)\",\"itemTotal\":\"1\",\"outerSkuId\":\"6970465730238\",\"jdPrice\":\"799.00\",\"invoiceContentId\":\"\",\"productNo\":\"T1-4\",\"skuId\":\"27797583786\",\"newStoreId\":\"0\"}],\"waybill\":\"\",\"pin\":\"5JahMY1+diBEH/XLgAMA7GwihmIPAUxsDyg05GGK6YTylvC5UE0AlhdjTPmEMvyJ\",\"modified\":\"2023-05-17 11:09:03\",\"freightPrice\":\"0.00\",\"balanceUsed\":\"0.00\",\"orderTotalPrice\":\"799.00\",\"idSopShipmenttype\":67,\"sellerDiscount\":\"200.00\",\"venderRemark\":\"\",\"couponDetailList\":[{\"orderId\":\"273554272238\",\"couponType\":\"39-京豆优惠\",\"couponPrice\":\"22.30\",\"skuId\":\"\"},{\"orderId\":\"273554272238\",\"couponType\":\"30-单品促销优惠\",\"couponPrice\":\"200.00\",\"skuId\":\"27797583786\"}],\"venderId\":\"751965\",\"orderRemark\":\"\",\"vatInfo\":{},\"invoiceInfo\":\"不需要开具发票\",\"orderSource\":\"移动端订单\",\"deliveryType\":\"任意时间\",\"storeId\":\"0\",\"orderPayment\":\"576.70\",\"consigneeInfo\":{\"town\":\"李家街道\",\"city\":\"大连市\",\"county\":\"沙河口区\",\"mobile\":\"135*******6\",\"telephone\":\"135*******6\",\"cityId\":\"573\",\"townId\":\"63198\",\"provinceId\":\"8\",\"province\":\"辽宁\",\"countyId\":\"3261\",\"fullAddress\":\"辽宁大连市沙河口区李家街道锦虹北园45号楼1单元102\",\"fullname\":\"朱君\",\"desen_telephone\":\"39396299be38974317c8c819e2e8c3221d3e40f9ff96222025efa94aed870e82e3034d\",\"desen_mobile\":\"39396299be38974317c8c819e2e8c3221d3e40f9ff96222025efa94aed870e82e3034d\"},\"returnOrder\":\"0\",\"invoiceEasyInfo\":{\"invoiceType\":\"0\",\"invoiceContentId\":\"1\",\"invoiceTitle\":\"个人\"},\"storeOrder\":\"\",\"realPin\":\"5JahMY1+diBEH/XLgAMA7GwihmIPAUxsDyg05GGK6YTylvC5UE0AlhdjTPmEMvyJ\",\"orderStartTime\":\"2023-05-17 11:08:55\"}],\"apiResult\":{\"chineseErrCode\":\"成功\",\"englishErrCode\":\"success\",\"success\":true,\"numberCode\":10100000},\"orderTotal\":4}}}"; // JSONObject jsonObject = JSONObject.parseObject(info); // JSONObject jingdongPopOrderEnSearchResponce = JSONObject.parseObject(jsonObject.getString("jingdong_pop_order_enSearch_responce")); // rsp.setCode(jingdongPopOrderEnSearchResponce.getString("code")); // // JSONObject searchorderinfoResult = jingdongPopOrderEnSearchResponce.getJSONObject("searchorderinfo_result"); // OrderListResult orderListResult = JSONObject.parseObject(searchorderinfoResult.toJSONString(), OrderListResult.class); // rsp.setSearchorderinfoResult(orderListResult); OrderListResult orderResult = rsp.getSearchorderinfoResult(); if (orderResult == null) { break; } List orderInfoList = orderResult.getOrderInfoList(); if (orderInfoList == null || orderInfoList.size() == 0) { logger.info("【京东订单】数据请求完毕, 数量为0"); break; } for (OrderSearchInfo orderSearchInfo : orderInfoList) { //获取的详情数据和列表数据没什么区别, 直接使用列表数据即可 // Trade details = getOrderDetails(orderSearchInfo.getOrderId()); // if (details == null) { // logger.error("【京东订单】{}获取订单详细数据失败", trade.getTid()); // return; // } // 组装数据 SalesOrder salesOrder = packageOrder(orderSearchInfo); if (salesOrder != null) { salesOrder.setSalesBatchId(batchIdST); salesOrderService.addOrder(salesOrder, "创建订单(京东拉取订单)"); total ++; } } // 迭代数据 if (rsp.getSearchorderinfoResult().getOrderTotal() <= pageNo * 40) { hasNext = false; } else { hasNext = true; pageNo ++; } } OrderSyncLog orderSyncLog = new OrderSyncLog(); orderSyncLog.setSyncPlatId(1); orderSyncLog.setSyncLogType(1); orderSyncLog.setSyncLogMode(1); orderSyncLog.setSyncLogRecentNum(total); //同步总数量 orderSyncLog.setSyncLogErrorNum(0); //同步失败数量 orderSyncLog.setSyncLogMsg("拉取京东订单"); //备注 orderSyncLogMapper.save(orderSyncLog); sysConfigTime.setConfigParameter(endTime); sysConfigService.updateSysConfig(sysConfigTime); // RedisUtils.put("JINGDONG_SYNC_TIME", endTime); } catch (Exception e) { logger.error("", e); OrderSyncLog orderSyncLog = new OrderSyncLog(); orderSyncLog.setSyncPlatId(1); orderSyncLog.setSyncLogType(1); orderSyncLog.setSyncLogMode(1); orderSyncLog.setSyncLogRecentNum(1); //同步总数量 orderSyncLog.setSyncLogErrorNum(1); //同步失败数量 orderSyncLog.setSyncLogMsg("拉取京东订单"); //备注 orderSyncLog.setSyncLogErrorMsg(e.getMessage()); orderSyncLogMapper.save(orderSyncLog); } } public com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderSearchInfo getOrderDetails(Long tid) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } try { JdClient client = null; PopOrderEnGetRequest request = null; PopOrderEnGetResponse rsp = null; SysConfig sysConfig = sysConfigService.getSysConfigAll(27); client = new DefaultJdClient(TaobaoConfig.JINGDONG_API_URL, (String) AdminJingdongAuthController.getToken(sysConfig).get("token"), TaobaoConfig.jd_appkey, TaobaoConfig.jd_secret); request=new PopOrderEnGetRequest(); request.setOrderId(tid); request.setOptionalFields("orderId,venderId,orderType,payType,orderTotalPrice,orderSellerPrice,orderPayment,freightPrice,sellerDiscount,orderState,orderStateRemark,deliveryType," + "invoiceEasyInfo," + "invoiceCode,invoiceInfo,invoiceCode,orderRemark,orderStartTime,orderEndTime," + "consigneeInfo," + "itemInfoList," + "couponDetailList," + "venderRemark,balanceUsed,pin,returnOrder,paymentConfirmTime,waybill,logisticsId," + "vatInfo," + "modified,directParentOrderId,parentOrderId,customs,customsModel,orderSource,storeOrder,idSopShipmenttype,scDT,serviceFee," + "pauseBizInfo," + "taxFee,tuiHuoWuYou,orderSign,storeId,realPin,orderMarkDesc,open_id,xid,open_id_buyer,xid_buyer"); rsp = client.execute(request); String code = rsp.getCode(); logger.info("查询京东订单详情返回信息:code:{}, msg:{}", rsp.getCode(), rsp.getMsg()); if ("0".equals(code)) { OrderResult orderDetailInfo = rsp.getOrderDetailInfo(); com.jd.open.api.sdk.domain.order.OrderQueryJsfService.response.enGet.OrderSearchInfo orderInfo = orderDetailInfo.getOrderInfo(); return orderInfo; } } catch (Exception e) { e.printStackTrace(); } return null; } /** * 京东发货 * @param orderId * @param logiCoprId * @param logiNo */ public OperatorResult orderShipment(String orderId, String logiCoprId, String logiNo){ SysConfig sysConfigAll = sysConfigService.getSysConfigAll(27); JdClient client = new DefaultJdClient(JingdongConfig.JINGDONG_API_URL, sysConfigAll.getConfigParameter(), JingdongConfig.jd_appkey, JingdongConfig.jd_secret); PopOrderShipmentRequest req = new PopOrderShipmentRequest(); req.setOrderId(Long.parseLong(orderId)); req.setLogiCoprId(logiCoprId); req.setLogiNo(logiNo); try { PopOrderShipmentResponse rsp = client.execute(req); // PopOrderShipmentResponse rsp = new PopOrderShipmentResponse(); // rsp.setCode("0"); // rsp.setMsg("伪造成功, 生产放开"); // OperatorResult result = new OperatorResult(); // result.setSuccess(true); // result.setChineseErrCode("伪造成功,生产放开"); // rsp.setSopjosshipmentResult(result); logger.info("京东订单发货回录:code:{}, msg:{}", rsp.getCode(), rsp.getMsg()); if ("0".equals(rsp.getCode())) { OperatorResult sopjosshipmentResult = rsp.getSopjosshipmentResult(); return sopjosshipmentResult; } } catch (Exception e) { e.printStackTrace(); //京东发货异常 logger.error("京东发货接口异常:{}", e); } return null; } public OrderPrivacyModel getMobile(String orderId) { try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } try { JdClient client = null; PopOrderGetmobilelistRequest request = null; PopOrderGetmobilelistResponse rsp = null; SysConfig sysConfig = sysConfigService.getSysConfigAll(27); client = new DefaultJdClient(TaobaoConfig.JINGDONG_API_URL, (String) AdminJingdongAuthController.getToken(sysConfig).get("token"), TaobaoConfig.jd_appkey, TaobaoConfig.jd_secret); request = new PopOrderGetmobilelistRequest(); request.setAppName("爱贝源官方旗航店"); // request.setRegion("https://jd.com"); request.setOrderId(orderId); request.setExpiration(30); request.setOrderType("POP"); rsp = client.execute(request); if ("0".equals(rsp.getCode())) { ResponseData result = rsp.getResult(); logger.info("result code:{}, message:{}", result.getCode(), result.getMessage()); if ("200".equals(result.getCode() + "")) { logger.info("查询京东订单收货人电话:data.code: {}, data.message:{}", result.getCode(), result.getMessage()); Map data = result.getData(); OrderPrivacyModel orderPrivacyModel = data.get(orderId); return orderPrivacyModel; } } logger.info("查询京东订单收货人手机号返回错误信息:{}", rsp.getMsg()); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 数据还需要完善地址库编码、成本价格 * @param trade * @return */ private SalesOrder packageOrder(OrderSearchInfo trade) { String tid = trade.getOrderId(); SalesOrder order = new SalesOrder(); order.setSalesOrderId(tid); order.setSalesDealCode(tid); order.setSalesExOrderId(tid); order.setSalesDiscountMoney(changeY2F(StringUtils.isEmpty(trade.getSellerDiscount()) ? "0" : trade.getSellerDiscount())); order.setSalesDeliver(1); //获取收货人手机号 OrderPrivacyModel orderPrivacyModel = getMobile(trade.getOrderId()); //收货人信息 UserInfo consigneeInfo = trade.getConsigneeInfo(); order.setSalesOpenId(orderPrivacyModel == null ? consigneeInfo.getMobile() : orderPrivacyModel.getConsMobilePhone()); order.setSalesPledgeMoney(0); order.setSalesRemainDeposit(0); order.setSalesOrderStatus(1); order.setSalesStatus(0); order.setSalesShippingStatus(0); order.setSalesPayStatus(2); order.setSalesProcessStatus(1); order.setSalesIsSend(0); order.setSalesIsLocked(0); order.setSalesIsSeparate(0); order.setSalesIsShip(1); order.setSalesProcessRefund(0); order.setSalesSendType(2); order.setSalesSalesTime(DateTimeUtil.parse(trade.getOrderStartTime())); // 地址 StringJoiner address = new StringJoiner(" "); String addrDetail = consigneeInfo.getFullAddress().replaceFirst(consigneeInfo.getProvince(), "").replaceFirst(consigneeInfo.getCity(), "").replaceFirst(consigneeInfo.getCounty(), ""); if (!StringUtils.isEmpty(consigneeInfo.getProvince())) { address.add(consigneeInfo.getProvince()); } if (!StringUtils.isEmpty(consigneeInfo.getCity())) { address.add(consigneeInfo.getCity()); } if (!StringUtils.isEmpty(consigneeInfo.getCounty())) { address.add(consigneeInfo.getCounty()); } if (!StringUtils.isEmpty(addrDetail)) { address.add(addrDetail); } // order.setSalesAddressInfo(consigneeInfo.getFullAddress()); order.setSalesAddressInfo(address.toString()); //京东不返回邮编 order.setSalesAddressPostcode("000000"); order.setSalesAddressName(consigneeInfo.getFullname()); order.setSalesAddressTel(orderPrivacyModel == null ? consigneeInfo.getMobile() : orderPrivacyModel.getConsMobilePhone()); order.setSalesAmount(changeY2F(trade.getOrderTotalPrice())); order.setSalesPayMoney(changeY2F(trade.getOrderPayment())); order.setSalesPayType(5); order.setSalesWaitMoney(0); order.setSalesShippingFee(changeY2F(trade.getFreightPrice())); order.setSalesLastMoney(0); order.setSalesPayTime(StringUtils.isEmpty(trade.getPaymentConfirmTime()) ? null : DateTimeUtil.parse(trade.getPaymentConfirmTime())); order.setSalesCreateTime(DateTimeUtil.parse(trade.getOrderStartTime())); order.setSalesAdminRemark(trade.getVenderRemark()); order.setSalesUserRemark(trade.getOrderRemark()); order.setSalesCompanyId(1); order.setSalesStoreId(40); order.setSalesType(1); order.setSalesAddType(4); order.setSalesAdminId(10135); order.setSalesReturnStatus(1); order.setSalesIsSublist(1); order.setSalesExOrderId(trade.getOrderId()); order.setSalesErrorState(1); order.setSalesQuality(1); order.setSalesPostFirm("jd"); order.setSalesOrderItemList(new ArrayList<>(trade.getItemInfoList().size())); // 订单项 int warranty = 0; for (ItemInfo tradeOrder : trade.getItemInfoList()) { SalesOrderItem item = new SalesOrderItem(); //京东返回,无退款状态 item.setItemWarrantyStatus(0); // if (!"NO_REFUND".equalsIgnoreCase(tradeOrder.getRefundStatus())) { // warranty = 1; // item.setItemWarrantyStatus(1); // } if (StringUtils.isEmpty(tradeOrder.getOuterSkuId())) { return null; } ProductColor productColor = productColorMapper.getProductColorByBar(tradeOrder.getOuterSkuId()); if(productColor.getProductIsSplit() == 1){ List productCombinatList = productMapper.combinatList(productColor.getColorProductId()); if(productCombinatList == null || productCombinatList.size() < 1){ logger.error("商城订单编号:"+productColor.getColorProductId()+"-订单项中的SKU未查询到组合产品,SKU编号:"+productColor.getColorProductId()+"; "); break; } int totalFeeInt = changeY2F(tradeOrder.getJdPrice()); Integer advProductCombinatFree = totalFeeInt/productCombinatList.size(); for (int m = 0;m= productCombinatList.size()){ itemDiscountAllFeeInt = totalFeeInt; }else{ itemDiscountAllFeeInt = advProductCombinatFree; totalFeeInt = totalFeeInt - itemDiscountAllFeeInt; } Integer itemDiscountFeeInt = itemDiscountAllFeeInt/sonNum; //产品市场价 salesOrderItem.setItemProductPrice(itemDiscountFeeInt); //产品折扣价 salesOrderItem.setItemProductDiscount(itemDiscountFeeInt); //小结 salesOrderItem.setItemTotal(itemDiscountAllFeeInt); //产品数量 salesOrderItem.setItemNum(sonNum); //colorBar salesOrderItem.setItemColorBar(sonPc.getColorBar()); //产品id salesOrderItem.setItemProductId(sonPc.getColorProductId()); salesOrderItem.setItemColorId(sonPc.getColorId()); salesOrderItem.setItemProductType(sonPc.getProductType()); salesOrderItem.setItemProductName(sonPc.getProductName()); //产品颜色 salesOrderItem.setItemProductColor(sonPc.getColorName()); //商品简称 salesOrderItem.setProductAbbreviation(sonPc.getProductAbbreviation()); //所属产品简称 salesOrderItem.setColorAbbreviation(sonPc.getColorAbbreviation()); //重量 salesOrderItem.setColorIsWeight(sonPc.getColorIsWeight()); //是否是水机 1:水机 2;其它产品 salesOrderItem.setColorIsMachine(sonPc.getColorIsMachine()); //产品来源 1:产品颜色表,2:配件表 salesOrderItem.setItemIsSource(1); order.getSalesOrderItemList().add(salesOrderItem); } }else{ item.setItemOtherId(trade.getOrderId()); item.setItemNum(Integer.parseInt(tradeOrder.getItemTotal())); item.setItemColorBar(tradeOrder.getOuterSkuId()); item.setItemProductPrice(changeY2F(tradeOrder.getJdPrice())/item.getItemNum()); item.setItemProductDiscount(changeY2F(tradeOrder.getJdPrice())/item.getItemNum()); item.setItemIsSource(1); item.setItemReturnNum(0); //小结 item.setItemTotal(changeY2F(tradeOrder.getJdPrice())); item.setItemProductId(productColor.getColorProductId()); item.setItemColorId(productColor.getColorId()); item.setItemProductType(productColor.getProductType()); item.setItemProductName(productColor.getProductName()); //产品颜色 item.setItemProductColor(productColor.getColorName()); //商品简称 item.setProductAbbreviation(productColor.getProductAbbreviation()); //所属产品简称 item.setColorAbbreviation(productColor.getColorAbbreviation()); //重量 item.setColorIsWeight(productColor.getColorIsWeight()); //是否是水机 1:水机 2;其它产品 item.setColorIsMachine(productColor.getColorIsMachine()); //产品来源 1:产品颜色表,2:配件表 item.setItemIsSource(1); // 填充数据 order.getSalesOrderItemList().add(item); } } order.setSalesWarrantyStatus(warranty); logger.info("拉取订单组长的数据:{}", order.toString()); return order; } private static int changeY2F(String price) { double p = Double.parseDouble(price); return (int)(p * 100); } private String findZip(String receiverState, String receiverCity, String receiverDistrict, String address) { logger.info("地址数据:{}, {}, {}, {}", receiverState, receiverCity, receiverDistrict, address); //获取省份 List provinceList = addressService.listProvince(new Province()); // 没有邮编,从系统开始查找 if(provinceList != null && provinceList.size() >0 ){ int provinceIdNum = 0; int provinceId = 0; for (Province proiv : provinceList) { int proNum = 0; String newPro = proiv.getProvince().replaceAll("省|自治区|壮族自治区|特别行政区|维吾尔自治区",""); if(newPro.contains(receiverState)){ proNum++; } if(receiverState.contains(newPro)){ proNum++; } if(proNum > provinceIdNum){ provinceIdNum = proNum; provinceId = proiv.getProvinceId(); } } receiverCity = receiverCity.replaceAll("市|州|地区|自治区|特别行政区",""); int cityNum = 0; Integer cityId = null; City city = new City(); city.setProvinceId(provinceId); List cityList = addressService.listCity(city); for (City ci:cityList) { int ciNum = 0; String newCi = ci.getCity().replaceAll("市|州|地区|自治区|特别行政区",""); if(receiverCity.contains(newCi)){ ciNum ++; } if(newCi.contains(receiverCity)){ ciNum ++; } if(cityNum < ciNum){ cityNum = ciNum; cityId = ci.getCityId(); } } if(cityId == null){ throw new RuntimeException("未查询到该县区:"+address); } int districtNum = 0; String postcode = null; District district = new District(); district.setCityId(cityId); List districtList = addressService.listDistrict(district); for (District dis:districtList) { int disNum = 0; String newDIs = dis.getDistrict(); String newLastNewArea = newDIs.substring(newDIs.length()-1,newDIs.length()); newLastNewArea = newLastNewArea.replaceAll("县|区|镇|乡|市|州|洲",""); newDIs = newDIs.substring(0,newDIs.length()-1); newDIs += newLastNewArea; if(newDIs.contains(receiverDistrict)){ disNum++; } if(receiverDistrict.contains(newDIs)){ disNum++; } if(districtNum < disNum){ districtNum = disNum; postcode = dis.getPostcode(); } } if(postcode != null){ return postcode; }else{ throw new RuntimeException("未查询到该县区,原地址:"+address); } }else{ throw new RuntimeException("未查询到该省份,原地址:"+address); } } }