Pārlūkot izejas kodu

支付加限制金额

suochencheng 6 gadi atpakaļ
vecāks
revīzija
568646eadc

+ 7 - 3
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.java

@@ -1,16 +1,18 @@
 package com.izouma.awesomeadmin.dao;
 
+import java.math.BigDecimal;
 import java.util.*;
+
 import com.izouma.awesomeadmin.datasource.DataSource;
 import org.springframework.stereotype.Repository;
 import com.izouma.awesomeadmin.model.PayCodeOrder;
 
 
 /**
-*  Dao接口
-*/
+ * Dao接口
+ */
 @Repository("com.zoumaframe.dao.PayCodeOrderMapper")
-public interface PayCodeOrderMapper{
+public interface PayCodeOrderMapper {
     /*generatedStart*/
     int deleteByPrimaryKey(Integer id);
 
@@ -34,5 +36,7 @@ public interface PayCodeOrderMapper{
     List<PayCodeOrder> queryAutoCancelPayCodeOrderList(PayCodeOrder record);
 
     List<PayCodeOrder> queryReportPayCodeOrder(PayCodeOrder record);
+
+    BigDecimal getTotalPayMoney(PayCodeOrder record);
 }
 

+ 25 - 0
src/main/java/com/izouma/awesomeadmin/dao/PayCodeOrderMapper.xml

@@ -641,6 +641,31 @@
         ORDER BY id DESC
     </select>
 
+
+    <select id="getTotalPayMoney" parameterType="java.util.Map"
+            resultType="decimal">
+        SELECT
+        SUM(pay_money) AS money
+        FROM
+        pay_code_order
+        WHERE
+        del_flag = 'N'
+        AND status_flag = 1
+        <if test="codeId != null and !&quot;&quot;.equals(codeId)">
+            and code_id  = #{codeId}
+        </if>
+        <if test="stockId != null and !&quot;&quot;.equals(stockId)">
+            and stock_id = #{stockId}
+        </if>
+        <if test="searchBeginTime != null and !&quot;&quot;.equals(searchBeginTime)">
+            and pay_time  <![CDATA[ >= ]]> #{searchBeginTime}
+        </if>
+        <if test="searchEndTime != null and !&quot;&quot;.equals(searchEndTime)">
+            and pay_time  <![CDATA[ <= ]]> #{searchEndTime}
+        </if>
+
+    </select>
+
     <resultMap id="PagePayCodeOrderResult" type="com.izouma.awesomeadmin.model.PayCodeOrder" extends="BaseResultMap">
 
         <association property="productInfo"

+ 27 - 9
src/main/java/com/izouma/awesomeadmin/service/impl/PayCodeOrderServiceImpl.java

@@ -1,10 +1,7 @@
 package com.izouma.awesomeadmin.service.impl;
 
 import com.izouma.awesomeadmin.constant.AppConstant;
-import com.izouma.awesomeadmin.dao.MemberCoinMapper;
-import com.izouma.awesomeadmin.dao.PayCodeOrderMapper;
-import com.izouma.awesomeadmin.dao.PayCodeStockMapper;
-import com.izouma.awesomeadmin.dao.ProductInfoMapper;
+import com.izouma.awesomeadmin.dao.*;
 import com.izouma.awesomeadmin.dto.Page;
 import com.izouma.awesomeadmin.dto.Result;
 import com.izouma.awesomeadmin.model.*;
@@ -35,6 +32,9 @@ public class PayCodeOrderServiceImpl implements PayCodeOrderService {
     @Autowired
     private PayCodeStockMapper payCodeStockMapper;
 
+    @Autowired
+    private PayCodeInfoMapper payCodeInfoMapper;
+
     @Autowired
     private ProductInfoMapper productInfoMapper;
 
@@ -254,14 +254,32 @@ public class PayCodeOrderServiceImpl implements PayCodeOrderService {
             record.setPayTime(new Date());
             payCodeOrderMapper.updateByPrimaryKeySelective(record);
 
-            PayCodeStock payCodeStock = payCodeOrder.getPayCodeStock();
-            if (payCodeStock != null) {
-                if ("Y".equals(payCodeStock.getRegenerate())) {//再生
-                    payCodeStock.setAmount(payCodeStock.getAmount() + 1);
-                    payCodeStockMapper.updateByPrimaryKeySelective(payCodeStock);
+
+            PayCodeInfo payCodeInfo = payCodeOrder.getPayCodeInfo();
+            if (payCodeInfo != null) {
+
+                PayCodeOrder checkPay = new PayCodeOrder();
+                checkPay.setCodeId(payCodeInfo.getId());
+                BigDecimal totalPayMoney = payCodeOrderMapper.getTotalPayMoney(checkPay);
+
+                if (totalPayMoney.compareTo(payCodeInfo.getLimitMoney()) >= 0) {
+                    payCodeInfo.setUseFlag("N");
+                    payCodeInfo.setRemark("超出限制金额,更新为不可以");
+                    payCodeInfoMapper.updateByPrimaryKeySelective(payCodeInfo);
+                } else {
+                    PayCodeStock payCodeStock = payCodeOrder.getPayCodeStock();
+                    if (payCodeStock != null) {
+                        if ("Y".equals(payCodeStock.getRegenerate())) {//再生
+                            payCodeStock.setAmount(payCodeStock.getAmount() + 1);
+                            payCodeStockMapper.updateByPrimaryKeySelective(payCodeStock);
+                        }
+                    }
                 }
+
+
             }
 
+
             /**
              * 二级分润 开始
              */

+ 3 - 0
src/main/vue/src/pages/PayCodeInfo.vue

@@ -98,6 +98,9 @@ export default {
                 payType: [
                     { required: true, message: '请输入 类型', trigger: 'blur' },
                 ],
+                limitMoney: [
+                    { required: true, message: '请输入 限制金额', trigger: 'blur' },
+                ],
                 image: [
                     {
                         required: true,