Quellcode durchsuchen

联合丽格1.0.2

huangzhiguo vor 1 Jahr
Ursprung
Commit
a8f4df2e70
25 geänderte Dateien mit 249 neuen und 90 gelöschten Zeilen
  1. 8 7
      src/main/java/com/caimei365/order/components/OrderCommonService.java
  2. 2 2
      src/main/java/com/caimei365/order/components/ProductService.java
  3. 2 1
      src/main/java/com/caimei365/order/controller/AddressApi.java
  4. 4 4
      src/main/java/com/caimei365/order/controller/OrderClubApi.java
  5. 5 3
      src/main/java/com/caimei365/order/controller/ShipApi.java
  6. 7 0
      src/main/java/com/caimei365/order/mapper/AddressMapper.java
  7. 1 1
      src/main/java/com/caimei365/order/mapper/OrderClubMapper.java
  8. 13 1
      src/main/java/com/caimei365/order/mapper/OrderCommonMapper.java
  9. 7 1
      src/main/java/com/caimei365/order/mapper/ShipMapper.java
  10. 2 1
      src/main/java/com/caimei365/order/service/AddressService.java
  11. 4 4
      src/main/java/com/caimei365/order/service/OrderClubService.java
  12. 1 1
      src/main/java/com/caimei365/order/service/ShipService.java
  13. 8 2
      src/main/java/com/caimei365/order/service/impl/AddressServiceImpl.java
  14. 4 4
      src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java
  15. 1 1
      src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java
  16. 10 1
      src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java
  17. 22 19
      src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java
  18. 2 1
      src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java
  19. 16 3
      src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java
  20. 14 11
      src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java
  21. 14 1
      src/main/resources/mapper/AddressMapper.xml
  22. 1 1
      src/main/resources/mapper/CartClubMapper.xml
  23. 19 19
      src/main/resources/mapper/OrderClubMapper.xml
  24. 64 0
      src/main/resources/mapper/OrderCommonMapper.xml
  25. 18 1
      src/main/resources/mapper/ShipMapper.xml

