ソースを参照

订单支付金额判断

huan.wang@yueguanjia.com 5 年 前
コミット
9a0e6ebec8

+ 1 - 1
src/main/java/com/ygj/yuemum/dao/pay/CustomerPayDao.java

@@ -13,5 +13,5 @@ public interface CustomerPayDao {
     CustomerPay queryYSOrderPay(CustomerPay customerPay);
     List<CustomerPay> queryCustomerPayAndVoucher(String cp_orderno);
     int checkCustomerPay (CustomerPay customerPay);
-    int queryPaySumByOrderNo(String cp_orderno);
+    double queryPaySumByOrderNo(String cp_orderno);
 }

+ 10 - 2
src/main/java/com/ygj/yuemum/service/pay/CustomerPayService.java

@@ -26,6 +26,7 @@ import org.springframework.stereotype.Service;
 
 import java.awt.image.BufferedImage;
 import java.io.ByteArrayOutputStream;
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
@@ -104,9 +105,16 @@ public class CustomerPayService {
 
     public int insertYsOrderPay(CustomerPay customerPay) {
         try {
-            int paySum = customerPayDao.queryPaySumByOrderNo(customerPay.getCp_orderno());
             YSOrder ysOrder = ysOrderService.selectByOdNo(customerPay.getCp_orderno());
-            if (ysOrder.getOd_order_pay_amount() == paySum + customerPay.getCp_payamount()) {
+            BigDecimal amount = new BigDecimal(String.valueOf(ysOrder.getOd_order_amount()));
+            BigDecimal d_promotion = new BigDecimal(String.valueOf(ysOrder.getOd_promotion_discount()));
+            BigDecimal d_other = new BigDecimal(String.valueOf(ysOrder.getOd_other_discount()));
+            BigDecimal d_mgm = new BigDecimal(String.valueOf(ysOrder.getOd_mgm_discount()));
+            BigDecimal data1 = amount.subtract(d_promotion).subtract(d_other).subtract(d_mgm);
+            BigDecimal psy_sum = new BigDecimal(String.valueOf(customerPayDao.queryPaySumByOrderNo(customerPay.getCp_orderno())));
+            BigDecimal customer_pay = new BigDecimal(String.valueOf(customerPay.getCp_payamount()));
+            BigDecimal data2 = psy_sum.add(customer_pay);
+            if (data1.compareTo(data2) == 0) {
                 customerPay.setCp_orderstatus(3);
             }
             customerPayDao.insertCustomerPay(customerPay);

+ 1 - 1
src/main/resources/mybatis/mapper/pay/CustomerPayMapper.xml

@@ -58,7 +58,7 @@
     </select>
 
 
-    <select id="queryPaySumByOrderNo" resultType="java.lang.Integer" parameterType="java.lang.String" >
+    <select id="queryPaySumByOrderNo" resultType="java.lang.Double" parameterType="java.lang.String" >
         select
         ifnull(sum(cp_payamount),0)
         from customer_pay