123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629 |
- 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<OrderSearchInfo> 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<String, OrderPrivacyModel> 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<ProductCombinatInfo> 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();m++) {
- ProductCombinatInfo productCombinatInfo = productCombinatList.get(m);
- ProductColor sonPc = productColorMapper.getProductColorByBar(productCombinatInfo.getColorBar());
- SalesOrderItem salesOrderItem = new SalesOrderItem();
- item.setItemWarrantyStatus(0);
- // if (!tradeOrder.getRefundStatus().equalsIgnoreCase("NO_REFUND")) {
- // warranty = 1;
- // salesOrderItem.setItemWarrantyStatus(1);
- // }
- salesOrderItem.setItemOtherId(trade.getOrderId());
- Integer sonNum = Integer.parseInt(tradeOrder.getItemTotal())*productCombinatInfo.getCombinatItemNum();
- //计算价格
- Integer itemDiscountAllFeeInt = 0;
- if((m+1) >= 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<Province> 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<City> 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<District> 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);
- }
- }
- }
|