赵冬冬 4 gadi atpakaļ
vecāks
revīzija
91966d9cf7

+ 63 - 7
forest-portal/portal-server/src/main/java/com/hwrj/cloud/portal/service/impl/OmsPortalOrderServiceImpl.java

@@ -411,9 +411,29 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
     private OmsOrderOperateHistoryMapper omsOrderOperateHistoryMapper;
 
     @Override
+    @Transactional
     public void confirmReceiveOrder(Long orderId) {
         // redis 用户信息
         UmsMember member = memberService.getCurrentMember();
+        //更新订单
+        updateOrder(orderId, member);
+        //插入历史
+        insertOrderOperateHistory(orderId, member);
+        //更新商品销量
+        updteProduct(orderId);
+    }
+
+    private void insertOrderOperateHistory(Long orderId, UmsMember member) {
+        OmsOrderOperateHistory record = new OmsOrderOperateHistory();
+        record.setCreateTime(new Date());
+        record.setOrderId(orderId);
+        record.setOperateMan(member.getNickname());
+        record.setOrderStatus(4);
+        record.setNote("确认收货!");
+        omsOrderOperateHistoryMapper.insertSelective(record);
+    }
+
+    private void updateOrder(Long orderId, UmsMember member) {
         OmsOrder order = orderMapper.selectByPrimaryKey(orderId);
         if (!member.getId().equals(order.getMemberId())) {
             Asserts.fail("不能确认他人订单!");
@@ -425,15 +445,51 @@ public class OmsPortalOrderServiceImpl implements OmsPortalOrderService {
         order.setConfirmStatus(1);
         order.setReceiveTime(new Date());
         orderMapper.updateByPrimaryKey(order);
-        OmsOrderOperateHistory record = new OmsOrderOperateHistory();
-        record.setCreateTime(new Date());
-        record.setOrderId(orderId);
-        record.setOperateMan(member.getNickname());
-        record.setOrderStatus(4);
-        record.setNote("确认收货!");
-        omsOrderOperateHistoryMapper.insertSelective(record);
     }
 
+    private void updteProduct(Long orderId) {
+        OmsOrderItemExample example = new OmsOrderItemExample();
+        example.createCriteria().andOrderIdEqualTo(orderId);
+        List<OmsOrderItem> omsOrderItems = orderItemMapper.selectByExample(example);
+        for (OmsOrderItem omsOrderItem : omsOrderItems) {
+            //商品id
+            Long productId = omsOrderItem.getProductId();
+            //销量
+            Integer productQuantity = omsOrderItem.getProductQuantity();
+            PmsProduct pmsProduct = pmsProductMapper.selectByPrimaryKey(productId);
+            Integer sale = pmsProduct.getSale();
+            //等于空
+            if (StringUtils.isEmpty(sale)) {
+                pmsProduct.setSale(productQuantity);
+            } else {
+                Integer sum = sale + productQuantity;
+                pmsProduct.setSale(sum);
+            }
+            pmsProductMapper.updateByPrimaryKeySelective(pmsProduct);
+        }
+    }
+
+//    public void merge(List<OmsOrderItem> list) {
+//        List<OmsOrderItem> result = list.stream()
+//                // 表示id为key, 接着如果有重复的,那么从BillsNums对象o1与o2中筛选出一个,这里选择o1,
+//                // 并把id重复,需要将nums和sums与o1进行合并的o2, 赋值给o1,最后返回o1
+//                .collect(Collectors.toMap(OmsOrderItem::getId, a -> a, (o1, o2) -> {
+//                    o1.setProductQuantity(o1.getProductQuantity() + o1.getProductQuantity());
+//                    return o1;
+//                })).values().stream().collect(Collectors.toList());
+//
+//
+//        Map<Long, OmsOrderItem> appleMap = result.stream().collect(Collectors.toMap(OmsOrderItem::getId, a -> a, (k1, k2) -> k1));
+//        //收集到的商品id
+//        List<Long> collect = result.stream().map(x -> {
+//            Long productId = x.getProductId();
+//            return productId;
+//        }).collect(Collectors.toList());
+//        PmsProductExample example = new PmsProductExample();
+//        example.createCriteria().andIdIn(collect);
+//        List<PmsProduct> pmsProducts = pmsProductMapper.selectByExample(example);
+//    }
+
     @Override
     public CommonPage<OmsOrderDetail> list(Integer status, Integer pageNum, Integer pageSize) {
         if (status == -1) {

+ 7 - 3
sql/表结构变化语句/更新sql.sql

@@ -209,7 +209,7 @@ JOIN pms_product b on
 SET a.comp_id = b.comp_id,
  a.comp_name = b.comp_name
 WHERE
-	a.id = b.brand_id
+	a.id = b.brand_id;
 
 # 添加分享码
 CREATE TABLE `ums_company_share` (
@@ -244,13 +244,14 @@ CREATE TABLE `oms_order_pay` (
   KEY `idx_order_id` (`order_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='支付订单表';
 
+#更新商品库存,预警值,以及销量
+
+UPDATE pms_product a
+SET a.sale = 0,
+ a.stock = 0,
+ a.low_stock = 0;
 
-SET FOREIGN_KEY_CHECKS=0;
 
-DROP TABLE IF EXISTS `oms_order_express`;
 CREATE TABLE `oms_order_express` (
   `id` bigint(20) NOT NULL AUTO_INCREMENT,
   `express_name` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '快递公司名字',