Browse Source

增加最大收款金额

周箭河 4 năm trước cách đây
mục cha
commit
d4038bc138

+ 33 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SporadicChargeInfo.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
@@ -68,6 +69,14 @@ public class SporadicChargeInfo {
 
 	private Integer paidNum;
 
+	@ApiModelProperty(value = "最大缴费金额", required = true)
+	private BigDecimal maxAmount;
+
+	private BigDecimal paidAmount;
+
+	@ApiModelProperty(value = "是否开启最大缴费金额限制 1 开启 0-关闭", required = true)
+	private YesOrNoEnum openMaxTerm;
+
 	private Integer version;
 
 	public String getMusicGroupName() {
@@ -261,4 +270,28 @@ public class SporadicChargeInfo {
 	public void setVersion(Integer version) {
 		this.version = version;
 	}
+
+	public BigDecimal getMaxAmount() {
+		return maxAmount;
+	}
+
+	public void setMaxAmount(BigDecimal maxAmount) {
+		this.maxAmount = maxAmount;
+	}
+
+	public BigDecimal getPaidAmount() {
+		return paidAmount;
+	}
+
+	public void setPaidAmount(BigDecimal paidAmount) {
+		this.paidAmount = paidAmount;
+	}
+
+	public YesOrNoEnum getOpenMaxTerm() {
+		return openMaxTerm;
+	}
+
+	public void setOpenMaxTerm(YesOrNoEnum openMaxTerm) {
+		this.openMaxTerm = openMaxTerm;
+	}
 }

+ 4 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -298,12 +298,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (!(amount.compareTo(sporadicPayDto.getAmount()) == 0)) {
             throw new BizException("订单金额异常");
         }
-
-        if (chargeInfo.getMaxNum() != null) {
-            if(chargeInfo.getMaxNum() <= chargeInfo.getPaidNum()){
+        if (chargeInfo.getMaxAmount() != null) {
+            if (chargeInfo.getOpenMaxTerm().equals(YesOrNoEnum.YES) && chargeInfo.getMaxAmount().compareTo(chargeInfo.getPaidAmount()) <= 0) {
                 throw new Exception("活动人数暂时已满,请稍后再试");
             }
-            chargeInfo.setPaidNum(chargeInfo.getPaidNum() + 1);
+            chargeInfo.setPaidAmount(chargeInfo.getPaidAmount().add(chargeInfo.getAmount()));
             chargeInfo.setUpdateTime(new Date());
             int update = sporadicChargeInfoDao.update(chargeInfo);
             if (update <= 0) {
@@ -405,6 +404,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         return payMap;
     }
 
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Map pay(RegisterPayDto registerPayDto) throws Exception {

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SporadicChargeInfoImpl.java

@@ -148,12 +148,12 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             return true;
         }
         if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
-            if (info.getMaxNum() != null && info.getPaidNum() > 0) {
-                info.setPaidNum(info.getPaidNum() - 1);
+            if (info.getMaxAmount() != null && info.getPaidAmount().compareTo(BigDecimal.ZERO) > 0) {
+                info.setPaidAmount(info.getPaidAmount().subtract(studentPaymentOrder.getActualAmount()));
                 info.setUpdateTime(new Date());
                 int update = sporadicChargeInfoDao.update(info);
                 if (update <= 0) {
-                    throw new BizException("人数更新失败,请重试");
+                    throw new BizException("已收金额更新失败,请重试");
                 }
             }
             if (info.getOrganId().equals(42) && info.getChargeType().equals(SporadicChargeTypeEnum.LEVEL)) {

+ 14 - 3
mec-biz/src/main/resources/config/mybatis/SporadicChargeInfo.xml

@@ -20,7 +20,9 @@
         <result column="user_id_" property="userId"/>
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="max_num_" property="maxNum"/>
-        <result column="paid_num_" property="paidNum"/>
+        <result column="max_amount_" property="maxAmount"/>
+        <result column="paid_amount_" property="paidAmount"/>
+        <result column="open_max_term_" property="openMaxTerm" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="version_" property="version"/>
     </resultMap>
 
@@ -43,10 +45,10 @@
             useGeneratedKeys="true" keyColumn="id" keyProperty="id">
         INSERT INTO sporadic_charge_info
         (title_, charge_type_, organ_id_, amount_, discount_amount_, detail_, create_time_, update_time_, operator_id_,
-         user_id_, music_group_id_, max_num_)
+         user_id_, music_group_id_, max_num_,max_amount_,open_max_term_)
         VALUES (#{title}, #{chargeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
                 #{organId}, #{amount}, #{discountAmount}, #{detail}, now(), now(), #{operatorId}, #{userId},
-                #{musicGroupId}, #{maxNum})
+                #{musicGroupId}, #{maxNum},#{maxAmount},#{openMaxTerm})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -92,6 +94,15 @@
             <if test="paidNum != null">
                 paid_num_ = #{paidNum},
             </if>
+            <if test="maxAmount != null">
+                max_amount_ = #{maxAmount},
+            </if>
+            <if test="paidAmount != null">
+                paid_amount_ = #{paidAmount},
+            </if>
+            <if test="openMaxTerm != null">
+                open_max_term_ = #{openMaxTerm},
+            </if>
             <if test="version != null">
                 version_ = version_+1,
             </if>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -72,7 +72,7 @@ public class SporadicChargeInfoController extends BaseController {
         }
         SporadicChargeInfo info = sporadicChargeInfoService.get(sporadicPayDto.getSporadicId());
 
-        if (info.getMaxNum() != null) {
+        if (info.getMaxAmount() != null) {
             String msg = "";
             for (int i = 1; i <= 100; i++) {
                 try {