浏览代码

联合丽格1.0.2

huangzhiguo 1 年之前
父节点
当前提交
03d5889cab
共有 24 个文件被更改,包括 530 次插入130 次删除
  1. 74 18
      src/main/java/com/caimei365/order/components/OrderCommonService.java
  2. 116 7
      src/main/java/com/caimei365/order/components/ProductService.java
  3. 4 4
      src/main/java/com/caimei365/order/controller/HeliPayApi.java
  4. 21 8
      src/main/java/com/caimei365/order/controller/ShipApi.java
  5. 7 0
      src/main/java/com/caimei365/order/mapper/OrderClubMapper.java
  6. 12 3
      src/main/java/com/caimei365/order/mapper/ShipMapper.java
  7. 4 0
      src/main/java/com/caimei365/order/model/po/OrderReceiptRelationPo.java
  8. 4 0
      src/main/java/com/caimei365/order/model/po/OrderShopPo.java
  9. 13 0
      src/main/java/com/caimei365/order/model/vo/ShopOrderVo.java
  10. 2 2
      src/main/java/com/caimei365/order/service/PayOrderService.java
  11. 32 3
      src/main/java/com/caimei365/order/service/ShipService.java
  12. 9 7
      src/main/java/com/caimei365/order/service/impl/CartClubServiceImpl.java
  13. 8 0
      src/main/java/com/caimei365/order/service/impl/HeliPayServiceImpl.java
  14. 1 1
      src/main/java/com/caimei365/order/service/impl/OrderClubServiceImpl.java
  15. 24 22
      src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java
  16. 89 9
      src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java
  17. 10 16
      src/main/java/com/caimei365/order/service/impl/SubmitServiceImpl.java
  18. 2 2
      src/main/resources/mapper/CartClubMapper.xml
  19. 19 6
      src/main/resources/mapper/OrderClubMapper.xml
  20. 10 8
      src/main/resources/mapper/OrderCommonMapper.xml
  21. 6 6
      src/main/resources/mapper/OrderSellerMapper.xml
  22. 6 3
      src/main/resources/mapper/ReceiptMapper.xml
  23. 51 3
      src/main/resources/mapper/ShipMapper.xml
  24. 6 2
      src/main/resources/mapper/SubmitMapper.xml

+ 74 - 18
src/main/java/com/caimei365/order/components/OrderCommonService.java

@@ -241,23 +241,23 @@ public class OrderCommonService {
     public void setShopOrderStatus(ShopOrderVo shopOrderVo) {
         // 11, 待付待收待发
         if (1 == shopOrderVo.getStatus() ) {
-            if ( 1 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()){
+            if ( 1 == shopOrderVo.getReceiptStatus() && 1 == shopOrderVo.getSendOutStatus()){
                 shopOrderVo.setStatus(11);
-            } else if (1 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 1 == shopOrderVo.getReceiptStatus() && 2 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(12);
-            } else if (1 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 1 == shopOrderVo.getReceiptStatus() && 3 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(13);
-            } else if (2 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 2 == shopOrderVo.getReceiptStatus() && 1 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(21);
-            } else if (2 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 2 == shopOrderVo.getReceiptStatus() && 2 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(22);
-            } else if (2 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 2 == shopOrderVo.getReceiptStatus() && 3 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(23);
-            } else if (3 == shopOrderVo.getSendOutStatus() && 1 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 3 == shopOrderVo.getReceiptStatus() && 1 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(31);
-            } else if (3 == shopOrderVo.getSendOutStatus() && 2 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 3 == shopOrderVo.getReceiptStatus() && 2 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(32);
-            } else if (3 == shopOrderVo.getSendOutStatus() && 3 == shopOrderVo.getReceiptStatus()) {
+            } else if ( 3 == shopOrderVo.getReceiptStatus() && 3 == shopOrderVo.getSendOutStatus()) {
                 shopOrderVo.setStatus(33);
             }
         }
@@ -382,6 +382,13 @@ public class OrderCommonService {
      * @return
      */
     public List<DiscernReceiptVo> getDiscernReceiptAndSetShoporder(ShopOrderVo shopOrderVo) {
+        // 判断是否可以走线上支付
+        Integer orderVoucher = orderCommonMapper.getOrderVoucher(shopOrderVo.getShopOrderId());
+        if (null != orderVoucher && orderVoucher > 0) {
+            shopOrderVo.setOnlinePay(2);
+        } else {
+            shopOrderVo.setOnlinePay(1);
+        }
         // 支付记录
         List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(shopOrderVo.getOrderId(), shopOrderVo.getShopOrderId().toString());
         Double receiptAmount = 0d;
@@ -393,31 +400,80 @@ public class OrderCommonService {
                 if (null != discernReceipt.getPayType()) {
                     discernReceipt.setPayTypeStr(ReceivablesType.getReceivablesType(discernReceipt.getPayType()));
                 }
+                if (2 == discernReceipt.getPayWay()) {
+                    shopOrderVo.setOnlinePay(2);
+                }
             });
             receiptAmount = finalReceiptAmount.get();
         } else {
             //返佣款
             Double tempAmount = orderCommonMapper.getRebateAmountByShopOrder(shopOrderVo.getShopOrderId());
             if (null != tempAmount) {
-                shopOrderVo.setOnlinePay(1);
+                shopOrderVo.setOnlinePay(2);
             }
         }
-        // 判断是否可以走线上支付
-        Integer orderVoucher = orderCommonMapper.getOrderVoucher(shopOrderVo.getShopOrderId());
-        if (null != orderVoucher && orderVoucher > 0) {
-            shopOrderVo.setOnlinePay(1);
-        } else {
-            shopOrderVo.setOnlinePay(2);
-        }
         //待付总金额
         if (null == shopOrderVo.getRealPay()) {
             shopOrderVo.setRealPay(shopOrderVo.getNeedPayAmount());
         }
         shopOrderVo.setObligation(MathUtil.sub(shopOrderVo.getRealPay(), receiptAmount).doubleValue());
         //支付总金额
-        shopOrderVo.setReceiptAmount(receiptAmount);
+        if(!discernReceiptList.isEmpty()) {
+            shopOrderVo.setReceiptAmount(receiptAmount);
+        }
         return discernReceiptList;
     }
+
+    public void setPostageInfo(ShopOrderVo shopOrder) {
+        // 冷链商品类型
+        List<Integer> arrList = new ArrayList<>();
+        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);
+        }
+        // 冷链运输费 -- 联合丽格
+        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());
+        }
+    }
+
     /**
      * 设置搜索关键词历史记录
      *

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

@@ -1,6 +1,7 @@
 package com.caimei365.order.components;
 
 import com.caimei365.order.mapper.BaseMapper;
+import com.caimei365.order.mapper.PayOrderMapper;
 import com.caimei365.order.model.dto.VipSkuPriceDto;
 import com.caimei365.order.model.po.*;
 import com.caimei365.order.model.vo.*;
@@ -8,6 +9,7 @@ import com.caimei365.order.utils.MathUtil;
 import com.caimei365.order.utils.ImageUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -16,6 +18,7 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 import java.util.stream.IntStream;
 
@@ -32,6 +35,8 @@ public class ProductService {
     private String domain;
     @Resource
     private BaseMapper baseMapper;
+    @Resource
+    private PayOrderMapper payOrderMapper;
 
     /**
      * 设置商品图片及税费
@@ -357,19 +362,102 @@ public class ProductService {
      * 保存余额抵扣到收款记录
      *
      * @param balancePayFee 余额抵扣
-     * @param orderId       主订单Id
+     * @param shopOrderList 主订单Id
      * @param note          日志备注
      */
