zouxuan 3 rokov pred
rodič
commit
89e23ba17d

+ 128 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MemberPayParamDto.java

@@ -0,0 +1,128 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.PeriodEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public class MemberPayParamDto{
+    @ApiModelProperty(value = "购买次数", required = false)
+    private Integer buyNum;
+
+    private Integer giveNum;
+
+    private Integer activeRemark;
+
+    private String remark;
+
+    @ApiModelProperty(value = "优惠券列表", required = false)
+    private Integer memberRankId;
+
+    private PeriodEnum periodEnum;
+
+    private BigDecimal amount;
+
+    private boolean isUseBalance;
+
+    private Integer userId;
+
+    @ApiModelProperty(value = "优惠券列表", required = false)
+    private List<Integer> couponIdList;
+
+    public List<Integer> getCouponIdList() {
+        return couponIdList;
+    }
+
+    public void setCouponIdList(List<Integer> couponIdList) {
+        this.couponIdList = couponIdList;
+    }
+
+    public Integer getBuyNum() {
+        return buyNum;
+    }
+
+    public void setBuyNum(Integer buyNum) {
+        this.buyNum = buyNum;
+    }
+
+    public Integer getGiveNum() {
+        return giveNum;
+    }
+
+    public void setGiveNum(Integer giveNum) {
+        this.giveNum = giveNum;
+    }
+
+    public Integer getActiveRemark() {
+        return activeRemark;
+    }
+
+    public void setActiveRemark(Integer activeRemark) {
+        this.activeRemark = activeRemark;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public void setRemark(String remark) {
+        this.remark = remark;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public Integer getMemberRankId() {
+        return memberRankId;
+    }
+
+    public void setMemberRankId(Integer memberRankId) {
+        this.memberRankId = memberRankId;
+    }
+
+    public PeriodEnum getPeriodEnum() {
+        return periodEnum;
+    }
+
+    public void setPeriodEnum(PeriodEnum periodEnum) {
+        this.periodEnum = periodEnum;
+    }
+
+    public BigDecimal getAmount() {
+        return amount;
+    }
+
+    public void setAmount(BigDecimal amount) {
+        this.amount = amount;
+    }
+
+    public boolean isUseBalance() {
+        return isUseBalance;
+    }
+
+    public void setUseBalance(boolean useBalance) {
+        isUseBalance = useBalance;
+    }
+
+    @Override
+    public String toString() {
+        return "MemberPayParamDto{" +
+                "buyNum=" + buyNum +
+                ", giveNum=" + giveNum +
+                ", activeRemark=" + activeRemark +
+                ", remark='" + remark + '\'' +
+                ", memberRankId=" + memberRankId +
+                ", periodEnum=" + periodEnum +
+                ", amount=" + amount +
+                ", isUseBalance=" + isUseBalance +
+                ", userId=" + userId +
+                ", couponIdList=" + couponIdList +
+                '}';
+    }
+}

+ 2 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/MemberRankSettingService.java

@@ -4,6 +4,7 @@ import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
+import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
@@ -33,14 +34,7 @@ public interface MemberRankSettingService extends BaseService<Integer, MemberRan
 	 * @param remark 备注
 	 * @return
 	 */
-	Map buy(Integer userId,
-			Integer memberRankId,
-			PeriodEnum periodEnum,
-			BigDecimal amount,
-			boolean isUseBalance,
-			Integer buyNum,
-			Integer giveNum,
-			Integer activeRemark,String remark) throws Exception;
+	Map buy(MemberPayParamDto memberPayParamDto) throws Exception;
 	
 	/**
 	 * 订单回调

+ 27 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -144,22 +145,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
-	public Map buy(Integer userId,
-				   Integer memberRankId,
-				   PeriodEnum periodEnum,
-				   BigDecimal amount,
-				   boolean isUseBalance,
-				   Integer buyNum,
-				   Integer giveNum,
-				   Integer activeRemark,String remark) throws Exception {
-		logger.info("云教练活动购买:userId:{} memberRankId:{} periodEnum:{} amount:{} isUseBalance:{} buyNum:{} giveNum:{} activeRemark:{} remark:{}",
-				userId,memberRankId,periodEnum,amount,isUseBalance,buyNum,giveNum,activeRemark,remark);
+	public Map buy(MemberPayParamDto memberPayParamDto) throws Exception {
+		logger.info("云教练活动购买:memberPayParamDto:{} ",memberPayParamDto);
+		Integer userId = memberPayParamDto.getUserId();
+		BigDecimal amount = memberPayParamDto.getAmount();
+		Integer memberRankId = memberPayParamDto.getMemberRankId();
 		Student student = studentService.getLocked(userId);
 		if (student == null) {
 			throw new BizException("非法访问");
 		}
 		//是否可以购买
-		buyCloudTeacherActive(userId,activeRemark,remark);
+		buyCloudTeacherActive(userId,memberPayParamDto.getActiveRemark(),memberPayParamDto.getRemark());
 		SysUser user = sysUserFeignService.queryUserById(userId);
 
 		Integer organId = user.getOrganId();
@@ -182,17 +178,17 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 		BigDecimal actualAmount = BigDecimal.ZERO;
 
-		switch (periodEnum) {
+		switch (memberPayParamDto.getPeriodEnum()) {
 			case DAY:
 				actualAmount = memberFeeSetting.getCurrentDayFee();
 				cloudTeacherOrder.setType(1);
 				cloudTeacherOrder.setTime(1);
 				break;
 			case MONTH:
-				actualAmount = memberFeeSetting.getCurrentMonthFee().multiply(new BigDecimal(buyNum));
+				actualAmount = memberFeeSetting.getCurrentMonthFee().multiply(new BigDecimal(memberPayParamDto.getBuyNum()));
 				cloudTeacherOrder.setType(2);
 				//购买月份加上赠送月份,目前只有按月购买的活动,其他的暂不处理
-				cloudTeacherOrder.setTime(buyNum + giveNum);
+				cloudTeacherOrder.setTime(memberPayParamDto.getBuyNum() + memberPayParamDto.getGiveNum());
 				break;
 			case QUARTERLY:
 				actualAmount = memberFeeSetting.getCurrentQuarterlyFee();
@@ -221,14 +217,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 		Date date = new Date();
 
-		StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+		StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(),amount,true);
+		amount = studentPaymentOrder.getActualAmount();
 		studentPaymentOrder.setUserId(userId);
 		studentPaymentOrder.setOrganId(organId);
 		studentPaymentOrder.setRoutingOrganId(organId);
 		studentPaymentOrder.setCreateTime(date);
 		studentPaymentOrder.setUpdateTime(date);
-		studentPaymentOrder.setExpectAmount(amount);
-		studentPaymentOrder.setActualAmount(amount);
 		studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
 		studentPaymentOrder.setStatus(DealStatusEnum.ING);
 		studentPaymentOrder.setVersion(0);
@@ -240,7 +235,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		studentPaymentOrder.setPaymentChannel("BALANCE");
 		studentPaymentOrder.setMusicGroupId(memberRankId + "");
 
-		if (isUseBalance) {
+		if (memberPayParamDto.isUseBalance()) {
 			SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
 			if (userCashAccount == null) {
 				throw new BizException("用户账户找不到");
@@ -270,13 +265,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 		cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
 		cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
 		cloudTeacherOrder.setLevel(memberRankId);
-		cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
+		cloudTeacherOrder.setAmount(amount);
 		cloudTeacherOrder.setStatus(0);
 		cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
 		cloudTeacherOrder.setCreateTime(date);
 		cloudTeacherOrder.setUpdateTime(date);
-		cloudTeacherOrder.setActiveRemark(activeRemark);
-		cloudTeacherOrder.setRemark(remark);
+		cloudTeacherOrder.setActiveRemark(memberPayParamDto.getActiveRemark());
+		cloudTeacherOrder.setRemark(memberPayParamDto.getRemark());
 		cloudTeacherOrderService.insert(cloudTeacherOrder);
 
 		Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
@@ -315,7 +310,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 				sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(),
 						PlatformCashAccountDetailTypeEnum.REFUNDS, "购买会员支付失败");
 			}
-
+			sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
 			return true;
 		}
 
@@ -446,14 +441,16 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
 
 		}
 		result.setCode(HttpStatus.OK.value());
-		result.setData(this.buy(userId,
-				memberRankId,
-				month,
-				amount,
-				isUseBalance,
-				buyNum,
-				giveNum,
-				activeRemark,remark));
+		MemberPayParamDto memberPayParamDto = new MemberPayParamDto();
+		memberPayParamDto.setMemberRankId(memberRankId);
+		memberPayParamDto.setUserId(userId);
+		memberPayParamDto.setPeriodEnum(month);
+		memberPayParamDto.setUseBalance(isUseBalance);
+		memberPayParamDto.setBuyNum(buyNum);
+		memberPayParamDto.setGiveNum(giveNum);
+		memberPayParamDto.setActiveRemark(activeRemark);
+		memberPayParamDto.setRemark(remark);
+		result.setData(this.buy(memberPayParamDto));
 		return result;
 	}
 

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

@@ -3081,7 +3081,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     		calenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.NON_PAYMENT);
     		calenderDetail.setUpdateTime(date);
     		musicGroupPaymentCalenderDetailDao.update(calenderDetail);
-    		
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().doubleValue() > 0) {
                 sysUserCashAccountService.updateBalance(userId, studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS,
                         "乐团续费失败");

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

@@ -52,6 +52,8 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
     private ContractService contractService;
     @Autowired
     private LuckDrawCountService luckDrawCountService;
+    @Autowired
+    private SysCouponCodeService sysCouponCodeService;
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -171,7 +173,7 @@ public class SporadicChargeInfoImpl extends BaseServiceImpl<Integer, SporadicCha
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                 sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, info.getTitle() + "支付失败");
             }
-
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_PUSH_SPORADIC_PAYMENT_FAILED, map, null, 0, "", "STUDENT",
                     studentPaymentOrder.getActualAmount(), info.getTitle());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_PUSH_SPORADIC_PAYMENT_FAILED, yimei, null, 0, "", "",

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentInstrumentServiceImpl.java

@@ -272,7 +272,7 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                 sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "乐保购买支付失败");
             }
-
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_PUSH_SPORADIC_PAYMENT_FAILED, map, null, 0, null, "STUDENT",
                     studentPaymentOrder.getActualAmount(), "乐保购买");
             return false;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRepairServiceImpl.java

@@ -1133,7 +1133,7 @@ public class StudentRepairServiceImpl extends BaseServiceImpl<Integer, StudentRe
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                 sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "乐器维修支付失败");
             }
-
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_PUSH_SPORADIC_PAYMENT_FAILED, map, null, 0, null, "STUDENT",
                     studentPaymentOrder.getActualAmount(), "乐器维修");
             return false;

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

@@ -79,6 +79,8 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
     private StudentRegistrationDao studentRegistrationDao;
     @Autowired
     private MusicGroupSubjectPlanService musicGroupSubjectPlanService;
+    @Autowired
+    private SysCouponCodeService sysCouponCodeService;
 
     private final Logger logger = LoggerFactory.getLogger(this.getClass());
 
@@ -664,7 +666,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh
             if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
                 sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "声部更改支付失败");
             }
-
+            sysCouponCodeService.quit(studentPaymentOrder.getCouponCodeId());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_SMS_PUSH_SPORADIC_PAYMENT_FAILED, map, null, 0, null, "STUDENT",
                     studentPaymentOrder.getActualAmount(), "声部更换");
             return false;

+ 5 - 6
mec-student/src/main/java/com/ym/mec/student/controller/MemberRankController.java

@@ -3,6 +3,7 @@ package com.ym.mec.student.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dto.MemberPayParamDto;
 import com.ym.mec.biz.dal.entity.MemberRankSetting;
 import com.ym.mec.biz.dal.enums.PeriodEnum;
 import com.ym.mec.biz.dal.page.CloudTeacherOrderQueryInfo;
@@ -15,10 +16,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
 import java.util.Date;
@@ -66,12 +64,13 @@ public class MemberRankController extends BaseController {
 
 	@ApiOperation(value = "购买会员")
 	@PostMapping("/buy")
-	public Object buy(Integer memberRankId, PeriodEnum periodEnum, BigDecimal amount, boolean isUseBalance) throws Exception {
+	public Object buy(@RequestBody MemberPayParamDto memberPayParamDto) throws Exception {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-		return succeed(memberRankSettingService.buy(sysUser.getId(), memberRankId, periodEnum, amount, isUseBalance,1,0,null,null));
+		memberPayParamDto.setUserId(sysUser.getId());
+		return succeed(memberRankSettingService.buy(memberPayParamDto));
 	}
 
 	@ApiOperation(value = "2021-09活动购买会员")

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

@@ -303,7 +303,6 @@ public class MusicGroupController extends BaseController {
 
     @ApiOperation(value = "乐团报名支付")
     @PostMapping("/pay")
-    @ApiImplicitParams({@ApiImplicitParam(name = "registerPayDto", value = "支付信息", required = true, dataType = "RegisterPayDto")})
     public HttpResponseResult pay(@RequestBody RegisterPayDto registerPayDto) throws Exception {
 
         StudentRegistration studentRegistration = studentRegistrationService.get(registerPayDto.getRegisterId().longValue());