Browse Source

Merge remote-tracking branch 'origin/develop' into develop

FengChaoYu 9 months ago
parent
commit
6561c39c3d

+ 56 - 17
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java

@@ -8,6 +8,7 @@ import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.material.parts.PartsWorkerStockBean;
 import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsBean;
 import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsBean;
 import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsItemBean;
 import com.gree.mall.miniapp.bean.material.parts.SalesCustomerPartsItemBean;
 import com.gree.mall.miniapp.bean.material.stock.WorkerNormStockBean;
 import com.gree.mall.miniapp.bean.material.stock.WorkerNormStockBean;
@@ -25,6 +26,7 @@ import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
 import com.gree.mall.miniapp.logic.common.outside.WechatLogic;
 import com.gree.mall.miniapp.logic.common.outside.WechatLogic;
 import com.gree.mall.miniapp.logic.material.parts.OldRefundManageLogic;
 import com.gree.mall.miniapp.logic.material.parts.OldRefundManageLogic;
+import com.gree.mall.miniapp.logic.material.parts.WorkerPartsStockLogic;
 import com.gree.mall.miniapp.logic.material.stock.MaterialGoodsStockLogic;
 import com.gree.mall.miniapp.logic.material.stock.MaterialGoodsStockLogic;
 import com.gree.mall.miniapp.plus.entity.*;
 import com.gree.mall.miniapp.plus.entity.*;
 import com.gree.mall.miniapp.plus.service.*;
 import com.gree.mall.miniapp.plus.service.*;