-    public void saveDiscernReceipt(Double balancePayFee, Integer orderId, String note) {
+    public void saveDiscernReceipt(Double balancePayFee, List<OrderShopPo> shopOrderList, String note) {
         Date date = new Date();
         String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+        ShopOrderVo shopOrderVo = new ShopOrderVo();
+        AtomicReference<Double> ba = new AtomicReference<>(balancePayFee);
+        shopOrderList.forEach(shopOrder -> {
+            double shopOrderPay = 0d;
+            if (MathUtil.compare(balancePayFee, shopOrder.getNeedPayAmount()) >= 0) {
+                shopOrder.setReceiptStatus(3);
+                shopOrderPay = shopOrder.getNeedPayAmount();
+            } else {
+                shopOrder.setReceiptStatus(2);
+                shopOrderPay = ba.get();
+            }
+            ba.updateAndGet(v -> ba.get() - shopOrder.getNeedPayAmount());
+            // 识别款项表
+            DiscernReceiptPo discernReceipt = new DiscernReceiptPo();
+            discernReceipt.setPayWay(3);
+            discernReceipt.setPayType(16);
+            discernReceipt.setReceiptType(1);
+            discernReceipt.setReceiptStatus(3);
+            discernReceipt.setReceiptAmount(shopOrderPay);
+            discernReceipt.setConfirmType(4);
+            discernReceipt.setReceiptDate(curDateStr);
+            discernReceipt.setConfirmDate(curDateStr);
+            discernReceipt.setReviewDate(curDateStr);
+            discernReceipt.setUpdateDate(curDateStr);
+            discernReceipt.setDelFlag(0);
+            // 保存 收款记录
+            baseMapper.insertDiscernReceipt(discernReceipt);
+            log.info(note + ">>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",shopOrderId:" + shopOrder.getShopOrderId());
+            // 收款项和订单关系表
+            OrderReceiptRelationPo relation = new OrderReceiptRelationPo();
+            relation.setReceiptId(discernReceipt.getId());
+            relation.setOrderId(shopOrder.getOrderId());
+            relation.setShopOrderId(shopOrder.getShopOrderId());
+            relation.setAssociateAmount(shopOrderPay);
+            relation.setRelationType(2);
+            relation.setDelFlag(0);
+            // 保存 收款项和订单关系
+            baseMapper.insertOrderReceiptRelation(relation);
+            //保存余额到余额收支记录
+            BalanceRecordPo balanceRecord = new BalanceRecordPo();
+            balanceRecord.setUserId(shopOrder.getUserId());
+            balanceRecord.setType(2);
+            balanceRecord.setBalanceType(1);
+            balanceRecord.setAddDate(new Date());
+            balanceRecord.setAmount(shopOrderPay);
+            balanceRecord.setOrderId(shopOrder.getOrderId());
+            balanceRecord.setShopOrderId(shopOrder.getShopOrderId());
+            balanceRecord.setRemark("机构自主订单");
+            balanceRecord.setDelFlag(0);
+            // 保存 余额收支记录
+            baseMapper.insertBalanceRecord(balanceRecord);
+            log.info("【提交订单】>>>>>>>>>>>>>>>>>>>>>>>>>>新增用户余额收支记录(insert[cm_user_balance_record])shopOrderId:" + shopOrder.getShopOrderId());
+            log.info(note + ">>>>>>>>>>>收款项和订单关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",shopOrderId:" + shopOrder.getShopOrderId());
+            // 修改子订单状态
+            shopOrderVo.setShopOrderId(shopOrder.getShopOrderId());
+            shopOrderVo.setReceiptStatus(shopOrder.getReceiptStatus());
+            shopOrderVo.setAccountAmount(shopOrderPay);
+            shopOrderVo.setReceiptAmount(shopOrderPay);
+            payOrderMapper.updateShopOrderBalancePay(shopOrderVo);
+
+        });
+
+    }
+
+    /**
+     *
+     * @param balancePayFee
+     * @param shopOrder
+     * @param note
+     */
+    public void saveShopOrderDiscernReceipt(Double balancePayFee, ShopOrderVo shopOrder, String note) {
+        Date date = new Date();
+        String curDateStr = (new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")).format(date);
+        AtomicReference<Double> ba = new AtomicReference<>(balancePayFee);
+        double shopOrderPay = 0d;
+        if (MathUtil.compare(balancePayFee, shopOrder.getNeedPayAmount()) >= 0) {
+            shopOrder.setReceiptStatus(3);
+            shopOrderPay = shopOrder.getNeedPayAmount();
+        } else {
+            shopOrder.setReceiptStatus(2);
+            shopOrderPay = ba.get();
+        }
+        ba.updateAndGet(v -> ba.get() - shopOrder.getNeedPayAmount());
         // 识别款项表
         DiscernReceiptPo discernReceipt = new DiscernReceiptPo();
         discernReceipt.setPayWay(3);
         discernReceipt.setPayType(16);
         discernReceipt.setReceiptType(1);
         discernReceipt.setReceiptStatus(3);
-        discernReceipt.setReceiptAmount(balancePayFee);
+        discernReceipt.setReceiptAmount(shopOrderPay);
         discernReceipt.setConfirmType(4);
         discernReceipt.setReceiptDate(curDateStr);
         discernReceipt.setConfirmDate(curDateStr);
@@ -378,17 +466,38 @@ public class ProductService {
         discernReceipt.setDelFlag(0);
         // 保存 收款记录
         baseMapper.insertDiscernReceipt(discernReceipt);
-        log.info(note + ">>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",orderId:" + orderId);
+        log.info(note + ">>>>>>>>>>>保存识别款项(insert[cm_discern_receipt])id:" + discernReceipt.getId() + ",shopOrderId:" + shopOrder.getShopOrderId());
         // 收款项和订单关系表
         OrderReceiptRelationPo relation = new OrderReceiptRelationPo();
         relation.setReceiptId(discernReceipt.getId());
-        relation.setOrderId(orderId);
-        relation.setAssociateAmount(balancePayFee);
+        relation.setOrderId(shopOrder.getOrderId());
+        relation.setShopOrderId(shopOrder.getShopOrderId());
+        relation.setAssociateAmount(shopOrderPay);
         relation.setRelationType(2);
         relation.setDelFlag(0);
         // 保存 收款项和订单关系
         baseMapper.insertOrderReceiptRelation(relation);
-        log.info(note + ">>>>>>>>>>>收款项和订单关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",orderId:" + orderId);
+        //保存余额到余额收支记录
+        BalanceRecordPo balanceRecord = new BalanceRecordPo();
+        balanceRecord.setUserId(shopOrder.getUserId());
+        balanceRecord.setType(2);
+        balanceRecord.setBalanceType(1);
+        balanceRecord.setAddDate(new Date());
+        balanceRecord.setAmount(shopOrderPay);
+        balanceRecord.setOrderId(shopOrder.getOrderId());
+        balanceRecord.setShopOrderId(shopOrder.getShopOrderId());
+        balanceRecord.setRemark("机构自主订单");
+        balanceRecord.setDelFlag(0);
+        // 保存 余额收支记录
+        baseMapper.insertBalanceRecord(balanceRecord);
+        log.info("【提交订单】>>>>>>>>>>>>>>>>>>>>>>>>>>新增用户余额收支记录(insert[cm_user_balance_record])shopOrderId:" + shopOrder.getShopOrderId());
+        log.info(note + ">>>>>>>>>>>收款项和订单关系(insert[cm_receipt_order_relation])id:" + relation.getId() + ",shopOrderId:" + shopOrder.getShopOrderId());
+
+        // 修改子订单状态
+        shopOrder.setAccountAmount(shopOrderPay);
+        shopOrder.setReceiptAmount(shopOrderPay);
+        payOrderMapper.updateShopOrderBalancePay(shopOrder);
+
     }
 
     /**

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

@@ -184,13 +184,13 @@ public class HeliPayApi {
      * 收银台数据显示
      */
     @ApiOperation("收银台数据(旧:/PayOrder/checkoutCounter)")
-    @ApiImplicitParam(required = true, name = "orderId", value = "订单Id")
+    @ApiImplicitParam(required = true, name = "shopOrderId", value = "订单Id")
     @GetMapping("/checkout/counter")
-    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer orderId) {
-        if (null == orderId) {
+    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer shopOrderId) {
+        if (null == shopOrderId) {
             return ResponseJson.error("订单Id不能为空!", null);
         }
-        return payOrderService.getCheckoutCounter(orderId);
+        return payOrderService.getCheckoutCounter(shopOrderId);
     }
 
     /**

+ 21 - 8
src/main/java/com/caimei365/order/controller/ShipApi.java

@@ -1,5 +1,6 @@
 package com.caimei365.order.controller;
 
+import com.alibaba.fastjson.JSONArray;
 import com.caimei365.order.model.ResponseJson;
 import com.caimei365.order.model.dto.JsonParamsDto;
 import com.caimei365.order.model.dto.LogisticsBatchDto;
@@ -45,17 +46,18 @@ 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 = "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,
+    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, 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, pageNum, pageSize);
+        return shipService.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, organizeId, pageNum, pageSize);
     }
 
     /**
@@ -357,15 +359,23 @@ public class ShipApi {
         return shipService.saveProductQualification(jsonParamsDto);
     }
 
+    @GetMapping("/check/receipt")
+    public ResponseJson checkReceipt(Double amount, Integer orderId) {
+        if (null == amount || null == orderId) {
+            return ResponseJson.error("参数不能为空!");
+        }
+        return shipService.checkReceipt(amount, orderId);
+    }
+
     /**
      * 订单备注详情
-     * @param orderId
+     * @param shopOrderId
      * @return
      */
     @ApiOperation("订单备注详情")
-    @GetMapping(value = "/remarksView/{orderId}")
-    public ResponseJson<List<OrderRemarkDto>> remarksView(@PathVariable("orderId") Integer orderId) {
-        List<OrderRemarkDto> remarksList = shipService.findList(orderId);
+    @GetMapping(value = "/remarksView")
+    public ResponseJson<List<OrderRemarkDto>> remarksView( Integer shopOrderId) {
+        List<OrderRemarkDto> remarksList = shipService.findList(shopOrderId);
         return ResponseJson.success(remarksList);
     }
 
@@ -402,7 +412,10 @@ public class ShipApi {
      */
     @ApiOperation("下载备注文件")
     @GetMapping("/download/remark")
-    public void downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException {
-        shipService.downFile(fileId, request, response);
+    public ResponseJson<Map<String, Object>> downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException {
+        if (null == fileId) {
+            return ResponseJson.error(-1,"id不能为空", null);
+        }
+        return shipService.downFile(fileId, request, response);
     }
 }

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

@@ -441,6 +441,13 @@ public interface OrderClubMapper {
 
     List<Sku> getOrganizeSku(@Param("productId") Integer productId);
 
+    /**
+     * 发票信息
+     * @param orderId
+     * @return
+     */
+    InvoicePo getOrderInvoice(@Param("orderId") Integer orderId);
+
     List<VoucherPo> getVoucher(@Param("shopOrderId") Integer shopOrderId);
 
     List<VoucherImageDto> getVoucherImage(@Param("voucherIds") List<Integer> voucherIds);

+ 12 - 3
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);
+    List<ShopOrderVo> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId);
     /**
      * 供应商结算列表
      */
@@ -227,12 +227,21 @@ public interface ShipMapper {
 
     Integer getUserIdByShopId(Integer shopId);
 
+    Double findWaitPay(Integer orderId);
+
+    void insertOrderReceipt(ReceiptVo receiptVo);
+
+    void insertOrderRelation(OrderReceiptRelationPo record);
+
+    String findOrderStatus(Integer orderId);
+
+    void updateReceiptStatus(Integer status, String orderStatus,Integer orderId);
     /**
      * 订单备注
-     * @param orderId
+     * @param shopOrderId
      * @return
      */
-    List<OrderRemarkDto> findList(Integer orderId);
+    List<OrderRemarkDto> findList(Integer shopOrderId);
 
     /**
      * 插入订单备注

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

@@ -53,6 +53,10 @@ public class OrderReceiptRelationPo implements Serializable {
      *  认证通会员购买记录Id
      */
     private Integer authVipRecordId;
+    /**
+     * 收款金额
+     */
+    private Double receiptAmount;
     /**
      * 删除标记 0 否,其余是
      */

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

@@ -161,6 +161,10 @@ public class OrderShopPo implements Serializable {
      * 订单状态 1:待确认 2:已确认 3:交易完成 4:订单完成 5:已关闭 6:交易全退
      */
     private Integer shopStatus;
+    /**
+     *
+     */
+    private Integer receiptStatus;
     /**
      * 已付款金额
      */

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

@@ -1,5 +1,6 @@
 package com.caimei365.order.model.vo;
 
+import com.caimei365.order.model.po.InvoicePo;
 import com.caimei365.order.model.po.VoucherPo;
 import lombok.Data;
 
@@ -273,6 +274,10 @@ public class ShopOrderVo implements Serializable {
      * (收款买家)收款状态:1待收款、2部分收款、3已收款
      */
     private Integer receiptStatus;
+    /**
+     * 退款状态:1无退款、3有退款
+     */
+    private Integer refundStatus;
     /**
      * 供应商已退金额
      */
@@ -325,6 +330,10 @@ public class ShopOrderVo implements Serializable {
      * 是否使用余额 0否 1是
      */
    private Integer useBalanceFlag;
+    /**
+     * 发票信息
+     */
+   private InvoicePo invoice;
     /**
      * 支付凭证
      */
@@ -345,6 +354,10 @@ public class ShopOrderVo implements Serializable {
      * 是否开发票 没开发票 0 开个人发票 1 开企业发票2
      */
     private Integer invoiceFlag;
+    /**
+     * 是否有商品发票属性的限制,为true时只能线下支付
+     */
+    private boolean invoiceStatus = false;
     /**
      * 退款总金额
      */

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

@@ -37,9 +37,9 @@ public interface PayOrderService {
     ResponseJson<Integer> getPayOnLineSwitch();
     /**
      * 收银台数据显示
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
-    ResponseJson<Map<String, Object>> getCheckoutCounter(Integer orderId);
+    ResponseJson<Map<String, Object>> getCheckoutCounter(Integer shopOrderId);
     /**
      *  生成网银支付链接
      * @param payLinkDto {

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

@@ -33,7 +33,7 @@ public interface ShipService {
      * @param pageNum        页码
      * @param pageSize       每页数量
      */
-    ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, int pageNum, int pageSize);
+    ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId, int pageNum, int pageSize);
     /**
      * 供应商结算列表
      * @param shopId         供应商Id
@@ -161,11 +161,40 @@ public interface ShipService {
      */
     ResponseJson<Void> saveProductQualification(JsonParamsDto jsonParamsDto);
 
-    List<OrderRemarkDto> findList(Integer orderId);
+    /**
+     * 更改收款状态
+     * @param amount
+     * @param orderId
+     * @return
+     */
+    ResponseJson checkReceipt(Double amount, Integer orderId);
+    /**
+     * 订单备注列表
+     * @param shopOrderId
+     * @return
+     */
+    List<OrderRemarkDto> findList(Integer shopOrderId);
 
+    /**
+     * 插入订单备注
+     * @param remark
+     */
     void insertRemark(OrderRemarkDto remark);
 
+    /**
+     * 上传备注文件
+     * @param file
+     * @param orderId
+     * @return
+     */
     ResponseJson<Map<String, Object>> upload(MultipartFile file, Integer orderId);
 
-    void downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException;
+    /**
+     * 下载
+     * @param fileId
+     * @param request
+     * @param response
+     * @throws IOException
+     */
+    ResponseJson<Map<String, Object>> downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException;
 }

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

@@ -319,7 +319,7 @@ public class CartClubServiceImpl implements CartClubService {
                             productIterator.remove();
                         }
                     } else {
-                        if (cartItemVo.getValidFlag() == 1) {
+                        if (cartItemVo.getValidFlag() == 2) {
                             // 设置商品有效
                             cartItemVo.setStatus(0);
                             // 该供应商下价格累加
@@ -1053,7 +1053,6 @@ public class CartClubServiceImpl implements CartClubService {
                                     shop.setPostageFlag(1);
                                 }
                             }
-                            shopPrice.set(MathUtil.add(shopPrice.get(), coldChain).doubleValue());
                             // 设置商品图片及税费
                             boolean taxFlag = false;
                             if (0 == organizeId) {
@@ -1168,10 +1167,12 @@ public class CartClubServiceImpl implements CartClubService {
                         } else {
                             shop.setIsColdChina(false);
                         }
+                        // 总费用 + 冷链费
+                        // shopPrice.set(MathUtil.add(shopPrice.get(), coldChain).doubleValue());
                         // 总运费
                         shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
                         // 供应商总金额
-                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getPostage()).doubleValue());
+                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getAllPostage()).doubleValue());
                         if (shopKindCount.get() > 0) {
                             // 店铺促销
                             if (null != shopPromotion) {
@@ -1507,7 +1508,6 @@ public class CartClubServiceImpl implements CartClubService {
                                     }
                                 }
                             }
-                            shopPrice.set(MathUtil.add(shopPrice.get(), coldChain).doubleValue());
                             // 设置商品图片及税费
                             boolean taxFlag = productService.setCartItemImgAndTax(cartItemVo);
                             // 是否充值商品
@@ -1607,10 +1607,12 @@ public class CartClubServiceImpl implements CartClubService {
                         } else {
                             shop.setIsColdChina(false);
                         }
+                        // 总费用 + 冷链费
+                        // shopPrice.set(MathUtil.add(shopPrice.get(), coldChain).doubleValue());
                         // 总运费
                         shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
                         // 供应商总金额
-                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getPostage()).doubleValue());
+                        shopPrice.set(MathUtil.add(shopPrice.get(), shop.getAllPostage()).doubleValue());
                         if (shopKindCount.get() > 0) {
                             // 店铺促销
                             if (null != shopPromotion) {
@@ -1984,7 +1986,7 @@ public class CartClubServiceImpl implements CartClubService {
                 } else {
                     coldChain = 700d;
                     shop.setPostageFlag(1);
-                    totalPrice.set(MathUtil.add(totalPrice.get(), coldChain).doubleValue());
+                    // totalPrice.set(MathUtil.add(totalPrice.get(), coldChain).doubleValue());
                     shop.setIsColdChina(true);
                 }
             } else {
@@ -1995,7 +1997,7 @@ public class CartClubServiceImpl implements CartClubService {
         // 总运费
         shop.setAllPostage(MathUtil.add(shop.getPostage(),coldChain).doubleValue());
         // 供应商总金额
-        totalPrice.set(MathUtil.add(totalPrice.get(), shop.getPostage()).doubleValue());
+        totalPrice.set(MathUtil.add(totalPrice.get(), shop.getAllPostage()).doubleValue());
         // 商品总金额累加
         originalPrice.set(MathUtil.mul(cartItemVo.getNumber(), cartItemVo.getOriginalPrice()).doubleValue());
         totalPrice.set(MathUtil.add(totalPrice.get(), MathUtil.mul(cartItemVo.getNumber(), cartItemVo.getPrice())).doubleValue());

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

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.caimei365.order.components.HeliPayUtil;
 import com.caimei365.order.components.OnlinePostFormUtil;
+import com.caimei365.order.components.OrderCommonService;
 import com.caimei365.order.components.WeChatService;
 import com.caimei365.order.constant.Constant;
 import com.caimei365.order.mapper.BaseMapper;
@@ -78,6 +79,8 @@ public class HeliPayServiceImpl implements HeliPayService {
     @Resource
     private RemoteCallService remoteCallService;
     @Resource
+    private OrderCommonService orderCommonService;
+    @Resource
     private WeChatService weChatService;
     @Resource
     private OrderRefundMapper refundMapper;
@@ -1238,6 +1241,10 @@ public class HeliPayServiceImpl implements HeliPayService {
                     orderProduct.setTotalAmount(orderProduct.getTotalFee());
                 }
             });
+            if (null != shopOrder.getRealPay()) {
+                shopOrder.setRealPay(shopOrder.getNeedPayAmount());
+            }
+            log.info("shopOrder.getRealPay(), shopOrder.getReceiptAmount()"+shopOrder.getRealPay()+"======"+shopOrder.getReceiptAmount());
             shopOrder.setObligation(MathUtil.sub(shopOrder.getRealPay(), shopOrder.getReceiptAmount()).doubleValue());
             if (998 == shopOrder.getShopId()) {
                 shopOrder.setObligation(shopOrder.getTotalAmount());
@@ -1278,6 +1285,7 @@ public class HeliPayServiceImpl implements HeliPayService {
                 onlinePay = 2;
             }
             shopOrder.setOnlinePay(onlinePay);
+            orderCommonService.setPostageInfo(shopOrder);
         });
         return ResponseJson.success(shopOrderList);
     }

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

@@ -478,7 +478,7 @@ public class OrderClubServiceImpl implements OrderClubService {
             orderClubMapper.updateUserMoneyByUserId(updateMoney, shopOrder.getUserId());
             log.info(note + ">>>>>>>>>>>更新用户余额(update[user(userMoney)])userId:" + shopOrder.getUserId() + ",shopOrderId:" + shopOrderId);
             // 保存余额到收款记录
-            productService.saveDiscernReceipt(shopOrder.getAccountAmount(), shopOrderId, note);
+            productService.saveShopOrderDiscernReceipt(shopOrder.getAccountAmount(), shopOrder, note);
         }
         if (null == shopOrder.getAccountAmount() || shopOrder.getAccountAmount() == 0d) {
             shopOrder.setReceiptStatus(1);

+ 24 - 22
src/main/java/com/caimei365/order/service/impl/PayOrderServiceImpl.java

@@ -97,6 +97,7 @@ public class PayOrderServiceImpl implements PayOrderService {
         // 返回数据
         Map<String, Object> map = new HashMap<>();
         map.put("shopOrderId", shopOrderId);
+        map.put("orderId", shopOrder.getOrderId());
         // 查询审核中的退款退货数量
         int refundCount = payOrderMapper.getShopRefundCount(shopOrderId);
         if (refundCount > 0) {
@@ -151,7 +152,7 @@ public class PayOrderServiceImpl implements PayOrderService {
     /**
      * 订单支付,余额抵扣
      *
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
     public ResponseJson<Map<String, Object>> balanceDeduction(Integer shopOrderId) {
@@ -249,19 +250,20 @@ public class PayOrderServiceImpl implements PayOrderService {
     /**
      * 收银台数据显示
      *
-     * @param orderId 订单Id
+     * @param shopOrderId 订单Id
      */
     @Override
-    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer orderId) {
+    public ResponseJson<Map<String, Object>> getCheckoutCounter(Integer shopOrderId) {
         // 订单信息
-        OrderVo order = orderCommonMapper.getOrderByOrderId(orderId);
-        if (null == order) {
+        // OrderVo order = orderCommonMapper.getOrderByOrderId(orderId);
+        ShopOrderVo shopOrder = orderCommonMapper.getShopOrderById(shopOrderId);
+        if (null == shopOrder) {
             return ResponseJson.error("订单不存在", null);
         }
         // 机构信息
-        String userName = baseMapper.getUserNameByUserId(order.getUserId());
+        String userName = baseMapper.getUserNameByUserId(shopOrder.getUserId());
         // 支付记录
-        List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(order.getOrderId(), order.getShopOrderIds());
+        List<DiscernReceiptVo> discernReceiptList = orderCommonMapper.getDiscernReceipt(shopOrder.getOrderId(), shopOrder.getShopOrderId().toString());
         if (!discernReceiptList.isEmpty()) {
             AtomicDouble receiptAmount = new AtomicDouble(0d);
             AtomicBoolean offlineFlag = new AtomicBoolean(false);
@@ -277,23 +279,23 @@ public class PayOrderServiceImpl implements PayOrderService {
                 }
             });
             if (offlineFlag.get()) {
-                order.setOnlinePayFlag(1);
+                shopOrder.setOnlinePay(1);
             }
-            order.setReceiptAmount(receiptAmount.get());
+            shopOrder.setReceiptAmount(receiptAmount.get());
         }
         // 总成本
         AtomicDouble totalCostPrice = new AtomicDouble(0d);
         // 商品数据
-        List<OrderProductVo> orderProductList = orderCommonMapper.getOrderProductByOrderId(orderId);
+        List<OrderProductVo> orderProductList = orderCommonMapper.getshopOrderProductByOrderId(shopOrderId);
         //过滤运费商品
         orderProductList.removeIf(product -> product.getShopId() == 998);
         // 是否有商品发票属性的限制
         orderProductList.forEach(orderProduct -> {
             // 商品含税未知 or 订单选择开企业发票,商品不含税不能开票
             boolean productTaxFlag = (null == orderProduct.getIncludedTax()) || (null == orderProduct.getInvoiceType()) || (Integer.valueOf(2).equals(orderProduct.getIncludedTax()))
-                    || (Integer.valueOf(2).equals(order.getInvoiceFlag()) && (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && Integer.valueOf(3).equals(orderProduct.getInvoiceType())));
+                    || (Integer.valueOf(2).equals(shopOrder.getInvoiceFlag()) && (Integer.valueOf(0).equals(orderProduct.getIncludedTax()) && Integer.valueOf(3).equals(orderProduct.getInvoiceType())));
             if (productTaxFlag) {
-                order.setInvoiceStatus(true);
+                shopOrder.setInvoiceStatus(true);
             }
             //当应付金额小于订单总成本时,不能走线上支付,总成本=商品成本 + 供应商运费 + 供应商税费
             double costPrice = MathUtil.mul(orderProduct.getCostPrice(), orderProduct.getNum()).doubleValue();
@@ -303,26 +305,26 @@ public class PayOrderServiceImpl implements PayOrderService {
                 //成本+税费
                 costPrice = MathUtil.add(costPrice, payableTax).doubleValue();
             }
-            List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(order.getOrderId());
-            for (ShopOrderVo shopOrder : shopOrderList) {
+//            List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(order.getOrderId());
+//            for (ShopOrderVo shopOrder : shopOrderList) {
                 // 付供应商运费
                 Double shopPostFee = shopOrder.getShopPostFee();
                 costPrice = MathUtil.add(costPrice, shopPostFee).doubleValue();
-            }
+//            }
             totalCostPrice.set(MathUtil.add(costPrice, totalCostPrice.get()).doubleValue());
         });
-        Integer onlinePay = order.getOnlinePayFlag();
+        Integer onlinePay = shopOrder.getOnlinePay();
         // 返回数据
         Map<String, Object> map = new HashMap<>();
         map.put("userName", userName);
-        map.put("order", order);
+        map.put("shopOrder", shopOrder);
         map.put("discernReceipt", discernReceiptList);
         map.put("orderProductList", orderProductList);
         //能否线上判断付供应商是否大于订单金额
-        if (order.getBalancePayFee() > 0 || totalCostPrice.get() > order.getPayTotalFee()) {
+        if (shopOrder.getAccountAmount() > 0 || totalCostPrice.get() > shopOrder.getTotalAmount()) {
             onlinePay = 1;
         }
-        Integer num = orderCommonMapper.findSplitCode(orderId);
+        Integer num = orderCommonMapper.findSplitCode(shopOrder.getOrderId());
         if (num > 0) {
             onlinePay = 1;
         }
@@ -709,12 +711,12 @@ public class PayOrderServiceImpl implements PayOrderService {
                 //成本+税费
                 costPrice = MathUtil.add(costPrice, payableTax).doubleValue();
             }
-            List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(order.getOrderId());
-            for (ShopOrderVo shopOrder : shopOrderList) {
+             List<ShopOrderVo> shopOrderList = orderCommonMapper.getShopOrderListByOrderId(order.getOrderId());
+             for (ShopOrderVo shopOrder : shopOrderList) {
                 // 付供应商运费
                 Double shopPostFee = shopOrder.getShopPostFee();
                 costPrice = MathUtil.add(costPrice, shopPostFee).doubleValue();
-            }
+             }
             totalCostPrice.set(MathUtil.add(costPrice, totalCostPrice.get()).doubleValue());
         });
         //. 后台线上支付开关2.商品是否有分账账号 3. 订单是否进行过线下支付 4.是否使用了余额抵扣

+ 89 - 9
src/main/java/com/caimei365/order/service/impl/ShipServiceImpl.java

@@ -2,6 +2,7 @@ package com.caimei365.order.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.caimei365.order.components.OrderCommonService;
 import com.caimei365.order.components.OssService;
 import com.caimei365.order.components.WeChatService;
 import com.caimei365.order.mapper.*;
@@ -36,6 +37,7 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 import static com.alibaba.fastjson.JSON.parseArray;
 
@@ -57,6 +59,8 @@ public class ShipServiceImpl implements ShipService {
     @Resource
     private AddressMapper addressMapper;
     @Resource
+    private OrderCommonService orderCommonService;
+    @Resource
     private OrderCommonMapper orderCommonMapper;
     @Resource
     private OrderClubMapper orderClubMapper;
@@ -82,14 +86,20 @@ public class ShipServiceImpl implements ShipService {
      * @param pageSize      每页数量
      */
     @Override
-    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, int pageNum, int pageSize) {
+    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId, int pageNum, int pageSize) {
         // 分页请求数据
         PageHelper.startPage(pageNum, pageSize);
-        List<ShopOrderVo> shopOrderList = shipMapper.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver);
+        List<ShopOrderVo> shopOrderList = shipMapper.getShopOrderList(shopId, sendOutStatus, payStatus, shopOrderNo, receiver, organizeId);
         shopOrderList.forEach(shopOrder -> {
             if (null != shopOrder) {
                 setShopOrderInfo(shopOrder);
             }
+            // 联合丽格 [待付款]或者线下支付[部分付款] 的子订单 状态
+            if ((4 != shopOrder.getStatus() && 5 != shopOrder.getStatus()) && (1 == shopOrder.getReceiptStatus() || (2 == shopOrder.getReceiptStatus() && 1 == shopOrder.getOnlinePay()))) {
+                shopOrder.setCheckFlag(1);
+            } else {
+                shopOrder.setCheckFlag(0);
+            }
         });
         PageInfo<ShopOrderVo> pageInfo = new PageInfo(shopOrderList);
         return ResponseJson.success(pageInfo);
@@ -182,6 +192,12 @@ public class ShipServiceImpl implements ShipService {
             return ResponseJson.error("子订单异常,shopOrderId:" + shopOrderId, null);
         }
         setShopOrderInfo(shopOrder);
+        // 联合丽格 [待付款]或者线下支付[部分付款] 的子订单 状态
+        if ((4 != shopOrder.getStatus() && 5 != shopOrder.getStatus()) && (1 == shopOrder.getReceiptStatus() || (2 == shopOrder.getReceiptStatus() && 1 == shopOrder.getOnlinePay()))) {
+            shopOrder.setCheckFlag(1);
+        } else {
+            shopOrder.setCheckFlag(0);
+        }
         Map<String, Object> map = new HashMap<>(2);
         map.put("shopOrder", shopOrder);
         // 结算记录
@@ -233,6 +249,8 @@ public class ShipServiceImpl implements ShipService {
 
 
     private void setShopOrderInfo(ShopOrderVo shopOrder) {
+        // 设置订单状态
+        orderCommonService.setShopOrderStatus(shopOrder);
         // 收货地址
         OrderUserinfoVo userInfo = addressMapper.getOrderUserinfo(shopOrder.getOrderId());
         shopOrder.setUserInfo(userInfo);
@@ -264,6 +282,21 @@ public class ShipServiceImpl implements ShipService {
                 orderProduct.setActualCancelNum(actualCancelNum);
             }
         });
+        // 发票信息
+        InvoicePo orderInvoice = orderClubMapper.getOrderInvoice(shopOrder.getOrderId());
+        shopOrder.setInvoice(orderInvoice);
+        // 线下支付凭证
+        List<VoucherPo> voucher = orderClubMapper.getVoucher(shopOrder.getShopOrderId());
+        // 支付凭证图片
+        if (null != voucher) {
+            List<Integer> ids = voucher.stream().map(VoucherPo::getId).collect(Collectors.toList());
+            List<VoucherImageDto> voucherImage = orderClubMapper.getVoucherImage(ids);
+            voucher.forEach(v -> {
+                List<VoucherImageDto> imageList = voucherImage.stream().filter(m -> m.getVoucherId().equals(v.getId())).collect(Collectors.toList());
+                v.setImgs(imageList);
+            });
+        }
+        shopOrder.setVoucher(voucher);
         shopOrder.setOrderProductList(orderProductList);
         shopOrder.setShopLogo(ImageUtil.getImageUrl("shopLogo", shopOrder.getShopLogo(), domain));
         shopOrder.setOrderProductList(orderProductList);
@@ -1036,6 +1069,46 @@ public class ShipServiceImpl implements ShipService {
         }
     }
 
+    /**
+     * 更改收款状态
+     *
+     * @param amount
+     * @param orderId
+     * @return
+     */
+    @Override
+    public ResponseJson checkReceipt(Double amount, Integer orderId) {
+        Double wait = shipMapper.findWaitPay(orderId);
+        if (amount > wait) {
+            return ResponseJson.error("支付金额大于待付!");
+        }
+        ReceiptVo receiptVo = new ReceiptVo();
+        // 31 线下凭证
+        receiptVo.setPayType(31);
+        receiptVo.setPayWay(2);
+        receiptVo.setNewReceiptType(2);
+        receiptVo.setReceiptType(1);
+        receiptVo.setReceiptStatus(3);
+        receiptVo.setReceiptAmount(amount);
+        shipMapper.insertOrderReceipt(receiptVo);
+        OrderReceiptRelationPo record = new OrderReceiptRelationPo();
+        record.setReceiptAmount(amount);
+        record.setRelationType(2);
+        record.setReceiptId(receiptVo.getId());
+        record.setOrderId(orderId);
+        shipMapper.insertOrderRelation(record);
+        // 根据金额修改cm_order状态
+        Integer status = 2;
+        if (0 == wait - amount) {
+            status = 3;
+        }
+        String orderStatus = shipMapper.findOrderStatus(orderId);
+        String substring = orderStatus.substring(orderStatus.length() - 1);
+        orderStatus = status + substring;
+        shipMapper.updateReceiptStatus(status, orderStatus, orderId);
+        return ResponseJson.success();
+    }
+
     @Override
     public List<OrderRemarkDto> findList(Integer orderId) {
         List<OrderRemarkDto> list = shipMapper.findList(orderId);
@@ -1048,9 +1121,9 @@ public class ShipServiceImpl implements ShipService {
 
     @Override
     public void insertRemark(OrderRemarkDto remark) {
-        /*CmMallAdminUser user = (CmMallAdminUser) SecurityUtils.getSubject().getPrincipal();
-        remark.setCreateBy(user.getId());
-        shipMapper.insert(remark);*/
+        // CmMallAdminUser user = (CmMallAdminUser) SecurityUtils.getSubject().getPrincipal();
+        // remark.setCreateBy(user.getId());
+        shipMapper.insert(remark);
         List<String> images = remark.getImages();
         List<OssFileDto> ossFiles = remark.getOssFiles();
         if (null != images && images.size() > 0) {
@@ -1112,10 +1185,17 @@ public class ShipServiceImpl implements ShipService {
     }
 
     @Override
-    public void downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException {
+    public ResponseJson<Map<String, Object>> downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException {
         OssFileDto remarkFile = shipMapper.findRemarkById(fileId);
-        String fileName = remarkFile.getName();
-        ossUtils.downFile(remarkFile.getOssName(), fileName);
-        ossService.download(request, response, fileName);
+        Map<String, Object> map = new HashMap<>();
+        if (null != remarkFile) {
+            String fileName = remarkFile.getName();
+            ossUtils.downFile(remarkFile.getOssName(), fileName);
+            ossService.download(request, response, fileName);
+            map.put("code", 0);
+        } else {
+            map.put("code", -1);
+        }
+        return ResponseJson.success(map);
     }
 }

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

@@ -937,10 +937,12 @@ public class SubmitServiceImpl implements SubmitService {
                 shopOrder.setShopPostFee(postage);
             }
             // 需要支付金额 shouldPayFee +运费
-            // needPayAmount.set(MathUtil.add(needPayAmount.get(), postage).doubleValue());
+            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());
+            // 需要支付金额 shouldPayFee + 冷链费
+            needPayAmount.set(MathUtil.add(needPayAmount.get(), isColdChina.get()).doubleValue());
             // 统计总运费
             postageFee.set(MathUtil.add(postageFee.get(), postage).doubleValue());
             log.info("统计总运费+--+-+-"+postageFee.get());
@@ -1138,6 +1140,10 @@ public class SubmitServiceImpl implements SubmitService {
         // 订单总额 = 商品费 + 运费
         log.info("总运费"+postageFee.get());
         payTotalFee.set(MathUtil.add(productTotalFee.get(), postageFee.get()).doubleValue());
+        // 总金额 + 冷链运输费
+        log.info("isColdChina.get()=------=-=-===="+isColdChina.get());
+        payTotalFee.set(MathUtil.add(payTotalFee.get(), isColdChina.get()).doubleValue());
+        log.info("payTotalFee.get()=------=-=-===="+payTotalFee.get());
         // 运费标志:0包邮 -1到付 1遵循运费规则
         // mainOrder.setPostageFlag(orderParamBo.getPostageFlag());
         /*if (1 == orderParamBo.getPostageFlag() && orderParamBo.getOffsetBeans() > 0) {
@@ -1153,7 +1159,7 @@ public class SubmitServiceImpl implements SubmitService {
         mainOrder.setProductTotalFee(productTotalFee.get());
         mainOrder.setOrderTotalFee(productTotalFee.get());
         // 订单总额(商品金额+运费)-- 冷链运输费
-        mainOrder.setPayTotalFee(MathUtil.add(payTotalFee.get(), isColdChina.get()).doubleValue());
+        mainOrder.setPayTotalFee(payTotalFee.get());
         // 订单状态
         if (0 == organizeId) {
             if (3 == orderParamBo.getCartType()) {
@@ -1209,6 +1215,7 @@ public class SubmitServiceImpl implements SubmitService {
             // 支付时间
             mainOrder.setPayTime(curDateStr);
         } else {
+            log.info("payTotalFee.get()=------=-=-===="+payTotalFee.get());
             //不用余额的情况下真是支付金额赋值为订单总额
             payableAmount.set(payTotalFee.get());
         }
@@ -1697,23 +1704,10 @@ public class SubmitServiceImpl implements SubmitService {
          */
         // 余额支付标识,0不使用,1使用
         if (1 == orderParamBo.getBalancePayFlag() && MathUtil.compare(balancePayFee.get(), 0) > 0) {
-            //保存余额到余额收支记录
-            BalanceRecordPo balanceRecord = new BalanceRecordPo();
-            balanceRecord.setUserId(mainOrder.getUserId());
-            balanceRecord.setType(2);
-            balanceRecord.setBalanceType(1);
-            balanceRecord.setAddDate(new Date());
-            balanceRecord.setAmount(balancePayFee.get());
-            balanceRecord.setOrderId(mainOrder.getOrderId());
-            balanceRecord.setRemark("机构自主订单");
-            balanceRecord.setDelFlag(0);
-            // 保存 余额收支记录
-            baseMapper.insertBalanceRecord(balanceRecord);
-            log.info("【提交订单】>>>>>>>>>>>>>>>>>>>>>>>>>>新增用户余额收支记录(insert[cm_user_balance_record])orderId:" + mainOrder.getOrderId());
             // 保存余额抵扣到收款记录(自主订单)
             if (3 != orderParamBo.getCartType()) {
                 Integer orderId = mainOrder.getOrderId();
-                productService.saveDiscernReceipt(balancePayFee.get(), orderId, "【提交订单】");
+                productService.saveDiscernReceipt(balancePayFee.get(), shopOrderList, "【提交订单】");
             }
         }
 

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

@@ -127,7 +127,7 @@
                p.productType
         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
         WHERE c.userID = #{userId}
           and p.shopID = #{shopId}
           and cs.organizeID = #{organizeId}
@@ -360,7 +360,7 @@
             useGeneratedKeys="true">
         INSERT INTO cm_cart (skuId, shopID, productID, userID, productCount, addTime, reBuyFlag)
         VALUES (#{skuId},
-                (select shopId from product p left join cm_sku cs on p.productId = cs.productId where cs.skuId = #{skuId} and cs.organizeId = 0),
+                (select shopId from product p left join cm_sku cs on p.productId = cs.productId where cs.skuId = #{skuId}),
                 (select productId from cm_sku where skuId = #{skuId}), #{userId},
                 #{productCount},
                 #{addTime}, #{reBuyFlag})

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

@@ -259,6 +259,7 @@
             cso.brokerage,
             cso.canRefundAmount,
             cso.itemCount,
+            cso.accountAmount,
             cso.totalAmount,
             cso.productAmount,
             cso.needPayAmount,
@@ -272,7 +273,7 @@
             cso.payStatus,
             cso.orderSubmitType,
             cso.splitFlag,
-            cso.sendOutStatus,
+            ifnull(cso.sendOutStatus, 1) as sendOutStatus,
             co.secondHandOrderFlag as secondHandOrderFlag,
             IFNULL(cso.receiptAmount,0) AS receiptAmount,
             cso.eachDiscount,
@@ -283,7 +284,7 @@
             s.shopType AS shopType,
             co.clauseID AS clauseId,
             co.invoiceFlag,
-            cso.receiptStatus,
+            ifnull(cso.receiptStatus, 1) as receiptStatus,
             cso.shopStatus as status
         FROM cm_shop_order cso
                  LEFT JOIN shop s ON cso.shopID = s.shopID
@@ -569,7 +570,7 @@
             cso.payStatus,
             cso.orderSubmitType,
             cso.splitFlag,
-            cso.sendOutStatus,
+            ifnull(cso.sendOutStatus, 1) as sendOutStatus,
             (select onlinePayFlag from cm_order where orderId = cso.orderId ) as onlinePay,
             (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
             s.name AS shopName,
@@ -579,7 +580,7 @@
             IFNULL(cso.receiptAmount,0) AS receiptAmount,
             cso.eachDiscount,
             IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-            cso.receiptStatus,
+            ifnull(cso.receiptStatus, 1) as receiptStatus,
             cso.shopStatus as status
         FROM cm_shop_order cso
                  LEFT JOIN shop s ON cso.shopID = s.shopID
@@ -700,12 +701,12 @@
                         cso.payStatus,
                         cso.orderSubmitType,
                         cso.splitFlag,
-                        cso.sendOutStatus,
+                        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
                         (SELECT secondHandOrderFlag FROM cm_order WHERE orderId = cso.orderId ) AS secondHandOrderFlag,
                         IFNULL(cso.receiptAmount,0) AS receiptAmount,
                         cso.eachDiscount,
                         IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-                        cso.receiptStatus,
+                        ifnull(cso.receiptStatus, 1) as receiptStatus,
                         cso.shopStatus AS STATUS
         FROM cm_shop_order cso
                  LEFT JOIN cm_order_product cop ON cso.shopOrderId = cop.shopOrderId
@@ -1053,6 +1054,18 @@
         WHERE productId = #{productId} and organizeId = 4
         ORDER BY price ASC
     </select>
+    <select id="getOrderInvoice" resultType="com.caimei365.order.model.po.InvoicePo">
+        SELECT id,
+               orderId,
+               invoiceTitle,
+               corporationTaxNum,
+               registeredAddress,
+               registeredPhone,
+               bankAccountNo,
+               openBank
+        FROM bp_order_invoice
+        WHERE orderId = #{orderId}
+    </select>
     <select id="getVoucher" resultType="com.caimei365.order.model.po.VoucherPo">
         SELECT id, shopOrderId, remarks, addtime FROM cm_order_payment_voucher WHERE shopOrderId = #{shopOrderId}
     </select>

+ 10 - 8
src/main/resources/mapper/OrderCommonMapper.xml

@@ -51,15 +51,15 @@
         cso.orderTime,
         cso.orderSubmitType,
         cso.splitFlag,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
         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
+        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
@@ -482,6 +482,7 @@
         cso.totalAmount,
         cso.productAmount,
         cso.needPayAmount,
+        cso.accountAmount,
         cso.shopProductAmount,
         cso.shopPostFee,
         IFNULL(cso.shopPostFlag, 0) AS shopPostFlag,
@@ -492,7 +493,7 @@
         cso.payStatus,
         cso.orderSubmitType,
         cso.splitFlag,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
         (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
         s.name AS shopName,
         s.payway AS payway,
@@ -501,7 +502,7 @@
         IFNULL(cso.receiptAmount,0) AS receiptAmount,
         cso.eachDiscount,
         IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-        cso.receiptStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.shopStatus as status
         FROM cm_shop_order cso
         LEFT JOIN shop s ON cso.shopID = s.shopID
@@ -583,7 +584,8 @@
                orderTime,
                orderSubmitType,
                payStatus,
-               sendOutStatus,
+               ifnull(sendOutStatus, 1) as sendOutStatus,
+               ifnull(receiptStatus, 1) as receiptStatus,
                splitFlag
         FROM cm_shop_order
         WHERE delFlag = 0
@@ -806,11 +808,11 @@
                cop.orderTime,
                cop.orderSubmitType,
                cop.payStatus,
-               cop.sendOutStatus,
                cop.splitFlag,
                cop.realPay,
                cop.receiptAmount,
-               cop.receiptStatus,
+               ifnull(cop.sendOutStatus, 1) as sendOutStatus,
+               ifnull(cop.receiptStatus, 1) as receiptStatus,
                cop.splitCode,
                ifnull(cop.paySuccessCounter, 0) as paySuccessCounter,
                p.name                           as shopName,

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

@@ -130,7 +130,7 @@
         cso.payStatus,
         cso.orderSubmitType,
         cso.splitFlag,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
         (select onlinePayFlag from cm_order where orderId = cso.orderId ) as onlinePay,
         (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
         IFNULL(cso.receiptAmount,0) AS receiptAmount,
@@ -140,7 +140,7 @@
         s.logo AS shopLogo,
         s.shopType AS shopType,
         IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-        cso.receiptStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.shopStatus as status
         <if test="orderSubmitType == 3">
             ,s.linkMan as serviceName
@@ -293,7 +293,7 @@
         cso.payStatus,
         cso.orderSubmitType,
         cso.splitFlag,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
         (select onlinePayFlag from cm_order where orderId = cso.orderId ) as onlinePay,
         (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
         IFNULL(cso.receiptAmount,0) AS receiptAmount,
@@ -303,7 +303,7 @@
         s.logo AS shopLogo,
         s.shopType AS shopType,
         IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-        cso.receiptStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.shopStatus as status
         FROM cm_shop_order cso
         LEFT JOIN shop s ON cso.shopID = s.shopID
@@ -426,7 +426,7 @@
         cso.payStatus,
         cso.orderSubmitType,
         cso.splitFlag,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
         (select onlinePayFlag from cm_order where orderId = cso.orderId ) as onlinePay,
         (select secondHandOrderFlag from cm_order where orderId = cso.orderId ) as secondHandOrderFlag,
         IFNULL(cso.receiptAmount,0) AS receiptAmount,
@@ -436,7 +436,7 @@
         s.logo AS shopLogo,
         s.shopType AS shopType,
         IFNULL(cso.realPay, cso.needPayAmount)AS readPay,
-        cso.receiptStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.shopStatus as status
         FROM cm_shop_order cso
         LEFT JOIN cm_order_product cop ON cso.shopOrderId = cop.shopOrderId

+ 6 - 3
src/main/resources/mapper/ReceiptMapper.xml

@@ -816,7 +816,8 @@
         cso.orderTime,
         cso.orderSubmitType,
         cso.payStatus,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.splitFlag,
         cso.shopOtherFee,
         s.name AS shopName,
@@ -876,7 +877,8 @@
         cso.orderTime,
         cso.orderSubmitType,
         cso.payStatus,
-        cso.sendOutStatus,
+        ifnull(cso.sendOutStatus, 1) as sendOutStatus,
+        ifnull(cso.receiptStatus, 1) as receiptStatus,
         cso.splitFlag,
         cso.shopOtherFee,
         s.name AS shopName,
@@ -938,7 +940,8 @@
                orderTime,
                orderSubmitType,
                payStatus,
-               sendOutStatus,
+               ifnull(sendOutStatus, 1) as sendOutStatus,
+               ifnull(receiptStatus, 1) as receiptStatus,
                splitFlag
         FROM cm_shop_order
         WHERE shopOrderID = #{shopOrderId}

+ 51 - 3
src/main/resources/mapper/ShipMapper.xml

@@ -101,6 +101,7 @@
             a.orderID AS orderId,
             a.orderNo,
             a.shopID AS shopId,
+            a.organizeID as organizeId,
             a.note,
             a.userID AS userId,
             a.clubID AS clubId,
@@ -118,10 +119,14 @@
             a.shopTaxFee,
             a.shouldPayShopAmount,
             a.payedShopAmount,
+            a.accountAmount,
             a.orderTime,
             a.orderSubmitType,
             a.payStatus,
-            a.sendOutStatus,
+            ifnull(a.sendOutStatus, 1) as sendOutStatus,
+            ifnull(a.receiptStatus, 1) as receiptStatus,
+            a.refundStatus,
+            a.shopStatus as status,
             a.splitFlag
         FROM cm_shop_order a
         LEFT JOIN bp_order_userinfo ou ON  ou.orderId=a.orderId
@@ -146,6 +151,9 @@
                     AND a.payStatus = #{payStatus}
                 </if>
             </if>
+            <if test="organizeId != null">
+                a.organizeID = #{organizeId}
+            </if>
             <if test="receiver != null and receiver != ''">
                 AND ou.shouHuoRen like concat('%',#{receiver},'%')
             </if>
@@ -218,6 +226,7 @@
             orderID AS orderId,
             orderNo,
             shopID AS shopId,
+            organizeID as organizeId,
             note,
             userID AS userId,
             clubID AS clubId,
@@ -235,12 +244,16 @@
             shopTaxFee,
             shouldPayShopAmount,
             payedShopAmount,
+            accountAmount,
             outStoreNum,
             IFNULL(presentNum,0) AS presentNum,
             orderTime,
             orderSubmitType,
             payStatus,
-            sendOutStatus,
+            ifnull(sendOutStatus, 1) as sendOutStatus,
+            ifnull(receiptStatus, 1) as receiptStatus,
+            refundStatus,
+            shopStatus as status,
             splitFlag
         FROM cm_shop_order
         WHERE shopOrderID = #{shopOrderId} AND delFlag = '0'
@@ -427,6 +440,39 @@
         SELECT userID FROM shop WHERE shopID=#{shopId}
     </select>
 
+    <select id="findWaitPay" resultType="java.lang.Double">
+        SELECT ifnull((SELECT payTotalFee FROM cm_order WHERE orderId = #{orderId}) - ifnull(SUM(receiptAmount),0),0)
+        FROM cm_discern_receipt cdr
+                 LEFT JOIN cm_receipt_order_relation cror ON cdr.id = cror.receiptID
+        WHERE cror.orderId = #{orderId}
+    </select>
+    <insert id="insertOrderReceipt" keyColumn="id" keyProperty="id"
+            parameterType="com.caimei365.order.model.vo.ReceiptVo" useGeneratedKeys="true">
+        insert into cm_discern_receipt(payWay, payType, receiptType, receiptStatus, receiptAmount, confirmType,
+                                       receiptDate, confirmDate, reviewDate, delFlag, receStatct)
+        values (#{payWay}, #{payType}, #{receiptType}, #{receiptStatus}, #{receiptAmount}, 4, now(), now(), now(), 0, 0)
+    </insert>
+    <insert id="insertOrderRelation">
+        INSERT INTO cm_receipt_order_relation(relationType,
+                                              receiptID,
+                                              associateAmount,
+                                              orderID,
+                                              delFlag)
+        VALUES (#{relationType},
+                #{receiptId},
+                #{receiptAmount},
+                #{orderId},
+                0)
+    </insert>
+    <select id="findOrderStatus" resultType="java.lang.String">
+        select status from cm_order where orderId = #{orderId}
+    </select>
+    <update id="updateReceiptStatus">
+        update cm_order
+        set receiptStatus = #{status},
+            status = #{orderStatus}
+        where orderId = #{orderId}
+    </update>
     <select id="findList" resultType="com.caimei365.order.model.dto.OrderRemarkDto">
         SELECT a.id           AS "id",
                a.orderId      AS "orderId",
@@ -436,7 +482,7 @@
                cu.accountName AS "createName"
         FROM cm_order_remark a
                  LEFT JOIN cm_mall_admin_user cu ON cu.id = a.createBy
-        where a.orderId = #{orderId}
+        where a.shopOrderId = #{shopOrderId}
         ORDER BY a.createDate
     </select>
 
@@ -468,10 +514,12 @@
     <insert id="insert" parameterType="com.caimei365.order.model.dto.OrderRemarkDto" keyProperty="id"
             useGeneratedKeys="true">
         INSERT INTO cm_order_remark(orderID,
+                                    shopOrderId,
                                     remarks,
                                     createBy,
                                     createDate)
         VALUES (#{orderId},
+                #{shopOrderId},
                 #{remarks},
                 #{createBy},
                 now())

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

@@ -237,17 +237,21 @@
                p.`name`                   AS `name`,
                p.mainImage                AS image,
                cs.price,
+               cs.costPrice,
+               IFNULL(cs.costCheckFlag, 1) AS costCheckFlag,
+               cs.shopPercent as costProportional,
                p.productCategory,
                cs.ladderPriceFlag,
                p.includedTax,
                p.invoiceType,
                p.taxPoint                 AS taxRate,
                cs.unit                     AS productUnit,
+               cs.normalPrice,
                p.supplierTaxPoint         AS shopTaxRate,
                p.splitCode as splitCode
         FROM product p
-                 LEFT JOIN cm_sku cs  ON cs.productId = p.productId
-        WHERE cs.skuId = #{skuId}
+                 LEFT JOIN cm_sku cs on p.productID = cs.productId
+        WHERE cs.skuId = #{skuId} and cs.organizeId = 4
     </select>
     <select id="getClauseNameById" resultType="java.lang.String">
         SELECT `name`