From 7ba8e1baad584494c965cc0b70d0ed9dde8781a8 Mon Sep 17 00:00:00 2001
From: Richie <280645618@qq.com>
Date: Sat, 24 May 2025 08:50:51 +0800
Subject: [PATCH] =?UTF-8?q?orderitem=E6=96=B0=E5=A2=9Eshoptype=E5=92=8Csho?=
=?UTF-8?q?pid?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
api/oms-api/pom.xml | 5 +
.../oms/config/MybatisPlusConfig.java | 2 +-
.../oms/controller/OOrderController.java | 81 +++
.../JwtAuthenticationTokenFilter.java | 2 +-
.../cn/qihangerp/security/SecurityConfig.java | 2 +-
docs/qihang-oms.sql | 62 +-
.../module/order/domain/OOrderItem.java | 9 +
.../order/service/impl/OOrderServiceImpl.java | 581 ++++++++++++------
.../open/tao/service/TaoOrderService.java | 9 +
.../tao/service/impl/TaoOrderServiceImpl.java | 101 +++
.../module/open/wei/domain/WeiOrder.java | 2 +
.../module/open/wei/domain/WeiOrderItem.java | 2 +
.../module/open/wei/domain/WeiRefund.java | 2 +
.../views/shipping/ewaybillPrint/index.vue | 2 +-
.../stockup/warehouse/order_item_list.vue | 2 +-
vue/src/views/tao/ewaybill/index.vue | 4 +-
16 files changed, 641 insertions(+), 227 deletions(-)
create mode 100644 api/oms-api/src/main/java/cn/qihangerp/oms/controller/OOrderController.java
diff --git a/api/oms-api/pom.xml b/api/oms-api/pom.xml
index 3c4ec85a..622c9431 100644
--- a/api/oms-api/pom.xml
+++ b/api/oms-api/pom.xml
@@ -98,6 +98,11 @@
goods-api
1.0.6
+
+ cn.qihangerp.module
+ order
+ 1.0
+
cn.qihangerp.services
order-api
diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/config/MybatisPlusConfig.java b/api/oms-api/src/main/java/cn/qihangerp/oms/config/MybatisPlusConfig.java
index 95f318ef..b40c9e11 100644
--- a/api/oms-api/src/main/java/cn/qihangerp/oms/config/MybatisPlusConfig.java
+++ b/api/oms-api/src/main/java/cn/qihangerp/oms/config/MybatisPlusConfig.java
@@ -9,7 +9,7 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
@Configuration
-@MapperScan({"cn.qihangerp.oms.mapper","cn.qihangerp.module.*.mapper","cn.qihangerp.module.mapper"})
+@MapperScan({"cn.qihangerp.module.*.mapper","cn.qihangerp.module.mapper"})
public class MybatisPlusConfig {
@Primary
@Bean
diff --git a/api/oms-api/src/main/java/cn/qihangerp/oms/controller/OOrderController.java b/api/oms-api/src/main/java/cn/qihangerp/oms/controller/OOrderController.java
new file mode 100644
index 00000000..d8664d14
--- /dev/null
+++ b/api/oms-api/src/main/java/cn/qihangerp/oms/controller/OOrderController.java
@@ -0,0 +1,81 @@
+//package cn.qihangerp.oms.controller;
+//
+//
+//import cn.qihangerp.common.AjaxResult;
+//import cn.qihangerp.common.PageQuery;
+//import cn.qihangerp.common.TableDataInfo;
+//import cn.qihangerp.module.order.service.OOrderItemService;
+//import cn.qihangerp.module.order.service.OOrderService;
+//import cn.qihangerp.request.OrderSearchRequest;
+//import cn.qihangerp.security.common.BaseController;
+//import lombok.AllArgsConstructor;
+//import org.springframework.security.access.prepost.PreAuthorize;
+//import org.springframework.web.bind.annotation.*;
+//
+///**
+// * 店铺订单Controller
+// *
+// * @author qihang
+// * @date 2023-12-31
+// */
+//@AllArgsConstructor
+//@RestController
+//@RequestMapping("/oorder")
+//public class OOrderController extends BaseController
+//{
+//
+// private final OOrderService orderService;
+// private final OOrderItemService orderItemService;
+//
+// /**
+// * 查询店铺订单列表
+// */
+// @PreAuthorize("@ss.hasPermi('shop:order:list')")
+// @GetMapping("/list")
+// public TableDataInfo list(OrderSearchRequest bo, PageQuery pageQuery)
+// {
+// var pageList = orderService.queryPageList(bo,pageQuery);
+// return getDataTable(pageList);
+// }
+//
+//
+// /**
+// * 获取店铺订单详细信息
+// */
+// @PreAuthorize("@ss.hasPermi('shop:order:query')")
+// @GetMapping(value = "/{id}")
+// public AjaxResult getInfo(@PathVariable("id") Long id)
+// {
+// return success(orderService.queryDetailById(id));
+// }
+//
+//
+//// @PostMapping
+//// public AjaxResult add(@RequestBody OrderCreateBo order)
+//// {
+//// if(order.getGoodsAmount()==null)return new AjaxResult(1503,"请填写商品价格!");
+////
+//// int result = orderService.insertErpOrder(order,getUsername());
+//// if(result == -1) return new AjaxResult(501,"订单号已存在!");
+//// if(result == -2) return new AjaxResult(502,"请添加订单商品!");
+//// if(result == -3) return new AjaxResult(503,"请完善订单商品明细!");
+//// if(result == -4) return new AjaxResult(504,"请选择店铺!");
+//// return toAjax(result);
+//// }
+//// /**
+//// * 订单发货
+//// * @param order
+//// * @return
+//// */
+//// @Log(title = "店铺订单", businessType = BusinessType.UPDATE)
+//// @PostMapping("/ship")
+//// public AjaxResult ship(@RequestBody ErpOrder order)
+//// {
+//// order.setUpdateBy(getUsername());
+//// int result = orderService.shipErpOrder(order);
+//// if(result == -1) return new AjaxResult(501,"订单不存在!");
+//// else if(result == -2) return new AjaxResult(502,"订单号已存在!");
+//// return toAjax(result);
+//// }
+//
+//}
diff --git a/core/security/src/main/java/cn/qihangerp/security/JwtAuthenticationTokenFilter.java b/core/security/src/main/java/cn/qihangerp/security/JwtAuthenticationTokenFilter.java
index 6808fa99..6834abc9 100644
--- a/core/security/src/main/java/cn/qihangerp/security/JwtAuthenticationTokenFilter.java
+++ b/core/security/src/main/java/cn/qihangerp/security/JwtAuthenticationTokenFilter.java
@@ -51,7 +51,7 @@ public class JwtAuthenticationTokenFilter extends OncePerRequestFilter {
|| request.getRequestURI().contains("/login")
|| request.getRequestURI().contains("/captchaImage")
|| request.getRequestURI().contains("/order/get_detail")
- || request.getRequestURI().equals("/refund/get_detail")
+ || request.getRequestURI().contains("/refund/get_detail")
|| request.getRequestURI().contains("/system/config")
) {
// 登录页面,放行 || request.getRequestURI().equals("/order/get_detail")
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 0f1f2612..fe51340c 100644
--- a/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java
+++ b/core/security/src/main/java/cn/qihangerp/security/SecurityConfig.java
@@ -61,7 +61,7 @@ public class SecurityConfig {
// 允许所有OPTIONS请求
.requestMatchers("/home").permitAll()
.requestMatchers(HttpMethod.GET, "/favicon.ico").permitAll()
- .requestMatchers(HttpMethod.GET, "/*/order/get_detail").permitAll()
+ .requestMatchers(HttpMethod.GET, "/tao/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/docs/qihang-oms.sql b/docs/qihang-oms.sql
index d654bbcc..615a558c 100644
--- a/docs/qihang-oms.sql
+++ b/docs/qihang-oms.sql
@@ -795,36 +795,38 @@ CREATE TABLE `o_order` (
-- ----------------------------
DROP TABLE IF EXISTS `o_order_item`;
CREATE TABLE `o_order_item` (
- `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id,自增',
- `order_id` bigint NOT NULL COMMENT '订单ID(o_order外键)',
- `order_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号(第三方平台)',
- `sub_order_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '子订单号(第三方平台)',
- `sku_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方平台skuId',
- `goods_id` bigint NOT NULL DEFAULT 0 COMMENT '商品id(o_goods外键)',
- `goods_sku_id` bigint NOT NULL DEFAULT 0 COMMENT '商品skuid(o_goods_sku外键)',
- `goods_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品标题',
- `goods_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片',
- `goods_num` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品编码',
- `goods_spec` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格',
- `sku_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格编码',
- `goods_price` double NOT NULL COMMENT '商品单价',
- `item_amount` double NULL DEFAULT NULL COMMENT '子订单金额',
- `discount_amount` double NULL DEFAULT 0 COMMENT '子订单优惠金额',
- `payment` double NULL DEFAULT NULL COMMENT '实际支付金额',
- `quantity` int NOT NULL COMMENT '商品数量',
- `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
- `refund_count` int NULL DEFAULT 0 COMMENT '已退货数量',
- `refund_status` int NULL DEFAULT NULL COMMENT '售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 ',
- `order_status` int NULL DEFAULT NULL COMMENT '订单状态1:待发货,2:已发货,3:已完成,11已取消;21待付款',
- `has_push_erp` int NULL DEFAULT 0 COMMENT '是否推送到ERP',
- `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
- `create_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
- `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
- `update_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人',
- PRIMARY KEY (`id`) USING BTREE,
- INDEX `goodId_index`(`goods_id`) USING BTREE,
- INDEX `order_id`(`order_id`) USING BTREE,
- INDEX `order_num_index`(`order_num`) USING BTREE
+ `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id,自增',
+ `order_id` bigint NOT NULL COMMENT '订单ID(o_order外键)',
+ `order_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单号(第三方平台)',
+ `sub_order_num` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '子订单号(第三方平台)',
+ `sku_id` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '第三方平台skuId',
+ `goods_id` bigint NOT NULL DEFAULT 0 COMMENT '商品id(o_goods外键)',
+ `goods_sku_id` bigint NOT NULL DEFAULT 0 COMMENT '商品skuid(o_goods_sku外键)',
+ `goods_title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品标题',
+ `goods_img` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品图片',
+ `goods_num` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品编码',
+ `goods_spec` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格',
+ `sku_num` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品规格编码',
+ `goods_price` double NOT NULL COMMENT '商品单价',
+ `item_amount` double NULL DEFAULT NULL COMMENT '子订单金额',
+ `discount_amount` double NULL DEFAULT 0 COMMENT '子订单优惠金额',
+ `payment` double NULL DEFAULT NULL COMMENT '实际支付金额',
+ `quantity` int NOT NULL COMMENT '商品数量',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `refund_count` int NULL DEFAULT 0 COMMENT '已退货数量',
+ `refund_status` int NULL DEFAULT NULL COMMENT '售后状态 1:无售后或售后关闭,2:售后处理中,3:退款中,4: 退款成功 ',
+ `order_status` int NULL DEFAULT NULL COMMENT '订单状态1:待发货,2:已发货,3:已完成,11已取消;21待付款',
+ `has_push_erp` int NULL DEFAULT 0 COMMENT '是否推送到ERP',
+ `create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
+ `create_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '创建人',
+ `update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
+ `update_by` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL COMMENT '更新人',
+ `shop_type` int NOT NULL COMMENT '店铺类型',
+ `shop_id` bigint NOT NULL COMMENT '店铺ID',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `goodId_index`(`goods_id`) USING BTREE,
+ INDEX `order_id`(`order_id`) USING BTREE,
+ INDEX `order_num_index`(`order_num`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 43 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'OMS订单明细表' ROW_FORMAT = DYNAMIC;
-- ----------------------------
diff --git a/module/order/src/main/java/cn/qihangerp/module/order/domain/OOrderItem.java b/module/order/src/main/java/cn/qihangerp/module/order/domain/OOrderItem.java
index 30fa668f..7befbcb9 100644
--- a/module/order/src/main/java/cn/qihangerp/module/order/domain/OOrderItem.java
+++ b/module/order/src/main/java/cn/qihangerp/module/order/domain/OOrderItem.java
@@ -25,6 +25,15 @@ public class OOrderItem implements Serializable {
* 订单ID(o_order外键)
*/
private String orderId;
+ /**
+ * 店铺类型
+ */
+ private Integer shopType;
+
+ /**
+ * 店铺ID
+ */
+ private Long shopId;
/**
* 子订单号(第三方平台)
diff --git a/module/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java b/module/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java
index dc2c475c..dbe47acc 100644
--- a/module/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java
+++ b/module/order/src/main/java/cn/qihangerp/module/order/service/impl/OOrderServiceImpl.java
@@ -161,11 +161,13 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.insert(insert);
// 添加orderItem
- addJdOrderItem(orderId,insert.getId(),orderStatus,orderSellerPrice,orderPayment,itemArray);
+ addJdOrderItem(insert,orderId,insert.getId(),orderStatus,orderSellerPrice,orderPayment,itemArray);
}else{
// 修改订单 (修改:)
OOrder update = new OOrder();
update.setId(oOrders.get(0).getId());
+ update.setShopType(EnumShopType.JD.getIndex());
+ update.setShopId(orderDetail.getLong("shopId"));
// 价格
update.setGoodsAmount(orderSellerPrice);
update.setPayment(orderPayment);
@@ -180,23 +182,65 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.updateById(update);
// 删除orderItem
- orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId,update.getId()));
+// orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId,update.getId()));
// 插入orderItem
- addJdOrderItem(orderId,update.getId(),orderStatus,orderSellerPrice,orderPayment,itemArray);
+ addJdOrderItem(update,orderId,update.getId(),orderStatus,orderSellerPrice,orderPayment,itemArray);
}
return ResultVo.success();
}
- private void addJdOrderItem(String orderId,String oOrderId,Integer orderStatus,Double orderSellerPrice,Double orderPayment,JSONArray itemArray ) {
+ private void addJdOrderItem(OOrder oOrder,String orderId,String oOrderId,Integer orderStatus,Double orderSellerPrice,Double orderPayment,JSONArray itemArray ) {
Double payedItemAmount = 0.0;//已付金额
for (int i =0;i oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+ log.error("同步JD订单没有找到商品库商品SKU");
+ }else{
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
+ }
+ }else {
+ log.error("同步JD订单{},原始订单没有填写sku编码信息",oOrder.getOrderNum());
+ }
+ }else{
+ OGoodsSku oGoodsSku = oGoodsSkuMapper.selectById(oGoodsSkuId);
+ if(oGoodsSku==null){
+ // 没有关联商品库商品skuid,查找关联====使用skucode查找
+ if(org.springframework.util.StringUtils.hasText(skuNum)) {
+ List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+ log.error("同步JD订单没有找到商品库商品SKU");
+ }else{
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
+ }
+ }else {
+ log.error("同步JD订单{},原始订单没有填写sku编码信息",oOrder.getOrderNum());
+ }
+ }else{
+ oGoodsId = oGoodsSku.getGoodsId();
+ oGoodsSkuId = oGoodsSku.getId();
+ }
+ }
+
OOrderItem orderItem = new OOrderItem();
- orderItem.setOrderId(oOrderId);
- orderItem.setOrderNum(orderId);
- orderItem.setSubOrderNum(orderId+"-"+itemObject.getString("skuId"));
+ orderItem.setOrderId(oOrder.getId());
+ orderItem.setShopType(oOrder.getShopType());
+ orderItem.setShopId(oOrder.getShopId());
+ orderItem.setOrderNum(oOrder.getOrderNum());
+ orderItem.setSubOrderNum(oOrder.getOrderNum()+"-"+itemObject.getString("skuId"));
// TODO:这里将订单商品skuid转换成erp系统的skuid
// Long erpGoodsId = 0L;
// String erpSkuId = "0";
@@ -209,10 +253,13 @@ public class OOrderServiceImpl extends ServiceImpl
// orderItem.setGoodsSpec(jdGoodsSkus.get(0).getSkuName());
// orderItem.setSkuNum(jdGoodsSkus.get(0).getOuterId());
// }
- orderItem.setSkuNum(itemObject.getString("outerSkuId"));
+ orderItem.setSkuNum(skuNum);
+ orderItem.setGoodsId(oGoodsId);
+ orderItem.setGoodsSkuId(oGoodsSkuId);
+// orderItem.setSkuNum(itemObject.getString("outerSkuId"));
orderItem.setSkuId(itemObject.getString("skuId"));
- orderItem.setGoodsId(itemObject.getLong("oGoodsId"));
- orderItem.setGoodsSkuId(itemObject.getLong("oGoodsSkuId"));
+// orderItem.setGoodsId(itemObject.getLong("oGoodsId"));
+// orderItem.setGoodsSkuId(itemObject.getLong("oGoodsSkuId"));
orderItem.setGoodsTitle(itemObject.getString("skuName"));
orderItem.setGoodsPrice(StringUtils.isEmpty(itemObject.getString("jdPrice")) ? 0.0 : Double.parseDouble(itemObject.getString("jdPrice")));
Integer quantity = itemObject.getInteger("itemTotal");
@@ -249,6 +296,22 @@ public class OOrderServiceImpl extends ServiceImpl
orderItem.setRefundStatus(1);
orderItem.setRefundCount(0);
}
+
+ List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper()
+ .eq(OOrderItem::getOrderId, oOrderId)
+ .eq(OOrderItem::getSkuId, itemObject.getString("skuId")));
+ if(oOrderItems==null||oOrderItems.isEmpty()){
+ //不存在,新增
+ orderItem.setCreateTime(new Date());
+ orderItem.setCreateBy("ORDER_MESSAGE");
+ orderItemMapper.insert(orderItem);
+ }else {
+ orderItem.setId(oOrderItems.get(0).getId());
+ orderItem.setUpdateBy("ORDER_MESSAGE");
+ orderItem.setUpdateTime(new Date());
+ orderItemMapper.updateById(orderItem);
+ }
+
orderItem.setCreateTime(new Date());
orderItem.setCreateBy("ORDER_MESSAGE");
orderItemMapper.insert(orderItem);
@@ -350,12 +413,14 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.insert(insert);
// 插入orderItem
- addTaoOrderItem(insert.getId(),tid,itemArray);
+ addTaoOrderItem(insert,tid,itemArray);
}else{
// 修改订单 (修改:)
OOrder update = new OOrder();
update.setId(oOrders.get(0).getId());
+ update.setShopType(EnumShopType.TAO.getIndex());
+ update.setShopId(orderDetail.getLong("shopId"));
String buyerMemo = "";
if(org.springframework.util.StringUtils.hasText(orderDetail.getString("buyerMessage"))){
buyerMemo += orderDetail.getString("buyerMessage");
@@ -393,12 +458,12 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.updateById(update);
// 插入orderItem
- addTaoOrderItem(update.getId(),tid,itemArray);
+ addTaoOrderItem(update,tid,itemArray);
}
return ResultVo.success();
}
- private void addTaoOrderItem(String oOrderId,String tid, JSONArray itemArray) {
+ private void addTaoOrderItem(OOrder oOrder,String tid, JSONArray itemArray) {
for (int i = 0; i < itemArray.size(); i++) {
JSONObject itemObject = itemArray.getJSONObject(i);
@@ -442,13 +507,16 @@ public class OOrderServiceImpl extends ServiceImpl
}
OOrderItem orderItem = new OOrderItem();
- orderItem.setOrderId(oOrderId);
+ orderItem.setOrderId(oOrder.getId());
+ orderItem.setShopType(oOrder.getShopType());
+ orderItem.setShopId(oOrder.getShopId());
orderItem.setOrderNum(tid);
orderItem.setSubOrderNum(itemObject.getString("oid"));
orderItem.setSkuNum(skuNum);
- orderItem.setSkuId(itemObject.getString("skuId"));
orderItem.setGoodsId(oGoodsId);
orderItem.setGoodsSkuId(oGoodsSkuId);
+ orderItem.setSkuId(itemObject.getString("skuId"));
+
orderItem.setGoodsImg(itemObject.getString("picPath"));
orderItem.setGoodsSpec(itemObject.getString("skuPropertiesName"));
orderItem.setGoodsTitle(itemObject.getString("title"));
@@ -480,7 +548,9 @@ public class OOrderServiceImpl extends ServiceImpl
int orderStatus = TaoOrderStateEnum.getIndex(itemObject.getString("status"));
orderItem.setOrderStatus(orderStatus);
- List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper().eq(OOrderItem::getOrderId, oOrderId).eq(OOrderItem::getSkuId, itemObject.getString("skuId")));
+ List oOrderItems = orderItemMapper.selectList(new LambdaQueryWrapper()
+ .eq(OOrderItem::getOrderId, oOrder.getId())
+ .eq(OOrderItem::getSkuId, itemObject.getString("skuId")));
if(oOrderItems==null||oOrderItems.isEmpty()){
//不存在,新增
orderItem.setCreateTime(new Date());
@@ -501,7 +571,7 @@ public class OOrderServiceImpl extends ServiceImpl
@Transactional
@Override
public ResultVo pddOrderMessage(String orderSn,JSONObject orderDetail ) {
- log.info("=====pdd order message===订单号{}==="+orderSn);
+ 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===没有找到订单");
@@ -509,8 +579,13 @@ public class OOrderServiceImpl extends ServiceImpl
// }
//
// JSONObject orderDetail = jsonObject.getJSONObject("data");
- log.info("=====pdd order message===订单:"+JSONObject.toJSONString(orderDetail));
- if(orderDetail == null) return ResultVo.error(404,"没有找到订单");
+ log.info("=====pdd order message===订单:" + JSONObject.toJSONString(orderDetail));
+ if (orderDetail == null) return ResultVo.error(404, "没有找到订单");
+ JSONArray itemArray = orderDetail.getJSONArray("items");
+ if (itemArray.isEmpty()) {
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ log.info("=====pdd order message===没有items====事务回滚=======");
+ }
// List originOrders = pddOrderMapper.selectList(new LambdaQueryWrapper().eq(PddOrder::getOrderSn, orderSn));
//
// if(originOrders == null || originOrders.size() == 0) {
@@ -519,9 +594,27 @@ public class OOrderServiceImpl extends ServiceImpl
// }
// PddOrder originOrder = originOrders.get(0);
// PddOrder originOrder = new PddOrder();
-
+ OOrder newOrder = new OOrder();
+ Integer originOrderStatus = orderDetail.getInteger("orderStatus");
+ Integer originRefundStatus = orderDetail.getInteger("refundStatus");
+ // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除
+ int orderStatus = -1;
+ int refundStatus = -1;
+ if (originRefundStatus == 1) {
+ // 没有售后
+ orderStatus = originOrderStatus;
+ refundStatus = 1;
+ } else {
+ if (originRefundStatus == 4) {
+ refundStatus = 4;
+ orderStatus = 11;
+ } else {
+ refundStatus = originRefundStatus;
+ orderStatus = 12;
+ }
+ }
List oOrders = orderMapper.selectList(new LambdaQueryWrapper().eq(OOrder::getOrderNum, orderSn));
- if(oOrders == null || oOrders.isEmpty()) {
+ if (oOrders == null || oOrders.isEmpty()) {
// 新增订单
OOrder insert = new OOrder();
insert.setOrderNum(orderSn);
@@ -529,24 +622,7 @@ public class OOrderServiceImpl extends ServiceImpl
insert.setShopId(orderDetail.getLong("shopId"));
insert.setBuyerMemo(orderDetail.getString("buyerMemo"));
insert.setSellerMemo(orderDetail.getString("remark"));
- Integer originOrderStatus = orderDetail.getInteger("orderStatus");
- Integer originRefundStatus = orderDetail.getInteger("refundStatus");
- // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除
- int orderStatus = -1;
- int refundStatus = -1;
- if (originRefundStatus == 1) {
- // 没有售后
- orderStatus = originOrderStatus;
- refundStatus = 1;
- } else {
- if (originRefundStatus == 4) {
- refundStatus = 4;
- orderStatus = 11;
- } else {
- refundStatus = originRefundStatus;
- orderStatus = 12;
- }
- }
+
insert.setRefundStatus(refundStatus);
insert.setOrderStatus(orderStatus);
// 价格
@@ -571,86 +647,129 @@ public class OOrderServiceImpl extends ServiceImpl
insert.setCreateBy("ORDER_MESSAGE");
orderMapper.insert(insert);
+
+ newOrder = insert;
// 插入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.setOrderId(insert.getId());
- orderItem.setOrderNum(orderSn);
- orderItem.setSubOrderNum(orderSn+"-"+itemObject.getString("skuId"));
- // 这里将订单商品skuid转换成erp系统的skuid
-// Long erpGoodsId = 0L;
-// String erpSkuId = "0";
+// for (int i = 0; i < itemArray.size(); i++) {
+// JSONObject itemObject = itemArray.getJSONObject(i);
+//// Map itemObject = (Map) itemArray.get(i);
+//// JSONObject itemObject = (JSONObject) item;
//
-// 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());
+// // 查询商品库商品
+// Long oGoodsId = itemObject.getLong("oGoodsId");
+// Long oGoodsSkuId =itemObject.getLong("oGoodsSkuId");
+// String skuNum = itemObject.getString("outerSkuId");
+//
+// if(oGoodsSkuId<=0){
+// // 没有关联商品库商品skuid,查找关联====使用skucode查找
+// if(org.springframework.util.StringUtils.hasText(skuNum)) {
+// List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+// if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+// log.error("同步TAO订单没有找到商品库商品SKU");
+// }else{
+// oGoodsId = oGoodsSkus.get(0).getGoodsId();
+// oGoodsSkuId = oGoodsSkus.get(0).getId();
+// }
+// }else {
+// log.error("同步TAO订单{},原始订单没有填写sku编码信息",tid);
+// }
+// }else{
+// OGoodsSku oGoodsSku = oGoodsSkuMapper.selectById(oGoodsSkuId);
+// if(oGoodsSku==null){
+// // 没有关联商品库商品skuid,查找关联====使用skucode查找
+// if(org.springframework.util.StringUtils.hasText(skuNum)) {
+// List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+// if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+// log.error("同步TAO订单没有找到商品库商品SKU");
+// }else{
+// oGoodsId = oGoodsSkus.get(0).getGoodsId();
+// oGoodsSkuId = oGoodsSkus.get(0).getId();
+// }
+// }else {
+// log.error("同步TAO订单{},原始订单没有填写sku编码信息",tid);
+// }
+// }else{
+// oGoodsId = oGoodsSku.getGoodsId();
+// oGoodsSkuId = oGoodsSku.getId();
+// }
// }
- orderItem.setSkuNum(itemObject.getString("outerId"));
- orderItem.setSkuId(itemObject.getString("skuId"));
- orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
- orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
- 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);
- }
+//
+// OOrderItem orderItem = new OOrderItem();
+// orderItem.setOrderId(insert.getId());
+// orderItem.setOrderNum(orderSn);
+// orderItem.setSubOrderNum(orderSn + "-" + itemObject.getString("skuId"));
+// orderItem.setShopType(EnumShopType.PDD.getIndex());
+// orderItem.setShopId(orderDetail.getLong("shopId"));
+// // 这里将订单商品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(skuNum);
+// orderItem.setGoodsId(oGoodsId);
+// orderItem.setGoodsSkuId(oGoodsSkuId);
+//// orderItem.setSkuNum(itemObject.getString("outerId"));
+// orderItem.setSkuId(itemObject.getString("skuId"));
+//// orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
+//// orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
+// 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{
+ } else {
// 修改订单 (修改:)
OOrder update = new OOrder();
update.setId(oOrders.get(0).getId());
- Integer originOrderStatus = orderDetail.getInteger("orderStatus");
- Integer originRefundStatus = orderDetail.getInteger("refundStatus");
- // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除
- int orderStatus = -1;
- int refundStatus = -1;
- if (originRefundStatus == 1) {
- // 没有售后
- orderStatus = originOrderStatus;
- refundStatus = 1;
- } else {
- if (originRefundStatus == 4) {
- refundStatus = 4;
- orderStatus = 11;
- } else {
- refundStatus = originRefundStatus;
- orderStatus = 12;
- }
- }
+ update.setShopType(EnumShopType.PDD.getIndex());
+ update.setShopId(orderDetail.getLong("shopId"));
+// Integer originOrderStatus = orderDetail.getInteger("orderStatus");
+// Integer originRefundStatus = orderDetail.getInteger("refundStatus");
+// // 状态 订单状态0:新订单,1:待发货,2:已发货,3:已完成,11已取消;12退款中;21待付款;22锁定,29删除
+// int orderStatus = -1;
+// int refundStatus = -1;
+// if (originRefundStatus == 1) {
+// // 没有售后
+// orderStatus = originOrderStatus;
+// refundStatus = 1;
+// } else {
+// if (originRefundStatus == 4) {
+// refundStatus = 4;
+// orderStatus = 11;
+// } else {
+// refundStatus = originRefundStatus;
+// orderStatus = 12;
+// }
+// }
update.setRefundStatus(refundStatus);
update.setOrderStatus(orderStatus);
@@ -664,7 +783,7 @@ public class OOrderServiceImpl extends ServiceImpl
// double sellerDiscount = originOrder.getSellerDiscount()!=null?originOrder.getSellerDiscount():0.0;
update.setSellerDiscount(orderDetail.getDouble("sellerDiscount"));
- if(orderStatus==1 && refundStatus==1) {
+ if (orderStatus == 1 && refundStatus == 1) {
if (StringUtils.isNotBlank(orderDetail.getString("receiverNameMask"))) {
update.setReceiverName(orderDetail.getString("receiverNameMask"));
}
@@ -676,93 +795,118 @@ public class OOrderServiceImpl extends ServiceImpl
}
}
- if(StringUtils.isNotBlank(orderDetail.getString("province"))){
+ if (StringUtils.isNotBlank(orderDetail.getString("province"))) {
update.setProvince(orderDetail.getString("province"));
}
- if(StringUtils.isNotBlank(orderDetail.getString("city"))){
+ if (StringUtils.isNotBlank(orderDetail.getString("city"))) {
update.setCity(orderDetail.getString("city"));
}
- if(StringUtils.isNotBlank(orderDetail.getString("town"))){
+ if (StringUtils.isNotBlank(orderDetail.getString("town"))) {
update.setTown(orderDetail.getString("town"));
}
update.setUpdateTime(new Date());
update.setUpdateBy("ORDER_MESSAGE");
orderMapper.updateById(update);
-
+ newOrder = update;
// 删除orderItem
- orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId,update.getId()));
+// orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId,update.getId()));
// // 插入orderItem
// addPddOrderItem(update.getId(),originOrder.getOrderSn(),orderStatus,refundStatus,platformDiscount,sellerDiscount);
- JSONArray itemArray = orderDetail.getJSONArray("items");
- if (itemArray.isEmpty()) {
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
- log.info("=====pdd order message===没有items====事务回滚=======");
- }
+// JSONArray itemArray = orderDetail.getJSONArray("items");
+// if (itemArray.isEmpty()) {
+// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+// log.info("=====pdd order message===没有items====事务回滚=======");
+// }
- for (int i =0;i 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.setOrderNum(orderSn);
- orderItem.setSubOrderNum(orderSn + "-" + itemObject.getString("skuId"));
- orderItem.setSkuNum(itemObject.getString("outerId"));
- orderItem.setSkuId(itemObject.getString("skuId"));
- orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
- orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
- 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);
+ }
+
+ for (int i = 0; i < itemArray.size(); i++) {
+ JSONObject itemObject = itemArray.getJSONObject(i);
+ // 查询商品库商品
+ Long oGoodsId = itemObject.getLong("ogoodsId");
+ Long oGoodsSkuId = itemObject.getLong("ogoodsSkuId");
+ String skuNum = itemObject.getString("outerId");
+
+ if (oGoodsSkuId <= 0) {
+ // 没有关联商品库商品skuid,查找关联====使用skucode查找
+ if (org.springframework.util.StringUtils.hasText(skuNum)) {
+ List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if (oGoodsSkus == null || oGoodsSkus.isEmpty()) {
+ log.error("同步PDD订单没有找到商品库商品SKU");
} else {
- orderItem.setItemAmount(orderItem.getGoodsPrice() * orderItem.getQuantity());
- orderItem.setPayment(orderItem.getGoodsPrice() * orderItem.getQuantity());
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
}
- 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.setSkuNum(itemObject.getString("outerId"));
-// orderItem.setSkuId(itemObject.getString("skuId"));
-// orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
-// orderItem.setGoodsSkuId(itemObject.getString("ogoodsSkuId"));
-// 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);
-// }
+ } else {
+ log.error("同步PDD订单{},原始订单没有填写sku编码信息", newOrder.getOrderNum());
+ }
+ } else {
+ OGoodsSku oGoodsSku = oGoodsSkuMapper.selectById(oGoodsSkuId);
+ if (oGoodsSku == null) {
+ // 没有关联商品库商品skuid,查找关联====使用skucode查找
+ if (org.springframework.util.StringUtils.hasText(skuNum)) {
+ List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if (oGoodsSkus == null || oGoodsSkus.isEmpty()) {
+ log.error("同步PDD订单没有找到商品库商品SKU");
+ } else {
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
+ }
+ } else {
+ log.error("同步PDD订单{},原始订单没有填写sku编码信息", newOrder.getOrderNum());
+ }
+ } else {
+ oGoodsId = oGoodsSku.getGoodsId();
+ oGoodsSkuId = oGoodsSku.getId();
+ }
+ }
+ OOrderItem orderItem = new OOrderItem();
+ orderItem.setOrderId(oOrders.get(0).getId());
+ orderItem.setOrderNum(orderSn);
+ orderItem.setSubOrderNum(orderSn + "-" + itemObject.getString("skuId"));
+ orderItem.setShopType(EnumShopType.PDD.getIndex());
+ orderItem.setShopId(orderDetail.getLong("shopId"));
+// orderItem.setSkuNum(itemObject.getString("outerId"));
+ orderItem.setSkuId(itemObject.getString("skuId"));
+ orderItem.setSkuNum(skuNum);
+ orderItem.setGoodsId(oGoodsId);
+ orderItem.setGoodsSkuId(oGoodsSkuId);
+// orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
+// orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
+ 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);
+
+
+ List oOrderItems = orderItemMapper.selectList(
+ new LambdaQueryWrapper()
+ .eq(OOrderItem::getOrderId, oOrders.get(0).getId())
+ .eq(OOrderItem::getSkuId, itemObject.getString("skuId")));
+ if (oOrderItems.isEmpty()) {
+ // 新增item
+ orderItem.setCreateTime(new Date());
+ orderItem.setCreateBy("ORDER_MESSAGE");
+ orderItemMapper.insert(orderItem);
+ } else {
+ // 修改、
+ orderItem.setUpdateTime(new Date());
+ orderItem.setUpdateBy("ORDER_MESSAGE");
+ orderItemMapper.updateById(orderItem);
}
}
return ResultVo.success();
@@ -905,12 +1049,14 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.insert(insert);
// 插入orderItem
- addDouOrderItem(insert.getId(), orderId, orderStatus, refundStatus,orderDetail.getJSONArray("items"));
+ addDouOrderItem(insert,insert.getId(), orderId, orderStatus, refundStatus,orderDetail.getJSONArray("items"));
} else {
// 修改订单 (修改:)
OOrder update = new OOrder();
update.setId(oOrders.get(0).getId());
+ update.setShopType(EnumShopType.DOU.getIndex());
+ update.setShopId(orderDetail.getLong("shopId"));
update.setRefundStatus(refundStatus);
update.setOrderStatus(orderStatus);
update.setGoodsAmount(orderDetail.getDouble("orderAmount") / 100 );
@@ -930,26 +1076,68 @@ public class OOrderServiceImpl extends ServiceImpl
orderMapper.updateById(update);
// 删除orderItem
- orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId, update.getId()));
+// orderItemMapper.delete(new LambdaQueryWrapper().eq(OOrderItem::getOrderId, update.getId()));
// 插入orderItem
- addDouOrderItem(update.getId(), orderId, orderStatus, refundStatus,orderDetail.getJSONArray("items"));
+ addDouOrderItem(update,update.getId(), orderId, orderStatus, refundStatus,orderDetail.getJSONArray("items"));
}
return ResultVo.success();
}
- private void addDouOrderItem(String oOrderId,String originOrderId,Integer orderStatus,Integer refundStatus,JSONArray itemArray){
+ private void addDouOrderItem(OOrder oOrder,String oOrderId,String originOrderId,Integer orderStatus,Integer refundStatus,JSONArray itemArray){
if(itemArray!=null && itemArray.size()>0) {
for (int i = 0; i < itemArray.size(); i++) {
JSONObject itemObject = itemArray.getJSONObject(i);
+ // 查询商品库商品
+ Long oGoodsId = itemObject.getLong("ogoodsId");
+ Long oGoodsSkuId =itemObject.getLong("ogoodsSkuId");
+ String skuNum = itemObject.getString("outSkuId");
+ if(oGoodsSkuId<=0){
+ // 没有关联商品库商品skuid,查找关联====使用skucode查找
+ if(org.springframework.util.StringUtils.hasText(skuNum)) {
+ List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+ log.error("同步DOU订单没有找到商品库商品SKU");
+ }else{
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
+ }
+ }else {
+ log.error("同步DOU订单{},原始订单没有填写sku编码信息",oOrder.getOrderNum());
+ }
+ }else{
+ OGoodsSku oGoodsSku = oGoodsSkuMapper.selectById(oGoodsSkuId);
+ if(oGoodsSku==null){
+ // 没有关联商品库商品skuid,查找关联====使用skucode查找
+ if(org.springframework.util.StringUtils.hasText(skuNum)) {
+ List oGoodsSkus = oGoodsSkuMapper.selectList(new LambdaQueryWrapper().eq(OGoodsSku::getSkuCode, skuNum));
+ if(oGoodsSkus==null||oGoodsSkus.isEmpty()){
+ log.error("同步DOU订单没有找到商品库商品SKU");
+ }else{
+ oGoodsId = oGoodsSkus.get(0).getGoodsId();
+ oGoodsSkuId = oGoodsSkus.get(0).getId();
+ }
+ }else {
+ log.error("同步DOU订单{},原始订单没有填写sku编码信息",oOrder.getOrderNum());
+ }
+ }else{
+ oGoodsId = oGoodsSku.getGoodsId();
+ oGoodsSkuId = oGoodsSku.getId();
+ }
+ }
OOrderItem orderItem = new OOrderItem();
- orderItem.setOrderId(oOrderId);
+ orderItem.setOrderId(oOrder.getId());
+ orderItem.setShopId(oOrder.getShopId());
+ orderItem.setShopType(oOrder.getShopType());
orderItem.setOrderNum(itemObject.getString("parentOrderId"));
orderItem.setSubOrderNum(itemObject.getString("orderId"));
- orderItem.setSkuNum(itemObject.getString("outSkuId"));
+// orderItem.setSkuNum(itemObject.getString("outSkuId"));
orderItem.setSkuId(itemObject.getString("skuId"));
- orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
- orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
+// orderItem.setGoodsId(itemObject.getLong("ogoodsId"));
+// orderItem.setGoodsSkuId(itemObject.getLong("ogoodsSkuId"));
+ orderItem.setSkuNum(skuNum);
+ orderItem.setGoodsId(oGoodsId);
+ orderItem.setGoodsSkuId(oGoodsSkuId);
orderItem.setGoodsImg(itemObject.getString("productPic"));
// if(org.springframework.util.StringUtils.hasText(item.getSpec())) {
@@ -965,9 +1153,22 @@ public class OOrderServiceImpl extends ServiceImpl
orderItem.setOrderStatus(orderStatus);
orderItem.setRefundStatus(refundStatus);
orderItem.setRefundCount(0);
- orderItem.setCreateTime(new Date());
- orderItem.setCreateBy("ORDER_MESSAGE");
- orderItemMapper.insert(orderItem);
+
+ List oOrderItems = orderItemMapper.selectList(
+ new LambdaQueryWrapper()
+ .eq(OOrderItem::getOrderId, oOrder.getId())
+ .eq(OOrderItem::getSkuId, orderItem.getSkuId()));
+ if (oOrderItems.isEmpty()) {
+ // 新增item
+ orderItem.setCreateTime(new Date());
+ orderItem.setCreateBy("ORDER_MESSAGE");
+ orderItemMapper.insert(orderItem);
+ } else {
+ // 修改、
+ orderItem.setUpdateTime(new Date());
+ orderItem.setUpdateBy("ORDER_MESSAGE");
+ orderItemMapper.updateById(orderItem);
+ }
}
}
}
diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java
index 9d8feef5..6e3e4973 100644
--- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java
+++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/TaoOrderService.java
@@ -3,6 +3,7 @@ package cn.qihangerp.module.open.tao.service;
import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult;
import cn.qihangerp.common.ResultVo;
+import cn.qihangerp.common.bo.ShopOrderShipBo;
import cn.qihangerp.module.open.tao.domain.TaoOrder;
import cn.qihangerp.module.open.tao.domain.bo.TaoOrderBo;
import com.baomidou.mybatisplus.extension.service.IService;
@@ -27,4 +28,12 @@ public interface TaoOrderService extends IService {
*/
ResultVo saveOrder(Long shopId, TaoOrder order);
ResultVo updateOrder(TaoOrder order);
+
+
+ /**
+ * 手动发货
+ * @param shipBo
+ * @return
+ */
+// ResultVo manualShipmentOrder(ShopOrderShipBo shipBo, String createBy);
}
diff --git a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java
index 6dba915f..c0c6eaa6 100644
--- a/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java
+++ b/module/tao/src/main/java/cn/qihangerp/module/open/tao/service/impl/TaoOrderServiceImpl.java
@@ -5,6 +5,7 @@ import cn.qihangerp.common.PageQuery;
import cn.qihangerp.common.PageResult;
import cn.qihangerp.common.ResultVo;
import cn.qihangerp.common.ResultVoEnum;
+import cn.qihangerp.common.bo.ShopOrderShipBo;
import cn.qihangerp.module.open.tao.domain.TaoGoodsSku;
import cn.qihangerp.module.open.tao.domain.TaoOrder;
import cn.qihangerp.module.open.tao.domain.TaoOrderItem;
@@ -221,6 +222,106 @@ public class TaoOrderServiceImpl extends ServiceImpl
return ResultVo.error(ResultVoEnum.NotFound, "订单不存在");
}
}
+
+// @Transactional(rollbackFor = Exception.class)
+// @Override
+// public ResultVo manualShipmentOrder(ShopOrderShipBo shipBo, String createBy) {
+// if (StringUtils.isEmpty(shipBo.getId()) || shipBo.getId().equals("0"))
+// return ResultVo.error(ResultVoEnum.ParamsError, "缺少参数:id");
+//
+// ErpOrder erpOrder = mapper.selectById(shipBo.getId());
+// if (erpOrder == null) {
+// return ResultVo.error("找不到订单数据");
+// } else if (erpOrder.getOrderStatus().intValue() != 1 && erpOrder.getRefundStatus().intValue() != 1) {
+// return ResultVo.error("订单状态不对,不允许发货");
+// }
+// ErpLogisticsCompany erpLogisticsCompany = erpLogisticsCompanyMapper.selectById(shipBo.getShippingCompany());
+// if(erpLogisticsCompany==null) return ResultVo.error("快递公司选择错误");
+//
+// // 自己发货的list
+// List oOrderItems = orderItemMapper.selectList(
+// new LambdaQueryWrapper()
+// .eq(ErpOrderItem::getOrderId, erpOrder.getId())
+// .eq(ErpOrderItem::getShipStatus,0)
+// .eq(ErpOrderItem::getShipType,0)
+// );
+// if(oOrderItems==null) return ResultVo.error("订单 item 数据错误,无法发货!");
+// // 添加发货记录
+// ErpShipment erpShipment = new ErpShipment();
+// erpShipment.setShipper(0);//发货方 0 仓库发货 1 供应商发货】
+// erpShipment.setTenantId(erpOrder.getTenantId());
+// erpShipment.setShopId(erpOrder.getShopId());
+// erpShipment.setShopType(erpOrder.getShopType());
+// erpShipment.setOrderId(erpOrder.getId());
+// erpShipment.setOrderNum(erpOrder.getOrderNum());
+// erpShipment.setOrderTime(erpOrder.getOrderTime());
+// erpShipment.setShipType(1);//发货类型(1订单发货2商品补发3商品换货)
+// erpShipment.setShipCompany(erpLogisticsCompany.getName());
+// erpShipment.setShipCompanyCode(erpLogisticsCompany.getCode());
+// erpShipment.setShipCode(shipBo.getShippingNumber());
+// erpShipment.setShipFee(shipBo.getShippingCost());
+// erpShipment.setShipTime(new Date());
+// erpShipment.setShipOperator(shipBo.getShippingMan());
+// erpShipment.setShipStatus(1);//物流状态(0 待发货1已发货2已完成)
+//
+// erpShipment.setPackageHeight(shipBo.getHeight());
+// erpShipment.setPackageWeight(shipBo.getWeight());
+// erpShipment.setPackageLength(shipBo.getLength());
+// erpShipment.setPackageWidth(shipBo.getWidth());
+// erpShipment.setPacksgeOperator(shipBo.getShippingMan());
+//// erpShipment.setPackages(JSONObject.toJSONString(oOrderItems));
+// erpShipment.setRemark(shipBo.getRemark());
+// erpShipment.setCreateBy(createBy);
+// erpShipment.setCreateTime(new Date());
+//
+// shipmentMapper.insert(erpShipment);
+//
+// for(ErpOrderItem orderItem:oOrderItems){
+// ErpShipmentItem erpShipmentItem = new ErpShipmentItem();
+// erpShipmentItem.setShipper(erpShipment.getShipper());
+// erpShipmentItem.setTenantId(erpShipment.getTenantId());
+// erpShipmentItem.setShopId(erpShipment.getShopId());
+// erpShipmentItem.setShopType(erpShipment.getShopType());
+// erpShipmentItem.setShipmentId(erpShipment.getId());
+// erpShipmentItem.setOrderId(erpShipment.getOrderId());
+// erpShipmentItem.setOrderNum(erpShipment.getOrderNum());
+// erpShipmentItem.setOrderTime(erpShipment.getOrderTime());
+// erpShipmentItem.setOrderItemId(orderItem.getId());
+// erpShipmentItem.setErpGoodsId(orderItem.getErpGoodsId());
+// erpShipmentItem.setErpSkuId(orderItem.getErpSkuId());
+// erpShipmentItem.setGoodsTitle(orderItem.getGoodsTitle());
+// erpShipmentItem.setGoodsNum(orderItem.getGoodsNum());
+// erpShipmentItem.setGoodsImg(orderItem.getGoodsImg());
+// erpShipmentItem.setGoodsSpec(orderItem.getGoodsSpec());
+// erpShipmentItem.setSkuNum(orderItem.getSkuNum());
+// erpShipmentItem.setQuantity(orderItem.getQuantity());
+// erpShipmentItem.setRemark(orderItem.getRemark());
+// erpShipmentItem.setStockStatus(0);
+// erpShipmentItem.setCreateBy(createBy);
+// erpShipmentItem.setCreateTime(new Date());
+// shipmentItemMapper.insert(erpShipmentItem);
+//
+// // 更新订单item发货状态
+// ErpOrderItem orderItemUpdate = new ErpOrderItem();
+// orderItemUpdate.setId( orderItem.getId());
+// orderItemUpdate.setUpdateBy("手动发货");
+// orderItemUpdate.setUpdateTime(new Date());
+// orderItemUpdate.setShipStatus(1);//发货状态 0 待发货 1 已发货
+// orderItemMapper.updateById(orderItemUpdate);
+// }
+//
+//
+// // 更新状态、发货方式
+// ErpOrder update = new ErpOrder();
+// update.setId(erpOrder.getId());
+// update.setShipStatus(2);
+// update.setOrderStatus(2);
+// update.setUpdateTime(new Date());
+// update.setUpdateBy("手动发货");
+// mapper.updateById(update);
+//
+// return ResultVo.success();
+// }
}
diff --git a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrder.java b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrder.java
index 3fbf027c..adeab9cc 100644
--- a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrder.java
+++ b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrder.java
@@ -7,12 +7,14 @@ import java.util.List;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* @TableName oms_wei_order
*/
+@TableName("oms_wei_order")
@Data
public class WeiOrder implements Serializable {
/**
diff --git a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrderItem.java b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrderItem.java
index 205e1516..81963175 100644
--- a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrderItem.java
+++ b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiOrderItem.java
@@ -4,12 +4,14 @@ import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
*
* @TableName oms_wei_order_item
*/
+@TableName("oms_wei_order_item")
@Data
public class WeiOrderItem implements Serializable {
/**
diff --git a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiRefund.java b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiRefund.java
index 738b8d18..247e63bc 100644
--- a/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiRefund.java
+++ b/module/wei/src/main/java/cn/qihangerp/module/open/wei/domain/WeiRefund.java
@@ -5,12 +5,14 @@ import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
/**
* 视频号小店退款
* @TableName oms_wei_refund
*/
+@TableName("oms_wei_refund")
@Data
public class WeiRefund implements Serializable {
/**
diff --git a/vue/src/views/shipping/ewaybillPrint/index.vue b/vue/src/views/shipping/ewaybillPrint/index.vue
index 41a420c5..8d916041 100644
--- a/vue/src/views/shipping/ewaybillPrint/index.vue
+++ b/vue/src/views/shipping/ewaybillPrint/index.vue
@@ -13,7 +13,7 @@
-
+
diff --git a/vue/src/views/shipping/stockup/warehouse/order_item_list.vue b/vue/src/views/shipping/stockup/warehouse/order_item_list.vue
index 3e669e7d..9eb18c82 100644
--- a/vue/src/views/shipping/stockup/warehouse/order_item_list.vue
+++ b/vue/src/views/shipping/stockup/warehouse/order_item_list.vue
@@ -312,7 +312,7 @@ export default {
/** 查询仓库订单发货列表 */
getList() {
this.loading = true;
- listShipStockupWarehouse(this.queryParams).then(response => {
+ listShipStockupWarehouset(this.queryParams).then(response => {
this.shippingList = response.rows;
this.total = response.total;
this.loading = false;
diff --git a/vue/src/views/tao/ewaybill/index.vue b/vue/src/views/tao/ewaybill/index.vue
index 442d7e75..a2e515c7 100644
--- a/vue/src/views/tao/ewaybill/index.vue
+++ b/vue/src/views/tao/ewaybill/index.vue
@@ -213,7 +213,7 @@
{{form.id}}
- {{form.orderNum}}
+ {{form.tid}}
{{ shopList.find(x=>x.id == form.shopId)?shopList.find(x=>x.id == form.shopId).name:'' }}
@@ -313,7 +313,7 @@
- {{form.orderNum}}
+ {{form.tid}}
{{form.buyerMemo}}