@@ -122,6 +124,9 @@ public class PayOrderLogic {
     @Autowired
     @Autowired
     OldRefundManageLogic oldRefundManageLogic;
     OldRefundManageLogic oldRefundManageLogic;
 
 
+    @Autowired
+    WorkerPartsStockLogic workerPartsStockLogic;
+
     public Page<WebsitNormCharge> pageCharge(String name, String categoryId, String orderId,Integer pageNum, Integer pageSize) {
     public Page<WebsitNormCharge> pageCharge(String name, String categoryId, String orderId,Integer pageNum, Integer pageSize) {
         CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
         CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
         Page<WebsitNormCharge> list = websitNormChargeService.lambdaQuery()
         Page<WebsitNormCharge> list = websitNormChargeService.lambdaQuery()
@@ -204,7 +209,7 @@ public class PayOrderLogic {
             if (StringUtil.isEmpty(workerOrderBuy.getCategoryId()))
             if (StringUtil.isEmpty(workerOrderBuy.getCategoryId()))
                 this.addFuCai(workerStockMap, workerOrderItem, workerOrderBuy);
                 this.addFuCai(workerStockMap, workerOrderItem, workerOrderBuy);
             else
             else
-                this.addPeiJian(workerOrderItem);
+                this.addPeiJian(workerOrderItem,workerOrderBuy);
 
 
 
 
             totalAmount = totalAmount.add(workerOrderItem.getTotalAmount());
             totalAmount = totalAmount.add(workerOrderItem.getTotalAmount());
@@ -215,6 +220,38 @@ public class PayOrderLogic {
             num = num.add(workerOrderItem.getNum());
             num = num.add(workerOrderItem.getNum());
         }
         }
 
 
+        if (workerOrderBuy.getServicePrice() != null){
+
+            totalAmount.add(workerOrderBuy.getServicePrice());
+
+            BigDecimal workerServiceProceAmount = workerOrderBuy.getServicePrice().multiply(Convert.toBigDecimal("0.006"));
+
+
+            if (workerServiceProceAmount.doubleValue() > 0.01) {
+                workerProceAmount.add(workerServiceProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
+
+            }else {
+                workerProceAmount.add(Convert.toBigDecimal("0.01"));
+            }
+        }
+
+
+        if (workerOrderBuy.getOtherPrice() != null){
+
+            totalAmount.add(workerOrderBuy.getOtherPrice());
+            BigDecimal workerOtherProceAmount = workerOrderBuy.getOtherPrice().multiply(Convert.toBigDecimal("0.006"));
+
+
+            if (workerOtherProceAmount.doubleValue() > 0.01) {
+                workerProceAmount.add(workerOtherProceAmount.setScale(2, BigDecimal.ROUND_HALF_UP));
+
+            }else {
+                workerProceAmount.add(Convert.toBigDecimal("0.01"));
+            }
+
+        }
+
+
         if (CollectionUtil.isNotEmpty(workerStockMap)) {
         if (CollectionUtil.isNotEmpty(workerStockMap)) {
             // 检查辅材物料收费类型的库存是否够扣
             // 检查辅材物料收费类型的库存是否够扣
             for (Map.Entry<String, WorkerNormStockBean> entry : workerStockMap.entrySet()) {
             for (Map.Entry<String, WorkerNormStockBean> entry : workerStockMap.entrySet()) {
@@ -247,36 +284,38 @@ public class PayOrderLogic {
         return workerOrderBuy.getOrderId();
         return workerOrderBuy.getOrderId();
     }
     }
 
 
-    private void addPeiJian(WorkerOrderItem workerOrderItem) {
-        WebsitGoods websitGoods = websitGoodsService.getById(workerOrderItem.getGoodsId());
+    private void addPeiJian(WorkerOrderItem workerOrderItem,WorkerOrderBuy workerOrderBuy) {
 
 
+        AdminWebsit adminWebsit = adminWebsitService.getById(workerOrderBuy.getWebsitId());
 
 
-        workerOrderItem.setGoodsCode(websitGoods.getGoodsCode());
+        List<PartsWorkerStockBean> partsWorkerStockBeans = workerPartsStockLogic.existWorkerStockList(workerOrderBuy.getIdentity(), workerOrderBuy.getWebsitId(),
+                adminWebsit.getPartsWebsitId(), "NEW", workerOrderItem.getGoodsCode(), null, null);
+
+        if (CollectionUtils.isEmpty(partsWorkerStockBeans))
+            throw new RemoteServiceException("传参有误");
+
+
+        PartsWorkerStockBean partsWorkerStockBean = partsWorkerStockBeans.get(0);
 
 
 
 
-        if (websitGoods.getNormType().equals("S"))
-            workerOrderItem.setNormAmount(workerOrderItem.getNormAmount());
-        else
-            workerOrderItem.setNormAmount(websitGoods.getMarketPrice());
+
+        workerOrderItem.setGoodsCode(partsWorkerStockBean.getGoodsId());
+
+
+        workerOrderItem.setNormAmount(partsWorkerStockBean.getMarketPrice());
 
 
         workerOrderItem.setGoodsAmount(workerOrderItem.getNormAmount());
         workerOrderItem.setGoodsAmount(workerOrderItem.getNormAmount());
 
 
 
 
         workerOrderItem.setTotalAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
         workerOrderItem.setTotalAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
 
-        workerOrderItem.setUnit(websitGoods.getGoodsSalesUnit());
+        workerOrderItem.setUnit(partsWorkerStockBean.getGoodsStockUnit());
 
 
-        if (websitGoods.getNormType().equals("M")) {
-            workerOrderItem.setChargeType("ACC");
 
 
-            workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
+        workerOrderItem.setChargeType("ACC");
+        workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
 
-        }else {
-            workerOrderItem.setChargeType("SERV");
-
-            workerOrderItem.setWorkerAmount(workerOrderItem.getNormAmount().multiply(Convert.toBigDecimal(workerOrderItem.getNum())));
 
 
-        }
 
 
         BigDecimal workerProceAmount = workerOrderItem.getWorkerAmount().multiply(Convert.toBigDecimal("0.006"));
         BigDecimal workerProceAmount = workerOrderItem.getWorkerAmount().multiply(Convert.toBigDecimal("0.006"));