瀏覽代碼

联合丽格1.0.2

huangzhiguo 1 年之前
父節點
當前提交
eb535e3c6a
共有 24 個文件被更改,包括 774 次插入173 次删除
  1. 180 0
      src/main/java/com/caimei365/order/components/OrderCommonService.java
  2. 15 15
      src/main/java/com/caimei365/order/controller/OrderClubApi.java
  3. 5 2
      src/main/java/com/caimei365/order/controller/ShipApi.java
  4. 44 0
      src/main/java/com/caimei365/order/mapper/OrderClubMapper.java
  5. 20 1
      src/main/java/com/caimei365/order/mapper/OrderCommonMapper.java
  6. 7 0
      src/main/java/com/caimei365/order/mapper/PayOrderMapper.java
  7. 9 1
      src/main/java/com/caimei365/order/mapper/ShipMapper.java
  8. 2 2
      src/main/java/com/caimei365/order/model/dto/OrderDto.java
  9. 0 8
      src/main/java/com/caimei365/order/model/po/OrderProductPo.java
  10. 4 0
      src/main/java/com/caimei365/order/model/po/OrderShopPo.java
  11. 44 0
      src/main/java/com/caimei365/order/model/vo/ShopOrderVo.java
  12. 5 5
      src/main/java/com/caimei365/order/service/OrderClubService.java
  13. 1 1
      src/main/java/com/caimei365/order/service/ShipService.java
  14. 8 2
      src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java
  15. 6 0
      src/main/java/com/caimei365/order/service/impl/CartSellerServiceImpl.java
  16. 22 0
      src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java
  17. 130 114
      src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java
  18. 6 2
      src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java
  19. 10 10
      src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java
  20. 205 1
      src/main/resources/mapper/OrderClubMapper.xml
  21. 23 1
      src/main/resources/mapper/OrderCommonMapper.xml
  22. 3 0
      src/main/resources/mapper/PayOrderMapper.xml
  23. 19 2
      src/main/resources/mapper/ShipMapper.xml
  24. 6 6
      src/main/resources/mapper/SubmitMapper.xml

+ 180 - 0
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -231,6 +231,186 @@ public class OrderCommonService {
         return discernReceiptList;
     }
 
+    /**
+     * 设置子订单状态
+     * shopStatus  0:待确认 1:已确认 2:交易完成 3:订单完成 4:已关闭 5:交易全退
+     *
+     * payStatus (付款供应商)付款状态:1待付款、2部分付款、3已付款
+     * sendOutStatus  发货状态:1待发货、2部分发货、3已发货
+     * receiptStatus 收款状态:1待收款、2部分收款、3已收款
+     */
+    public void setShopOrderStatus(ShopOrderVo shopOrderVo) {
+        // 111, 待付待收待发
+        if (1 == shopOrderVo.getStatus() ) {
+            if ( 1 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()){
+                shopOrderVo.setStatus(11);
+            } else if (1 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(12);
+            } else if (1 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(13);
+            } else if (2 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(21);
+            } else if (2 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(22);
+            } else if (2 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(23);
+            } else if (3 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(31);
+            } else if (3 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(32);
+            } else if (3 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+                shopOrderVo.setStatus(33);
+            }
+        }
+        // 判断交易全退情况下,是否发过货,6,交易全退可以查看物流
+        int logisticsCount = orderCommonMapper.countLogisticsBatchShop(shopOrderVo.getShopOrderId());
+        if (5 == shopOrderVo.getStatus() && logisticsCount > 0) {
+            shopOrderVo.setStatus(6);
+        }
+    }
+
+    /**
+     * 子订单信息
+     * @param shopOrder
+     */
+    public void setShopOrderInfo(ShopOrderVo shopOrder) {
+        if (null != shopOrder) {
+            Integer organizeId = orderCommonMapper.getShopOrganizeId(shopOrder.getShopOrderId());
+            // 冷链商品类型
+            List<Integer> arrList = new ArrayList<>();
+            // 店铺促销活动
+            PromotionsVo shopPromotion = null;
+            if (null != shopOrder.getOrderPromotionsId() && shopOrder.getOrderPromotionsId() > 0) {
+                shopPromotion = orderCommonMapper.getOrderPromotionsById(shopOrder.getOrderPromotionsId());
+                shopOrder.setShopPromotion(shopPromotion);
+            }
+            List<OrderProductVo> orderProductList = orderCommonMapper.getShopOrderProduct(shopOrder.getShopOrderId());
+            orderProductList.removeIf(Objects::isNull);
+            // 冷链商品判定
+            List<Integer> collect = orderProductList.stream().map(OrderProductVo::getProductId).collect(Collectors.toList());
+            collect.removeIf(c -> c == 999);
+            if (collect.stream().allMatch(c -> c == 7536)) {
+                arrList.add(1);
+            } else if (!collect.contains(7536)) {
+                arrList.add(2);
+            } else {
+                arrList.add(3);
+            }
+            orderProductList.forEach(orderProduct -> {
+                // 不含税可开票商品,单价/折后单价在原基础上加上税费
+                boolean taxFlag = false;
+                if (0 == organizeId) {
+                    taxFlag = (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && (Integer.valueOf(1).equals(orderProduct.getInvoiceType()) || Integer.valueOf(2).equals(orderProduct.getInvoiceType())));
+                }
+                if (taxFlag) {
+                    Double valueTax = MathUtil.div(MathUtil.mul(orderProduct.getPrice(), orderProduct.getTaxRate()), 100).doubleValue();
+                    orderProduct.setPrice(MathUtil.add(orderProduct.getPrice(), valueTax).doubleValue());
+                    orderProduct.setDiscountPrice(MathUtil.add(orderProduct.getDiscountPrice(), orderProduct.getAddedValueTax()).doubleValue());
+                }
+                orderProduct.setImage(ImageUtil.getImageUrl("product", orderProduct.getImage(), domain));
+                // 查询订单下商品的促销活动
+                if (null != orderProduct.getOrderPromotionsId() && orderProduct.getOrderPromotionsId() > 0) {
+                    PromotionsVo promotions = orderCommonMapper.getOrderPromotionsById(orderProduct.getOrderPromotionsId());
+                    if (null != promotions) {
+                        if (1 == promotions.getType() && 1 == promotions.getMode()) {
+                            // 单品优惠价取sku的优惠价
+                            Double touchPrice = baseMapper.getTouchPriceBySku(orderProduct.getSkuId(),promotions.getId());
+                            promotions.setTouchPrice(touchPrice);
+                        }
+                        if (taxFlag && Integer.valueOf(1).equals(promotions.getType()) && Integer.valueOf(1).equals(promotions.getMode())) {
+                            promotions.setTouchPrice(MathUtil.add(promotions.getTouchPrice(), MathUtil.div(MathUtil.mul(promotions.getTouchPrice(), orderProduct.getTaxRate()), 100)).doubleValue());
+                        }
+                        orderProduct.setProductPromotion(promotions);
+                    }
+                }
+                // 超级会员优惠商品设置优惠标签
+                if (null != orderProduct.getSvipPriceFlag() && 1 == orderProduct.getSvipPriceFlag()) {
+                    if (1 == orderProduct.getSvipPriceType()) {
+                        orderProduct.setSvipPriceTag(MathUtil.div(orderProduct.getSvipDiscount(), 10, 1) + "折");
+                    } else if (2 == orderProduct.getSvipPriceType()) {
+                        orderProduct.setSvipPriceTag("¥" + orderProduct.getDiscountPrice());
+                    }
+                }
+            });
+            // 冷链运输费 -- 联合丽格
+            if (null != shopOrder.getIsColdChina() && 1 == shopOrder.getIsColdChina()) {
+                shopOrder.setColdChina(700.00d);
+            } else {
+                shopOrder.setColdChina(0.00d);
+            }
+            // 拼接运费信息--联合丽格
+            if (null != shopOrder.getColdChina()) {
+                String open = "";
+                String close = "";
+                if (shopOrder.getIsColdChina()==1) {
+                    open = "(";
+                    close = ")";
+                } else if (!arrList.stream().allMatch(c -> c == 1)) {
+                    open = "(";
+                    close = ")";
+                } else {
+                    open = "";
+                    close = "";
+                }
+                if (-1 == shopOrder.getShopPostFlag()) {
+                    // 到付
+                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 到付")+close);
+                } else if (0 == shopOrder.getShopPostFlag()) {
+                    // 包邮
+                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (arrList.stream().allMatch(c -> c == 1)?"":" 其他: 包邮")+close);
+                } else {
+                    // 有运费
+                    shopOrder.setPostageInfo("¥" + MathUtil.add(shopOrder.getShopPostFee(), shopOrder.getColdChina()).doubleValue() + open +(shopOrder.getIsColdChina()==1?"冷链费: ¥" + shopOrder.getColdChina().doubleValue():"") + (!arrList.stream().allMatch(c -> c == 1)?" 其他: ¥" + shopOrder.getShopPostFee():"") + close);
+                }
+            } else {
+                shopOrder.setPostageInfo(shopOrder.getShopPostFlag() == -1?"到付":shopOrder.getShopPostFlag() == 0?"包邮":"¥" + shopOrder.getShopPostFee().doubleValue());
+            }
+            shopOrder.setOrderProductList(orderProductList);
+            shopOrder.setShopLogo(ImageUtil.getImageUrl("shopLogo", shopOrder.getShopLogo(), domain));
+            //if (0 == order.getOnlinePayFlag()) {
+            shopOrder.setObligation(MathUtil.sub(shopOrder.getRealPay(), shopOrder.getReceiptAmount()).doubleValue());
+            //}
+        }
+
+    }
+
+    /**
+     * 设置子订单付款金额
+     * @param shopOrderVo
+     * @return
+     */
+    public List<DiscernReceiptVo> getDiscernReceiptAndSetShoporder(ShopOrderVo shopOrderVo) {
+        // 支付记录
+        List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(shopOrderVo.getOrderId(), shopOrderVo.getShopOrderId().toString());
+        Double receiptAmount = 0d;
+        // 订单款
+        if (!discernReceiptList.isEmpty()) {
+            AtomicDouble finalReceiptAmount = new AtomicDouble(0d);
+            discernReceiptList.forEach(discernReceipt -> {
+                finalReceiptAmount.set(MathUtil.add(finalReceiptAmount.get(), discernReceipt.getAssociateAmount()).doubleValue());
+                if (null != discernReceipt.getPayType()) {
+                    discernReceipt.setPayTypeStr(ReceivablesType.getReceivablesType(discernReceipt.getPayType()));
+                }
+            });
+            receiptAmount = finalReceiptAmount.get();
+        } else {
+            //返佣款
+            Double tempAmount = orderCommonMapper.getRebateAmountByShopOrder(shopOrderVo.getShopOrderId());
+            if (null != tempAmount) {
+                shopOrderVo.setOnlinePay(1);
+            }
+        }
+        // 判断是否可以走线上支付
+        int offlineCount = orderCommonMapper.countOfflinePaymentshopOrder(shopOrderVo.getShopOrderId());
+        if (offlineCount > 0) {
+            shopOrderVo.setOnlinePay(1);
+        }
+        //待付总金额
+        shopOrderVo.setObligation(MathUtil.sub(shopOrderVo.getRealPay(), receiptAmount).doubleValue());
+        //支付总金额
+        shopOrderVo.setReceiptAmount(receiptAmount);
+        return discernReceiptList;
+    }
     /**
      * 设置搜索关键词历史记录
      *

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

@@ -59,7 +59,7 @@ public class OrderClubApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/list")
-    public ResponseJson<PageInfo<OrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime,
+    public ResponseJson<PageInfo<ShopOrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime,
                                                         @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                         @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (null == userId) {
@@ -97,17 +97,17 @@ public class OrderClubApi {
     @ApiOperation("机构订单详情(旧:/order/detail)")
     @ApiImplicitParams({
             @ApiImplicitParam(required = true, name = "userId", value = "用户Id"),
-            @ApiImplicitParam(required = true, name = "orderId", value = "订单Id")
+            @ApiImplicitParam(required = true, name = "shopOrderId", value = "订单Id")
     })
     @GetMapping("/detail")
-    public ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer orderId) {
+    public ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer shopOrderId) {
         if (null == userId) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
-        if (null == orderId) {
+        if (null == shopOrderId) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.getOrderDetail(userId, orderId);
+        return orderClubService.getOrderDetail(userId, shopOrderId);
     }
 
     /**
@@ -144,10 +144,10 @@ public class OrderClubApi {
     @ApiOperation("机构确认订单(旧:/order/affirmOrder)")
     @PostMapping("/confirm")
     public ResponseJson<Void> confirmOrder(OrderDto orderDto){
-        if (null == orderDto.getOrderId()) {
+        if (null == orderDto.getShopOrderId()) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.confirmMainOrder(orderDto.getOrderId());
+        return orderClubService.confirmMainOrder(orderDto.getShopOrderId());
     }
 
     /**
@@ -161,10 +161,10 @@ public class OrderClubApi {
     @ApiOperation("机构取消订单(旧:/order/cancel)")
     @PostMapping("/cancel")
     public ResponseJson<Void> cancelOrder(OrderDto orderDto){
-        if (null == orderDto.getOrderId()) {
+        if (null == orderDto.getShopOrderId()) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.cancelMainOrder(orderDto.getOrderId(), orderDto.getUserIdentity(), orderDto.getRemark());
+        return orderClubService.cancelMainOrder(orderDto.getShopOrderId(), orderDto.getUserIdentity(), orderDto.getRemark());
     }
 
     /**
@@ -177,10 +177,10 @@ public class OrderClubApi {
     @ApiOperation("机构删除订单(旧:/order/delete)")
     @PostMapping("/delete")
     public ResponseJson<Void> deleteOrder(OrderDto orderDto){
-        if (null == orderDto.getOrderId()) {
+        if (null == orderDto.getShopOrderId()) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.deleteMainOrder(orderDto.getOrderId());
+        return orderClubService.deleteMainOrder(orderDto.getShopOrderId());
     }
 
     /**
@@ -193,10 +193,10 @@ public class OrderClubApi {
     @ApiOperation("机构确认收货(旧:/order/affirm)")
     @PostMapping("/receive")
     public ResponseJson<Void> receiveGoods(OrderDto orderDto){
-        if (null == orderDto.getOrderId()) {
+        if (null == orderDto.getShopOrderId()) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.receiveGoods(orderDto.getOrderId());
+        return orderClubService.receiveGoods(orderDto.getShopOrderId());
     }
 
     /**
@@ -332,10 +332,10 @@ public class OrderClubApi {
         if (null == orderDto.getUserId()) {
             return ResponseJson.error("用户Id不能为空!", null);
         }
-        if (null == orderDto.getOrderId()) {
+        if (null == orderDto.getShopOrderId()) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return orderClubService.secondPaymentConfirm(orderDto.getOrderId(), orderDto.getUserId());
+        return orderClubService.secondPaymentConfirm(orderDto.getShopOrderId(), orderDto.getUserId());
     }
 
     /**

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

@@ -67,17 +67,20 @@ public class ShipApi {
             @ApiImplicitParam(required = false, name = "shopOrderNo", value = "订单编号"),
             @ApiImplicitParam(required = false, name = "payStatus", value = "结算状态"),
             @ApiImplicitParam(required = false, name = "name", value = "买家名称"),
+            @ApiImplicitParam(required = false, name = "beginTime", value = "订单开始时间"),
+            @ApiImplicitParam(required = false, name = "endTime", value = "订单结束时间"),
+            @ApiImplicitParam(required = false, name = "refundStatus", value = "退款状态"),
             @ApiImplicitParam(required = false, name = "pageNum", value = "页码"),
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/settlement/list")
-    public ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, String shopOrderNo, Integer payStatus, String name,
+    public ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, String shopOrderNo, Integer payStatus, String name, String beginTime, String endTime, Integer refundStatus,
                                                                   @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                                   @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
         if (null == shopId) {
             return ResponseJson.error("供应商Id不能为空!", null);
         }
-        return shipService.getSettlementList(shopId, payStatus, shopOrderNo, name, pageNum, pageSize);
+        return shipService.getSettlementList(shopId, payStatus, shopOrderNo, name, beginTime, endTime, refundStatus, pageNum, pageSize);
     }
 
     /**

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

@@ -32,6 +32,13 @@ public interface OrderClubMapper {
      */
     OrderPo getMainOrderByOrderId(Integer orderId);
 
