Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

wangming 4 өдөр өмнө
parent
commit
cdbc3e3b5b
20 өөрчлөгдсөн 405 нэмэгдсэн , 315 устгасан
  1. 6 6
      yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java
  2. 0 3
      yami-shop-api/src/main/java/com/yami/shop/api/controller/PayNoticeController.java
  3. 2 2
      yami-shop-api/src/main/resources/application.yml
  4. 18 0
      yami-shop-bean/src/main/java/com/yami/shop/bean/param/OrderRefundAmountDTO.java
  5. 15 14
      yami-shop-distribution/yami-shop-distribution-comment/src/main/java/com/yami/shop/distribution/comment/listener/PaySuccessOrderListener.java
  6. 242 242
      yami-shop-platform/src/main/java/com/yami/shop/platform/task/OrderTask.java
  7. 6 0
      yami-shop-service/src/main/java/com/yami/shop/dao/FrontCategoryMapper.java
  8. 13 0
      yami-shop-service/src/main/java/com/yami/shop/dao/ShopCategoryMapper.java
  9. 11 4
      yami-shop-service/src/main/java/com/yami/shop/service/OrderService.java
  10. 32 6
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBFrontCategoryService.java
  11. 8 8
      yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java
  12. 3 3
      yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java
  13. 7 6
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java
  14. 5 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java
  15. 0 1
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ProductServiceImpl.java
  16. 1 0
      yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopCategoryServiceImpl.java
  17. 4 0
      yami-shop-service/src/main/resources/mapper/FrontCategoryMapper.xml
  18. 1 1
      yami-shop-service/src/main/resources/mapper/OrderMapper.xml
  19. 19 19
      yami-shop-service/src/main/resources/mapper/ProductMapper.xml
  20. 12 0
      yami-shop-service/src/main/resources/mapper/ShopCategoryMapper.xml

+ 6 - 6
yami-shop-api/src/main/java/com/yami/shop/api/controller/OrderController.java

