|
@@ -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;
|
|
|
}
|
|
|
|