Prechádzať zdrojové kódy

支持手动填写定金金额

zyy 1 týždeň pred
rodič
commit
281a137fa0

+ 4 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsStoreOrderPayCombinationIdParam.java

@@ -5,6 +5,7 @@ import lombok.Data;
 
 import javax.validation.constraints.NotNull;
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 @Data
 public class FsStoreOrderPayCombinationIdParam implements Serializable {
@@ -18,4 +19,7 @@ public class FsStoreOrderPayCombinationIdParam implements Serializable {
 
     //多商城小程序
     private String appId;
+
+    //改价金额
+    private BigDecimal editAmount;
 }

+ 16 - 4
fs-user-app/src/main/java/com/fs/app/controller/store/StoreOrderScrmController.java

@@ -78,6 +78,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.math.BigDecimal;
 import java.math.BigInteger;
+import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
@@ -1375,13 +1376,24 @@ public class StoreOrderScrmController extends AppBaseController {
                         orders.get(i).setPayMoney(orders.get(i).getPayPrice());
                         orders.get(i).setPayDelivery(BigDecimal.ZERO);
                     } else if (param.getPayType().equals(2)) {
-
+                        BigDecimal editAmount = param.getEditAmount();
+                        BigDecimal orderPrice = orders.get(i).getPayPrice();
+                        if (orders.size() > 1 && Objects.equals(2, param.getPayType())) {
+                            return R.error("多店铺订单不能改价");
+                        }
+                        if (ObjectUtil.isNull(editAmount) || param.getEditAmount().compareTo(BigDecimal.ZERO) <= 0) {
+                            return R.error("请输入正确的改价金额");
+                        }
+                        if (editAmount.compareTo(orderPrice) > 0) {
+                            return R.error("改价金额不能大于订单金额");
+                        }
+                        BigDecimal payMoney = editAmount.setScale(2, RoundingMode.HALF_UP);
                         orders.get(i).setPayType("2");
-                        BigDecimal payMoney = orders.get(i).getPayPrice().multiply(new BigDecimal(storeConfig.getPayRate())).divide(new BigDecimal(100));
+//                        BigDecimal payMoney = orders.get(i).getPayPrice().multiply(new BigDecimal(storeConfig.getPayRate())).divide(new BigDecimal(100));
 //                        payMoney = new BigDecimal(payMoney.setScale(0, BigDecimal.ROUND_HALF_UP).longValue());
-                        payMoney = payMoney.setScale(2, BigDecimal.ROUND_HALF_UP);
-                        orders.get(i).setPayDelivery(orders.get(i).getPayPrice().subtract(payMoney));
+                        orders.get(i).setPayDelivery(orderPrice.subtract(payMoney).setScale(2, RoundingMode.HALF_UP));
                         orders.get(i).setPayMoney(payMoney);
+
                     } else if (param.getPayType().equals(3)) {
                         //货到付款
                         orders.get(i).setPayType("3");