diff --git a/api/erp-api/src/main/java/cn/qihangerp/erp/mq/ApiMessageServiceImpl.java b/api/erp-api/src/main/java/cn/qihangerp/erp/mq/ApiMessageServiceImpl.java index eaef4711..84a95f53 100644 --- a/api/erp-api/src/main/java/cn/qihangerp/erp/mq/ApiMessageServiceImpl.java +++ b/api/erp-api/src/main/java/cn/qihangerp/erp/mq/ApiMessageServiceImpl.java @@ -56,12 +56,13 @@ public class ApiMessageServiceImpl implements ApiMessageService { log.info("订单消息PDD"); JSONObject jsonObject = openApiService.getPddOrderDetail(mqMessage.getKeyId()); if (jsonObject.getInteger("code") != 200 || jsonObject.getJSONObject("data") == null) { - log.info("=====pdd order message===没有找到订单"); + log.info("=====pdd order message===没有找到订单:{}",jsonObject.getString("msg")); return ResultVo.error(404, "没有找到订单"); } JSONObject orderDetail = jsonObject.getJSONObject("data"); - orderService.pddOrderMessage(mqMessage.getKeyId(), orderDetail); + ResultVo longResultVo = orderService.pddOrderMessage(mqMessage.getKeyId(), orderDetail); + log.info("===========pdd order message result={}",JSONObject.toJSONString(longResultVo)); } else if (mqMessage.getShopType().getIndex() == EnumShopType.DOU.getIndex()) { log.info("订单消息DOU"); JSONObject jsonObject = openApiService.getDouOrderDetail(mqMessage.getKeyId()); diff --git a/core/common/src/main/java/cn/qihangerp/common/enums/EnumOOrderStatus.java b/core/common/src/main/java/cn/qihangerp/common/enums/EnumOOrderStatus.java new file mode 100644 index 00000000..c8879b94 --- /dev/null +++ b/core/common/src/main/java/cn/qihangerp/common/enums/EnumOOrderStatus.java @@ -0,0 +1,58 @@ +package cn.qihangerp.common.enums; + +/** + * 描述:发货状态 + * + * + * @author qlp + * @date 2019-09-18 19:44 + */ +public enum EnumOOrderStatus { + //订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;13已关闭;21待付款;22锁定,29删除,31售后中,101部分发货 + WAIT_SHIP("待发货", 1), + SHIPPED("已发货", 2), + COMPLETE("已完成", 3), + CANCEL("已取消", 11), + REFUND("退款中", 12), + CLOSED("已关闭", 13), + WAIT_PAY("待付款", 21), + LOCKED("已锁定", 22), + SHIPPED_BF("部分发货", 101), + NEW("新订单", 0) + ; + private String name; + private int index; + + // 构造方法 + private EnumOOrderStatus(String name, int index) { + this.name = name; + this.index = index; + } + + // 普通方法 + public static String getName(int index) { + for (EnumOOrderStatus c : EnumOOrderStatus.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 int getIndex() { + return index; + } + + public void setIndex(int index) { + this.index = index; + } +} diff --git a/core/model/src/main/java/cn/qihangerp/model/entity/OOrder.java b/core/model/src/main/java/cn/qihangerp/model/entity/OOrder.java index cdb2cfa2..01add479 100644 --- a/core/model/src/main/java/cn/qihangerp/model/entity/OOrder.java +++ b/core/model/src/main/java/cn/qihangerp/model/entity/OOrder.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -133,7 +134,7 @@ public class OOrder implements Serializable { /** * 订单时间 */ - private Date orderTime; + private LocalDateTime orderTime; /** * 发货方 0 自己发货1联合发货2供应商发货 diff --git a/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java b/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java index b5b58355..b43f4553 100644 --- a/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java +++ b/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java @@ -62,6 +62,7 @@ public class SecurityConfig { .requestMatchers("/home").permitAll() .requestMatchers(HttpMethod.GET, "/favicon.ico").permitAll() .requestMatchers(HttpMethod.GET, "/tao/order/get_detail").permitAll() + .requestMatchers(HttpMethod.GET, "/*/order/get_detail").permitAll() .requestMatchers(HttpMethod.GET, "/refund/get_detail").permitAll() .requestMatchers(HttpMethod.GET, "/images/preview/**").permitAll() .requestMatchers(HttpMethod.GET, "/system/config/**").permitAll() diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipment.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipment.java index 385f7433..4dcaf968 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipment.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipment.java @@ -8,6 +8,7 @@ import lombok.Data; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -47,7 +48,7 @@ public class OShipment implements Serializable { /** * 订单时间 */ - private Date orderTime; + private LocalDateTime orderTime; /** * 发货方 0 仓库发货 1 供应商发货 diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipmentItem.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipmentItem.java index 144f7ad6..21021a28 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipmentItem.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OShipmentItem.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.io.Serializable; +import java.time.LocalDateTime; import java.util.Date; /** @@ -65,7 +66,7 @@ public class OShipmentItem implements Serializable { /** * 订单时间 */ - private Date orderTime; + private LocalDateTime orderTime; /** * 订单itemID(o_order_item外键) diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OfflineOrder.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OfflineOrder.java index c948e8d8..28fc6348 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OfflineOrder.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/domain/OfflineOrder.java @@ -2,6 +2,7 @@ package cn.qihangerp.module.order.domain; import java.io.Serializable; import java.math.BigDecimal; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; @@ -125,7 +126,7 @@ public class OfflineOrder implements Serializable { /** * 订单时间 */ - private Date orderTime; + private LocalDateTime orderTime; /** * 发货类型(0仓库发货;1供应商代发) diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/OOrderService.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/OOrderService.java index 65dd5320..0e135f01 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/OOrderService.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/OOrderService.java @@ -25,7 +25,7 @@ public interface OOrderService extends IService { ResultVo jdOrderMessage(String orderId, JSONObject orderDetail); ResultVo taoOrderMessage(String tid,JSONObject orderDetail ); - ResultVo pddOrderMessage(String orderSn,JSONObject orderDetail ); + ResultVo pddOrderMessage(String orderSn,JSONObject orderDetail ); ResultVo douOrderMessage(String orderId,JSONObject orderDetail ); ResultVo offlineOrderMessage(String orderNum); ResultVo weiOrderMessage(String orderNum,JSONObject orderDetail ); diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java index e0f06a04..84606095 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java @@ -13,6 +13,7 @@ import cn.qihangerp.model.vo.OrderDiscountVo; import cn.qihangerp.module.order.domain.vo.SalesDailyVo; import cn.qihangerp.module.order.mapper.*; import cn.qihangerp.module.order.service.OOrderService; +import cn.qihangerp.module.order.service.msg.PddOrderMessageService; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -58,7 +59,7 @@ public class OOrderServiceImpl extends ServiceImpl private final OfflineOrderMapper offlineOrderMapper; private final OfflineOrderItemMapper offlineOrderItemMapper; - + private final PddOrderMessageService pddOrderMessageService; private final String DATE_PATTERN = @@ -85,9 +86,9 @@ public class OOrderServiceImpl extends ServiceImpl @Transactional @Override - public ResultVo pddOrderMessage(String orderSn,JSONObject orderDetail ) { - log.info("=====pdd order message===订单号{}===" + orderSn); - return ResultVo.success(); + public ResultVo pddOrderMessage(String orderSn,JSONObject orderDetail ) { + log.info("=====pdd order message===订单号{}===", orderSn); + return pddOrderMessageService.pddOrderMessage(orderSn, orderDetail); } @Transactional diff --git a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OfflineOrderServiceImpl.java b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OfflineOrderServiceImpl.java index c7f48a7d..ceda6b47 100644 --- a/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OfflineOrderServiceImpl.java +++ b/serviceImpl/order/src/main/java/cn/qihangerp/module/order/service/impl/OfflineOrderServiceImpl.java @@ -23,6 +23,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; +import java.time.LocalDateTime; import java.util.Date; import java.util.List; import java.util.regex.Matcher; @@ -148,7 +149,7 @@ public class OfflineOrderServiceImpl extends ServiceImpl pddOrderMessage(String orderSn, JSONObject orderDetail ) { + log.info("=====pdd order message===订单号{}==="+orderSn); +// JSONObject jsonObject = pddApiService.getOrderDetail(orderSn); +// if(jsonObject.getInteger("code")!=200 || jsonObject.getJSONObject("data") ==null){ +// log.info("=====pdd order message===没有找到订单"); +// return ResultVo.error(404,"没有找到订单"); +// } +// +// JSONObject orderDetail = jsonObject.getJSONObject("data"); +// log.info("=====pdd order message===订单:"+JSONObject.toJSONString(orderDetail)); + if(orderDetail == null) { + log.info("=====pdd order message===没有找到订单======="); + return ResultVo.error("没有找到订单"); + } + + JSONArray itemArray = orderDetail.getJSONArray("items"); + if (itemArray.isEmpty()) { +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + log.info("=====pdd order message===没有items====事务回滚======="); + return ResultVo.error("没有找到订单items"); + } +// List originOrders = pddOrderMapper.selectList(new LambdaQueryWrapper().eq(PddOrder::getOrderSn, orderSn)); +// +// if(originOrders == null || originOrders.size() == 0) { +// // 没有找到订单信息 +// return ResultVo.error(ResultVoEnum.NotFound,"没有找到PDD原始订单:"+orderSn); +// } +// PddOrder originOrder = originOrders.get(0); +// PddOrder originOrder = new PddOrder(); + Long shopId = orderDetail.getLong("shopId"); + List oOrders = orderMapper.selectList(new LambdaQueryWrapper() + .eq(OOrder::getOrderNum, orderSn).eq(OOrder::getShopId,shopId)); + if(oOrders == null || oOrders.isEmpty()) { + // 新增订单 + OOrder insert = new OOrder(); + insert.setOrderNum(orderSn); + insert.setShopType(EnumShopType.PDD.getIndex()); + insert.setShopId(shopId); + insert.setBuyerMemo(orderDetail.getString("buyerMemo")); + insert.setSellerMemo(orderDetail.getString("remark")); + Integer originOrderStatus = orderDetail.getInteger("orderStatus"); + Integer originRefundStatus = orderDetail.getInteger("refundStatus"); + Integer afterSalesStatus = orderDetail.getInteger("afterSalesStatus"); + String platformStatusDesc = "未知"; + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除 + int orderStatus = 0; + int refundStatus = -1; + if (originRefundStatus == 1) { + // 没有售后 + orderStatus = originOrderStatus; + if(originOrderStatus==1) { + platformStatusDesc = "待发货"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收"; + } + refundStatus = 1; + } else { + if (originRefundStatus == 4) { + refundStatus = 4; + orderStatus = EnumOOrderStatus.CLOSED.getIndex(); + if(originOrderStatus==1) { + platformStatusDesc = "待发货-已退款"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收-已退款"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收-已退款"; + } + } else { + refundStatus = originRefundStatus; + orderStatus = EnumOOrderStatus.REFUND.getIndex(); + if(originOrderStatus==1) { + platformStatusDesc = "待发货-售后中"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收-售后中"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收-售后中"; + } + } + } + if(orderDetail.getInteger("riskControlStatus")==1){ + orderStatus = 0; + } + insert.setRefundStatus(refundStatus); + insert.setOrderStatus(orderStatus); +// insert.setPlatformStatusCode(originOrderStatus+"-"+originRefundStatus); +// insert.setPlatformStatusDesc(platformStatusDesc); + // 价格 + insert.setGoodsAmount(orderDetail.getDouble("goodsAmount"));//.getGoodsAmount()); + insert.setPostFee(orderDetail.getDouble("postage")); + insert.setAmount(orderDetail.getDouble("goodsAmount")); + double payAmount = orderDetail.getDouble("payAmount"); + insert.setPayment(payAmount); + double platformDiscount = orderDetail.getDouble("platformDiscount")!=null?orderDetail.getDouble("platformDiscount"):0.0; + insert.setPlatformDiscount(platformDiscount); + double sellerDiscount = orderDetail.getDouble("sellerDiscount")!=null?orderDetail.getDouble("sellerDiscount"):0.0; + insert.setSellerDiscount(sellerDiscount); + double payDiscount = orderDetail.getDouble("duoDuoPayReduction")!=null?orderDetail.getDouble("duoDuoPayReduction"):0.0; +// insert.setMerchantAmount(payAmount+platformDiscount+payDiscount); +// insert.setWaybillCode(orderDetail.getString("trackingNumber")); + insert.setReceiverName(orderDetail.getString("receiverNameMask")); + insert.setReceiverMobile(orderDetail.getString("receiverPhoneMask")); + insert.setAddress(orderDetail.getString("addressMask")); + insert.setProvince(orderDetail.getString("province")); + insert.setCity(orderDetail.getString("city")); + insert.setTown(orderDetail.getString("town")); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(orderDetail.getString("createdTime"), formatter); + insert.setOrderTime(dateTime); +// insert.setOrderModifiedTime(orderDetail.getString("updatedAt")); +// if(orderDetail.getDate("receiveTime")!=null){ +// insert.setOrderFinishTime(orderDetail.getDate("receiveTime").getTime()); +// } +// insert.setShipType(0); + insert.setCreateTime(new Date()); + insert.setCreateBy("ORDER_MESSAGE"); + +// insert.setOpenAddressId(orderDetail.getString("openAddressId")); + orderMapper.insert(insert); + // 发送新订单消息 +// sseService.broadcastNewOrderMessage(EnumShopType.PDD,insert.getOrderNum()); + // 插入orderItem +// addPddOrderItem(insert.getId(),originOrder.getOrderSn(),orderStatus,refundStatus,platformDiscount,sellerDiscount); +// JSONArray itemArray = orderDetail.getJSONArray("items"); +// if (itemArray.isEmpty()) { +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); +// log.info("=====pdd order message===没有items====事务回滚======="); +// } + + + for (int i =0;i itemObject = (Map) itemArray.get(i); +// JSONObject itemObject = (JSONObject) item; + + OOrderItem orderItem = new OOrderItem(); + orderItem.setShopId(insert.getShopId()); + orderItem.setShopType(EnumShopType.PDD.getIndex()); +// orderItem.setMerchantId(insert.getMerchantId()); +// orderItem.setOrderTime(insert.getOrderTime()); + orderItem.setOrderId(insert.getId()); + orderItem.setOrderNum(orderSn); + orderItem.setSubOrderNum(orderSn+"-"+itemObject.getString("skuId")); + // 这里将订单商品skuid转换成erp系统的skuid +// Long erpGoodsId = 0L; +// String erpSkuId = "0"; +// +// List pddGoodsSku = pddGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(PddGoodsSku::getSkuId, item.getSkuId())); +// if (pddGoodsSku != null && !pddGoodsSku.isEmpty()) { +// erpGoodsId = pddGoodsSku.get(0).getOGoodsId(); +// erpSkuId = pddGoodsSku.get(0).getOGoodsSkuId(); +//// orderItem.setGoodsImg(taoGoodsSku.get(0).getLogo()); +//// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName()); +//// orderItem.setSkuNum(taoGoodsSku.get(0).getOuterId()); +// } + orderItem.setSkuNum(itemObject.getString("outerId")); + orderItem.setSkuId(itemObject.getString("skuId")); +// orderItem.setProductId(itemObject.getString("goodsId")); + orderItem.setGoodsId(itemObject.getLong("erpGoodsId")); + orderItem.setGoodsSkuId(itemObject.getLong("erpGoodsSkuId")); + orderItem.setGoodsImg(itemObject.getString("goodsImg")); + orderItem.setGoodsSpec(itemObject.getString("goodsSpec")); + orderItem.setGoodsTitle(itemObject.getString("goodsName")); + orderItem.setGoodsPrice(itemObject.getDouble("goodsPrice")); + orderItem.setQuantity(itemObject.getInteger("goodsCount")); + if (i == 0) { + Double itemAmount = orderItem.getGoodsPrice() * orderItem.getQuantity() - insert.getPlatformDiscount() - insert.getSellerDiscount(); + orderItem.setItemAmount(itemAmount); + orderItem.setPayment(itemAmount); + } else { + orderItem.setItemAmount(orderItem.getGoodsPrice()* orderItem.getQuantity()); + orderItem.setPayment(orderItem.getGoodsPrice()* orderItem.getQuantity()); + } +// orderItem.setPayment(item.getGoodsPrice()); + +// orderItem.setOrderStatus(orderStatus); + orderItem.setRefundStatus(refundStatus); + 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()); + Integer originOrderStatus = orderDetail.getInteger("orderStatus"); + Integer originRefundStatus = orderDetail.getInteger("refundStatus"); + Integer afterSalesStatus = orderDetail.getInteger("afterSalesStatus"); + String platformStatusDesc = "未知"; + // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除 + int orderStatus = 0; + int refundStatus = -1; + if (originRefundStatus == 1) { + // 没有售后 + orderStatus = originOrderStatus; + if(originOrderStatus==1) { + platformStatusDesc = "待发货"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收"; + } + refundStatus = 1; + } else { + if (originRefundStatus == 4) { + refundStatus = 4; + orderStatus = EnumOOrderStatus.CLOSED.getIndex(); + if(originOrderStatus==1) { + platformStatusDesc = "待发货-已退款"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收-已退款"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收-已退款"; + } + } else { + refundStatus = originRefundStatus; + orderStatus = EnumOOrderStatus.REFUND.getIndex(); + if(originOrderStatus==1) { + platformStatusDesc = "待发货-售后中"; + }else if(originOrderStatus == 2){ + platformStatusDesc = "已发货待签收-售后中"; + }else if(originOrderStatus == 3){ + platformStatusDesc = "已签收-售后中"; + } + } + } + if(orderDetail.getInteger("riskControlStatus")==1){ + orderStatus = 0; + } +// insert.setRefundStatus(refundStatus); + update.setOrderStatus(orderStatus); +// update.setPlatformStatusCode(originOrderStatus+"-"+originRefundStatus); +// update.setPlatformStatusDesc(platformStatusDesc); + update.setShopType(EnumShopType.PDD.getIndex()); + update.setShopId(orderDetail.getLong("shopId")); +// update.setMerchantId(orderDetail.getLong("merchantId")); + + // 价格 + update.setGoodsAmount(orderDetail.getDouble("goodsAmount"));//.getGoodsAmount()); + update.setPostFee(orderDetail.getDouble("postage")); + update.setAmount(orderDetail.getDouble("goodsAmount")); + double payAmount = orderDetail.getDouble("payAmount"); + update.setPayment(payAmount); + double platformDiscount = orderDetail.getDouble("platformDiscount")!=null?orderDetail.getDouble("platformDiscount"):0.0; + update.setPlatformDiscount(platformDiscount); + double sellerDiscount = orderDetail.getDouble("sellerDiscount")!=null?orderDetail.getDouble("sellerDiscount"):0.0; + update.setSellerDiscount(sellerDiscount); + double payDiscount = orderDetail.getDouble("duoDuoPayReduction")!=null?orderDetail.getDouble("duoDuoPayReduction"):0.0; +// update.setMerchantAmount(payAmount+platformDiscount+payDiscount); + + if (orderStatus == 1 && refundStatus == 1) { + if (StringUtils.isNotBlank(orderDetail.getString("receiverNameMask"))) { + update.setReceiverName(orderDetail.getString("receiverNameMask")); + } + if (StringUtils.isNotBlank(orderDetail.getString("receiverPhoneMask"))) { + update.setReceiverMobile(orderDetail.getString("receiverPhoneMask")); + } + if (StringUtils.isNotBlank(orderDetail.getString("addressMask"))) { + update.setAddress(orderDetail.getString("addressMask")); + } + } + + if (StringUtils.isNotBlank(orderDetail.getString("province"))) { + update.setProvince(orderDetail.getString("province")); + } + if (StringUtils.isNotBlank(orderDetail.getString("city"))) { + update.setCity(orderDetail.getString("city")); + } + if (StringUtils.isNotBlank(orderDetail.getString("town"))) { + update.setTown(orderDetail.getString("town")); + } + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + LocalDateTime dateTime = LocalDateTime.parse(orderDetail.getString("createdTime"), formatter); + update.setOrderTime(dateTime); +// update.setOrderModifiedTime(orderDetail.getString("updatedAt")); +// if(orderDetail.getDate("receiveTime")!=null){ +// update.setOrderFinishTime(orderDetail.getDate("receiveTime").getTime()); +// } +// update.setOpenAddressId(orderDetail.getString("openAddressId")); +// update.setWaybillCode(orderDetail.getString("trackingNumber")); + update.setUpdateTime(new Date()); + update.setUpdateBy("ORDER_MESSAGE"); + orderMapper.updateById(update); + // 更新发货主表数据状态 + + + + Long shipOrderId = 0L; + for (int i = 0; i < itemArray.size(); i++) { + JSONObject itemObject = itemArray.getJSONObject(i); + List oOrderItems = orderItemMapper.selectList( + new LambdaQueryWrapper().eq(OOrderItem::getOrderId, oOrders.get(0).getId()) + .eq(OOrderItem::getSkuId, itemObject.getString("skuId"))); + if (oOrderItems.isEmpty()) { + // 新增item + OOrderItem orderItem = new OOrderItem(); + orderItem.setOrderId(oOrders.get(0).getId()); + orderItem.setShopId(update.getShopId()); + orderItem.setShopType(EnumShopType.PDD.getIndex()); +// orderItem.setMerchantId(update.getMerchantId()); + orderItem.setOrderNum(orderSn); + orderItem.setSubOrderNum(orderSn + "-" + itemObject.getString("skuId")); + orderItem.setSkuNum(itemObject.getString("outerId")); + orderItem.setSkuId(itemObject.getString("skuId")); +// orderItem.setProductId(itemObject.getString("goodsId")); + orderItem.setGoodsId(itemObject.getLong("erpGoodsId")); + orderItem.setGoodsSkuId(itemObject.getLong("erpGoodsSkuId")); + orderItem.setGoodsImg(itemObject.getString("goodsImg")); + orderItem.setGoodsSpec(itemObject.getString("goodsSpec")); + orderItem.setGoodsTitle(itemObject.getString("goodsName")); + orderItem.setGoodsPrice(itemObject.getDouble("goodsPrice")); + orderItem.setQuantity(itemObject.getInteger("goodsCount")); + if (i == 0) { + Double itemAmount = orderItem.getGoodsPrice() * orderItem.getQuantity() - oOrders.get(0).getPlatformDiscount() - oOrders.get(0).getSellerDiscount(); + orderItem.setItemAmount(itemAmount); + orderItem.setPayment(itemAmount); + } else { + orderItem.setItemAmount(orderItem.getGoodsPrice() * orderItem.getQuantity()); + orderItem.setPayment(orderItem.getGoodsPrice() * orderItem.getQuantity()); + } +// orderItem.setOrderStatus(orderStatus); + orderItem.setRefundStatus(refundStatus); + orderItem.setRefundCount(0); + orderItem.setCreateTime(new Date()); + orderItem.setCreateBy("ORDER_MESSAGE"); + orderItemMapper.insert(orderItem); + } else { + // 修改、 + OOrderItem orderItem = new OOrderItem(); + orderItem.setId(oOrderItems.get(0).getId()); + orderItem.setShopId(update.getShopId()); + orderItem.setShopType(EnumShopType.PDD.getIndex()); + orderItem.setSkuNum(itemObject.getString("outerId")); + orderItem.setSkuId(itemObject.getString("skuId")); + orderItem.setGoodsId(itemObject.getLong("erpGoodsId")); + orderItem.setGoodsSkuId(itemObject.getLong("erpGoodsSkuId")); + orderItem.setGoodsImg(itemObject.getString("goodsImg")); + orderItem.setGoodsSpec(itemObject.getString("goodsSpec")); + orderItem.setGoodsTitle(itemObject.getString("goodsName")); + orderItem.setGoodsPrice(itemObject.getDouble("goodsPrice")); + orderItem.setQuantity(itemObject.getInteger("goodsCount")); + if (i == 0) { + Double itemAmount = orderItem.getGoodsPrice() * orderItem.getQuantity() - oOrders.get(0).getPlatformDiscount() - oOrders.get(0).getSellerDiscount(); + orderItem.setItemAmount(itemAmount); + orderItem.setPayment(itemAmount); + } else { + orderItem.setItemAmount(orderItem.getGoodsPrice() * orderItem.getQuantity()); + orderItem.setPayment(orderItem.getGoodsPrice() * orderItem.getQuantity()); + } +// orderItem.setOrderStatus(orderStatus); + orderItem.setRefundStatus(refundStatus); + orderItem.setRefundCount(0); + orderItem.setUpdateTime(new Date()); + orderItem.setUpdateBy("ORDER_MESSAGE"); + orderItemMapper.updateById(orderItem); + } + } + + // 更新主订单状态(如果全部退款的话,就更新成订单取消状态) + List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper() + .eq(OOrderItem::getOrderId, update.getId()) + .eq(OOrderItem::getRefundStatus, 1) + ); + // 找出没有退款的子订单,如果没有,那么把主订单直接更新成取消状态 + if (oOrderItems == null || oOrderItems.isEmpty()) { + OOrder orderUpdate = new OOrder(); + orderUpdate.setId(update.getId()); + orderUpdate.setOrderStatus(EnumOOrderStatus.CLOSED.getIndex()); + orderUpdate.setCancelReason("子订单全部退款"); + orderUpdate.setUpdateBy("子订单全部退款"); + orderUpdate.setUpdateTime(new Date()); + orderMapper.updateById(orderUpdate); + } + log.info("===========同步pddOrder====成功"); + } + return ResultVo.success(); + } +}