+    /**
+     * 根据子订单Id 查询子订单
+     * @param shopOrderId
+     * @return
+     */
+    ShopOrderVo getShopOrderById(Integer shopOrderId);
+
     /**
      * 根据订单Id查询订单商品列表
      *
@@ -39,6 +46,20 @@ public interface OrderClubMapper {
      */
     List<OrderProductPo> getOrderProductList(Integer orderId);
 
+    /**
+     * 根据子订单Id查询订单商品列表
+     * @param shopOrderId
+     * @return
+     */
+    List<OrderProductPo> getShopOrderProductList(Integer shopOrderId);
+
+    /**
+     * 获取订单中子订单状态
+     * @param orderId
+     * @return
+     */
+    List<Integer> getShopOrderStatus(Integer orderId);
+
     /**
      * 设置二手仪器已售
      *
@@ -67,6 +88,12 @@ public interface OrderClubMapper {
      */
     void updateOrderStatus(OrderPo order);
 
+    /**
+     * 更新子订单状态
+     * @param shopOrderVo
+     */
+    void updateShopOrderStatus(ShopOrderVo shopOrderVo);
+
     /**
      * 取消 余额收支记录
      */
@@ -77,6 +104,12 @@ public interface OrderClubMapper {
      */
     void cancelMainOrder(OrderPo order);
 
+    /**
+     * 取消订单
+     * @param shopOrderVo
+     */
+    void cancelMainShopOrder(ShopOrderVo shopOrderVo);
+
     /**
      * 逻辑删除主订单
      */
@@ -166,6 +199,17 @@ public interface OrderClubMapper {
      */
     List<OrderVo> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime);
 
+    /**
+     * 机构子订单列表
+     * @param userId
+     * @param status
+     * @param shopOrderNo
+     * @param beginTime
+     * @param endTime
+     * @return
+     */
+    List<ShopOrderVo> getShopOrderList(@Param("userId") Integer userId, @Param("status") Integer status, @Param("shopOrderNo") String shopOrderNo, @Param("beginTime") String beginTime, @Param("endTime") String endTime);
+
     /**
      * 根据关键词搜索订单
      *

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

@@ -21,12 +21,24 @@ public interface OrderCommonMapper {
      */
     int countLogisticsBatch(Integer orderId);
 
+    /**
+     * 查询订单发货次数
+     * @param shopOrderId 子订单Id
+     */
+    int countLogisticsBatchShop(Integer shopOrderId);
     /**
      * 组织
      * @param orderId
      * @return
      */
-    Integer getOrganizeId(Integer orderId);
+    Integer getOrganizeId(@Param("orderId") Integer orderId);
+
+    /**
+     * 组织
+     * @param shopOrderId
+     * @return
+     */
+    Integer getShopOrganizeId(@Param("shopOrderId") Integer shopOrderId);
     /**
      * 根据子订单Id查询子订单列表
      * @param shopOrderIds 子订单Ids
@@ -74,6 +86,13 @@ public interface OrderCommonMapper {
      * @param orderId 订单Id
      */
     int countOfflinePayment(Integer orderId);
+
+    /**
+     * 是否线上
+     * @param shopOrderId
+     * @return
+     */
+    int countOfflinePaymentshopOrder(Integer shopOrderId);
     /**
      * 付供应商费用列表
      * @param orderId 订单Id

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

@@ -20,6 +20,13 @@ public interface PayOrderMapper {
      * 获取线上支付全局开关状态
      */
     Integer getPayOnLineSwitch();
+
+    /**
+     * 供应商分帐账号
+     * @param shopId
+     * @return
+     */
+    String getShopCode(@Param("shopId") Integer shopId);
     /**
      * 查询审核中的退款退货数量
      * @param orderId 订单Id

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

@@ -6,6 +6,7 @@ import com.caimei365.order.model.dto.RemarkImageDto;
 import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -24,7 +25,14 @@ public interface ShipMapper {
     /**
      * 供应商结算列表
      */
-    List<SettlementVo> getSettlementList(Integer shopId, Integer payStatus, String shopOrderNo, String name);
+    List<SettlementVo> getSettlementList(@Param("shopId") Integer shopId, @Param("payStatus") Integer payStatus,@Param("shopOrderNo") String shopOrderNo,@Param("name") String name,@Param("beginTime") String beginTime,@Param("endTime") String endTime,@Param("refundStatus") Integer refundStatus);
+
+    /**
+     * 子订单付款记录
+     * @param shopOrderId
+     * @return
+     */
+    List<DiscernReceiptVo> getShopOrderRelation(@Param("shopOrderId") Integer shopOrderId);
     /**
      * 发货页面子订单数据
      * @param shopOrderId 子订单Id

+ 2 - 2
src/main/java/com/caimei365/order/model/dto/OrderDto.java

@@ -17,8 +17,8 @@ public class OrderDto implements Serializable {
     /**
      * 订单Id
      */
-    @ApiModelProperty("订单Id")
-    private Integer orderId;
+    @ApiModelProperty("订单Id")
+    private Integer shopOrderId;
     /**
      * 用户Id
      */

+ 0 - 8
src/main/java/com/caimei365/order/model/po/OrderProductPo.java

@@ -18,10 +18,6 @@ public class OrderProductPo implements Serializable {
     private static final long serialVersionUID = 1L;
 
     private Integer skuId;
-    /**
-     * 外部商城skuId
-     */
-    private Integer organizeSkuId;
     /**
      * 不包含单品满减的商品金额
      */
@@ -34,10 +30,6 @@ public class OrderProductPo implements Serializable {
      * 供应商Id
      */
     private Integer shopId;
-    /**
-     * 组织的商品Id
-     */
-    private Integer organizeProductId;
     /**
      * 组织Id
      */

+ 4 - 0
src/main/java/com/caimei365/order/model/po/OrderShopPo.java

@@ -157,6 +157,10 @@ public class OrderShopPo implements Serializable {
      * (付款供应商)付款状态:1待付款、2部分付款、3已付款
      */
     private Integer payStatus;
+    /**
+     * 订单状态 1:待确认 2:已确认 3:交易完成 4:订单完成 5:已关闭 6:交易全退
+     */
+    private Integer shopStatus;
     /**
      * 已付款金额
      */

+ 44 - 0
src/main/java/com/caimei365/order/model/vo/ShopOrderVo.java

@@ -68,6 +68,14 @@ public class ShopOrderVo implements Serializable {
      * 供应商Id
      */
     private Integer shopId;
+    /**
+     * 订单标识:#订单号#
+     */
+    private String OrderMark;
+    /**
+     * 供应商 支持支付方式 1 线上 2 线下
+     */
+    private Integer payway;
     /**
      * 供应商名称
      */
@@ -92,6 +100,18 @@ public class ShopOrderVo implements Serializable {
      * 协销Id
      */
     private Integer spId;
+    /**
+     * 子订单状态
+     */
+    private Integer status;
+    /**
+     * 退货退款类型:0未发生退款、1部分退、2全部退
+     */
+    private Integer refundType;
+    /**
+     * 上传支付凭证状态
+     */
+    private Integer checkFlag;
     /**
      * 订单促销id(店铺促销)
      */
@@ -120,6 +140,10 @@ public class ShopOrderVo implements Serializable {
      * 已付款金额
      */
     private Double payedShopAmount;
+    /**
+     * 采美豆数
+     */
+    private Integer userBeans;
     /**
      * 佣金 =  应付采美
      */
@@ -284,4 +308,24 @@ public class ShopOrderVo implements Serializable {
      * 能否线上
      */
    private Integer onlinePay;
+    /**
+     * 是否包含充值商品
+     */
+    private boolean rechargeGoods = false;
+    /**
+     * 总税费
+     */
+    private Double expensesOfTaxation;
+    /**
+     * 是否开发票 没开发票 0 开个人发票 1 开企业发票2
+     */
+    private Integer invoiceFlag;
+    /**
+     * 退款总金额
+     */
+    private Double returnedPurchaseFee;
+    /**
+     * 条款ID
+     */
+    private Integer clauseId;
 }

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

@@ -32,7 +32,7 @@ public interface OrderClubService {
      * @param pageNum    页码
      * @param pageSize   每页数量
      */
-    ResponseJson<PageInfo<OrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime, int pageNum, int pageSize);
+    ResponseJson<PageInfo<ShopOrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime, int pageNum, int pageSize);
     /**
      * 根据关键词搜索订单
      * @param userId     用户Id
@@ -44,9 +44,9 @@ public interface OrderClubService {
     /**
      * 机构订单详情
      * @param userId     用户Id
-     * @param orderId    订单Id
+     * @param shopOrderId    订单Id
      */
-    ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer orderId);
+    ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer shopOrderId);
 
     /**
      * 上传支付凭证
@@ -63,14 +63,14 @@ public interface OrderClubService {
      * 机构确认订单
      * @param orderId  订单Id
      */
-    ResponseJson<Void> confirmMainOrder(Integer orderId);
+    ResponseJson<Void> confirmMainOrder(Integer shopOrderId);
     /**
      * 机构取消订单
      * @param orderId  订单Id
      * @param userIdentity    用户身份 1协销 其他用户
      * @param remark    备注(订单取消原因)
      */
-    ResponseJson<Void> cancelMainOrder(Integer orderId,Integer userIdentity, String remark);
+    ResponseJson<Void> cancelMainOrder(Integer shopOrderId,Integer userIdentity, String remark);
     /**
      * 机构删除订单
      * @param orderId  订单Id

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

@@ -43,7 +43,7 @@ public interface ShipService {
      * @param pageNum        页码
      * @param pageSize       每页数量
      */
-    ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, Integer payStatus, String shopOrderNo, String name, int pageNum, int pageSize);
+    ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, Integer payStatus, String shopOrderNo, String name, String beginTime, String endTime, Integer refundStatus, int pageNum, int pageSize);
     /**
      * 供应商子订单详情
      * @param shopOrderId 子订单Id

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

@@ -1163,8 +1163,10 @@ public class CartClubServiceImpl implements CartClubService {
                         }
 
                         shop.setColdChain(coldChain);
-                        if (700 >= coldChain) {
+                        if (700 == coldChain) {
                             shop.setIsColdChina(true);
+                        } else {
+                            shop.setIsColdChina(false);
                         }
                         // 供应商总金额
                         shopPrice.set(MathUtil.add(shopPrice.get(), shop.getPostage()).doubleValue());
@@ -1600,8 +1602,10 @@ public class CartClubServiceImpl implements CartClubService {
                         }
 
                         shop.setColdChain(coldChain);
-                        if (700 >= coldChain) {
+                        if (700 == coldChain) {
                             shop.setIsColdChina(true);
+                        } else {
+                            shop.setIsColdChina(false);
                         }
                         // 供应商总金额
                         shopPrice.set(MathUtil.add(shopPrice.get(), shop.getPostage()).doubleValue());
@@ -1983,6 +1987,8 @@ public class CartClubServiceImpl implements CartClubService {
                     totalPrice.set(MathUtil.add(totalPrice.get(), coldChain).doubleValue());
                     shop.setIsColdChina(true);
                 }
+            } else {
+                shop.setIsColdChina(false);
             }
             shop.setColdChain(coldChain);
         }

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

@@ -610,6 +610,12 @@ public class CartSellerServiceImpl implements CartSellerService {
                         // 总数量 + 当前商品购买数量
                         totalCount.updateAndGet(v -> v + cartItemVo.getNumber());
                     }
+                    shop.setColdChain(coldChain);
+                    if (700 == coldChain) {
+                        shop.setIsColdChina(true);
+                    } else {
+                        shop.setIsColdChina(false);
+                    }
                     if (shopKindCount.get() > 0) {
                         // 店铺促销
                         if (null != shopPromotion) {

+ 22 - 0
src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java

@@ -1246,15 +1246,37 @@ public class HeliPayServiceImpl implements HeliPayService {
             shopOrder.setShopLogo(ImageUtil.getImageUrl("shopLogo", shopOrder.getShopLogo(), domain));
             // 子订单支付方式
             Integer onlinePay = 0;
+
             // 支付记录
             DiscernReceiptVo shopOrderReceipt = orderCommonMapper.getShopOrderReceipt(shopOrder.getShopOrderId());
+            // 1线上,2线下,3余额抵扣
             if (null != shopOrderReceipt) {
                 if (1 == shopOrderReceipt.getPayWay()) {
                     onlinePay = 1;
                 } else if (2 == shopOrderReceipt.getPayWay()) {
                     onlinePay = 2;
+                } else {
+                    onlinePay = 2;
+                }
+            }
+            // 供应商是否支持线上下线
+            if (null != shopOrder.getPayway()) {
+                if (1 == shopOrder.getPayway()) {
+                    onlinePay = 1;
+                } else {
+                    onlinePay = 2;
                 }
             }
+            // 线上分帐号
+            String shopCode = payOrderMapper.getShopCode(shopOrder.getShopId());
+            if (null == shopCode) {
+                onlinePay = 2;
+            }
+            // 开关是否开启
+            Integer payswitch = payOrderMapper.getPayOnLineSwitch();
+            if (1 != payswitch) {
+                onlinePay = 2;
+            }
             shopOrder.setOnlinePay(onlinePay);
         });
         return ResponseJson.success(shopOrderList);

+ 130 - 114
src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java

@@ -137,10 +137,25 @@ public class OrderClubServiceImpl implements OrderClubService {
      * @param pageSize   每页数量
      */
     @Override
-    public ResponseJson<PageInfo<OrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<ShopOrderVo>> getOrderList(Integer userId, Integer orderState, String orderNo, String beginTime, String endTime, int pageNum, int pageSize) {
         // 分页请求数据
         PageHelper.startPage(pageNum, pageSize);
-        List<OrderVo> orderList = orderClubMapper.getOrderList(userId, orderState, orderNo, beginTime, endTime);
+        List<ShopOrderVo> shopOrderList = orderClubMapper.getShopOrderList(userId, orderState, orderNo, beginTime, endTime);
+        shopOrderList.forEach(shopOrder -> {
+            // 设置订单状态
+            orderCommonService.setShopOrderStatus(shopOrder);
+            // 设置数据
+            orderCommonService.setShopOrderInfo(shopOrder);
+            // 设置子订单付款金额
+            orderCommonService.getDiscernReceiptAndSetShoporder(shopOrder);
+            // 联合丽格 [待付款]或者线下支付[部分付款] 的子订单 状态
+            if ((4 != shopOrder.getStatus() && 5 != shopOrder.getStatus()) && (1 == shopOrder.getReceiptStatus() || (2 == shopOrder.getReceiptStatus() && 1 == shopOrder.getOnlinePay()))) {
+                shopOrder.setCheckFlag(1);
+            } else {
+                shopOrder.setCheckFlag(0);
+            }
+        });
+        /*List<OrderVo> orderList = orderClubMapper.getOrderList(userId, orderState, orderNo, beginTime, endTime);
         orderList.forEach(order -> {
             // 设置订单状态
             orderCommonService.setOrderStatus(order);
@@ -156,8 +171,8 @@ public class OrderClubServiceImpl implements OrderClubService {
                     order.setCheckFlag(0);
                 }
             }
-        });
-        PageInfo<OrderVo> pageInfo = new PageInfo(orderList);
+        });*/
+        PageInfo<ShopOrderVo> pageInfo = new PageInfo(shopOrderList);
         return ResponseJson.success(pageInfo);
     }
 
@@ -197,42 +212,37 @@ public class OrderClubServiceImpl implements OrderClubService {
      * 机构订单详情
      *
      * @param userId  用户Id
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
-    public ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer orderId) {
-        OrderPo orderPo = orderClubMapper.getMainOrderByOrderId(orderId);
-        if (null == orderPo) {
+    public ResponseJson<Map<String, Object>> getOrderDetail(Integer userId, Integer shopOrderId) {
+//        OrderPo orderPo = orderClubMapper.getMainOrderByOrderId(orderId);
+        ShopOrderVo shopOrder = orderClubMapper.getShopOrderById(shopOrderId);
+        if (null == shopOrder) {
             return ResponseJson.error("该订单不存在!", null);
         }
-        if (!userId.equals(orderPo.getUserId())) {
+        if (!userId.equals(shopOrder.getUserId())) {
             return ResponseJson.error("无权限查看此订单!", null);
         }
-        OrderVo order = new OrderVo();
+//        OrderVo order = new OrderVo();
         // OrderPo -> OrderVo
-        BeanUtils.copyProperties(orderPo, order);
-        if (0 != order.getOrganizeId()) {
-            if ((6 != order.getStatus() && 7 != order.getStatus()) && (1 == order.getReceiptStatus() || (2 == order.getReceiptStatus() && 1 == order.getOnlinePayFlag()))) {
-                order.setCheckFlag(1);
-            } else {
-                order.setCheckFlag(0);
-            }
-        }
-        order.setOrderMark("#" + order.getOrderId() + "#");
+//        BeanUtils.copyProperties(orderPo, order);
+
+        shopOrder.setOrderMark("#" + shopOrder.getShopOrderId() + "#");
         // 设置订单状态
-        orderCommonService.setOrderStatus(order);
-        // 设置子订单数据
-        orderCommonService.getShopOrderData(order);
+        orderCommonService.setShopOrderStatus(shopOrder);
+        // 设置子订单信息
+        orderCommonService.setShopOrderInfo(shopOrder);
         // 子订单列表
-        List<ShopOrderVo> shopOrderList = order.getShopOrderList();
+//        List<ShopOrderVo> shopOrderList = order.getShopOrderList();
         AtomicDouble expensesOfTaxation = new AtomicDouble(0d);
-        shopOrderList.forEach(shopOrder -> {
+//        shopOrderList.forEach(shopOrder -> {
             List<OrderProductVo> orderProductList = shopOrder.getOrderProductList();
             orderProductList.forEach(orderProduct -> {
                 // 是否充值商品
                 boolean recharge = productService.isRechargeProduct(orderProduct.getProductId());
                 if (recharge) {
-                    order.setRechargeGoods(true);
+                    shopOrder.setRechargeGoods(true);
                 }
                 //是否能退货
                 if (null != orderProduct.getReturnGoodsStutas() && 2 == orderProduct.getReturnGoodsStutas()) {
@@ -273,18 +283,18 @@ public class OrderClubServiceImpl implements OrderClubService {
                 });
             }
             shopOrder.setVoucher(voucher);
-        });
-        order.setExpensesOfTaxation(expensesOfTaxation.get());
+//        });
+        shopOrder.setExpensesOfTaxation(expensesOfTaxation.get());
         // 发票信息
         InvoiceVo invoice = null;
-        if (null != order.getInvoiceFlag() && order.getInvoiceFlag() > 0) {
-            invoice = orderCommonMapper.getOrderInvoice(orderId);
+        if (null != shopOrder.getInvoiceFlag() && shopOrder.getInvoiceFlag() > 0) {
+            invoice = orderCommonMapper.getOrderInvoice(shopOrder.getOrderId());
             invoice.setUserId(userId);
         }
         // 可用余额
         Double availableMoney = baseMapper.getAbleUserMoney(userId);
         // 付款金额
-        List<DiscernReceiptVo> discernReceiptList = orderCommonService.getDiscernReceiptAndSetOrder(order);
+        List<DiscernReceiptVo> discernReceiptList = orderCommonService.getDiscernReceiptAndSetShoporder(shopOrder);
         if (null != discernReceiptList && discernReceiptList.size() > 0) {
             discernReceiptList.forEach(d -> {
                 if (29 == d.getPayType() || 30 == d.getPayType()) {
@@ -299,42 +309,42 @@ public class OrderClubServiceImpl implements OrderClubService {
             });
         }
         // 退款记录
-        List<ReturnedPurchaseVo> returnedPurchaseList = orderClubMapper.getReturnedPurchaseList(order.getOrderId());
+        List<ReturnedPurchaseVo> returnedPurchaseList = orderClubMapper.getReturnedPurchaseList(shopOrder.getOrderId());
         if (!returnedPurchaseList.isEmpty()) {
             AtomicDouble returnedPurchaseFee = new AtomicDouble(0d);
             returnedPurchaseList.forEach(returnedPurchase -> returnedPurchaseFee.set(MathUtil.add(returnedPurchaseFee.get(), returnedPurchase.getRefundFee()).doubleValue()));
             //退款总金额
-            order.setReturnedPurchaseFee(returnedPurchaseFee.get());
+            shopOrder.setReturnedPurchaseFee(returnedPurchaseFee.get());
+        }
+        if ((4 != shopOrder.getStatus() && 5 != shopOrder.getStatus()) && (1 == shopOrder.getReceiptStatus() || (2 == shopOrder.getReceiptStatus() && 1 == shopOrder.getOnlinePay()))) {
+            shopOrder.setCheckFlag(1);
+        } else {
+            shopOrder.setCheckFlag(0);
         }
         //售后条款
         ClauseVo clause = null;
         // 非二手
-        if (0 == order.getSecondHandOrderFlag()) {
-            Integer clauseId = order.getClauseId() == null ? 1 : order.getClauseId();
+        if (0 == shopOrder.getSecondHandOrderFlag()) {
+            Integer clauseId = shopOrder.getClauseId() == null ? 1 : shopOrder.getClauseId();
             clause = orderClubMapper.getClauseById(clauseId);
         }
         // 收货地址
-        OrderUserinfoVo userInfo = addressMapper.getOrderUserinfo(orderId);
+        OrderUserinfoVo userInfo = addressMapper.getOrderUserinfo(shopOrder.getOrderId());
         //订单中存在不能退货的商品则给出不能退货提示
         boolean flag = false;
         String helpContent = null;
-        if (null != shopOrderList && shopOrderList.size() > 0) {
-            for (ShopOrderVo so : shopOrderList) {
-                List<OrderProductVo> orderProductList = so.getOrderProductList();
-                if (null != orderProductList && orderProductList.size() > 0) {
-                    for (OrderProductVo op : orderProductList) {
-                        if (null != op.getReturnGoodsStutas() && op.getReturnGoodsStutas() == 2) {
-                            flag = true;
-                            helpContent = op.getHelpContent();
-                        }
-                    }
+        if (null != orderProductList && orderProductList.size() > 0) {
+            for (OrderProductVo op : orderProductList) {
+                if (null != op.getReturnGoodsStutas() && op.getReturnGoodsStutas() == 2) {
+                    flag = true;
+                    helpContent = op.getHelpContent();
                 }
             }
         }
 
         Map<String, Object> map = new HashMap<>();
-        map.put("order", order);
-        map.put("shopOrderList", shopOrderList);
+        map.put("shopOrder", shopOrder);
+        map.put("voucher", voucher);
         map.put("orderInvoice", invoice);
         map.put("ableUserMoney", availableMoney);
         map.put("userInfo", userInfo);
@@ -424,16 +434,16 @@ public class OrderClubServiceImpl implements OrderClubService {
     /**
      * 机构确认订单
      *
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
-    public ResponseJson<Void> confirmMainOrder(Integer orderId) {
-        OrderPo order = orderClubMapper.getMainOrderByOrderId(orderId);
-        if (null == order || OrderStatus.UNCONFIRMED.getCode() != order.getStatus()) {
+    public ResponseJson<Void> confirmMainOrder(Integer shopOrderId) {
+        ShopOrderVo shopOrder = orderClubMapper.getShopOrderById(shopOrderId);
+        if (null == shopOrder || 0 != shopOrder.getStatus()) {
             // 非待确认订单
             return ResponseJson.error("订单异常!", null);
         }
-        if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
+        /*if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
             // 确认订单时才真正使用优惠券
             CouponOrderRecordPo couponOrderRecord = orderClubMapper.getOrderCouponRecord(orderId);
             CouponVo coupon = orderClubMapper.getClubCouponById(couponOrderRecord.getClubCouponId(), orderClubMapper.findUserId(orderId));
@@ -442,11 +452,11 @@ public class OrderClubServiceImpl implements OrderClubService {
             } else {
                 orderClubMapper.updateCouponClubStatus(couponOrderRecord.getClubCouponId(), orderId);
             }
-        }
+        }*/
         Date date = new Date();
         String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
         String note = "【确认订单】";
-        List<OrderProductPo> orderProducts = orderClubMapper.getOrderProductList(orderId);
+        List<OrderProductPo> orderProducts = orderClubMapper.getShopOrderProductList(shopOrderId);
         orderProducts.forEach(product -> {
             // 是否二手商品
             boolean secondFlag = false;
@@ -454,34 +464,34 @@ public class OrderClubServiceImpl implements OrderClubService {
                 secondFlag = true;
             }
             // 更新复购价格库
-            productService.savePurchasePrice(order, product, secondFlag, note);
+            // productService.savePurchasePrice(order, product, secondFlag, note);
             // 二手商品确认商品如果是二手仪器则需要把该二手商品置为已售
             if (secondFlag) {
                 orderClubMapper.updateSecondStatus(product.getProductId(), 1);
             }
         });
-        if (null != order.getBalancePayFee() && MathUtil.compare(order.getBalancePayFee(), 0) > 0) {
-            double userMoney = baseMapper.getUserMoney(order.getUserId());
-            double updateMoney = MathUtil.sub(userMoney, order.getBalancePayFee()).doubleValue();
+        if (null != shopOrder.getAccountAmount() && MathUtil.compare(shopOrder.getAccountAmount(), 0) > 0) {
+            double userMoney = baseMapper.getUserMoney(shopOrder.getUserId());
+            double updateMoney = MathUtil.sub(userMoney, shopOrder.getAccountAmount()).doubleValue();
             // 扣除用户余额
-            orderClubMapper.updateUserMoneyByUserId(updateMoney, order.getUserId());
-            log.info(note + ">>>>>>>>>>>更新用户余额(update[user(userMoney)])userId:" + order.getUserId() + ",orderId:" + orderId);
+            orderClubMapper.updateUserMoneyByUserId(updateMoney, shopOrder.getUserId());
+            log.info(note + ">>>>>>>>>>>更新用户余额(update[user(userMoney)])userId:" + shopOrder.getUserId() + ",shopOrderId:" + shopOrderId);
             // 保存余额到收款记录
-            productService.saveDiscernReceipt(order.getBalancePayFee(), orderId, note);
+            productService.saveDiscernReceipt(shopOrder.getAccountAmount(), shopOrderId, note);
         }
-        if (null == order.getBalancePayFee() || order.getBalancePayFee() == 0d) {
-            order.setStatus(11);
-            order.setReceiptStatus(1);
-        } else if (null != order.getBalancePayFee() && MathUtil.compare(order.getBalancePayFee(), order.getPayTotalFee()) < 0) {
-            order.setStatus(21);
-            order.setReceiptStatus(2);
+        if (null == shopOrder.getAccountAmount() || shopOrder.getAccountAmount() == 0d) {
+            shopOrder.setStatus(11);
+            shopOrder.setReceiptStatus(1);
+        } else if (null != shopOrder.getAccountAmount() && MathUtil.compare(shopOrder.getAccountAmount(), shopOrder.getTotalAmount()) < 0) {
+            shopOrder.setStatus(21);
+            shopOrder.setReceiptStatus(2);
         } else {
-            order.setStatus(31);
-            order.setReceiptStatus(3);
+            shopOrder.setStatus(31);
+            shopOrder.setReceiptStatus(3);
         }
         Integer count = 0;
         log.info("********************下单微信公众号消息推送***************************");
-        if (0 == order.getSecondHandOrderFlag() && 0 == order.getRebateFlag() && !orderClubMapper.getProductOrder(order.getOrderId()).contains(6060) && order.getOrderType() != 0) {
+        /*if (0 == order.getSecondHandOrderFlag() && 0 == order.getRebateFlag() && !orderClubMapper.getProductOrder(order.getOrderId()).contains(6060) && order.getOrderType() != 0) {
             log.info("*******" + order.getSecondHandOrderFlag() + "**********" + order.getRebateFlag());
             log.info("*******获取公众名" + orderClubMapper.getOrderIds(orderId).toString());
             String name = "0";
@@ -552,28 +562,28 @@ public class OrderClubServiceImpl implements OrderClubService {
             } else {
                 log.info("》》》》》推送了协销下单短信");
             }
-        }
-        order.setUpdateDate(curDateStr);
-        order.setConfirmTime(curDateStr);
+        }*/
+        /*order.setUpdateDate(curDateStr);
+        order.setConfirmTime(curDateStr);*/
         //确认订单状态
-        order.setConfirmFlag(2);
+        // order.setConfirmFlag(2);
         // 更新订单状态
-        orderClubMapper.updateOrderStatus(order);
+        orderClubMapper.updateShopOrderStatus(shopOrder);
         return ResponseJson.success("确认订单成功!", null);
     }
 
     /**
      * 机构取消订单
      *
-     * @param orderId      订单Id
+     * @param shopOrderId      订单Id
      * @param userIdentity 用户身份 1协销 其他用户
      * @param remark       备注(订单取消原因)
      */
     @Transactional(rollbackFor = Exception.class)
     @Override
-    public ResponseJson<Void> cancelMainOrder(Integer orderId, Integer userIdentity, String remark) {
-        OrderPo order = orderClubMapper.getMainOrderByOrderId(orderId);
-        boolean cancelFlag = (null != order && (OrderStatus.UNCONFIRMED.getCode() == order.getStatus() || OrderStatus.UNRECEIVED_AND_UNSHIPPED.getCode() == order.getStatus()));
+    public ResponseJson<Void> cancelMainOrder(Integer shopOrderId, Integer userIdentity, String remark) {
+        ShopOrderVo shopOrder = orderClubMapper.getShopOrderById(shopOrderId);
+        boolean cancelFlag = (null != shopOrder && (0 == shopOrder.getStatus() || (1 == shopOrder.getStatus() && 1 == shopOrder.getReceiptStatus())));
         if (!cancelFlag) {
             // 非待确认(或待收待发)订单
             return ResponseJson.error("订单异常!", null);
@@ -581,24 +591,24 @@ public class OrderClubServiceImpl implements OrderClubService {
         Date date = new Date();
         String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
         String note = "【取消订单】";
-        // 余额退回原账户
-        if (null != order.getBalancePayFee() && MathUtil.compare(order.getBalancePayFee(), 0) > 0) {
-            double ableUserMoney = baseMapper.getAbleUserMoney(order.getUserId());
-            double updateMoney = MathUtil.add(ableUserMoney, order.getBalancePayFee()).doubleValue();
+        // 余额退回原账户canRefundAmount
+        if (null != shopOrder.getCanRefundAmount() && MathUtil.compare(shopOrder.getCanRefundAmount(), 0) > 0) {
+            double ableUserMoney = baseMapper.getAbleUserMoney(shopOrder.getUserId());
+            double updateMoney = MathUtil.add(ableUserMoney, shopOrder.getCanRefundAmount()).doubleValue();
             // 退回用户可用余额
-            orderClubMapper.updateAbleUserMoneyByUserId(updateMoney, order.getUserId());
-            log.info(note + ">>>>>>>>>>>可用余额退回原账户(update[user(ableUserMoney)])userId:" + order.getUserId() + ",orderId:" + orderId);
+            orderClubMapper.updateAbleUserMoneyByUserId(updateMoney, shopOrder.getUserId());
+            log.info(note + ">>>>>>>>>>>可用余额退回原账户(update[user(ableUserMoney)])userId:" + shopOrder.getUserId() + ",shopOrderId:" + shopOrderId);
             // 取消收支记录
             BalanceRecordPo balanceRecord = new BalanceRecordPo();
-            balanceRecord.setUserId(order.getUserId());
-            balanceRecord.setOrderId(orderId);
+            balanceRecord.setUserId(shopOrder.getUserId());
+            balanceRecord.setShopOrderId(shopOrderId);
             balanceRecord.setRemark("取消订单,余额记录无效");
             balanceRecord.setDelFlag(1);
             // 取消 余额收支记录
             orderClubMapper.cancelBalanceRecord(balanceRecord);
-            log.info(note + ">>>>>>>>>>>>取消余额收支记录(update[cm_user_balance_record])orderId:" + orderId);
+            log.info(note + ">>>>>>>>>>>>取消余额收支记录(update[cm_user_balance_record])shopOrderId:" + shopOrderId);
         }
-        order.setStatus(6);
+        shopOrder.setStatus(4);
         if (StringUtils.isBlank(remark)) {
             if (userIdentity == 1) {
                 remark = "协销帮用户取消订单";
@@ -606,13 +616,13 @@ public class OrderClubServiceImpl implements OrderClubService {
                 remark = "用户主动取消订单";
             }
         }
-        order.setCloseReason(remark);
-        order.setCloseTime(curDateStr);
+        /*order.setCloseReason(remark);
+        order.setCloseTime(curDateStr);*/
         // 取消 订单
-        orderClubMapper.cancelMainOrder(order);
+        orderClubMapper.cancelMainShopOrder(shopOrder);
         //二手订单取消订单, 二手商品标记未售
-        if (1 == order.getSecondHandOrderFlag()) {
-            List<OrderProductPo> orderProducts = orderClubMapper.getOrderProductList(orderId);
+        if (1 == shopOrder.getSecondHandOrderFlag()) {
+            List<OrderProductPo> orderProducts = orderClubMapper.getShopOrderProductList(shopOrderId);
             orderProducts.forEach(product -> {
                 // 是否二手商品
                 boolean secondFlag = false;
@@ -626,7 +636,7 @@ public class OrderClubServiceImpl implements OrderClubService {
             });
         }
         //推送信息中心-取消订单
-        MessageCenter messageCenter = new MessageCenter();
+        /*MessageCenter messageCenter = new MessageCenter();
         messageCenter.setShopID(null);
         messageCenter.setClubID(order.getClubId());
         messageCenter.setUserType(1);
@@ -635,44 +645,50 @@ public class OrderClubServiceImpl implements OrderClubService {
         messageCenter.setOrderID(orderId);
         messageCenter.setContent("您的订单已成功取消!");
         messageCenter.setTime(curDateStr);
-        orderClubMapper.addMessageCenter(messageCenter);
+        orderClubMapper.addMessageCenter(messageCenter);*/
+        // 子订单状态
+        List<Integer> shopOrderStatus = orderClubMapper.getShopOrderStatus(shopOrder.getOrderId());
+        boolean flag = false;
+        if (shopOrderStatus.stream().allMatch(s -> s == 4)) {
+            flag = true;
+        }
         // 退回 采美豆
-        if (null != order.getUserBeans() && order.getUserBeans() > 0) {
+        if (null != shopOrder.getUserBeans() && shopOrder.getUserBeans() > 0 && flag) {
             UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
-            beansHistory.setUserId(order.getUserId());
-            beansHistory.setOrderId(orderId);
+            beansHistory.setUserId(shopOrder.getUserId());
+            beansHistory.setOrderId(shopOrder.getOrderId());
             beansHistory.setBeansType(9);
             beansHistory.setType(1);
-            beansHistory.setNum(order.getUserBeans());
+            beansHistory.setNum(shopOrder.getUserBeans());
             beansHistory.setPushStatus(0);
             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);
         }
-        if (order.getPayTotalFee() != null && order.getPayTotalFee() < 1000) {
+        if (shopOrder.getTotalAmount() != null && shopOrder.getTotalAmount() < 1000) {
             //查本单是否扣豆子,有就返回
-            UserBeansHistoryPo bean = baseMapper.findLowOrder(orderId);
+            UserBeansHistoryPo bean = baseMapper.findLowOrder(shopOrder.getShopOrderId());
             if (bean != null) {
                 //有扣豆子记录
                 UserBeansHistoryPo beansHistory = new UserBeansHistoryPo();
-                beansHistory.setUserId(order.getUserId());
-                beansHistory.setOrderId(orderId);
+                beansHistory.setUserId(shopOrder.getUserId());
+                beansHistory.setOrderId(shopOrder.getShopOrderId());
                 beansHistory.setBeansType(16);
                 beansHistory.setType(1);
                 beansHistory.setNum(500);
                 beansHistory.setPushStatus(0);
                 beansHistory.setAddTime(date);
                 beansHistory.setDelFlag(0);
-                int beans = baseMapper.getUserBeans(order.getUserId()) + 500;
+                int beans = baseMapper.getUserBeans(shopOrder.getUserId()) + 500;
                 productService.updateUserBeans(beansHistory, beans, note);
             }
         }
         //取消订单短信推送(取消推送)
-        if (orderClubMapper.getProductOrder(orderId).contains(6060)) {
+        /*if (orderClubMapper.getProductOrder(orderId).contains(6060)) {
             String bindMobile = baseMapper.getBindMobileByUserId(order.getUserId());
             if (StringUtils.isNotBlank(bindMobile)) {
                 String shortLink = remoteCallService.getShortLink(8, 11, domain + "/user/order/detail.html?orderId=" + orderId);
@@ -683,26 +699,26 @@ public class OrderClubServiceImpl implements OrderClubService {
                     log.info("取消订单推送失败,orderId>>>>" + orderId);
                 }
             }
-        }
+        }*/
         // 客服确认注册机构,一天内取消有效
-        Integer clubStatus = baseMapper.getClubStatus(order.getUserId());
+        Integer clubStatus = baseMapper.getClubStatus(shopOrder.getUserId());
         if (null != clubStatus && 94 == clubStatus) {
             // 已冻结(客服确认机构)
             // 查询最后的确认时间
-            Date confirmTime = baseMapper.getClubConfirmTime(order.getUserId());
+            Date confirmTime = baseMapper.getClubConfirmTime(shopOrder.getUserId());
             if (confirmTime != null) {
                 Calendar calendar = Calendar.getInstance();
                 calendar.setTime(confirmTime);
                 calendar.add(Calendar.DATE, 1);
                 if (calendar.getTime().compareTo(new Date()) > 0) {
                     // 机构状态修改为:已确认(客服确认机构)
-                    baseMapper.updateUserClubStatus(93, order.getUserId());
-                    baseMapper.updateClubStatus(93, order.getUserId());
+                    baseMapper.updateUserClubStatus(93, shopOrder.getUserId());
+                    baseMapper.updateClubStatus(93, shopOrder.getUserId());
                 }
             }
         }
         //优惠券退回
-        if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
+        /*if (MathUtil.compare(order.getCouponAmount(), 0) > 0) {
             CouponOrderRecordPo couponRecord = orderClubMapper.getOrderCouponRecord(order.getOrderId());
             if (couponRecord != null) {
                 orderClubMapper.deleteCouponClubById(couponRecord.getClubCouponId());
@@ -716,7 +732,7 @@ public class OrderClubServiceImpl implements OrderClubService {
                 couponClub.setDelFlag("0");
                 orderClubMapper.insertCouponClub(couponClub);
             }
-        }
+        }*/
         return ResponseJson.success("取消订单成功!", null);
     }
 

+ 6 - 2
src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java

@@ -105,15 +105,19 @@ public class ShipServiceImpl implements ShipService {
      * @param pageSize    每页数量
      */
     @Override
-    public ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, Integer payStatus, String shopOrderNo, String name, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, Integer payStatus, String shopOrderNo, String name, String beginTime, String endTime, Integer refundStatus, int pageNum, int pageSize) {
         // 分页请求数据
         PageHelper.startPage(pageNum, pageSize);
-        List<SettlementVo> settlementList = shipMapper.getSettlementList(shopId, payStatus, shopOrderNo, name);
+        List<SettlementVo> settlementList = shipMapper.getSettlementList(shopId, payStatus, shopOrderNo, name, beginTime, endTime, refundStatus);
         settlementList.forEach(settlement -> {
             if (null != settlement) {
                 List<OrderProductVo> orderProductList = orderCommonMapper.getShopOrderProduct(settlement.getShopOrderId());
                 settlement.setOrderProductList(orderProductList);
             }
+            // 付款记录
+            List<DiscernReceiptVo> shopOrderRelation = shipMapper.getShopOrderRelation(settlement.getShopOrderId());
+            // 付款手续费
+            // 分帐手续费
         });
         PageInfo<SettlementVo> pageInfo = new PageInfo(settlementList);
         return ResponseJson.success(pageInfo);

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

@@ -555,7 +555,6 @@ public class SubmitServiceImpl implements SubmitService {
             for (Object productObject : productArr) {
                 JSONObject productTemp = (JSONObject) productObject;
                 Integer skuId = (Integer) productTemp.get("skuId");
-//                Integer organizeProductId = (Integer) productTemp.get("id");
                 Integer productNum = (Integer) productTemp.get("productNum");
                 Integer presentNum = (Integer) productTemp.get("presentNum");
                 Integer productType = (Integer) productTemp.get("productType");
@@ -923,7 +922,6 @@ public class SubmitServiceImpl implements SubmitService {
                 if (0 != organizeId) {
                     // 佣金比例  外部商城sku配置比例
                     CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId);
-                    product.setOrganizeSkuId(organizeSkuInfo.getId());
                     product.setCmPercent(organizeSkuInfo.getCmPercent());
                     product.setOrganizePercent(organizeSkuInfo.getOrganizePercent());
                     product.setShopPercent(organizeSkuInfo.getShopPercent());
@@ -935,10 +933,11 @@ public class SubmitServiceImpl implements SubmitService {
             }
             // 设置运费
             if (( 1 == postageFlag && 0 == mainOrder.getUserBeans() ) || ( 0 == postageFlag && isColdChina.get() > 0.00d && 0 != organizeId ) || ( -1 == postageFlag && isColdChina.get() > 0.00d && 0 != organizeId )) {
-                postage = MathUtil.add(shopIsColdChina.get(), postage).doubleValue();
+                // postage = MathUtil.add(shopIsColdChina.get(), postage).doubleValue();
                 shopOrder.setShopPostFee(postage);
             }
-            log.info("shopIsColdChina.get()=------=-=-===="+shopIsColdChina.get());
+            // 需要支付金额 shouldPayFee +运费
+            // needPayAmount.set(MathUtil.add(needPayAmount.get(), postage).doubleValue());
             log.info("postage=-***===="+postage);
             isColdChina.set(MathUtil.add(isColdChina.get(), shopIsColdChina.get()).doubleValue());
             log.info("isColdChina.get()=------=-=-===="+isColdChina.get());
@@ -1004,12 +1003,7 @@ public class SubmitServiceImpl implements SubmitService {
             // 超级会员优惠金额
             shopOrder.setSvipShopReduction(svipShopReduction.get());
             // 总价(含税) = totalFee
-            shopOrder.setTotalAmount(shopProductFee.get());
-            // 联合丽格无折扣
-            if (0 == organizeId) {
-                // 总价(含税) = totalFee
-                shopOrder.setTotalAmount(shopAmount.get());
-            }
+            shopOrder.setTotalAmount(MathUtil.add(shopProductFee.get(), postage).doubleValue());
             // 总金额 = 订单商品totalAmount
             shopOrder.setProductAmount(shopAmount.get());
             // 需要支付金额 shouldPayFee +运费
@@ -1402,6 +1396,12 @@ public class SubmitServiceImpl implements SubmitService {
             shopOrder.setOrderNo(mainOrder.getOrderNo());
             shopOrder.setOrderTime(mainOrder.getOrderTime());
             shopOrder.setOrderSubmitType(mainOrder.getOrderSubmitType());
+            // 子订单状态
+            if (0 == mainOrder.getStatus()) {
+                shopOrder.setShopStatus(0);
+            } else {
+                shopOrder.setShopStatus(1);
+            }
             // 生成子订单编号
             StringBuilder shopOrderNo = new StringBuilder();
             shopOrderNo.append(mainOrder.getOrderNo());

+ 205 - 1
src/main/resources/mapper/OrderClubMapper.xml

@@ -38,12 +38,33 @@
         ,updateDate = #{updateDate}
         WHERE orderID = #{orderId}
     </update>
+    <update id="updateShopOrderStatus">
+        UPDATE cm_shop_order SET
+        shopStatus = #{shopStatus}
+        <if test="receiptStatus != null and receiptStatus != ''">
+            ,receiptStatus = #{receiptStatus}
+        </if>
+        <if test="payStatus != null and payStatus != ''">
+            ,payStatus = #{payStatus}
+        </if>
+        <if test="confirmFlag != null and confirmFlag != ''">
+            ,confirmFlag = #{confirmFlag}
+        </if>
+        <if test="confirmTime != null and confirmTime != ''">
+            ,confirmTime = #{confirmTime}
+        </if>
+        <if test="affirmPaymentFlag != null and affirmPaymentFlag != ''">
+            ,affirmPaymentFlag = #{affirmPaymentFlag}
+        </if>
+        ,updateDate = #{updateDate}
+        WHERE shopOrderId = #{shopOrderId}
+    </update>
     <update id="cancelBalanceRecord">
         UPDATE cm_user_balance_record
         SET remark  = #{remark},
             delFlag = #{delFlag}
         WHERE userId = #{userId}
-          AND orderId = #{orderId}
+          AND shopOrderId = #{shopOrderId}
     </update>
     <update id="cancelMainOrder">
         UPDATE cm_order
@@ -52,6 +73,11 @@
             closeTime   = #{closeTime}
         WHERE orderID = #{orderId}
     </update>
+    <update id="cancelMainShopOrder">
+        UPDATE cm_shop_order
+        SET status      = #{status}
+        WHERE shopOrderId = #{shopOrderId}
+    </update>
     <update id="deleteMainOrder">
         UPDATE cm_order
         SET delFlag=1,
@@ -204,6 +230,58 @@
         FROM cm_order
         WHERE orderID = #{orderId}
     </select>
+    <select id="getShopOrderById" resultType="com.caimei365.order.model.vo.ShopOrderVo">
+        SELECT
+            cso.shopOrderID AS shopOrderId,
+            cso.shopOrderNo,
+            cso.orderID AS orderId,
+            IFNULL(cso.organizeID, 0) 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,
+            ifnull(cso.presentNum, 0) as presentNum,
+            cso.orderPromotionsId,
+            cso.promotionFullReduction,
+            cso.svipShopReduction,
+            cso.brokerage,
+            cso.canRefundAmount,
+            cso.itemCount,
+            cso.totalAmount,
+            cso.productAmount,
+            cso.needPayAmount,
+            cso.shopProductAmount,
+            cso.shopPostFee,
+            IFNULL(cso.shopPostFlag, 0) AS shopPostFlag,
+            cso.shopTaxFee,
+            cso.shouldPayShopAmount,
+            co.userBeans,
+            cso.orderTime,
+            cso.payStatus,
+            cso.orderSubmitType,
+            cso.splitFlag,
+            cso.sendOutStatus,
+            co.secondHandOrderFlag as secondHandOrderFlag,
+            IFNULL(cso.receiptAmount,0) AS receiptAmount,
+            cso.eachDiscount,
+            IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
+            s.name AS shopName,
+            s.payway AS payway,
+            s.logo AS shopLogo,
+            s.shopType AS shopType,
+            co.clauseID AS clauseId,
+            co.invoiceFlag,
+            cso.receiptStatus,
+            cso.shopStatus as status
+        FROM cm_shop_order cso
+                 LEFT JOIN shop s ON cso.shopID = s.shopID
+                 LEFT JOIN cm_order co ON cso.orderId = co.orderId
+        WHERE cso.delFlag = 0
+          AND cso.shopOrderId = #{shopOrderId}
+    </select>
     <select id="getOrderProductList" resultType="com.caimei365.order.model.po.OrderProductPo">
         SELECT cop.skuId,
                cop.orderID               AS orderId,
@@ -252,6 +330,57 @@
                  LEFT JOIN product p ON p.productID = cop.productID
         WHERE cop.orderID = #{orderID}
     </select>
+    <select id="getShopOrderProductList" resultType="com.caimei365.order.model.po.OrderProductPo">
+        SELECT cop.skuId,
+               cop.orderID               AS orderId,
+               cop.orderNo,
+               cop.shopOrderID           AS shopOrderId,
+               cop.shopOrderNo,
+               cop.orderPromotionsId,
+               cop.productId,
+               cop.shopID                AS shopId,
+               cop.name,
+               cop.productImage          AS image,
+               cop.price,
+               cop.shopName,
+               cop.costPrice,
+               cop.normalPrice,
+               cop.ladderPriceFlag,
+               cop.discountPrice,
+               cop.discount,
+               cop.totalAmount,
+               cop.totalFee,
+               cop.shouldPayFee,
+               cop.productUnit,
+               cop.num,
+               IFNULL(cop.presentNum, 0) AS presentNum,
+               cop.discountFee,
+               cop.includedTax,
+               cop.invoiceType,
+               cop.taxRate,
+               cop.addedValueTax,
+               cop.totalAddedValueTax,
+               cop.singleShouldPayTotalTax,
+               cop.shouldPayTotalTax,
+               cop.shopProductAmount,
+               cop.singleShopFee,
+               cop.shopFee,
+               cop.singleOtherFee,
+               cop.otherFee,
+               cop.singleCmFee,
+               cop.cmFee,
+               cop.payStatus,
+               cop.buyAgainFlag,
+               cop.notOutStore,
+               cop.isActProduct          AS actProduct,
+               p.productCategory         AS productCategory
+        FROM cm_order_product cop
+                 LEFT JOIN product p ON p.productID = cop.productID
+        WHERE cop.shopOrderId = #{shopOrderId}
+    </select>
+    <select id="getShopOrderStatus" resultType="java.lang.Integer">
+        select shopStatus from cm_shop_order where orderId = #{orderId}
+    </select>
     <select id="getOrderReceiptIds" resultType="java.lang.String">
         SELECT c.id
         FROM cm_discern_receipt c
@@ -387,6 +516,81 @@
         </if>
         ORDER BY orderTime DESC
     </select>
+    <select id="getShopOrderList" resultType="com.caimei365.order.model.vo.ShopOrderVo">
+        SELECT
+            cso.shopOrderID AS shopOrderId,
+            cso.shopOrderNo,
+            cso.orderID AS orderId,
+            IFNULL(cso.organizeID, 0) 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,
+            ifnull(cso.presentNum, 0) as presentNum,
+            cso.orderPromotionsId,
+            cso.promotionFullReduction,
+            cso.svipShopReduction,
+            cso.brokerage,
+            cso.canRefundAmount,
+            cso.itemCount,
+            cso.totalAmount,
+            cso.productAmount,
+            cso.needPayAmount,
+            cso.shopProductAmount,
+            cso.shopPostFee,
+            IFNULL(cso.shopPostFlag, 0) AS shopPostFlag,
+            cso.shopTaxFee,
+            cso.shouldPayShopAmount,
+            (select userBeans from cm_order where orderId = cso.orderId ) as userBeans,
+            cso.orderTime,
+            cso.payStatus,
+            cso.orderSubmitType,
+            cso.splitFlag,
+            cso.sendOutStatus,
+            (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
+            s.name AS shopName,
+            s.payway 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,
+            cso.receiptStatus,
+            cso.shopStatus as status
+        FROM cm_shop_order cso
+                 LEFT JOIN shop s ON cso.shopID = s.shopID
+        <where>
+             cso.delFlag = 0 AND cso.userId = #{userId}
+            <if test="status == 1 ">
+                AND cso.shopStatus = '0'
+            </if>
+            <if test="status == 2 ">
+                AND cso.shopStatus IN(11,12,13,21,22,23)
+            </if>
+            <if test="status == 3 ">
+                AND cso.shopStatus IN(11,12,21,22,31,32)
+            </if>
+            <if test="status == 4 ">
+                AND cso.shopStatus IN(12,13,22,23,32,33)
+            </if>
+            <if test="status == 5 ">
+                AND cso.refundStatus IN(1,2)
+            </if>
+            <if test="shopOrderNo != null and shopOrderNo != '' ">
+                AND cso.shopOrderNo = #{shopOrderNo}
+            </if>
+            <if test="beginTime != null and beginTime != '' ">
+                AND cso.orderTime <![CDATA[>=]]> #{beginTime}
+            </if>
+            <if test="endTime != null and endTime != '' ">
+                AND cso.orderTime <![CDATA[<=]]> #{endTime}
+            </if>
+        </where>
+        ORDER BY cso.orderTime DESC
+    </select>
     <select id="getOrderListByKeyword" resultType="com.caimei365.order.model.vo.OrderVo">
         SELECT DISTINCT ifnull(co.orderSeen, 0) AS orderSeen,
                         co.orderID              AS orderId,

+ 23 - 1
src/main/resources/mapper/OrderCommonMapper.xml

@@ -6,11 +6,21 @@
         FROM cm_logistics_batch
         WHERE orderID = #{orderId}
     </select>
+    <select id="countLogisticsBatchShop" resultType="java.lang.Integer">
+        SELECT COUNT(*)
+        FROM cm_logistics_batch
+        WHERE shopOrderId = #{shopOrderId}
+    </select>
     <select id="getOrganizeId" resultType="java.lang.Integer">
-        select organizeID as organizeId
+        select ifnull(organizeID, 0) as organizeId
         from cm_order
         where orderId = #{orderId}
     </select>
+    <select id="getShopOrganizeId" resultType="java.lang.Integer">
+        select ifnull(organizeID, 0) as organizeId
+        from cm_shop_order
+        where shopOrderId = #{shopOrderId}
+    </select>
     <select id="getShopOrderList" resultType="com.caimei365.order.model.vo.ShopOrderVo">
         SELECT
         cso.shopOrderID AS shopOrderId,
@@ -43,6 +53,7 @@
         cso.splitFlag,
         cso.sendOutStatus,
         s.name AS shopName,
+        s.payway as payway,
         s.logo AS shopLogo,
         s.shopType as shopType,
         ifnull(cso.receiptAmount,0) as receiptAmount,
@@ -207,6 +218,17 @@
           AND cdr.receiptStatus IN (2, 3)
           AND cdr.payWay = '2'
     </select>
+    <select id="countOfflinePaymentshopOrder" resultType="java.lang.Integer">
+        SELECT count(*)
+        FROM cm_receipt_order_relation cror
+                 LEFT JOIN cm_discern_receipt cdr ON cror.receiptID = cdr.id
+        WHERE (cror.orderId = #{shopOrderId} or cror.shopOrderId = #{shopOrderId} )
+          AND cror.relationType = '2'
+          AND cror.delFlag = '0'
+          AND cdr.delFlag = '0'
+          AND cdr.receiptStatus IN (2, 3)
+          AND cdr.payWay = '2'
+    </select>
     <select id="getShouldPayShopAmountList" resultType="java.lang.Double">
         SELECT shouldPayShopAmount
         FROM cm_shop_order

+ 3 - 0
src/main/resources/mapper/PayOrderMapper.xml

@@ -256,6 +256,9 @@
         FROM cm_pay_online_switch
         WHERE id = 1
     </select>
+    <select id="getShopCode" resultType="java.lang.String">
+        SELECT commercialCode FROM cm_shop_splitcode WHERE shopId = #{shopId} limit 1
+    </select>
     <select id="getRefundCount" resultType="java.lang.Integer">
         SELECT COUNT(*)
         FROM cm_returned_purchase

+ 19 - 2
src/main/resources/mapper/ShipMapper.xml

@@ -163,8 +163,11 @@
             so.orderTime,
             user.userName AS name,
             so.payStatus,
-            so.shouldPayShopAmount,
-            so.payedShopAmount
+            IFNULL(so.shouldPayShopAmount, 0) AS shouldPayShopAmount,
+            so.payedShopAmount,
+            so.totalAmount,
+            so.refundStatus,
+            IFNULL(so.refundAmount, 0) AS refundAmount
         FROM cm_shop_order so
         LEFT JOIN USER ON user.userID = so.userID
         <where>
@@ -182,11 +185,25 @@
             <if test="name != null and name != ''">
                 AND user.userName like concat('%',#{name},'%')
             </if>
+            <if test="beginTime != null and beginTime != ''">
+                so.orderTime <![CDATA[ >= ]]> #{beginTime}
+            </if>
+            <if test="endTime != null and endTime != ''">
+                so.orderTime <![CDATA[ <= ]]> #{endTime}
+            </if>
+            <if test="refundStatus != null">
+                so.refundStatus = #{refundStatus}
+            </if>
             AND so.shopID = #{shopId}
             AND so.delFlag='0'
             ORDER BY so.orderTime DESC
         </where>
     </select>
+    <select id="getShopOrderRelation" resultType="com.caimei365.order.model.vo.DiscernReceiptVo">
+        SELECT cdr.payWay, cror.orderId, cror.shopOrderId, cror.associateAmount
+            FROM cm_discern_receipt cdr
+        LEFT JOIN cm_receipt_order_relation cror ON (cror.receiptID = cdr.id AND cror.delFlag = '0')
+    </select>
     <select id="getShopOrder" resultType="com.caimei365.order.model.vo.ShopOrderVo">
         SELECT
             shopOrderID AS shopOrderId,

+ 6 - 6
src/main/resources/mapper/SubmitMapper.xml

@@ -31,14 +31,14 @@
             parameterType="com.caimei365.order.model.po.OrderShopPo" useGeneratedKeys="true">
         INSERT INTO cm_shop_order (onlinePayWays, shopOrderNo, orderID, orderNo, organizeID, isColdChina, shopID, note, userID, clubID, orderType,
                                    spID, orderPromotionsId, promotionFullReduction, svipShopReduction, brokerage,
-                                   canRefundAmount, itemCount,
+                                   canRefundAmount, itemCount, shopStatus,
                                    totalAmount, productAmount, needPayAmount, shopProductAmount, shopPostFee, shopPostFlag,
                                    shopTaxFee,
                                    shouldPayShopAmount, orderTime, orderSubmitType, splitFlag, payStatus,
                                    payedShopAmount, splitCode, realPay, eachDiscount, receiptStatus)
         VALUES (#{onlinePayWays}, #{shopOrderNo}, #{orderId}, #{orderNo}, #{organizeId},#{isColdChina}, #{shopId}, #{note}, #{userId}, #{clubId}, #{orderType},
                 #{spId}, #{orderPromotionsId}, #{promotionFullReduction}, #{svipShopReduction}, #{brokerage},
-                #{canRefundAmount}, #{itemCount},
+                #{canRefundAmount}, #{itemCount}, #{shopStatus},
                 #{totalAmount}, #{productAmount}, #{needPayAmount}, #{shopProductAmount}, #{shopPostFee}, #{shopPostFlag}, #{shopTaxFee},
                 #{shouldPayShopAmount}, #{orderTime}, #{orderSubmitType}, #{splitFlag}, #{payStatus},
                 #{payedShopAmount}, #{splitCode}, #{realPay}, #{eachDiscount}, 1)
@@ -50,7 +50,7 @@
     </update>
     <insert id="insertOrderProduct" keyColumn="orderProductID" keyProperty="orderProductId"
             parameterType="com.caimei365.order.model.po.OrderProductPo" useGeneratedKeys="true">
-        INSERT INTO cm_order_product (orderID, orderNo, shopOrderID, shopOrderNo, organizeProductID,organizeID, orderPromotionsId, productId, shopId,
+        INSERT INTO cm_order_product (orderID, orderNo, shopOrderID, shopOrderNo, organizeID, orderPromotionsId, productId, shopId,
                                       name,
                                       productImage, price, shopName, costPrice, normalPrice, ladderPriceFlag,
                                       discountPrice, discount,
@@ -62,8 +62,8 @@
                                       cmFee,
                                       payStatus, buyAgainFlag, notOutStore, isActProduct, productType, svipPriceFlag,
                                       svipPriceType,
-                                      svipDiscount, svipReduction,skuID, organizeSkuId, cmPercent, organizePercent, shopPercent)
-        VALUES (#{orderId}, #{orderNo}, #{shopOrderId}, #{shopOrderNo}, #{organizeProductId}, #{organizeId}, #{orderPromotionsId}, #{productId}, #{shopId},
+                                      svipDiscount, svipReduction,skuID, cmPercent, organizePercent, shopPercent)
+        VALUES (#{orderId}, #{orderNo}, #{shopOrderId}, #{shopOrderNo}, #{organizeId}, #{orderPromotionsId}, #{productId}, #{shopId},
                 #{name},
                 #{image}, #{price}, #{shopName}, #{costPrice}, #{normalPrice}, #{ladderPriceFlag},
                 #{discountPrice}, #{discount},
@@ -74,7 +74,7 @@
                 #{shopProductAmount}, #{singleShopFee}, #{shopFee}, #{singleOtherFee}, #{otherFee}, #{singleCmFee},
                 #{cmFee},
                 #{payStatus}, #{buyAgainFlag}, #{notOutStore}, #{actProduct}, #{productType}, #{svipPriceFlag},
-                #{svipPriceType}, #{svipDiscount}, #{svipReduction},#{skuId}, #{organizeSkuId}, #{cmPercent}, #{organizePercent}, #{shopPercent})
+                #{svipPriceType}, #{svipDiscount}, #{svipReduction},#{skuId}, #{cmPercent}, #{organizePercent}, #{shopPercent})
     </insert>
     <insert id="insertOrderPromotions" keyColumn="id" keyProperty="id"
             parameterType="com.caimei365.order.model.vo.PromotionsVo" useGeneratedKeys="true">