@@ -78,12 +78,12 @@ public class OrderController {
     @ApiOperation(value = "结算,生成订单信息", notes = "传入下单所需要的参数进行下单")
     public ResponseEntity<ShopCartOrderMergerDto> confirm(@Valid @RequestBody OrderParam orderParam) {
         String userId = SecurityUtils.getUser().getUserId();
-        User user = userService.getById(userId);
-        if (user == null) {
-            throw new GlobalException("用户信息不存在...");
-        }
-        CullenUtils.validateDataThrowException(user.getChannelId() == null, "不支持非企业用户购买...");
-        CullenUtils.validateDataThrowException(user.getStatus().equals(0), "不支持非企业用户购买...");
+//        User user = userService.getById(userId);
+//        if (user == null) {
+//            throw new GlobalException("用户信息不存在...");
+//        }
+//        CullenUtils.validateDataThrowException(user.getChannelId() == null, "不支持非企业用户购买...");
+//        CullenUtils.validateDataThrowException(user.getStatus().equals(0), "不支持非企业用户购买...");
 
         if (orderParam.getOrderItem() == null) {
             orderParam.getBasketIds().forEach(basketId -> {

+ 0 - 3
yami-shop-api/src/main/java/com/yami/shop/api/controller/PayNoticeController.java

@@ -86,9 +86,6 @@ public class PayNoticeController {
             }
         }
 
-
-
-
         return ResponseEntity.ok(payInfoBo.getSuccessString());
     }
 

+ 2 - 2
yami-shop-api/src/main/resources/application.yml

@@ -2,8 +2,8 @@
 spring:
   # 环境 dev|prod|docker
   profiles:
-    active: dev
-#    active: prod
+#    active: dev
+    active: prod
   #文件上传设置
   servlet:
     multipart:

+ 18 - 0
yami-shop-bean/src/main/java/com/yami/shop/bean/param/OrderRefundAmountDTO.java

@@ -0,0 +1,18 @@
+package com.yami.shop.bean.param;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * TODO
+ *
+ * @author mr wang
+ * @version 1.0.0
+ * @since 2025-10-22
+ */
+@Data
+public class OrderRefundAmountDTO {
+    private BigDecimal orderRefundAmount;
+    private Long offsetPoints;
+}

+ 15 - 14
yami-shop-distribution/yami-shop-distribution-comment/src/main/java/com/yami/shop/distribution/comment/listener/PaySuccessOrderListener.java

@@ -157,21 +157,22 @@ public class PaySuccessOrderListener {
 
             }
 
+            //TODO FBJ注释(线上报错)
             // 分销订单需要在商家的未结算金额扣除用户分销金额
-            ShopWallet shopWallet = shopWalletService.getShopWalletByShopId(order.getShopId());
-            ShopWallet newShopWallet = mapperFacade.map(shopWallet, ShopWallet.class);
-            newShopWallet.setUpdateTime(new Date());
-
-            // 订单分销金额
-            double totalDistributionAmount = orderService.sumTotalDistributionAmountByOrderItem(distributionOrderItems);
-            // 商家待结算金额 = 商家待结算金额 - 订单分销佣金
-            newShopWallet.setUnsettledAmount(Arith.sub(shopWallet.getUnsettledAmount(), totalDistributionAmount));
-            // 插入扣除分销费用记录
-            shopWalletLogService.saveShopWalletLog(shopWallet, newShopWallet, ShopWalletChangeReason.DISTRIBUTION_AMOUNT, order.getOrderNumber());
-            // 使用乐观锁进行更新
-            if (!shopWalletService.updateById(newShopWallet)) {
-                throw new GlobalException("更新店铺钱包信息失败");
-            }
+//            ShopWallet shopWallet = shopWalletService.getShopWalletByShopId(order.getShopId());
+//            ShopWallet newShopWallet = mapperFacade.map(shopWallet, ShopWallet.class);
+//            newShopWallet.setUpdateTime(new Date());
+//
+//            // 订单分销金额
+//            double totalDistributionAmount = orderService.sumTotalDistributionAmountByOrderItem(distributionOrderItems);
+//            // 商家待结算金额 = 商家待结算金额 - 订单分销佣金
+//            newShopWallet.setUnsettledAmount(Arith.sub(shopWallet.getUnsettledAmount(), totalDistributionAmount));
+//            // 插入扣除分销费用记录
+//            shopWalletLogService.saveShopWalletLog(shopWallet, newShopWallet, ShopWalletChangeReason.DISTRIBUTION_AMOUNT, order.getOrderNumber());
+//            // 使用乐观锁进行更新
+//            if (!shopWalletService.updateById(newShopWallet)) {
+//                throw new GlobalException("更新店铺钱包信息失败");
+//            }
         }
         // 更新分销订单项
         if (CollectionUtils.isNotEmpty(distributionOrderItems)) {

+ 242 - 242
yami-shop-platform/src/main/java/com/yami/shop/platform/task/OrderTask.java

@@ -62,31 +62,31 @@ public class OrderTask {
     @Autowired
     private PayManagerService payManagerService;
 
-    @Autowired
-    private PaoTuiApi paoTuiApi;
-
-    @Autowired
-    private OrderRefundService orderRefundService;
-
-    @Autowired
-    private OrderItemService orderItemService;
-
-    @Autowired
-    private UserAddrOrderService userAddrOrderService;
-
-    @Autowired
-    private DeliveryOrderService deliveryOrderService;
-
-    @Autowired
-    private IQnhService qnhService;
-
-    @Autowired
-    private UserService userService;
-
-    @Autowired
-    private ShopDetailService shopDetailService;
-    @Autowired
-    private DeviceFeyMapper deviceFeyMapper;
+//    @Autowired
+//    private PaoTuiApi paoTuiApi;
+//
+//    @Autowired
+//    private OrderRefundService orderRefundService;
+//
+//    @Autowired
+//    private OrderItemService orderItemService;
+//
+//    @Autowired
+//    private UserAddrOrderService userAddrOrderService;
+//
+//    @Autowired
+//    private DeliveryOrderService deliveryOrderService;
+//
+//    @Autowired
+//    private IQnhService qnhService;
+//
+//    @Autowired
+//    private UserService userService;
+//
+//    @Autowired
+//    private ShopDetailService shopDetailService;
+//    @Autowired
+//    private DeviceFeyMapper deviceFeyMapper;
 
 
 
@@ -124,76 +124,76 @@ public class OrderTask {
         this.removeCache(orders);
     }
 
-    public void createDistributionOrder(){
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        Date now = new Date();
-        logger.info("用户订单五分钟后未取消则创建物流订单。。。");
-        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.PADYED.value(),DateUtil.offsetMinute(now, -5));
-        if(CollectionUtil.isEmpty(orders)){
-            return;
-        }
-//        List<Order> orders =orderService.list(new QueryWrapper<Order>().lambda().like(Order::getOrderNumber,"1879830276981526528"));
-        for (Order order:orders){
-            //创建物流订单
-            if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value()) && Objects.equals(order.getDvyType(), DvyType.FETCH.value())){
-                System.out.println("订单不处于已付款状态,无法进行发货");
-                continue;
-            }else if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value())){
-                System.out.println("订单不处于待发货状态,无法进行发货");
-                continue;
-            }
-            UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
-            if(ObjectUtil.isEmpty(userAddrOrder)){
-                System.out.println("该订单地址存在问题,请检查");
-                continue;
-            }
-            int count = orderRefundService.count(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getOrderId, order.getOrderId()));
-            if(count>0){
-                LambdaQueryWrapper<OrderRefund> orderRefundLambdaQueryWrapper = new LambdaQueryWrapper<>();
-                orderRefundLambdaQueryWrapper.eq(OrderRefund::getOrderId,order.getOrderId());
-                //发货时只有订单不存在退款或退款被拒绝才会创建仓储与物流订单
-                orderRefundLambdaQueryWrapper.and(wrapper->wrapper.eq(OrderRefund::getReturnMoneySts,-1).or().eq(OrderRefund::getReturnMoneySts,7).or().eq(OrderRefund::getReturnMoneySts,6));
-                List<OrderRefund> orderRefunds = orderRefundService.list(orderRefundLambdaQueryWrapper);
-                if (CollectionUtil.isEmpty(orderRefunds)) {
-                    System.out.println("该订单有退款信息正在处理或已退款中,无法进行发货操作");
-                    continue;
-                }
-            }
-            try {
-                boolean success = createQNHOrder(order);
-                if(!success){
-                    continue;
-                }
-            }catch (Exception e){
-                System.out.println(e.getMessage());
-                continue;
-            }
-
-            List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
-
-            //先创建物流订单
-            DeliveryOrderItemParam deliveryOrderItemParam = new DeliveryOrderItemParam();
-            deliveryOrderItemParam.setOrderNumber(order.getOrderNumber());
-            deliveryOrderItemParam.setDvyId(16l);
-            deliveryOrderItemParam.setDeliveryType(1);
-            deliveryOrderItemParam.setDvyFlowId("sdfsf");
-            deliveryOrderItemParam.setSelectOrderItems(orderItems);
-            for (OrderItem orderItem:deliveryOrderItemParam.getSelectOrderItems()){
-                orderItem.setChangeNum(orderItem.getProdCount());
-            }
-
-            try {
-                deliveryOrderService.saveDeliveriesInfo(deliveryOrderItemParam);
-                order=orderService.getById(order.getOrderId());
-                order.setDvyStatus(1);
-            }catch (Exception e){
-                System.out.println(e.getMessage());
-                order.setDvyStatus(0);
-            }
-            orderService.updateById(order);
-        }
-//        this.removeCache(orders);
-    }
+//    public void createDistributionOrder(){
+//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        Date now = new Date();
+//        logger.info("用户订单五分钟后未取消则创建物流订单。。。");
+//        List<Order> orders = orderService.listUnRefundOrderAndOrderItems(OrderStatus.PADYED.value(),DateUtil.offsetMinute(now, -5));
+//        if(CollectionUtil.isEmpty(orders)){
+//            return;
+//        }
+////        List<Order> orders =orderService.list(new QueryWrapper<Order>().lambda().like(Order::getOrderNumber,"1879830276981526528"));
+//        for (Order order:orders){
+//            //创建物流订单
+//            if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value()) && Objects.equals(order.getDvyType(), DvyType.FETCH.value())){
+//                System.out.println("订单不处于已付款状态,无法进行发货");
+//                continue;
+//            }else if (!Objects.equals(order.getHbOrderStatus(), OrderStatus.PADYED.value())){
+//                System.out.println("订单不处于待发货状态,无法进行发货");
+//                continue;
+//            }
+//            UserAddrOrder userAddrOrder = userAddrOrderService.getById(order.getAddrOrderId());
+//            if(ObjectUtil.isEmpty(userAddrOrder)){
+//                System.out.println("该订单地址存在问题,请检查");
+//                continue;
+//            }
+//            int count = orderRefundService.count(new LambdaQueryWrapper<OrderRefund>().eq(OrderRefund::getOrderId, order.getOrderId()));
+//            if(count>0){
+//                LambdaQueryWrapper<OrderRefund> orderRefundLambdaQueryWrapper = new LambdaQueryWrapper<>();
+//                orderRefundLambdaQueryWrapper.eq(OrderRefund::getOrderId,order.getOrderId());
+//                //发货时只有订单不存在退款或退款被拒绝才会创建仓储与物流订单
+//                orderRefundLambdaQueryWrapper.and(wrapper->wrapper.eq(OrderRefund::getReturnMoneySts,-1).or().eq(OrderRefund::getReturnMoneySts,7).or().eq(OrderRefund::getReturnMoneySts,6));
+//                List<OrderRefund> orderRefunds = orderRefundService.list(orderRefundLambdaQueryWrapper);
+//                if (CollectionUtil.isEmpty(orderRefunds)) {
+//                    System.out.println("该订单有退款信息正在处理或已退款中,无法进行发货操作");
+//                    continue;
+//                }
+//            }
+//            try {
+//                boolean success = createQNHOrder(order);
+//                if(!success){
+//                    continue;
+//                }
+//            }catch (Exception e){
+//                System.out.println(e.getMessage());
+//                continue;
+//            }
+//
+//            List<OrderItem> orderItems = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
+//
+//            //先创建物流订单
+//            DeliveryOrderItemParam deliveryOrderItemParam = new DeliveryOrderItemParam();
+//            deliveryOrderItemParam.setOrderNumber(order.getOrderNumber());
+//            deliveryOrderItemParam.setDvyId(16l);
+//            deliveryOrderItemParam.setDeliveryType(1);
+//            deliveryOrderItemParam.setDvyFlowId("sdfsf");
+//            deliveryOrderItemParam.setSelectOrderItems(orderItems);
+//            for (OrderItem orderItem:deliveryOrderItemParam.getSelectOrderItems()){
+//                orderItem.setChangeNum(orderItem.getProdCount());
+//            }
+//
+//            try {
+//                deliveryOrderService.saveDeliveriesInfo(deliveryOrderItemParam);
+//                order=orderService.getById(order.getOrderId());
+//                order.setDvyStatus(1);
+//            }catch (Exception e){
+//                System.out.println(e.getMessage());
+//                order.setDvyStatus(0);
+//            }
+//            orderService.updateById(order);
+//        }
+////        this.removeCache(orders);
+//    }
 
     /**
      * 查询订单,去除已支付的订单
@@ -239,151 +239,151 @@ public class OrderTask {
             }
         }
     }
-
-    /**
-     * 创建牵牛花订单
-     * @param order
-     * @return
-     */
-    public boolean createQNHOrder(Order order) {
-        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        // 待添加创建牵牛花订单
-        OrderDto orderDto = new OrderDto();
-        orderDto.setChannelSheetno(order.getOrderNumber());
-        orderDto.setChannelKeyword("YYG");
-        orderDto.setPayOver(true);
-        orderDto.setBilltype(1+"");
-        orderDto.setTotalSaleValue(BigDecimal.valueOf(order.getTotal()));
-        orderDto.setTotalDiscValue(BigDecimal.ZERO);
-        orderDto.setTotalSjDisc(BigDecimal.ZERO);
-        orderDto.setTotalSaleValue(BigDecimal.ZERO);
-        orderDto.setTotalPtDp(BigDecimal.ZERO);
-        orderDto.setTotalSjDp(BigDecimal.ZERO);
-        orderDto.setTotalPtDisc(BigDecimal.ZERO);
-        orderDto.setCommissionValue(BigDecimal.ZERO);
-        orderDto.setPayableValue(BigDecimal.valueOf(order.getTotal()));
-        orderDto.setTotalItemValue(BigDecimal.valueOf(order.getTotal()));
-        orderDto.setLogisticsModeKeyword(order.getFreightAmount().toString());
-
-
-        ShopDetail shopDetailByShopId = shopDetailService.getById(order.getShopId());
-//            orderDto.setOrgName(shopDetailByShopId.getShopName());
-        orderDto.setOrgCode(shopDetailByShopId.getThirdPartyCode());
-        orderDto.setOrgName(shopDetailByShopId.getShopName());
-        orderDto.setPreOrder(false);
-        orderDto.setOfflineOrder(false);
-        orderDto.setOrderTime(formatter.format(order.getCreateTime()));
-        orderDto.setGroupId(0);
-        orderDto.setGoodsReturn("true");
-        UserAddrOrder addrOrder = userAddrOrderService.getById(order.getAddrOrderId());
-        User user = userService.getUserByUserId(order.getUserId());
-
-        //填充收件人信息
-        orderDto.setReceiver(new OrderDto.Receiver());
-        orderDto.getReceiver().setAddress(addrOrder.getAddress());
-        orderDto.getReceiver().setMobile(user.getUserMobile());
-        orderDto.getReceiver().setName(user.getNickName());
-        orderDto.getReceiver().setType("0");
-        orderDto.getReceiver().setLatitude(String.valueOf(addrOrder.getLatitude()));
-        orderDto.getReceiver().setLongitude(String.valueOf(addrOrder.getLongitude()));
-        orderDto.setPayableLogisticsValue(BigDecimal.valueOf(order.getPlatformAmount()));
-        orderDto.setLogisticsModeKeyword("0");
-
-        //填充买家信息
-        orderDto.setBuyer(new OrderDto.Buyer());
-        orderDto.getBuyer().setAddress(addrOrder.getAddress());
-        orderDto.getBuyer().setNick(user.getNickName());
-        orderDto.getBuyer().setEmail(user.getUserMail());
-        orderDto.getBuyer().setNote(order.getRemarks());
-        orderDto.getBuyer().setTel(user.getUserMobile());
-
-        //填充支付信息
-        orderDto.setOrderPayments(new OrderDto.OrderPayments());
-        orderDto.getOrderPayments().setPayment(BigDecimal.valueOf(order.getTotal()));
-        orderDto.getOrderPayments().setKeyword("10002");
-        orderDto.getOrderPayments().setName("商城系统支付");
-        ArrayList<OrderDto.OrderDetails> orderDetails = new ArrayList<>();
-        int weight = 0;
-        List<OrderItem> orderItems1 = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
-        for (OrderItem orderItem:orderItems1){
-            OrderDto.OrderDetails orderDetails1 = new OrderDto.OrderDetails();
-            Sku sku = skuService.getById(orderItem.getSkuId());
-            orderDetails1.setSkuId(sku.getPartyCode());
-            orderDetails1.setItemCode("");
-            orderDetails1.setBarcode("");
-            orderDetails1.setOrderItemId(orderItem.getOrderItemId().toString());
-            orderDetails1.setName(orderItem.getProdName());
-            orderDetails1.setOriginalPrice(BigDecimal.valueOf(sku.getOriPrice()));
-            orderDetails1.setWeight((int)Math.round(sku.getWeight()));
-            weight+=orderDetails1.getWeight();
-            orderDetails1.setSalePrice(BigDecimal.valueOf(sku.getPrice()));
-            orderDetails1.setQty(orderItem.getProdCount());
-            orderDetails1.setMoney(orderDetails1.getSalePrice().multiply(BigDecimal.valueOf(orderDetails1.getQty())));
-            orderDetails.add(orderDetails1);
-        }
-        orderDto.setOrderDetails(orderDetails);
-        orderDto.setWeight(weight);
-        String s = qnhService.addOrder(orderDto);
-//        ResponseEntity responseEntity = qnhService.addOrder(orderDto);
-        if(!StringUtils.isBlank(s)){
-            order.setQnhOrderId(s);
-            order.setQnhOrderStatus("1");
-            orderService.updateById(order);
-            DeviceFey deviceFey = deviceFeyMapper.selectOne(Wrappers.<DeviceFey>lambdaQuery().eq(DeviceFey::getShopId, order.getShopId()).last("limit 1"));
-            FeiEYunApi.print(deviceFey.getDeviceSn(),print(order.getOrderNumber()));
-            return true;
-        }
-        return false;
-    }
-    private String print(String orderByOrderNumber){
-        Order order = orderService.getOrderByOrderNumber(orderByOrderNumber);
-        List<OrderItem> orderItemsByOrderNumber = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
-        String lastFourDigits = order.getOrderNumber().length() >= 4
-                ? order.getOrderNumber().substring(order.getOrderNumber().length() - 4)
-                : order.getOrderNumber(); // 如果长度不足4位,直接返回原字符串
-        UserAddrOrder userAddrOrder = userAddrOrderService.selectByAddrOrderId(order.getAddrOrderId());
-        String userMobile = userAddrOrder.getMobile().length() >= 4
-                ? userAddrOrder.getMobile().substring(userAddrOrder.getMobile().length() - 4)
-                : userAddrOrder.getMobile(); // 如果长度不足4位,直接返回原字符串
-        String receiverName = userAddrOrder.getReceiver();
-        String maskedName = receiverName.length() > 1
-                ? receiverName.substring(0, 1) + "*".repeat(receiverName.length() - 1)
-                : receiverName;
-        StringBuilder content = new StringBuilder();
-        content.append("<BR>");
-        content.append("<BR>");
-        content.append("<CB>#").append(lastFourDigits).append(" 海马购外卖</CB><BR>");
-        content.append("--------------------------------<BR>");
-        content.append("<BR>");
-        content.append("备注:").append(order.getRemarks()).append("<BR>");
-        content.append("<BR>");
-        content.append("--------------------------------<BR>");
-        content.append("下单时间:").append(DateUtil.date(order.getCreateTime())).append("<BR>");
-        content.append("<BR>");
-        content.append("订单编号:").append(order.getOrderNumber()).append("<BR>");
-        content.append("<BR>");
-        content.append("名称      单价  数量 金额<BR>");
-        content.append("----------商品信息----------<BR>");
-        for (OrderItem orderItem:orderItemsByOrderNumber){
-            content.append("<BR>");
-            content.append(orderItem.getProdName()).append("<BR>").append("          ").append(orderItem.getPrice()).append("    ").append(orderItem.getProdCount()).append("   ").append(orderItem.getActualTotal()).append("<BR>");
-        }
-        content.append("<BR>");
-        content.append("----------付款情况----------<BR>");
-        content.append("<BR>");
-        content.append("订单金额:").append(order.getTotal()).append("元<BR>");
-        content.append("<BR>");
-        content.append("实际支付:<B>").append(order.getActualTotal()).append("元</B><BR>");
-        content.append("--------------------------------<BR>");
-        content.append("<BR>");
-        content.append(maskedName);
-        content.append("<BR>");
-        content.append("顾客号码:手机尾号").append(userMobile).append("<BR>");
-        String add = userAddrOrder.getAddress() + userAddrOrder.getAddressName() + userAddrOrder.getAddrDetail();
-        content.append("顾客地址:").append(add).append("<BR>");
-        content.append("########海马购外卖#").append(lastFourDigits).append("########<BR>");
-        content.append("<BR>");
-        content.append("<BR>");
-        return content.toString();
-    }
+//
+//    /**
+//     * 创建牵牛花订单
+//     * @param order
+//     * @return
+//     */
+//    public boolean createQNHOrder(Order order) {
+//        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        // 待添加创建牵牛花订单
+//        OrderDto orderDto = new OrderDto();
+//        orderDto.setChannelSheetno(order.getOrderNumber());
+//        orderDto.setChannelKeyword("YYG");
+//        orderDto.setPayOver(true);
+//        orderDto.setBilltype(1+"");
+//        orderDto.setTotalSaleValue(BigDecimal.valueOf(order.getTotal()));
+//        orderDto.setTotalDiscValue(BigDecimal.ZERO);
+//        orderDto.setTotalSjDisc(BigDecimal.ZERO);
+//        orderDto.setTotalSaleValue(BigDecimal.ZERO);
+//        orderDto.setTotalPtDp(BigDecimal.ZERO);
+//        orderDto.setTotalSjDp(BigDecimal.ZERO);
+//        orderDto.setTotalPtDisc(BigDecimal.ZERO);
+//        orderDto.setCommissionValue(BigDecimal.ZERO);
+//        orderDto.setPayableValue(BigDecimal.valueOf(order.getTotal()));
+//        orderDto.setTotalItemValue(BigDecimal.valueOf(order.getTotal()));
+//        orderDto.setLogisticsModeKeyword(order.getFreightAmount().toString());
+//
+//
+//        ShopDetail shopDetailByShopId = shopDetailService.getById(order.getShopId());
+////            orderDto.setOrgName(shopDetailByShopId.getShopName());
+//        orderDto.setOrgCode(shopDetailByShopId.getThirdPartyCode());
+//        orderDto.setOrgName(shopDetailByShopId.getShopName());
+//        orderDto.setPreOrder(false);
+//        orderDto.setOfflineOrder(false);
+//        orderDto.setOrderTime(formatter.format(order.getCreateTime()));
+//        orderDto.setGroupId(0);
+//        orderDto.setGoodsReturn("true");
+//        UserAddrOrder addrOrder = userAddrOrderService.getById(order.getAddrOrderId());
+//        User user = userService.getUserByUserId(order.getUserId());
+//
+//        //填充收件人信息
+//        orderDto.setReceiver(new OrderDto.Receiver());
+//        orderDto.getReceiver().setAddress(addrOrder.getAddress());
+//        orderDto.getReceiver().setMobile(user.getUserMobile());
+//        orderDto.getReceiver().setName(user.getNickName());
+//        orderDto.getReceiver().setType("0");
+//        orderDto.getReceiver().setLatitude(String.valueOf(addrOrder.getLatitude()));
+//        orderDto.getReceiver().setLongitude(String.valueOf(addrOrder.getLongitude()));
+//        orderDto.setPayableLogisticsValue(BigDecimal.valueOf(order.getPlatformAmount()));
+//        orderDto.setLogisticsModeKeyword("0");
+//
+//        //填充买家信息
+//        orderDto.setBuyer(new OrderDto.Buyer());
+//        orderDto.getBuyer().setAddress(addrOrder.getAddress());
+//        orderDto.getBuyer().setNick(user.getNickName());
+//        orderDto.getBuyer().setEmail(user.getUserMail());
+//        orderDto.getBuyer().setNote(order.getRemarks());
+//        orderDto.getBuyer().setTel(user.getUserMobile());
+//
+//        //填充支付信息
+//        orderDto.setOrderPayments(new OrderDto.OrderPayments());
+//        orderDto.getOrderPayments().setPayment(BigDecimal.valueOf(order.getTotal()));
+//        orderDto.getOrderPayments().setKeyword("10002");
+//        orderDto.getOrderPayments().setName("商城系统支付");
+//        ArrayList<OrderDto.OrderDetails> orderDetails = new ArrayList<>();
+//        int weight = 0;
+//        List<OrderItem> orderItems1 = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
+//        for (OrderItem orderItem:orderItems1){
+//            OrderDto.OrderDetails orderDetails1 = new OrderDto.OrderDetails();
+//            Sku sku = skuService.getById(orderItem.getSkuId());
+//            orderDetails1.setSkuId(sku.getPartyCode());
+//            orderDetails1.setItemCode("");
+//            orderDetails1.setBarcode("");
+//            orderDetails1.setOrderItemId(orderItem.getOrderItemId().toString());
+//            orderDetails1.setName(orderItem.getProdName());
+//            orderDetails1.setOriginalPrice(BigDecimal.valueOf(sku.getOriPrice()));
+//            orderDetails1.setWeight((int)Math.round(sku.getWeight()));
+//            weight+=orderDetails1.getWeight();
+//            orderDetails1.setSalePrice(BigDecimal.valueOf(sku.getPrice()));
+//            orderDetails1.setQty(orderItem.getProdCount());
+//            orderDetails1.setMoney(orderDetails1.getSalePrice().multiply(BigDecimal.valueOf(orderDetails1.getQty())));
+//            orderDetails.add(orderDetails1);
+//        }
+//        orderDto.setOrderDetails(orderDetails);
+//        orderDto.setWeight(weight);
+//        String s = qnhService.addOrder(orderDto);
+////        ResponseEntity responseEntity = qnhService.addOrder(orderDto);
+//        if(!StringUtils.isBlank(s)){
+//            order.setQnhOrderId(s);
+//            order.setQnhOrderStatus("1");
+//            orderService.updateById(order);
+//            DeviceFey deviceFey = deviceFeyMapper.selectOne(Wrappers.<DeviceFey>lambdaQuery().eq(DeviceFey::getShopId, order.getShopId()).last("limit 1"));
+//            FeiEYunApi.print(deviceFey.getDeviceSn(),print(order.getOrderNumber()));
+//            return true;
+//        }
+//        return false;
+//    }
+//    private String print(String orderByOrderNumber){
+//        Order order = orderService.getOrderByOrderNumber(orderByOrderNumber);
+//        List<OrderItem> orderItemsByOrderNumber = orderItemService.getOrderItemsByOrderNumber(order.getOrderNumber());
+//        String lastFourDigits = order.getOrderNumber().length() >= 4
+//                ? order.getOrderNumber().substring(order.getOrderNumber().length() - 4)
+//                : order.getOrderNumber(); // 如果长度不足4位,直接返回原字符串
+//        UserAddrOrder userAddrOrder = userAddrOrderService.selectByAddrOrderId(order.getAddrOrderId());
+//        String userMobile = userAddrOrder.getMobile().length() >= 4
+//                ? userAddrOrder.getMobile().substring(userAddrOrder.getMobile().length() - 4)
+//                : userAddrOrder.getMobile(); // 如果长度不足4位,直接返回原字符串
+//        String receiverName = userAddrOrder.getReceiver();
+//        String maskedName = receiverName.length() > 1
+//                ? receiverName.substring(0, 1) + "*".repeat(receiverName.length() - 1)
+//                : receiverName;
+//        StringBuilder content = new StringBuilder();
+//        content.append("<BR>");
+//        content.append("<BR>");
+//        content.append("<CB>#").append(lastFourDigits).append(" 海马购外卖</CB><BR>");
+//        content.append("--------------------------------<BR>");
+//        content.append("<BR>");
+//        content.append("备注:").append(order.getRemarks()).append("<BR>");
+//        content.append("<BR>");
+//        content.append("--------------------------------<BR>");
+//        content.append("下单时间:").append(DateUtil.date(order.getCreateTime())).append("<BR>");
+//        content.append("<BR>");
+//        content.append("订单编号:").append(order.getOrderNumber()).append("<BR>");
+//        content.append("<BR>");
+//        content.append("名称      单价  数量 金额<BR>");
+//        content.append("----------商品信息----------<BR>");
+//        for (OrderItem orderItem:orderItemsByOrderNumber){
+//            content.append("<BR>");
+//            content.append(orderItem.getProdName()).append("<BR>").append("          ").append(orderItem.getPrice()).append("    ").append(orderItem.getProdCount()).append("   ").append(orderItem.getActualTotal()).append("<BR>");
+//        }
+//        content.append("<BR>");
+//        content.append("----------付款情况----------<BR>");
+//        content.append("<BR>");
+//        content.append("订单金额:").append(order.getTotal()).append("元<BR>");
+//        content.append("<BR>");
+//        content.append("实际支付:<B>").append(order.getActualTotal()).append("元</B><BR>");
+//        content.append("--------------------------------<BR>");
+//        content.append("<BR>");
+//        content.append(maskedName);
+//        content.append("<BR>");
+//        content.append("顾客号码:手机尾号").append(userMobile).append("<BR>");
+//        String add = userAddrOrder.getAddress() + userAddrOrder.getAddressName() + userAddrOrder.getAddrDetail();
+//        content.append("顾客地址:").append(add).append("<BR>");
+//        content.append("########海马购外卖#").append(lastFourDigits).append("########<BR>");
+//        content.append("<BR>");
+//        content.append("<BR>");
+//        return content.toString();
+//    }
 }

