zhijiezhao преди 1 година
родител
ревизия
d794e3566d

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

@@ -301,7 +301,7 @@ public class HeliPayApi {
             @ApiImplicitParam(required = false, name = "shopOrderId", value = "子订单Id")
     })
     @GetMapping("/result/union")
-    public ResponseJson<JSONObject> getUnionResult(String mbOrderId, Integer orderFlag, Integer shopOrderId) throws IntrospectionException, InvocationTargetException, IllegalAccessException {
+    public ResponseJson<JSONObject> getUnionResult(String mbOrderId, Integer orderFlag, Integer shopOrderId) {
         if (null == mbOrderId) {
             return ResponseJson.error("平台唯一流水号不能为空!", null);
         }

+ 11 - 3
src/main/java/com/caimei365/order/controller/OrderSubmitApi.java

@@ -1,9 +1,11 @@
 package com.caimei365.order.controller;
 
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
 import com.caimei365.order.model.ResponseJson;
+import com.caimei365.order.model.dto.OrderProductDto;
 import com.caimei365.order.model.dto.RechargeDto;
 import com.caimei365.order.model.dto.SubmitDto;
-import com.caimei365.order.model.po.OrderProductPo;
 import com.caimei365.order.model.vo.OrderProductVo;
 import com.caimei365.order.service.SubmitService;
 import com.caimei365.order.utils.MathUtil;
@@ -12,11 +14,17 @@ import io.swagger.annotations.ApiOperation;
 import lombok.RequiredArgsConstructor;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.io.IOException;
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
+
+import static com.alibaba.fastjson.JSON.parseArray;
 
 /**
  * 提交订单API
@@ -154,11 +162,11 @@ public class OrderSubmitApi {
      */
     @ApiOperation("修改订单")
     @PostMapping("/update")
-    public ResponseJson updateOrder(List<OrderProductVo> orderProducts) {
+    public ResponseJson updateOrder(@RequestBody OrderProductDto orderProducts) {
         if (null == orderProducts) {
             return ResponseJson.error("订单不能为空!", null);
         }
-        return submitService.updateOrder(orderProducts);
+        return submitService.updateOrder(orderProducts.getOrderProducts());
     }
 
 }

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

@@ -36,7 +36,8 @@ import java.util.Map;
 public class ReceiptApi {
     private final ReceiptService receiptService;
 
-    @Resource private cmOfflineCollectionService collectionService;
+    @Resource
+    private cmOfflineCollectionService collectionService;
 
     /**
      * 线下收款用户微信授权
@@ -99,6 +100,7 @@ public class ReceiptApi {
 
     /**
      * 获取后台配置显示银行账户配置信息
+     *
      * @return
      */
     @ApiOperation("获取银行账户配置信息")
@@ -172,7 +174,8 @@ public class ReceiptApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/list")
-    public ResponseJson<PageInfo<ReceiptVo>> getReceiptList(Integer newReceiptType, Integer receiptType, Integer receiptStatus, String smsContent, String startDate, String endDate,
+    public ResponseJson<PageInfo<ReceiptVo>> getReceiptList(Integer newReceiptType, Integer receiptType, Integer receiptStatus,
+                                                            String smsContent, String startDate, String endDate,
                                                             @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
                                                             @RequestParam(value = "pageSize", defaultValue = "10") int pageSize,
                                                             @RequestHeader HttpHeaders headers) {

+ 39 - 30
src/main/java/com/caimei365/order/controller/ShipApi.java

@@ -29,7 +29,7 @@ import java.util.Map;
  * @author : Charles
  * @date : 2021/8/5
  */
-@Api(tags="供应商发货API")
+@Api(tags = "供应商发货API")
 @RestController
 @RequiredArgsConstructor
 @RequestMapping("/order/shop")
@@ -52,9 +52,10 @@ public class ShipApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/list")
-    public ResponseJson<PageInfo<ShopOrderVo>> getShopOrderList(Integer shopId, Integer sendOutStatus, Integer payStatus, String shopOrderNo, String receiver, Integer organizeId,
-                                                        @RequestParam(value = "pageNum", defaultValue = "1") int pageNum,
-                                                        @RequestParam(value = "pageSize", defaultValue = "10") int pageSize) {
+    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);
         }
@@ -77,7 +78,8 @@ public class ShipApi {
             @ApiImplicitParam(required = false, name = "pageSize", value = "每页数量")
     })
     @GetMapping("/settlement/list")
-    public ResponseJson<PageInfo<SettlementVo>> getSettlementList(Integer shopId, String shopOrderNo, Integer payStatus, String name, String beginTime, String endTime, Integer refundStatus,
+    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) {
@@ -105,7 +107,7 @@ public class ShipApi {
     @ApiOperation("供应商售货清单(旧:/supplier/salesList)")
     @ApiImplicitParam(required = true, name = "shopOrderId", value = "子订单Id")
     @GetMapping("/sales/list")
-    public ResponseJson<Map<String, Object>> getSalesList(Integer shopOrderId){
+    public ResponseJson<Map<String, Object>> getSalesList(Integer shopOrderId) {
         if (null == shopOrderId) {
             return ResponseJson.error("参数不能为空!", null);
         }
@@ -143,13 +145,13 @@ public class ShipApi {
      *                     note: 备注信息,
      *                     image: 图片备注以##隔开,
      *                     logistics:[  // 物流信息
-     *                          {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'},
-     *                          {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'}
-     *                        ],
+     *                     {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'},
+     *                     {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'}
+     *                     ],
      *                     products:[   // 商品信息
-     *                          {orderProductId:订单商品id,num:此次发货数量},
-     *                          {orderProductId:订单商品id,num:此次发货数量}
-     *                        ],
+     *                     {orderProductId:订单商品id,num:此次发货数量},
+     *                     {orderProductId:订单商品id,num:此次发货数量}
+     *                     ],
      *                     }
      */
     @ApiOperation("供应商发货(旧:/supplier/addLogistics)")
@@ -190,7 +192,7 @@ public class ShipApi {
      * 供应商撤销发货
      *
      * @param logisticsBatchDto {
-     *                              logisticsBatchId: 发货批次表Id
+     *                          logisticsBatchId: 发货批次表Id
      *                          }
      */
     @ApiOperation("供应商撤销发货(旧:/supplier/cancelShipment)")
@@ -219,13 +221,13 @@ public class ShipApi {
      * 发货记录-添加物流
      *
      * @param logisticsBatchDto {
-     *                              logisticsBatchId: 发货批次表Id,
-     *                              remark: 备注,
-     *                              remarkImage: 图片备注,
-     *                              logistics:[  // 物流信息
-     *                                  {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'},
-     *                                  {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'}
-     *                              ]
+     *                          logisticsBatchId: 发货批次表Id,
+     *                          remark: 备注,
+     *                          remarkImage: 图片备注,
+     *                          logistics:[  // 物流信息
+     *                          {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'},
+     *                          {number:'45646464646',logisticsCompanyName:'顺丰物流',logisticsCompanyCode:'物流英文代码'}
+     *                          ]
      *                          }
      */
     @ApiOperation("发货记录-添加物流(旧:/supplier/addLogisticsInfo)")
@@ -239,8 +241,9 @@ public class ShipApi {
 
     /**
      * 扫码添加物流
-     * @param number      快递单号
-     * @param mobile      收/寄件人的电话号码(顺丰必填)
+     *
+     * @param number 快递单号
+     * @param mobile 收/寄件人的电话号码(顺丰必填)
      */
     @ApiOperation("扫码添加物流(旧:/supplier/scanLogistics)")
     @ApiImplicitParams({
@@ -313,7 +316,8 @@ public class ShipApi {
             @ApiImplicitParam(required = false, name = "iv", value = "微信加密算法的初始向量")
     })
     @GetMapping("/share/code/check")
-    public ResponseJson<Map<String, Object>> checkShipShareCode( Integer source, Integer shopOrderId, String shareCode, String code, String encryptedData, String iv, @RequestHeader HttpHeaders headers) {
+    public ResponseJson<Map<String, Object>> checkShipShareCode(Integer source, Integer shopOrderId, String shareCode,
+                                                                String code, String encryptedData, String iv, @RequestHeader HttpHeaders headers) {
         if (null == source) {
             return ResponseJson.error("来源不能为空!", null);
         }
@@ -348,11 +352,11 @@ public class ShipApi {
      * 保存商品资质
      *
      * @param jsonParamsDto params:[{
-     *                         recordId: 商品发货记录id,
-     *                         sn:       sn码,
-     *                         files:    [{fileName:"文件名称",ossName:"oss文件名称"},{fileName:"文件名称",ossName:"oss文件名称"}...]
-     *                         images:   ["图片","图片",...]
-     *                         }, {}]
+     *                      recordId: 商品发货记录id,
+     *                      sn:       sn码,
+     *                      files:    [{fileName:"文件名称",ossName:"oss文件名称"},{fileName:"文件名称",ossName:"oss文件名称"}...]
+     *                      images:   ["图片","图片",...]
+     *                      }, {}]
      */
     @ApiOperation("上传商品资质(旧:/supplier/qualification)")
     @PostMapping("/qualification/save")
@@ -362,6 +366,7 @@ public class ShipApi {
 
     /**
      * 更改收款状态
+     *
      * @param amount
      * @param shopOrderId
      * @return
@@ -376,18 +381,20 @@ public class ShipApi {
 
     /**
      * 订单备注详情
+     *
      * @param shopOrderId
      * @return
      */
     @ApiOperation("订单备注详情")
     @GetMapping(value = "/remarksView")
-    public ResponseJson<List<OrderRemarkDto>> remarksView( Integer shopOrderId) {
+    public ResponseJson<List<OrderRemarkDto>> remarksView(Integer shopOrderId) {
         List<OrderRemarkDto> remarksList = shipService.findList(shopOrderId);
         return ResponseJson.success(remarksList);
     }
 
     /**
      * 添加订单备注
+     *
      * @param remark
      * @return
      */
@@ -400,6 +407,7 @@ public class ShipApi {
 
     /**
      * 上传备注文件
+     *
      * @param file
      * @param orderId
      * @return
@@ -412,6 +420,7 @@ public class ShipApi {
 
     /**
      * 下载备注文件
+     *
      * @param fileId
      * @param request
      * @param response
@@ -421,7 +430,7 @@ public class ShipApi {
     @GetMapping("/download/remark")
     public ResponseJson<Map<String, Object>> downFile(Integer fileId, HttpServletRequest request, HttpServletResponse response) throws IOException {
         if (null == fileId) {
-            return ResponseJson.error(-1,"id不能为空", null);
+            return ResponseJson.error(-1, "id不能为空", null);
         }
         return shipService.downFile(fileId, request, response);
     }

+ 16 - 0
src/main/java/com/caimei365/order/model/dto/OrderProductDto.java

@@ -0,0 +1,16 @@
+package com.caimei365.order.model.dto;
+
+import com.caimei365.order.model.vo.OrderProductVo;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @author zzj
+ */
+@Data
+public class OrderProductDto implements Serializable {
+    private static final long serialVersionUID = 1L;
+    private List<OrderProductVo> orderProducts;
+}

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

@@ -2247,6 +2247,7 @@ public class SubmitServiceImpl implements SubmitService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public ResponseJson updateOrder(List<OrderProductVo> orderProducts) {
         /**
          * 仅未付款可修改订单
@@ -2261,8 +2262,6 @@ public class SubmitServiceImpl implements SubmitService {
             shopPromotions = null;
         }
         boolean svipUserFlag = null != baseMapper.getSvipUserIdByUserId(shopOrder.getUserId());
-        // 用户组织Id
-        Integer organizeId = baseMapper.getOrganizeId(orderProducts.get(0).getOrganizeId());
         // 是否包含活动商品
         boolean hasActProductFlag = false;
         // 超级会员优惠
@@ -2295,6 +2294,8 @@ public class SubmitServiceImpl implements SubmitService {
         AtomicDouble realNeedPay = new AtomicDouble(0);
         // 订单商品列表
         List<OrderProductPo> orderProductList = new ArrayList<>();
+        // 组织id
+        Integer organizeId = null;
 
         for (OrderProductVo orderProduct : orderProducts) {
             Integer skuId = orderProduct.getSkuId();
@@ -2309,7 +2310,8 @@ public class SubmitServiceImpl implements SubmitService {
             }
             // 获取数据库商品信息
             OrderProductPo dbProduct = null;
-            if (0 == organizeId) {
+            organizeId = orderProduct.getOrganizeId();
+            if (0 == orderProduct.getOrganizeId()) {
                 dbProduct = submitMapper.getProductDetails(skuId);
             } else {
                 dbProduct = submitMapper.getProductOrganizeDetails(skuId);
@@ -2325,7 +2327,7 @@ public class SubmitServiceImpl implements SubmitService {
 
             // 是否添加税费,不含税商品 开票需添加税费
             boolean taxFlag = false;
-            if (0 == organizeId) {
+            if (0 == orderProduct.getOrganizeId()) {
                 taxFlag = (Integer.valueOf(0).equals(product.getIncludedTax()) && (Integer.valueOf(1).equals(product.getInvoiceType()) || Integer.valueOf(2).equals(product.getInvoiceType())));
             }
             Double shopTax = 0d;
@@ -2368,7 +2370,7 @@ public class SubmitServiceImpl implements SubmitService {
                 }
                 // 计算单价
                 // 超级会员单价折扣计算
-                if (0 == organizeId) {
+                if (0 == orderProduct.getOrganizeId()) {
                     if (null != svipProductPo && 1 == svipProductPo.getSvipProductFlag()) {
                         // 超级会员优惠商品,不参与促销活动(普通机构购买该商品可参与店铺促销)/阶梯价/复购价
                         if (svipUserFlag) {
@@ -2466,7 +2468,7 @@ public class SubmitServiceImpl implements SubmitService {
                 Double taxFee = MathUtil.mul(discountTax, productNum).doubleValue();
                 if (hasActProductFlag && null != promotions) {
                     // 单品促销
-                    if (0 == organizeId) {
+                    if (0 == orderProduct.getOrganizeId()) {
                         if (promotions.getType() == 1) {
                             // 是否满足单品优惠条件(满足优惠价或者满减在这里进行设值)
                             if (promotions.getMode() == 1 || MathUtil.compare(productFee, promotions.getTouchPrice()) >= 0) {
@@ -2573,7 +2575,7 @@ public class SubmitServiceImpl implements SubmitService {
             product.setShouldPayTotalTax(MathUtil.mul(shopTax, productNum).doubleValue());
             // 付供应商 商品费=成本价*(购买数量  + 赠品数量)
             Double costAmount = null;
-            if (0 == organizeId) {
+            if (0 == orderProduct.getOrganizeId()) {
                 costAmount = MathUtil.mul(costPrice, MathUtil.add(productNum, presentNum)).doubleValue();
             } else {
                 costAmount = MathUtil.mul(product.getPrice(), MathUtil.add(productNum, presentNum)).doubleValue();
@@ -2626,7 +2628,7 @@ public class SubmitServiceImpl implements SubmitService {
             shopProductAmount.set(MathUtil.add(shopProductAmount.get(), product.getShopProductAmount()).doubleValue());
             // 付供应商税费
             shopTaxFee.set(MathUtil.add(shopTaxFee.get(), product.getShouldPayTotalTax()).doubleValue());
-            if (0 != organizeId) {
+            if (0 != orderProduct.getOrganizeId()) {
                 // 佣金比例  外部商城sku配置比例
                 CmOrganizeSkuPo organizeSkuInfo = submitMapper.getOrganizeSkuInfo(skuId);
                 product.setCmPercent(organizeSkuInfo.getCmPercent());