diff --git a/core/common/src/main/java/com/qihang/common/enums/TaoOrderStateEnum.java b/core/common/src/main/java/com/qihang/common/enums/TaoOrderStateEnum.java new file mode 100644 index 00000000..4900ce5f --- /dev/null +++ b/core/common/src/main/java/com/qihang/common/enums/TaoOrderStateEnum.java @@ -0,0 +1,88 @@ +package com.qihang.common.enums; + +/** + * 描述: + * 京东订单状态 + * + * @author qlp + * @date 2019-09-18 19:44 + */ +public enum TaoOrderStateEnum { + /** + * 交易状态。 + * 可选值: + * * TRADE_NO_CREATE_PAY(没有创建支付宝交易) + * * WAIT_BUYER_PAY(等待买家付款) + * * SELLER_CONSIGNED_PART(卖家部分发货) + * * WAIT_SELLER_SEND_GOODS(等待卖家发货,即:买家已付款) + * * WAIT_BUYER_CONFIRM_GOODS(等待买家确认收货,即:卖家已发货) + * * TRADE_BUYER_SIGNED(买家已签收,货到付款专用) + * * TRADE_FINISHED(交易成功) + * * TRADE_CLOSED(付款以后用户退款成功,交易自动关闭) + * * TRADE_CLOSED_BY_TAOBAO(付款以前,卖家或买家主动关闭交易) + * * PAY_PENDING(国际信用卡支付付款确认中) + * * WAIT_PRE_AUTH_CONFIRM(0元购合约中) + * * PAID_FORBID_CONSIGN(拼团中订单或者发货强管控的订单,已付款但禁止发货) + */ + WAIT_SELLER_SEND_GOODS("等待发货","WAIT_SELLER_SEND_GOODS", 1), + WAIT_BUYER_CONFIRM_GOODS("等待买家确认收货","WAIT_BUYER_CONFIRM_GOODS", 2), + TRADE_FINISHED("交易成功", "TRADE_FINISHED",3), + WAIT_BUYER_PAY("等待买家付款", "WAIT_BUYER_PAY",21), + TRADE_BUYER_SIGNED("买家已签收,货到付款专用", "TRADE_BUYER_SIGNED",25), + PAID_FORBID_CONSIGN("拼团中订单或者发货强管控的订单,已付款但禁止发货", "PAID_FORBID_CONSIGN",29), + TRADE_CLOSED("交易关闭", "TRADE_CLOSED",11), + TRADE_CLOSED_BY_TAOBAO ("交易关闭", "TRADE_CLOSED_BY_TAOBAO",11); + private String name; + private String code; + private int index; + + // 构造方法 + private TaoOrderStateEnum(String name, String code, int index) { + this.name = name; + this.code = code; + this.index = index; + } + + // 普通方法 + public static String getName(int index) { + for (TaoOrderStateEnum c : TaoOrderStateEnum.values()) { + if (c.getIndex() == index) { + return c.name; + } + } + return null; + } + + // get set 方法 + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCode() { + return code; + } + + public void setCode(String code) { + this.code = code; + } + + public int getIndex() { + return index; + } + public static int getIndex(String code) { + for (TaoOrderStateEnum c : TaoOrderStateEnum.values()) { + if (c.getCode().equals(code)) { + return c.index; + } + } + return -1; + } + + public void setIndex(int index) { + this.index = index; + } +} diff --git a/oms-api/src/main/java/com/qihang/oms/service/impl/OOrderServiceImpl.java b/oms-api/src/main/java/com/qihang/oms/service/impl/OOrderServiceImpl.java index 28e45ba9..47f5af25 100644 --- a/oms-api/src/main/java/com/qihang/oms/service/impl/OOrderServiceImpl.java +++ b/oms-api/src/main/java/com/qihang/oms/service/impl/OOrderServiceImpl.java @@ -6,6 +6,7 @@ import com.qihang.common.common.ResultVo; import com.qihang.common.common.ResultVoEnum; import com.qihang.common.enums.EnumShopType; import com.qihang.common.enums.JdOrderStateEnum; +import com.qihang.common.enums.TaoOrderStateEnum; import com.qihang.common.utils.DateUtils; import com.qihang.common.utils.StringUtils; import com.qihang.oms.domain.*; @@ -162,6 +163,42 @@ public class OOrderServiceImpl extends ServiceImpl if(oOrders == null || oOrders.isEmpty()) { // 新增订单 OOrder insert = new OOrder(); + insert.setOrderNum(orderId); + insert.setShopType(EnumShopType.TAO.getIndex()); + insert.setShopId(taoOrder.getShopId()); + String buyerMemo = ""; + if(org.springframework.util.StringUtils.hasText(taoOrder.getBuyerMessage())){ + buyerMemo += taoOrder.getBuyerMessage(); + } + if(org.springframework.util.StringUtils.hasText(taoOrder.getBuyerMemo())){ + buyerMemo += taoOrder.getBuyerMemo(); + } + insert.setBuyerMemo(buyerMemo); + insert.setSellerMemo(taoOrder.getSellerMemo()); + // 状态 + int orderStatus = TaoOrderStateEnum.getIndex(taoOrder.getStatus()); + if (orderStatus == 11) { + insert.setRefundStatus(2); + } else if (orderStatus == -1) { + insert.setRefundStatus(-1); + } else { + insert.setRefundStatus(1); + } + insert.setOrderStatus(orderStatus); + insert.setGoodsAmount(taoOrder.getTotalFee()); + insert.setAmount(taoOrder.getPayment().doubleValue()); + + insert.setReceiverName(taoOrder.getReceiverName()); + insert.setReceiverMobile(taoOrder.getReceiverMobile()); + insert.setAddress(taoOrder.getReceiverAddress()); + insert.setProvince(taoOrder.getReceiverState()); + insert.setCity(taoOrder.getReceiverCity()); + insert.setTown(taoOrder.getReceiverDistrict()); + insert.setOrderTime(taoOrder.getCreated() ); + insert.setShipType(0); + insert.setCreateTime(new Date()); + insert.setCreateBy("ORDER_MESSAGE"); + orderMapper.insert(insert); List taoOrderItems = taoOrderItemMapper.selectList(new LambdaQueryWrapper().eq(TaoOrderItem::getTid, taoOrder.getTid())); if(taoOrderItems!=null && taoOrderItems.size()>0) { @@ -181,11 +218,48 @@ public class OOrderServiceImpl extends ServiceImpl // orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName()); orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId()); } + orderItem.setSkuId(item.getSkuId()); + orderItem.setErpGoodsId(erpGoodsId); + orderItem.setErpSkuId(erpSkuId); + orderItem.setGoodsImg(item.getPicPath()); + orderItem.setGoodsSpec(item.getSkuPropertiesName()); + orderItem.setGoodsTitle(item.getTitle()); + orderItem.setGoodsPrice(item.getPrice().doubleValue()); + orderItem.setItemAmount(item.getPayment()); + orderItem.setQuantity(item.getNum()); + if(orderStatus == 11){ + orderItem.setRefundStatus(2); + orderItem.setRefundCount(item.getNum()); + }else if (orderStatus == -1) { + + }else{ + orderItem.setRefundStatus(1); + orderItem.setRefundCount(0); + } + orderItem.setCreateTime(new Date()); + orderItem.setCreateBy("ORDER_MESSAGE"); + orderItemMapper.insert(orderItem); } } }else{ // 修改订单 (修改:) + // 修改订单 (修改:) + OOrder update = new OOrder(); + update.setId(oOrders.get(0).getId()); + // 状态 + int orderStatus = TaoOrderStateEnum.getIndex(taoOrder.getStatus()); + if (orderStatus == 11) { + update.setRefundStatus(2); + } else if (orderStatus == -1) { + update.setRefundStatus(-1); + } else { + update.setRefundStatus(1); + } + update.setOrderStatus(orderStatus); + update.setUpdateTime(new Date()); + update.setUpdateBy("ORDER_MESSAGE"); + orderMapper.updateById(update); } return null; } diff --git a/tao-api/src/main/java/com/qihang/tao/controller/OrderApiController.java b/tao-api/src/main/java/com/qihang/tao/controller/OrderApiController.java index da1a8c09..77b1495f 100644 --- a/tao-api/src/main/java/com/qihang/tao/controller/OrderApiController.java +++ b/tao-api/src/main/java/com/qihang/tao/controller/OrderApiController.java @@ -56,7 +56,7 @@ public class OrderApiController { String appSecret = checkResult.getData().getAppSecret(); log.info("/**************增量更新tao订单,条件判断完成,开始更新。。。。。。****************/"); - Long pageSize = 10l; + Long pageSize = 100l; Long pageIndex = 1l; //第一次获取 diff --git a/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java b/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java index 9d0eecd1..e81f0a8f 100644 --- a/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java +++ b/tao-api/src/main/java/com/qihang/tao/controller/RefundApiController.java @@ -181,6 +181,7 @@ public class RefundApiController { //// tmallOrderRefund.setOrderStatus(item.getOrderStatus()); // tmallOrderRefund.setReason(item.getReason()); // tmallOrderRefund.setRefundFee(BigDecimal.valueOf(Double.parseDouble(item.getRefundFee()))); + // tmallOrderRefund.setRefundId(item.getRefundId()); // tmallOrderRefund.setStatus(item.getStatus()); // tmallOrderRefund.setTid(item.getTid()); diff --git a/tao-api/src/main/java/com/qihang/tao/openApi/OrderApiHelper.java b/tao-api/src/main/java/com/qihang/tao/openApi/OrderApiHelper.java index 1f5f79fe..28f38cc9 100644 --- a/tao-api/src/main/java/com/qihang/tao/openApi/OrderApiHelper.java +++ b/tao-api/src/main/java/com/qihang/tao/openApi/OrderApiHelper.java @@ -9,8 +9,10 @@ import com.qihang.tao.domain.TaoOrder; import com.taobao.api.ApiException; import com.taobao.api.DefaultTaobaoClient; import com.taobao.api.TaobaoClient; +import com.taobao.api.request.TopOaidDecryptRequest; import com.taobao.api.request.TradesSoldGetRequest; import com.taobao.api.request.TradesSoldIncrementGetRequest; +import com.taobao.api.response.TopOaidDecryptResponse; import com.taobao.api.response.TradesSoldGetResponse; import com.taobao.api.response.TradesSoldIncrementGetResponse; import org.slf4j.Logger; @@ -155,20 +157,61 @@ public class OrderApiHelper { //组合的订单列表 List orderList = new ArrayList<>(); - //有数据 - for (var trade : rsp.getTrades()) { - //组装订单 - orderList.add(OrderAssembleHelper.assembleOrder(trade)); + if(rsp.getTrades()!=null && !rsp.getTrades().isEmpty()) { + TopOaidDecryptRequest req2 = new TopOaidDecryptRequest(); + List list2 = new ArrayList(); + TopOaidDecryptRequest.ReceiverQuery obj2 = new TopOaidDecryptRequest.ReceiverQuery(); + list2.add(obj2); + obj2.setScene("1005"); + obj2.setSecretNoDays(15L); + + //有数据 + for (var trade : rsp.getTrades()) { + //组装订单 + TaoOrder taoOrder = OrderAssembleHelper.assembleOrder(trade); + + obj2.setOaid(trade.getOaid()); + obj2.setTid(trade.getTid().toString()); + req2.setQueryList(list2); + TopOaidDecryptResponse rsp2 = client.execute(req2, sessionKey); +// System.out.println(rsp2.getBody()); + if (rsp2.getReceiverList() != null && !rsp2.getReceiverList().isEmpty()) { + taoOrder.setReceiverName(rsp2.getReceiverList().get(0).getName()); + taoOrder.setReceiverAddress(rsp2.getReceiverList().get(0).getAddressDetail()); + taoOrder.setReceiverMobile(rsp2.getReceiverList().get(0).getMobile()); + } + orderList.add(taoOrder); + } } // 有分页,继续拉取 while (rsp.getHasNext()) { pageNo++; req.setPageNo(pageNo); rsp = client.execute(req, sessionKey); - //有数据 - for (var trade : rsp.getTrades()) { - //组装订单 - orderList.add(OrderAssembleHelper.assembleOrder(trade)); + if(rsp.getTrades()!=null && !rsp.getTrades().isEmpty()) { + TopOaidDecryptRequest req2 = new TopOaidDecryptRequest(); + List list2 = new ArrayList(); + TopOaidDecryptRequest.ReceiverQuery obj2 = new TopOaidDecryptRequest.ReceiverQuery(); + list2.add(obj2); + obj2.setScene("1005"); + obj2.setSecretNoDays(15L); + //有数据 + for (var trade : rsp.getTrades()) { + //组装订单 + TaoOrder taoOrder = OrderAssembleHelper.assembleOrder(trade); + + obj2.setOaid(trade.getOaid()); + obj2.setTid(trade.getTid().toString()); + req2.setQueryList(list2); + TopOaidDecryptResponse rsp2 = client.execute(req2, sessionKey); +// System.out.println(rsp2.getBody()); + if (rsp2.getReceiverList() != null && !rsp2.getReceiverList().isEmpty()) { + taoOrder.setReceiverName(rsp2.getReceiverList().get(0).getName()); + taoOrder.setReceiverAddress(rsp2.getReceiverList().get(0).getAddressDetail()); + taoOrder.setReceiverMobile(rsp2.getReceiverList().get(0).getMobile()); + } + orderList.add(taoOrder); + } } } // return new ApiResult(orderList.size(), orderList); diff --git a/tao-api/src/main/java/com/qihang/tao/openApi/OrderAssembleHelper.java b/tao-api/src/main/java/com/qihang/tao/openApi/OrderAssembleHelper.java index 6d2fcaf1..cce8f507 100644 --- a/tao-api/src/main/java/com/qihang/tao/openApi/OrderAssembleHelper.java +++ b/tao-api/src/main/java/com/qihang/tao/openApi/OrderAssembleHelper.java @@ -3,6 +3,7 @@ package com.qihang.tao.openApi; import com.qihang.tao.domain.TaoOrder; import com.qihang.tao.domain.TaoOrderItem; import com.taobao.api.domain.Trade; +import org.springframework.util.StringUtils; import java.math.BigDecimal; import java.util.ArrayList; @@ -66,13 +67,13 @@ public class OrderAssembleHelper { orderItem.setTitle(item.getTitle()); orderItem.setTid(trade.getTid()); orderItem.setOid(item.getOid()); - orderItem.setTotalFee(BigDecimal.valueOf(Double.parseDouble(item.getTotalFee()))); - orderItem.setDiscountFee(BigDecimal.valueOf(Double.parseDouble(item.getDiscountFee()))); - orderItem.setAdjustFee(BigDecimal.valueOf(Double.parseDouble(item.getAdjustFee()))); - orderItem.setDivideOrderFee(Double.parseDouble(item.getDivideOrderFee())); - orderItem.setPartMjzDiscount(Double.parseDouble(item.getPartMjzDiscount())); - orderItem.setPayment(Double.parseDouble(item.getPayment())); - orderItem.setPrice(BigDecimal.valueOf(Double.parseDouble(item.getPrice()))); + orderItem.setTotalFee(StringUtils.hasText(item.getTotalFee()) ? BigDecimal.valueOf(Double.parseDouble(item.getTotalFee())): BigDecimal.valueOf(0)); + orderItem.setDiscountFee(StringUtils.hasText(item.getDiscountFee()) ? BigDecimal.valueOf(Double.parseDouble(item.getDiscountFee())): BigDecimal.valueOf(0)); + orderItem.setAdjustFee(StringUtils.hasText(item.getAdjustFee()) ?BigDecimal.valueOf(Double.parseDouble(item.getAdjustFee())): BigDecimal.valueOf(0)); + orderItem.setDivideOrderFee( StringUtils.hasText(item.getDivideOrderFee()) ? Double.parseDouble(item.getDivideOrderFee()):0.0); + orderItem.setPartMjzDiscount(StringUtils.hasText(item.getPartMjzDiscount()) ? Double.parseDouble(item.getPartMjzDiscount()):0.0); + orderItem.setPayment(StringUtils.hasText(item.getPayment()) ? Double.parseDouble(item.getPayment()):0.0); + orderItem.setPrice(StringUtils.hasText(item.getPrice()) ? BigDecimal.valueOf(Double.parseDouble(item.getPrice())): BigDecimal.valueOf(0)); orderItem.setPicPath(item.getPicPath()); orderItem.setNumIid(item.getNumIid()); orderItem.setSkuId(item.getSkuId()); @@ -100,6 +101,7 @@ public class OrderAssembleHelper { order.setItems(items); return order; }catch (Exception e){ + e.printStackTrace(); return null; } }