+ 6 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/FrontCategoryMapper.java

@@ -21,4 +21,10 @@ import org.apache.ibatis.annotations.Param;
 public interface FrontCategoryMapper extends BaseMapper<FrontCategory> {
 
     FrontCategory selectListName(@Param("name") String name);
+
+    /**
+     * 根据父类code删除
+     * @param parentCode 父类code
+     */
+    void deleteByParentCode(@Param("parentCode") String parentCode);
 }

+ 13 - 0
yami-shop-service/src/main/java/com/yami/shop/dao/ShopCategoryMapper.java

@@ -32,4 +32,17 @@ public interface ShopCategoryMapper extends BaseMapper<ShopCategory> {
      * @return 店铺分类
      */
     List<FrontCategoryVO> treeShopCategory();
+
+    /**
+     * 根据编码删除门店对应分类
+     * @param code 分类编码
+     */
+    int  deleteByCode(@Param("code") String code);
+
+    /**
+     * 根据父编码删除门店对应分类
+     * @param parentCode 父编码
+     *
+     */
+    int  deleteByParentCode(@Param("parentCode") String parentCode);
 }

+ 11 - 4
yami-shop-service/src/main/java/com/yami/shop/service/OrderService.java

@@ -19,10 +19,7 @@ import com.yami.shop.bean.app.dto.ShopCartOrderMergerDto;
 import com.yami.shop.bean.model.Order;
 import com.yami.shop.bean.model.OrderItem;
 import com.yami.shop.bean.model.OrderRefund;