+ 8 - 7
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -82,9 +82,9 @@ public class OrderCommonService {
             // 冷链商品判定
             List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
             collect.removeIf(c -> c == 999);
-            if (collect.stream().allMatch(c -> c == 7536)) {
+            if (collect.stream().allMatch(c -> c == 7550)) {
                 arrList.add(1);
-            } else if (!collect.contains(7536)) {
+            } else if (!collect.contains(7550)) {
                 arrList.add(2);
             } else {
                 arrList.add(3);
@@ -289,9 +289,9 @@ public class OrderCommonService {
             // 冷链商品判定
             List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
             collect.removeIf(c -> c == 999);
-            if (collect.stream().allMatch(c -> c == 7536)) {
+            if (collect.stream().allMatch(c -> c == 7550)) {
                 arrList.add(1);
-            } else if (!collect.contains(7536)) {
+            } else if (!collect.contains(7550)) {
                 arrList.add(2);
             } else {
                 arrList.add(3);
@@ -433,11 +433,12 @@ public class OrderCommonService {
         if (null == shopOrderVo.getRealPay()) {
             shopOrderVo.setRealPay(shopOrderVo.getNeedPayAmount());
         }
-        shopOrderVo.setObligation(MathUtil.sub(shopOrderVo.getRealPay(), receiptAmount).doubleValue());
         // 支付总金额 = 用户结算金额 + 付款金额
         if(!discernReceiptList.isEmpty()) {
             shopOrderVo.setReceiptAmount(MathUtil.add(shopOrderVo.getReceiptAmount(), receiptAmount).doubleValue());
         }
+        // 待付金额
+        shopOrderVo.setObligation(MathUtil.sub(shopOrderVo.getRealPay(), shopOrderVo.getReceiptAmount()).doubleValue());
         return discernReceiptList;
     }
 
@@ -449,9 +450,9 @@ public class OrderCommonService {
         // 冷链商品判定
         List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
         collect.removeIf(c -> c == 999);
-        if (collect.stream().allMatch(c -> c == 7536)) {
+        if (collect.stream().allMatch(c -> c == 7550)) {
             arrList.add(1);
-        } else if (!collect.contains(7536)) {
+        } else if (!collect.contains(7550)) {
             arrList.add(2);
         } else {
             arrList.add(3);

+ 2 - 2
src/main/java/com/caimei365/order/components/ProductService.java

@@ -217,9 +217,9 @@ public class ProductService {
         }
         // 是否包含需要冷链运输商品
         List<Integer> collect = postageFlagList.stream().map(ProductPostageVo::getProductId).collect(Collectors.toList());
-        if (collect.stream().allMatch(c -> c == 7536)) {
+        if (collect.stream().allMatch(c -> c == 7550)) {
             postageMap.put("designatedFlag", 1);
-        } else if (!collect.contains(7536)) {
+        } else if (!collect.contains(7550)) {
             postageMap.put("designatedFlag", 2);
         } else {
             postageMap.put("designatedFlag", 3);

+ 2 - 1
src/main/java/com/caimei365/order/controller/AddressApi.java

@@ -2,6 +2,7 @@ package com.caimei365.order.controller;
 
 import com.caimei365.order.model.ResponseJson;
 import com.caimei365.order.model.dto.AddressDto;
+import com.caimei365.order.model.po.AddressPo;
 import com.caimei365.order.model.vo.AddressSelectVo;
 import com.caimei365.order.model.vo.AddressVo;
 import com.caimei365.order.service.AddressService;
@@ -93,7 +94,7 @@ public class AddressApi {
      */
     @ApiOperation("保存收货地址(旧:/personalCenter/saveAddress)")
     @PostMapping("/save")
-    public ResponseJson<Integer> addUserAddress(AddressDto addressDto) {
+    public ResponseJson<AddressVo> addUserAddress(AddressDto addressDto) {
         if (null == addressDto.getUserId()) {
             return ResponseJson.error("用户Id不能为空!", null);
         }

+ 4 - 4
src/main/java/com/caimei365/order/controller/OrderClubApi.java

@@ -230,13 +230,13 @@ public class OrderClubApi {
      * 物流详情
      */
     @ApiOperation("物流详情(旧:/order/logistics)")
-    @ApiImplicitParam(required = true, name = "orderId", value = "订单Id")
+    @ApiImplicitParam(required = true, name = "shopOrderId", value = "订单Id")
     @GetMapping("/logistics")
-    public ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer orderId) {
-        if (null == orderId) {
+    public ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer shopOrderId) {
+        if (null == shopOrderId) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.getOrderLogistics(orderId);
+        return orderClubService.getOrderLogistics(shopOrderId);
     }
 
     /**

+ 5 - 3
src/main/java/com/caimei365/order/controller/ShipApi.java

@@ -46,19 +46,21 @@ public class ShipApi {
             @ApiImplicitParam(required = false, name = "payStatus", value = "结算状态"),
             @ApiImplicitParam(required = false, name = "shopOrderNo", value = "订单编号"),
             @ApiImplicitParam(required = false, name = "receiver", value = "买家名称(收货人)"),
+            @ApiImplicitParam(required = false, name = "refundStatus", value = "退款状态"),
+            @ApiImplicitParam(required = false, name = "receiptStatus", value = "收款状态"),
             @ApiImplicitParam(required = false, name = "organizeId", value = "订单来源"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/list")
     public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus,
-                                                                String shopOrderNo, String receiver, Integer organizeId,
+                                                                String shopOrderNo, String receiver, Integer refundStatus, Integer receiptStatus, Integer organizeId,
                                                                 @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                 @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (null == shopId) {
             return ResponseJson.error("供应商Id不能为空!", null);
         }
-        return shipService.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, organizeId, pageNum, pageSize);
+        return shipService.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, refundStatus, receiptStatus, organizeId, pageNum, pageSize);
     }
 
     /**
@@ -392,7 +394,7 @@ public class ShipApi {
     }
 
     /**
-     * 更改收款状态
+     * 更改收款状态 -- 确认收款
      *
      * @param amount
      * @param shopOrderId

+ 7 - 0
src/main/java/com/caimei365/order/mapper/AddressMapper.java

@@ -35,6 +35,13 @@ public interface AddressMapper {
      * @param cityId
      */
     List<AddressSelectVo> getTownListByCityId(Integer cityId);
+
+    /**
+     * 根据townId查询
+     * @param townId
+     * @return
+     */
+    AddressVo getAddressByTownId(Integer townId);
     /**
      * 地址Id获取收货地址
      * @param addressId 地址Id

+ 1 - 1
src/main/java/com/caimei365/order/mapper/OrderClubMapper.java

@@ -189,7 +189,7 @@ public interface OrderClubMapper {
      *
      * @param orderId 订单Id
      */
-    void updateLogisticsBatch(Integer orderId);
+    void updateLogisticsBatch(Integer orderId, Integer shopOrderId);
 
     /**
      * 获取各状态订单数量

+ 13 - 1
src/main/java/com/caimei365/order/mapper/OrderCommonMapper.java

@@ -40,11 +40,18 @@ public interface OrderCommonMapper {
      */
     Integer getShopOrganizeId(@Param("shopOrderId") Integer shopOrderId);
     /**
-     * 根据子订单Id查询子订单列表
+     * 根据子订单Id查询子订单列表 -- 不包括已付款
      * @param shopOrderIds 子订单Ids
      */
     List<ShopOrderVo> getShopOrderList(@Param("shopOrderIds") List<String> shopOrderIds);
 
+    /**
+     * 根据子订单Id查询子订单列表
+     * @param shopOrderIds
+     * @return
+     */
+    List<ShopOrderVo> getPayShopOrderList(@Param("shopOrderIds") List<String> shopOrderIds);
+
     /**
      * 子订单是否支付
      * @param shopOrderId
@@ -175,6 +182,11 @@ public interface OrderCommonMapper {
      * @param orderId 订单Id
      */
     List<LogisticsBatchVo> getLogisticsBatchList(Integer orderId);
+    /**
+     * 获取物流批次列表
+     * @param shopOrderId 子订单Id
+     */
+    List<LogisticsBatchVo> getShopLogisticsBatchList(Integer shopOrderId);
     /**
      * 获取发货物流记录
      * @param shopOrderId      子订单Id

+ 7 - 1
src/main/java/com/caimei365/order/mapper/ShipMapper.java

@@ -21,7 +21,7 @@ public interface ShipMapper {
     /**
      * 机构订单列表
      */
-    List<ShopOrderVo> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId);
+    List<ShopOrderVo> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer refundStatus, Integer receiptStatus, Integer organizeId);
     /**
      * 供应商结算列表
      */
@@ -237,6 +237,12 @@ public interface ShipMapper {
     String findOrderStatus(Integer orderId);
 
     void updateReceiptStatus(Integer status, Integer shopOrderId);
+
+    Integer getOrderId(Integer shopOrderId);
+
+    List<Integer> getReceiptStatus(Integer orderId);
+
+    void updateOrderReceiptStatus(Integer status, Integer orderId);
     /**
      * 订单备注
      * @param shopOrderId

+ 2 - 1
src/main/java/com/caimei365/order/service/AddressService.java

@@ -2,6 +2,7 @@ package com.caimei365.order.service;
 
 import com.caimei365.order.model.ResponseJson;
 import com.caimei365.order.model.dto.AddressDto;
+import com.caimei365.order.model.po.AddressPo;
 import com.caimei365.order.model.vo.AddressSelectVo;
 import com.caimei365.order.model.vo.AddressVo;
 import com.github.pagehelper.PageInfo;
@@ -46,7 +47,7 @@ public interface AddressService {
      *                   mobile       手机
      *                   defaultFlag  是否默认收货地址(0 不是默认,1 默认)
      */
-    ResponseJson<Integer> addUserAddress(AddressDto addressDto);
+    ResponseJson<AddressVo> addUserAddress(AddressDto addressDto);
 
     /**
      * 删除收货地址

+ 4 - 4
src/main/java/com/caimei365/order/service/OrderClubService.java

@@ -79,9 +79,9 @@ public interface OrderClubService {
     ResponseJson<Void> deleteMainOrder(Integer shopOrderId);
     /**
      * 机构确认收货
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
-    ResponseJson<Void> receiveGoods(Integer orderId);
+    ResponseJson<Void> receiveGoods(Integer shopOrderId);
     /**
      * 根据用户Id查找订单搜索历史记录
      * @param userId  用户Id
@@ -94,9 +94,9 @@ public interface OrderClubService {
     ResponseJson<Void> deleteOrderSearchHistory(Integer userId);
     /**
      * 物流详情
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
-    ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer orderId);
+    ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer shopOrderId);
     /**
      * 分享订单,获取分享码
      * @param shopOrderId 订单Id

+ 1 - 1
src/main/java/com/caimei365/order/service/ShipService.java

@@ -30,7 +30,7 @@ public interface ShipService {
      * @param pageNum        页码
      * @param pageSize       每页数量
      */
-    ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId, int pageNum, int pageSize);
+    ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer refundStatus, Integer receiptStatus, Integer organizeId, int pageNum, int pageSize);
     /**
      * 供应商结算列表
      * @param shopId         供应商Id

+ 8 - 2
src/main/java/com/caimei365/order/service/impl/AddressServiceImpl.java

@@ -98,7 +98,7 @@ public class AddressServiceImpl implements AddressService {
      *                   defaultFlag  是否默认收货地址(0 不是默认,1 默认)
      */
     @Override
-    public ResponseJson<Integer> addUserAddress(AddressDto addressDto) {
+    public ResponseJson<AddressVo> addUserAddress(AddressDto addressDto) {
         AddressPo address = null;
         if (null != addressDto.getAddressId()) {
             // 获取地址信息
@@ -134,7 +134,13 @@ public class AddressServiceImpl implements AddressService {
             // 更新地址
             addressMapper.updateAddress(address);
         }
-        return ResponseJson.success(1);
+        AddressVo addressVo = addressMapper.getAddressByTownId(addressDto.getTownId());
+        addressVo.setAddress(addressDto.getAddress());
+        addressVo.setUserId(addressDto.getUserId());
+        addressVo.setReceiver(addressDto.getReceiver());
+        addressVo.setMobile(addressDto.getMobile());
+        addressVo.setDefaultFlag(address.getDefaultFlag());
+        return ResponseJson.success(addressVo);
     }
 
     /**

+ 4 - 4
src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java

@@ -1045,7 +1045,7 @@ public class CartClubServiceImpl implements CartClubService {
                         // 迭代器设置商品信息
                         for (CartItemVo cartItemVo : productList) {
                             // 设置商品运费
-                            if (7536 == cartItemVo.getProductId()) {
+                            if (7550 == cartItemVo.getProductId()) {
                                 if (cartItemVo.getNumber() >= 100) {
                                     coldChain = 0d;
                                 } else {
@@ -1338,7 +1338,7 @@ public class CartClubServiceImpl implements CartClubService {
             double coldChain = 0.00d;
             if (null != totalProductList) {
                 for (CartItemVo cart :totalProductList) {
-                    if (7536 == cart.getProductId()) {
+                    if (7550 == cart.getProductId()) {
                         if (cart.getNumber() >= 100) {
                             coldChain = 0.00d;
                         } else {
@@ -1499,7 +1499,7 @@ public class CartClubServiceImpl implements CartClubService {
                         for (CartItemVo cartItemVo : productList) {
                             // 设置商品运费
                             if (null != townId) {
-                                if (7536 == cartItemVo.getProductId()) {
+                                if (7550 == cartItemVo.getProductId()) {
                                     if (cartItemVo.getNumber() >= 100) {
                                         coldChain = 0d;
                                     } else {
@@ -1980,7 +1980,7 @@ public class CartClubServiceImpl implements CartClubService {
             shop.setPostageFlag((Integer) postageMap.get("postageFlag"));
             shop.setUserBeans((Integer) postageMap.get("userBeans"));
             shop.setDesignatedFlag((Integer) postageMap.get("designatedFlag"));
-            if (7536 == cartItemVo.getProductId()) {
+            if (7550 == cartItemVo.getProductId()) {
                 if (cartItemVo.getNumber() >= 100) {
                     coldChain = 0d;
                 } else {

+ 1 - 1
src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java

@@ -505,7 +505,7 @@ public class CartSellerServiceImpl implements CartSellerService {
                 Double coldChain = 0d;
                 if (null != productList && productList.size() > 0) {
                     for (CartItemVo cartItemVo : productList) {
-                        if (7536 == cartItemVo.getProductId()) {
+                        if (7550 == cartItemVo.getProductId()) {
                             if (cartItemVo.getNumber() >= 100) {
                                 coldChain = 0d;
                             } else {

+ 10 - 1
src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java

@@ -1190,7 +1190,7 @@ public class HeliPayServiceImpl implements HeliPayService {
         }
         String[] shopOrderIdArr = shopOrderId.split(",");
         List<String> shopOrderIds = Arrays.asList(shopOrderIdArr);
-        List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderList(shopOrderIds);
+        List<ShopOrderVo> shopOrderList = orderCommonMapper.getPayShopOrderList(shopOrderIds);
         shopOrderList.forEach(shopOrder -> {
             // 店铺促销活动
             PromotionsVo shopPromotion = null;
@@ -1198,6 +1198,7 @@ public class HeliPayServiceImpl implements HeliPayService {
                 shopPromotion = orderCommonMapper.getOrderPromotionsById(shopOrder.getOrderPromotionsId());
                 shopOrder.setShopPromotion(shopPromotion);
             }
+            AtomicReference<Boolean> reference = new AtomicReference<>(true);
             List<OrderProductVo> orderProductList = orderCommonMapper.getShopOrderProduct(shopOrder.getShopOrderId());
             orderProductList.removeIf(Objects::isNull);
             orderProductList.forEach(orderProduct -> {
@@ -1238,6 +1239,10 @@ public class HeliPayServiceImpl implements HeliPayService {
                 if (null != orderProduct.getTotalFee()) {
                     orderProduct.setTotalAmount(orderProduct.getTotalFee());
                 }
+                // 商品分帐号
+                if (StringUtils.isEmpty(orderProduct.getSplitCode()) || StringUtils.isBlank(orderProduct.getSplitCode())) {
+                    reference.set(false);
+                }
             });
             if (null == shopOrder.getRealPay()) {
                 shopOrder.setRealPay(shopOrder.getNeedPayAmount());
@@ -1274,6 +1279,10 @@ public class HeliPayServiceImpl implements HeliPayService {
                     }
                 });
             }
+            // 商品无分帐号线下
+            if (!reference.get()) {
+                onlinePay.set(2);
+            }
             shopOrder.setReceiptAmount(MathUtil.add(shopOrder.getReceiptAmount(), finalReceiptAmount.get()).doubleValue());
             shopOrder.setOnlinePay(onlinePay.get());
             orderCommonService.setPostageInfo(shopOrder);

+ 22 - 19
src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java

@@ -785,36 +785,37 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 机构确认收货
      *
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
-    public ResponseJson<Void> receiveGoods(Integer orderId) {
-        OrderPo order = orderClubMapper.getMainOrderByOrderId(orderId);
-        if (null == order) {
+    public ResponseJson<Void> receiveGoods(Integer shopOrderId) {
+        ShopOrderVo shopOrder = orderClubMapper.getShopOrderById(shopOrderId);
+        if (null == shopOrder) {
             return ResponseJson.error("订单不存在!", null);
         }
-        if (OrderStatus.RECEIVED_AND_FULL_SHIPPED.getCode() == order.getStatus() && 3 == order.getPayStatus()) {
+        orderCommonService.setShopOrderStatus(shopOrder);
+        if (33 == shopOrder.getStatus() && 3 == shopOrder.getPayStatus()) {
             // 已付款供应商,订单完成
-            order.setStatus(5);
-        } else if (OrderStatus.RECEIVED_AND_FULL_SHIPPED.getCode() == order.getStatus()) {
+            shopOrder.setStatus(3);
+        } else if (33 == shopOrder.getStatus()) {
             // 交易完成
-            order.setStatus(4);
+            shopOrder.setStatus(2);
         } else {
             return ResponseJson.error("订单异常!", null);
         }
         Date date = new Date();
         String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
         String note = "【确认收货】";
-        order.setUpdateDate(curDateStr);
+        shopOrder.setUpdateTime(date);
         // 更新订单状态
-        orderClubMapper.updateOrderStatus(order);
+        orderClubMapper.updateShopOrderStatus(shopOrder);
         // 更新物流状态
-        orderClubMapper.updateLogisticsBatch(orderId);
+        orderClubMapper.updateLogisticsBatch(shopOrder.getOrderId(), shopOrderId);
 
         // 主动确认收货,赠送100采美豆
         UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
-        beansHistory.setUserId(order.getUserId());
-        beansHistory.setOrderId(orderId);
+        beansHistory.setUserId(shopOrder.getUserId());
+        beansHistory.setOrderId(shopOrder.getOrderId());
         beansHistory.setBeansType(7);
         beansHistory.setType(1);
         beansHistory.setNum(100);
@@ -822,7 +823,7 @@ public class OrderClubServiceImpl implements OrderClubService {
         beansHistory.setAddTime(date);
         beansHistory.setDelFlag(0);
         // 用户采美豆
-        Integer userBeans = baseMapper.getUserBeans(order.getUserId());
+        Integer userBeans = baseMapper.getUserBeans(shopOrder.getUserId());
         // 更新用户剩余采美豆数量
         int beans = userBeans + beansHistory.getNum();
         productService.updateUserBeans(beansHistory, beans, note);
@@ -855,19 +856,21 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 物流详情
      *
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
-    public ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer orderId) {
-        int orderCount = orderClubMapper.countMainOrderByOrderId(orderId);
+    public ResponseJson<List<LogisticsBatchVo>> getOrderLogistics(Integer shopOrderId) {
+        int orderCount = orderClubMapper.countMainShopOrderByOrderId(shopOrderId);
         if (0 == orderCount) {
             return ResponseJson.error("订单不存在!", null);
         }
         // 获取物流批次列表
-        List<LogisticsBatchVo> batchList = orderCommonMapper.getLogisticsBatchList(orderId);
+        List<LogisticsBatchVo> batchList = orderCommonMapper.getShopLogisticsBatchList(shopOrderId);
         batchList.forEach(batch -> {
             // 根据物流批次获取子订单
-            List<String> shopOrderIds = orderClubMapper.getBatchShopOrderIds(orderId, batch.getId());
+            // List<String> shopOrderIds = orderClubMapper.getBatchShopOrderIds(orderId, batch.getId());
+            List<String> shopOrderIds = new ArrayList<>();
+            shopOrderIds.add(shopOrderId.toString());
             List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderList(shopOrderIds);
             shopOrderList.forEach(shopOrder -> {
                 shopOrder.setShopLogo(ImageUtil.getImageUrl("shopLogo", shopOrder.getShopLogo(), domain));

+ 2 - 1
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -158,6 +158,7 @@ public class PayOrderServiceImpl implements PayOrderService {
     public ResponseJson<Map<String, Object>> balanceDeduction(Integer shopOrderId) {
         // 订单信息
         ShopOrderVo shopOrder = orderCommonMapper.getShopOrderByOrderId(shopOrderId);
+        double amount = shopOrder.getReceiptAmount();
         if (null == shopOrder) {
             return ResponseJson.error("订单不存在", null);
         }
@@ -178,7 +179,7 @@ public class PayOrderServiceImpl implements PayOrderService {
             //设置余额支付金额
             shopOrder.setAccountAmount(MathUtil.add(shopOrder.getAccountAmount(), balancePayFee).doubleValue());
             //设置真实支付金额
-            shopOrder.setReceiptAmount(MathUtil.sub(shopOrder.getReceiptAmount(), balancePayFee).doubleValue());
+            shopOrder.setReceiptAmount(MathUtil.add(amount, balancePayFee).doubleValue());
             shopOrder.setOnlinePay(1);
             // 余额抵扣状态
             shopOrder.setUseBalanceFlag(1);

+ 16 - 3
src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java

@@ -86,10 +86,10 @@ public class ShipServiceImpl implements ShipService {
      * @param pageSize      每页数量
      */
     @Override
-    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer refundStatus, Integer receiptStatus, Integer organizeId, int pageNum, int pageSize) {
         // 分页请求数据
         PageHelper.startPage(pageNum, pageSize);
-        List<ShopOrderVo> shopOrderList = shipMapper.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, organizeId);
+        List<ShopOrderVo> shopOrderList = shipMapper.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, refundStatus, receiptStatus, organizeId);
         shopOrderList.forEach(shopOrder -> {
             if (null != shopOrder) {
                 setShopOrderInfo(shopOrder);
@@ -1210,12 +1210,25 @@ public class ShipServiceImpl implements ShipService {
         record.setReceiptId(receiptVo.getId());
         record.setShopOrderId(shopOrderId);
         shipMapper.insertOrderRelation(record);
-        // 根据金额修改cm_order状态
+        // 根据金额修改cm_Shop_order状态
         Integer status = 2;
         if (0 == wait - amount) {
             status = 3;
         }
         shipMapper.updateReceiptStatus(status, shopOrderId);
+        // 修改cm_order状态
+        Integer orderId = shipMapper.getOrderId(shopOrderId);
+        // 获取订单下子订单收款状态
+        List<Integer> receiptStatus = shipMapper.getReceiptStatus(orderId);
+        Integer sta = 1;
+        if (receiptStatus.stream().allMatch(r -> r==3)) {
+            sta = 3;
+        } else if (receiptStatus.stream().allMatch(r -> r==1)) {
+            sta = 1;
+        } else {
+            sta = 2;
+        }
+        shipMapper.updateOrderReceiptStatus(sta, orderId);
         return ResponseJson.success();
     }
 

+ 14 - 11
src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java

@@ -587,7 +587,7 @@ public class SubmitServiceImpl implements SubmitService {
                 }
                 // 联合丽格冷链费商品
                 if (1 == isColdChinaShop) {
-                    if (7536 == product.getProductId()) {
+                    if (7550 == product.getProductId()) {
                         if (productNum >= 100) {
                             shopIsColdChina.set(0.00d);
                         } else {
@@ -1021,8 +1021,8 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setShopProductAmount(shopProductAmount.get());
             // 付给供应商税费
             shopOrder.setShopTaxFee(shopTaxFee.get());
-            // 付供应商 = 商品费 + 运费 + 税费
-            shopOrder.setShouldPayShopAmount(MathUtil.add(shopProductAmount.get(), shopTaxFee.get()).doubleValue());
+            // 付供应商 = 商品费 + 运费 + 税费 + 冷链费
+            shopOrder.setShouldPayShopAmount(MathUtil.add(MathUtil.add(shopProductAmount.get(), shopTaxFee.get()).doubleValue(), isColdChina.get()).doubleValue());
             // 付给供应商运费
             // shopOrder.setShopPostFee(0d);
             // 已付供应商金额
@@ -1996,6 +1996,8 @@ public class SubmitServiceImpl implements SubmitService {
             AtomicDouble shopTaxFee = new AtomicDouble(0);
             // 商品费
             AtomicDouble shopProductFee = new AtomicDouble(0);
+            // 冷链费
+            AtomicDouble isColdChina = new AtomicDouble(0);
             // 该供应商下该分帐号的商品
             List<OrderProductPo> shopProducts = orderProductList.stream().filter(po -> po.getSplitCode().equals(shop.getSplitCode()) && po.getShopId().equals(shop.getShopId())).collect(Collectors.toList());
             // 遍历所有商品
@@ -2012,13 +2014,8 @@ public class SubmitServiceImpl implements SubmitService {
                 // 统计 总金额 包括税费
                 shopProductFee.set(MathUtil.add(shopProductFee.get(), product.getRealProductFee()).doubleValue());
                 // 再勾选冷链费时
-                if (1 == oldShop.get(0).getIsColdChina() && product.getProductId() == 7536) {
-                    // 需要支付金额 需支付金额 + 冷链费700
-                    needPayAmount.set(MathUtil.add(needPayAmount.get(), 700).doubleValue());
-                    // 总金额 + 冷链费700
-                    shopProductFee.set(MathUtil.add(shopProductFee.get(), 700).doubleValue());
-                    // 付供应商 + 冷链费700
-                    shopProductAmount.set(MathUtil.add(shopProductAmount.get(), 700).doubleValue());
+                if (1 == oldShop.get(0).getIsColdChina() && product.getProductId() == 7550 ) {
+                    isColdChina.set(MathUtil.add(isColdChina.get(), 700).doubleValue());
                 }
                 // 商品总金额
                 shopAmount.set(MathUtil.add(shopAmount.get(), product.getTotalAmount()).doubleValue());
@@ -2027,6 +2024,12 @@ public class SubmitServiceImpl implements SubmitService {
                 // 付供应商税费
                 shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
             }
+            // 需要支付金额 需支付金额 + 冷链费
+            needPayAmount.set(MathUtil.add(needPayAmount.get(), isColdChina.get()).doubleValue());
+            // 总金额 + 冷链费
+            shopProductFee.set(MathUtil.add(shopProductFee.get(), isColdChina.get()).doubleValue());
+            // 付供应商 + 冷链费
+            shopProductAmount.set(MathUtil.add(shopProductAmount.get(), isColdChina.get()).doubleValue());
             // 需要支付金额 需支付金额 + 运费
             needPayAmount.set(MathUtil.add(needPayAmount.get(), oldShop.get(0).getShopPostFee()).doubleValue());
             // 总金额 + 运费
@@ -2048,7 +2051,7 @@ public class SubmitServiceImpl implements SubmitService {
             // 付给供应商税费
             shopOrder.setShopTaxFee(shopTaxFee.get());
             // 付供应商 = 商品费 + 运费 + 税费
-            shopOrder.setShouldPayShopAmount(MathUtil.add(shopProductAmount.get(), shopTaxFee.get()).doubleValue());
+            shopOrder.setShouldPayShopAmount(MathUtil.add(MathUtil.add(shopProductAmount.get(), shopTaxFee.get()).doubleValue(), isColdChina.get()).doubleValue());
             // 付给供应商运费
             shopOrder.setShopPostFee(oldShop.get(0).getShopPostFee());
             // 运费类型

+ 14 - 1
src/main/resources/mapper/AddressMapper.xml

@@ -34,6 +34,19 @@
         SELECT cityID AS parentId, townID AS id, name
         FROM town WHERE cityID = #{cityId} AND validFlag = '1'
     </select>
+    <select id="getAddressByTownId" resultType="com.caimei365.order.model.vo.AddressVo">
+        SELECT
+            t.name AS town,
+            c.name AS city,
+            c.cityID AS cityId,
+            t.townID AS townId,
+            p.name AS province,
+            p.provinceID AS provinceID
+        FROM town t
+                 LEFT JOIN city c ON c.cityID = t.cityID
+                 LEFT JOIN province p ON p.provinceID = c.provinceID
+        WHERE t.townId = #{townId}
+    </select>
     <select id="getAddressById" resultType="com.caimei365.order.model.po.AddressPo">
         SELECT
             a.addressID AS addressId,
@@ -90,4 +103,4 @@
         FROM bp_order_userinfo
         WHERE orderId = #{orderId}
     </select>
-</mapper>
+</mapper>

+ 1 - 1
src/main/resources/mapper/CartClubMapper.xml

@@ -207,7 +207,7 @@
         p.splitCode
         FROM cm_cart c
         LEFT JOIN product p ON c.productID = p.productID
-        LEFT JOIN cm_sku cs ON cs.productID = p.productID
+        LEFT JOIN cm_sku cs ON cs.skuId = c.skuId
         left join cm_organize_product_info copi on copi.productId = p.productId
         WHERE c.userID = #{userId} and p.shopID = #{shopId} and cs.organizeID = #{organizeId} and copi.organizeID = #{organizeId}
         AND copi.validFlag='2'

+ 19 - 19
src/main/resources/mapper/OrderClubMapper.xml

@@ -121,7 +121,7 @@
         SET status      = 1,
             updateDate  = NOW(),
             receiptTime = NOW()
-        WHERE orderID = #{orderId}
+        WHERE orderID = #{orderId} and shopOrderId = #{shopOrderId}
     </update>
     <update id="updateOrderShareCode">
         UPDATE cm_mall_order_share_code
@@ -423,43 +423,43 @@
         </foreach>
     </select>
     <select id="getOrderCount" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_order
+        SELECT COUNT(*) FROM cm_shop_order
         WHERE delFlag = 0 AND userID = #{userId}
         <if test="orderState == 1 ">
-            AND status = '0'
+            AND shopStatus = 0
         </if>
         <if test="orderState == 2 ">
-            AND status IN(11,12,13,21,22,23)
+            AND receiptStatus = 1 AND shopStatus not in (4,5)
         </if>
         <if test="orderState == 3 ">
-            AND status IN(11,12,21,22,31,32)
+            AND sendOutStatus = 1 AND shopStatus not in (4,5)
         </if>
         <if test="orderState == 4 ">
-            AND status IN(12,13,22,23,32,33)
+            AND sendOutStatus = 3 AND shopStatus not in (4,5)
         </if>
         <if test="orderState == 5 ">
-            AND refundType IN(1,2)
+            AND (orderStatusFlag in (2, 3) or refundStatus = 3) AND shopStatus not in (4,5)
         </if>
     </select>
     <select id="getOrderSeenCount" resultType="java.lang.Integer">
-        SELECT COUNT(*) FROM cm_order
-        WHERE delFlag = 0 AND userID = #{userId}
+        SELECT COUNT(*) FROM cm_shop_order cso left join cm_order co on cso.orderId = co.orderId
+        WHERE cso.delFlag = 0 AND cso.userID = #{userId}
         <if test="orderState == 1 ">
-            AND status = '0'
+            AND cso.shopStatus = 0
         </if>
         <if test="orderState == 2 ">
-            AND status IN(11,12,13,21,22,23)
+            AND cso.receiptStatus = 1 AND cso.shopStatus not in (4,5)
         </if>
         <if test="orderState == 3 ">
-            AND status IN(11,12,21,22,31,32)
+            AND cso.sendOutStatus = 1 AND cso.shopStatus not in (4,5)
         </if>
         <if test="orderState == 4 ">
-            AND status IN(12,13,22,23,32,33)
+            AND cso.sendOutStatus = 3 AND cso.shopStatus not in (4,5)
         </if>
         <if test="orderState == 5 ">
-            AND refundType IN(1,2)
+            AND (cso.orderStatusFlag in (2, 3) or cso.refundStatus = 3) AND cso.shopStatus not in (4,5)
         </if>
-        AND orderSeen = 2
+        AND co.orderSeen = 2
     </select>
     <select id="getOrderList" resultType="com.caimei365.order.model.vo.OrderVo">
         SELECT
@@ -592,16 +592,16 @@
                 AND cso.shopStatus = 0
             </if>
             <if test="status == 2 ">
-                AND cso.payStatus = 1
+                AND cso.receiptStatus = 1 AND shopStatus not in (4,5)
             </if>
             <if test="status == 3 ">
-                AND cso.sendOutStatus = 1
+                AND cso.sendOutStatus = 1 AND shopStatus not in (4,5)
             </if>
             <if test="status == 4 ">
-                AND cso.sendOutStatus = 3
+                AND cso.sendOutStatus = 3 AND shopStatus not in (4,5)
             </if>
             <if test="status == 5 ">
-                AND (cso.orderStatusFlag in (2, 3) or cso.refundStatus = 2)
+                AND (cso.orderStatusFlag in (2, 3) or cso.refundStatus = 3) AND cso.shopStatus not in (4,5)
             </if>
             <if test="shopOrderNo != null and shopOrderNo != '' ">
                 AND cso.shopOrderNo = #{shopOrderNo}

+ 64 - 0
src/main/resources/mapper/OrderCommonMapper.xml

@@ -63,6 +63,54 @@
         FROM cm_shop_order cso
         LEFT JOIN shop s ON cso.shopID = s.shopID
         WHERE cso.delFlag = 0
+        AND cso.receiptStatus != 3
+        AND cso.shopOrderID IN
+        <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
+            #{shopOrderId}
+        </foreach>
+    </select>
+    <select id="getPayShopOrderList" resultType="com.caimei365.order.model.vo.ShopOrderVo">
+        SELECT
+        cso.shopOrderID AS shopOrderId,
+        cso.shopOrderNo,
+        cso.orderID AS orderId,
+        cso.organizeID AS organizeId,
+        ifnull(cso.isColdChina, 0) AS isColdChina,
+        cso.orderNo,
+        cso.shopID AS shopId,
+        cso.note,
+        cso.userID AS userId,
+        cso.clubID AS clubId,
+        cso.spID AS spId,
+        cso.orderPromotionsId,
+        cso.promotionFullReduction,
+        cso.svipShopReduction,
+        cso.brokerage,
+        cso.canRefundAmount,
+        cso.itemCount,
+        cso.totalAmount,
+        cso.productAmount,
+        cso.needPayAmount,
+        cso.shopProductAmount,
+        ifnull(cso.shopPostFee, 0) as shopPostFee,
+        ifnull(cso.shopPostFlag, 0) as shopPostFlag,
+        cso.shopTaxFee,
+        cso.shouldPayShopAmount,
+        cso.orderTime,
+        cso.orderSubmitType,
+        cso.splitFlag,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
+        s.name AS shopName,
+        ifnull(s.payway, 0) AS payway,
+        s.logo AS shopLogo,
+        s.shopType as shopType,
+        ifnull(cso.receiptAmount,0) as receiptAmount,
+        cso.eachDiscount,
+        ifnull(cso.realPay, cso.needPayAmount) as readPay,
+        ifnull(cso.receiptStatus, 1) as receiptStatus
+        FROM cm_shop_order cso
+        LEFT JOIN shop s ON cso.shopID = s.shopID
+        WHERE cso.delFlag = 0 and cso.receiptStatus != 3
         AND cso.shopOrderID IN
         <foreach collection="shopOrderIds" open="(" separator="," close=")" item="shopOrderId">
             #{shopOrderId}
@@ -623,6 +671,22 @@
         FROM cm_logistics_batch
         WHERE orderID = #{orderId}
     </select>
+    <select id="getShopLogisticsBatchList" resultType="com.caimei365.order.model.vo.LogisticsBatchVo">
+        SELECT id,
+               shopOrderID AS shopOrderId,
+               orderID     AS orderId,
+               outStoreTimes,
+               status,
+               mailer,
+               shopID      AS shopId,
+               updateDate,
+               deliveryTime,
+               receiptTime,
+               remarkImage,
+               remark
+        FROM cm_logistics_batch
+        WHERE shopOrderID = #{shopOrderId}
+    </select>
     <select id="getLogisticsRecord" resultType="com.caimei365.order.model.vo.LogisticsRecordVo">
         SELECT clr.id,
                clr.logisticsBatchID AS logisticsBatchId,

+ 18 - 1
src/main/resources/mapper/ShipMapper.xml

@@ -156,8 +156,14 @@
                     AND a.payStatus = #{payStatus}
                 </if>
             </if>
+            <if test="refundStatus != null">
+                and a.refundStatus = #{refundStatus}
+            </if>
+            <if test="receiptStatus != null">
+                and a.receiptStatus = #{receiptStatus}
+            </if>
             <if test="organizeId != null">
-                a.organizeID = #{organizeId}
+                and a.organizeID = #{organizeId}
             </if>
             <if test="receiver != null and receiver != ''">
                 AND ou.shouHuoRen like concat('%',#{receiver},'%')
@@ -482,6 +488,17 @@
         set receiptStatus = #{status}
         where shopOrderId = #{shopOrderId}
     </update>
+    <select id="getOrderId" resultType="java.lang.Integer">
+        select distinct orderId from cm_shop_order where shopOrderId = #{shopOrderId} limit 1
+    </select>
+    <select id="getReceiptStatus" resultType="java.lang.Integer">
+        select receiptStatus from cm_shop_order where orderId = #{orderId}
+    </select>
+    <update id="updateOrderReceiptStatus">
+        update cm_order
+        set receiptStatus = #{status}
+        where orderId = #{orderId}
+    </update>
     <select id="findList" resultType="com.caimei365.order.model.dto.OrderRemarkDto">
         SELECT a.id           AS "id",
                a.orderId      AS "orderId",