-import com.yami.shop.bean.param.CancelOrderParam;
-import com.yami.shop.bean.param.OrderParam;
-import com.yami.shop.bean.param.OrderPayParam;
-import com.yami.shop.bean.param.OrderRefundParam;
+import com.yami.shop.bean.param.*;
 import org.springframework.web.bind.annotation.RequestBody;
 
 import javax.servlet.http.HttpServletResponse;
@@ -131,4 +128,14 @@ public interface OrderService extends IService<Order> {
      * @return 订单申请退款结果
      */
     void returnRefund(String orderNumber);
+
+
+    /**
+     * 计算退单金额和积分
+     * @param orderNumber 订单编号
+     * @param skuId id
+     * @param prodCount 退单sku的数量
+     * @return {@link OrderRefundAmountDTO}
+     */
+    OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber,Long skuId,Integer prodCount);
 }

+ 32 - 6
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBFrontCategoryService.java

@@ -6,8 +6,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.yami.shop.bean.dto.hb.HBBaseReq;
 import com.yami.shop.bean.model.FrontCategory;
+import com.yami.shop.bean.model.ShopCategory;
 import com.yami.shop.common.util.hb.HBR;
 import com.yami.shop.dao.FrontCategoryMapper;
+import com.yami.shop.dao.ShopCategoryMapper;
 import com.yami.shop.service.hb.IHBFrontCategoryService;
 import com.yami.shop.utils.HBSignUtil;
 import lombok.AllArgsConstructor;
@@ -36,6 +38,7 @@ import static com.yami.shop.common.util.HttpUtil.post;
 @Transactional(readOnly = true)
 public class HBFrontCategoryService implements IHBFrontCategoryService {
     private final FrontCategoryMapper frontCategoryMapper;
+    private final ShopCategoryMapper shopCategoryMapper;
     private final HBSignUtil hbSignUtil;
 
 
@@ -70,7 +73,7 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
                 frontCategory.setIsLeaves(jsonObjectInfo.getInteger("isLeaves"));
                 frontCategory.setIcon(jsonObjectInfo.getString("https://zswl-shop.oss-cn-chengdu.aliyuncs.com/2025/09/fe56414a161b498b8f263d3e6afdab92.png"));
                 frontCategory.setPic(jsonObjectInfo.getString("https://zswl-shop.oss-cn-chengdu.aliyuncs.com/2025/09/fe56414a161b498b8f263d3e6afdab92.png"));
-                log.info("添加前台类目信息{}",frontCategory);
+                log.info("添加前台类目信息{}", frontCategory);
 
 //                if (ObjectUtils.isNotEmpty(jsonObjectInfo.getString("parentCode")) && !jsonObjectInfo.getString("parentCode").equals("0")) {
 //                    frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().
@@ -121,13 +124,36 @@ public class HBFrontCategoryService implements IHBFrontCategoryService {
 
     @Override
     public void deleteFrontCategory(JSONObject hbRequest) {
-        String bodyStr = hbRequest.getString("body");
-        JSONObject jsonObject = JSON.parseObject("bodyStr");
-        log.info("前台类目删除,body:{}", bodyStr);
-        List<FrontCategory> frontCategorys = frontCategoryMapper.selectList(new LambdaQueryWrapper<FrontCategory>().eq(FrontCategory::getCode,jsonObject.getLong("code")));
-        for (FrontCategory frontCategory : frontCategorys) {
+        JSONObject body = hbRequest.getJSONObject("body");
+        JSONArray codeList = body.getJSONArray("codeList");
+        for (Object code : codeList) {
+
+            log.info("前台类目删除,body:{}", code.toString());
+            FrontCategory frontCategory = frontCategoryMapper.selectOne(new LambdaQueryWrapper<FrontCategory>().eq(FrontCategory::getCode, Long.getLong(code.toString())));
             frontCategory.setIsDelete(1);
             frontCategoryMapper.updateById(frontCategory);
+
+            ShopCategory shopCategory = shopCategoryMapper.selectOne(new LambdaQueryWrapper<ShopCategory>()
+                    .eq(ShopCategory::getCode, frontCategory.getCode())
+                    .eq(ShopCategory::getIsDelete, 0));
+            shopCategory.setIsDelete(1);
+            int i = shopCategoryMapper.updateById(shopCategory);
+
+            if (frontCategory.getLevel() == 1) {
+                frontCategoryMapper.deleteByParentCode(frontCategory.getCode());
+            }
+
+            Integer integer = shopCategoryMapper.selectCount(new LambdaQueryWrapper<ShopCategory>()
+                    .eq(ShopCategory::getParentCode, shopCategory.getParentCode())
+                    .eq(ShopCategory::getIsDelete, 0));
+            if (integer == 0) {
+                ShopCategory shopCategory1 = shopCategoryMapper.selectOne(new LambdaQueryWrapper<ShopCategory>()
+                        .eq(ShopCategory::getCode, shopCategory.getParentCode())
+                        .eq(ShopCategory::getIsDelete, 0));
+                shopCategory1.setIsLeaves(1);
+                shopCategoryMapper.updateById(shopCategory1);
+            }
+
         }
     }
 }

+ 8 - 8
yami-shop-service/src/main/java/com/yami/shop/service/hb/impl/HBOrderService.java

@@ -196,11 +196,11 @@ public class HBOrderService implements IHBOrderService {
         Order order = orderMapper.getOrderAndOrderItemByOrderNumber(channelOrderId);
         //如果是已送达直接完成并且通知海博
         order.setHbOrderStatus(operatorType);
-        if (operatorType == 70) {
-            order.setHbOrderStatus(80);
-        } else if (operatorType == 60) {
-            order.setHbOrderStatus(60);
-        }
+//        if (operatorType == 70) {
+//            order.setHbOrderStatus(80);
+//        } else if (operatorType == 60) {
+//            order.setHbOrderStatus(60);
+//        }
         orderMapper.updateById(order);
 
 
@@ -245,9 +245,9 @@ public class HBOrderService implements IHBOrderService {
 
         }
         //成功直接通知海博
-        if (operatorType == 70) {
-            changeOrderStatus(channelOrderId, 80);
-        }
+//        if (operatorType == 70) {
+//            changeOrderStatus(channelOrderId, OrderStatus.SUCCESS.value());
+//        }
     }
 
     @Override

+ 3 - 3
yami-shop-service/src/main/java/com/yami/shop/service/impl/MyOrderServiceImpl.java

@@ -50,9 +50,9 @@ public class MyOrderServiceImpl extends ServiceImpl<OrderMapper, Order> implemen
             if (StrUtil.isBlank(myOrderDto.getShopName())) {
                 myOrderDto.setShopName(Constant.PLATFORM_SHOP_NAME);
             }
-            List<MyOrderItemDto> orderItemDtos = myOrderDto.getOrderItemDtos();
-            int score = orderItemDtos.stream().mapToInt(MyOrderItemDto::getUseScore).sum();
-            myOrderDto.setUserScore(score);
+//            List<MyOrderItemDto> orderItemDtos = myOrderDto.getOrderItemDtos();
+//            int score = orderItemDtos.stream().mapToInt(MyOrderItemDto::getUseScore).sum();
+            myOrderDto.setUserScore(Math.toIntExact(myOrderDto.getOffsetPoints()));
             if (null != myOrderDto.getPayTime()) {
                 // 转换为 LocalDateTime 并增加 1 小时
                 LocalDateTime delayedTime = myOrderDto.getPayTime().toInstant()

+ 7 - 6
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderRefundServiceImpl.java

@@ -1073,8 +1073,6 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
             Integer auditType = bodyStr.getInteger("auditType");
             Integer applyDeal = bodyStr.getInteger("applyDeal");
 
-            log.info("退款单状态bodyStr.getInteger{}", bodyStr.getInteger("refundStatus"));
-
             if (ObjectUtil.isNotEmpty(applyDeal)) {
                 if (applyDeal == 40) {
                     applyDeal = 2;
@@ -1107,11 +1105,11 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 //审核通过
                 orderRefund.setApplyType(applyDeal);
 
-                if (applyDeal != null && applyDeal.equals(10)){
+                if (applyDeal == 1){
                     orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
                 }else{
-
-                    orderRefund.setReturnMoneySts(ReturnMoneyStsType.SUCCESS.value());
+                    //退货退款需要处理二审
+                    orderRefund.setReturnMoneySts(ReturnMoneyStsType.CONSIGNMENT.value());
                 }
                 orderRefundMapper.updateById(orderRefund);
 
@@ -1124,8 +1122,11 @@ public class OrderRefundServiceImpl extends ServiceImpl<OrderRefundMapper, Order
                 orderRefundRecord1.setSort(3);
                 orderRefundRecordMapper.insert(orderRefundRecord1);
             }
-            //推送商家审核状态后 同步退款单状态
 
+            if (applyDeal == 1){
+                orderService.returnRefund(orderRefund.getOrderNumber());
+            }
+            //推送商家审核状态后 同步退款单状态
             changeStatus(orderRefund.getRefundSn(), orderRefund.getReturnMoneySts());
         } catch (Exception e) {
             log.error("海博退款订单查询异常:{}", e);

+ 5 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/OrderServiceImpl.java

@@ -1082,6 +1082,11 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         }
     }
 
+    @Override
+    public OrderRefundAmountDTO computeOrderRefundAmount(String orderNumber, Long skuId, Integer prodCount) {
+        return null;
+    }
+
     private boolean isPaymentOver7Days(Date paymentDate) {
         // 1. 将支付时间转换为 Instant
         Instant paymentInstant = paymentDate.toInstant();

+ 0 - 1
yami-shop-service/src/main/java/com/yami/shop/service/impl/ProductServiceImpl.java

@@ -263,7 +263,6 @@ public class ProductServiceImpl extends ServiceImpl<ProductMapper, Product> impl
         for (SearchProdDto searchProdDto : searchProdDtoPage.getRecords()) {
             List<Sku> skus = skuMapper.listByProdId(searchProdDto.getProdId());
             List<SkuDto> skuList = new ArrayList<>();
-            //TODO wangjian 查询具体的价格
             skus.forEach(sku -> {
                 SkuDto skuDto = new SkuDto();
                 skuDto.setSkuName(sku.getSkuName());

+ 1 - 0
yami-shop-service/src/main/java/com/yami/shop/service/impl/ShopCategoryServiceImpl.java

@@ -158,6 +158,7 @@ public class ShopCategoryServiceImpl extends ServiceImpl<ShopCategoryMapper, Sho
         IPage<ShopCategory> page = page(new Page<>(current, size), new LambdaQueryWrapper<ShopCategory>()
                 .eq(ShopCategory::getShopId, shopId)
                 .eq(ShopCategory::getPid, parentId)
+                .eq(ShopCategory::getIsDelete, 0)
                 .orderByDesc(ShopCategory::getNum)
                 .orderByDesc(ShopCategory::getId));
         Page res = new Page();

+ 4 - 0
yami-shop-service/src/main/resources/mapper/FrontCategoryMapper.xml

@@ -15,4 +15,8 @@
 #         AND level = 2
     </select>
 
+    <update id="deleteByParentCode">
+        UPDATE tz_front_category SET is_delete = 1 WHERE parent_code = #{parentCode}
+    </update>
+
 </mapper>

+ 1 - 1
yami-shop-service/src/main/resources/mapper/OrderMapper.xml

@@ -541,7 +541,7 @@
             AND
             <choose>
                 <when test="20 == status">
-                    temp.hb_order_status IN (1,20,30,40)
+                    temp.hb_order_status IN (1,20,30,40,70)
                 </when>
                 <otherwise>
                     temp.hb_order_status = #{status}

+ 19 - 19
yami-shop-service/src/main/resources/mapper/ProductMapper.xml

@@ -125,7 +125,7 @@
     </update>
 
     <select id="getProductByProdNameAndShopId" resultType="com.yami.shop.bean.model.Product">
-        select * from tz_prod where prod_name = #{prodName} and shop_id = #{shopId}
+        select * from tz_prod where prod_name = #{prodName} and shop_id = #{shopId} and p.`is_delete`=0
     </select>
 
     <select id="doGetById" resultType="com.yami.shop.bean.model.Product">
@@ -165,7 +165,7 @@
                  LEFT JOIN tz_shop_sku AS tss ON tp.prod_id = tss.spu_id
                  LEFT JOIN tz_channel_shop AS tcs ON tss.shop_id = tcs.shop_id
         WHERE tp.prod_id = #{prodId}
-          AND tcs.channel_id = #{platform}
+          AND tcs.channel_id = #{platform} and p.`is_delete`=0
         GROUP BY
             tp.prod_id,
             tcs.shop_id
@@ -189,7 +189,7 @@
         LEFT JOIN tz_prod_tag pt
         ON pt.`id` = ptr.`tag_id`
         WHERE pt.`id` = #{tagId}
-        AND p.status = 1
+        AND p.status = 1 and p.`is_delete`=0
         ORDER BY p.`update_time` DESC
     </select>
 
@@ -197,7 +197,7 @@
         SELECT
         <include refid="prodWithNoContent_SQL"/>
         FROM tz_prod p
-        WHERE p.`status` = 1 AND p.prod_type =0
+        WHERE p.`status` = 1 AND p.prod_type =0 and p.`is_delete`=0
         ORDER BY p.putaway_time DESC
     </select>
 
@@ -205,7 +205,7 @@
         SELECT p.*
         FROM tz_prod p
         WHERE p.`status` = 1
-            and p.prod_type = 3
+            and p.prod_type = 3 and p.`is_delete`=0
         ORDER BY p.putaway_time DESC
     </select>
 
@@ -257,7 +257,7 @@
         from
         tz_prod p
         left join tz_prod_comm pc on p.prod_id=pc.prod_id and pc.`status`=1
-        where 1 = 1 and p.`status` = 1
+        where 1 = 1 and p.`status` = 1 and p.`is_delete`=0
         <if test="searchParam.prodName != null and searchParam.prodName != ''">
             and prod_name like concat('%',#{searchParam.prodName} ,'%')
         </if>
@@ -303,7 +303,7 @@
         SELECT
         <include refid="prodWithNoContent_SQL"/>
         FROM tz_prod p
-        WHERE p.`status` = 1
+        WHERE p.`status` = 1 and p.`is_delete`=0
         <if test="shopId != 0">
             AND p.shop_id = #{shopId}
         </if>
@@ -314,7 +314,7 @@
         <include refid="prodWithNoContent_SQL"/>
         FROM
         tz_prod p
-        WHERE p.`status` = 1
+        WHERE p.`status` = 1 and p.`is_delete`=0
         <if test="shopId != 0">
         AND p.shop_id = #{shopId}
         </if>
@@ -337,7 +337,7 @@
         SELECT
         <include refid="prodWithNoContent_SQL"/>
         FROM tz_prod p
-        WHERE p.`prod_id` IN
+        WHERE  p.`is_delete`=0 p.`prod_id` IN
         (SELECT uc.`prod_id` FROM tz_user_collection uc
         WHERE uc.user_id = #{userId})
     </select>
@@ -363,7 +363,7 @@
         FROM
         tz_prod p
         LEFT JOIN tz_sku s ON s.`prod_id` = p.`prod_id`
-        WHERE p.`prod_id` IN
+        WHERE  p.`is_delete`=0 p.`prod_id` IN
         <foreach collection="prodIds" item="prodId" open="(" close=")" separator=",">
             #{prodId}
         </foreach>
@@ -429,7 +429,7 @@
         LEFT JOIN tz_shop_detail s
         ON p.shop_id = s.shop_id
         <where>
-            p.status != -1 AND prod_type = 0
+            p.status != -1 AND prod_type = 0 and p.`is_delete`=0
             <if test="product.status != null">
                 AND p.status = #{product.status}
             </if>
@@ -466,7 +466,7 @@
             tz_category tc ON tc.`category_id` = p.`category_id`
         LEFT JOIN
             tz_category stc ON stc.`category_id` = p.`shop_category_id`
-        WHERE s.`is_delete` = 0 AND p.`status` = #{productParam.status} AND p.shop_id = #{productParam.shopId}
+        WHERE s.`is_delete` = 0 and p.`is_delete`=0 AND p.`status` = #{productParam.status} AND p.shop_id = #{productParam.shopId}
     </select>
 
     <select id="pageProducts" resultType="com.yami.shop.bean.model.Product">
@@ -477,7 +477,7 @@
         FROM
             tz_prod p
         <where>
-            shop_id = #{product.shopId} and  STATUS = 1 AND prod_type = 0
+            shop_id = #{product.shopId} and  STATUS = 1 AND prod_type = 0 and p.`is_delete`=0
             <if test="product.prodName != null">
                 AND p.prod_name LIKE concat('%',#{product.prodName},'%')
             </if>
@@ -503,7 +503,7 @@
         from
         tz_prod p
         left join tz_prod_comm pc on p.prod_id=pc.prod_id and pc.`status`=1
-        where 1 = 1 and p.`status` = 1 and prod_type = 0
+        where 1 = 1 and p.`status` = 1 and prod_type = 0 and p.`is_delete`=0
 
         <if test="searchParam.prodName != null and searchParam.prodName != ''">
             and prod_name like concat('%',#{searchParam.prodName} ,'%')
@@ -581,7 +581,7 @@
             p.status
         FROM tz_prod p
         left join tz_shop_detail sd on p.shop_id = sd.shop_id
-        WHERE p.`status` = 1 AND p.prod_type =0
+        WHERE p.`status` = 1 AND p.prod_type =0 and p.`is_delete`=0
         <if test="list != null">
             and p.shop_id in
             <foreach collection="list" item="item" separator="," open="(" close=")">
@@ -612,7 +612,7 @@
         LEFT JOIN tz_shop_detail sd ON sd.shop_id = tss.shop_id
         LEFT JOIN tz_prod_comm pc ON p.prod_id = pc.prod_id
         LEFT JOIN tz_channel_prod tcp ON tss.sku_id = tcp.sku_id
-        where 1 = 1 and p.`status` = 1 and tcp.is_delete=0 and tss.shop_id in
+        where 1 = 1 and p.`status` = 1 and p.`is_delete`=0 and tcp.is_delete=0 and tss.shop_id in
         <foreach collection="list" item="item" separator="," open="(" close=")">
             #{item}
         </foreach>
@@ -684,7 +684,7 @@
         tz_prod p
         WHERE
         1 = 1
-        AND p.`status` = 1
+        AND p.`status` = 1 and p.`is_delete`=0
         <if test="searchParam.prodName != null and searchParam.prodName != ''">
             AND prod_name LIKE CONCAT('%', #{searchParam.prodName}, '%')
         </if>
@@ -769,7 +769,7 @@
                 INNER JOIN tz_category c ON p.shop_category_id = c.category_id
         WHERE
             c.parent_id = #{prodByCategoryIdAndShopIdDTO.categoryId}
-          AND p.STATUS = 1
+          AND p.STATUS = 1 and p.`is_delete`=0
           AND c.STATUS = 1
           AND  p.shop_id = #{prodByCategoryIdAndShopIdDTO.shopId}
         ORDER BY
@@ -816,7 +816,7 @@
                 LEFT JOIN tz_shop_sku tss ON  tss.spu_id=tcp.prod_id
                 LEFT JOIN tz_channel_prod cp ON  (cp.shop_id=tsc.shop_id AND cp.sku_id=tss.sku_id)
         WHERE
-            tp.STATUS = 1
+            tp.STATUS = 1 and tp.`is_delete`=0
           AND tcp.is_delete = 0
           AND tsc.is_delete = 0
           AND cp.channel_prod_price IS NOT NULL

+ 12 - 0
yami-shop-service/src/main/resources/mapper/ShopCategoryMapper.xml

@@ -2,6 +2,7 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yami.shop.dao.ShopCategoryMapper">
 
+
     <select id="treeShopCategory" resultType="com.yami.shop.bean.vo.FrontCategoryVO">
         SELECT s.*
         FROM tz_shop_category s
@@ -11,4 +12,15 @@
           and f.is_delete = 0
     </select>
 
+    <update id="deleteByCode">
+        UPDATE tz_front_category
+        SET is_delete = 1
+        WHERE code = #{code}
+    </update>
+
+    <update id="deleteByParentCode">
+        UPDATE tz_front_category
+        SET is_delete = 1
+        WHERE parent_code = #{parentCode}
+    </update>
 </mapper>