|
@@ -17,6 +17,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
|
|
|
import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
|
|
|
+import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
|
|
|
import com.ym.mec.biz.dal.entity.MemberFeeSetting;
|
|
|
import com.ym.mec.biz.dal.entity.MemberRankPrivileges;
|
|
|
import com.ym.mec.biz.dal.entity.MemberRankSetting;
|
|
@@ -29,6 +30,7 @@ import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
|
import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.service.CloudTeacherOrderService;
|
|
|
import com.ym.mec.biz.service.ContractService;
|
|
|
import com.ym.mec.biz.service.MemberFeeSettingService;
|
|
|
import com.ym.mec.biz.service.MemberRankSettingService;
|
|
@@ -65,10 +67,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
|
|
|
@Autowired
|
|
|
private ContractService contractService;
|
|
|
-
|
|
|
+
|
|
|
@Autowired
|
|
|
private SysUserFeignService sysUserFeignService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
+
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
@Override
|
|
@@ -121,7 +126,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
if (student == null) {
|
|
|
throw new BizException("非法访问");
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
SysUser user = sysUserFeignService.queryUserById(userId);
|
|
|
|
|
|
Integer organId = user.getOrganId();
|
|
@@ -140,20 +145,30 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
throw new BizException("分部会员价格出现异常");
|
|
|
}
|
|
|
|
|
|
+ CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
|
|
|
+
|
|
|
BigDecimal actualAmount = BigDecimal.ZERO;
|
|
|
|
|
|
switch (periodEnum) {
|
|
|
case DAY:
|
|
|
actualAmount = memberFeeSetting.getCurrentDayFee();
|
|
|
+ cloudTeacherOrder.setType(1);
|
|
|
+ cloudTeacherOrder.setTime(1);
|
|
|
break;
|
|
|
case MONTH:
|
|
|
actualAmount = memberFeeSetting.getCurrentMonthFee();
|
|
|
+ cloudTeacherOrder.setType(2);
|
|
|
+ cloudTeacherOrder.setTime(1);
|
|
|
break;
|
|
|
case YEAR_HALF:
|
|
|
actualAmount = memberFeeSetting.getCurrentHalfYearFee();
|
|
|
+ cloudTeacherOrder.setType(2);
|
|
|
+ cloudTeacherOrder.setTime(6);
|
|
|
break;
|
|
|
case YEAR:
|
|
|
actualAmount = memberFeeSetting.getCurrentYearFee();
|
|
|
+ cloudTeacherOrder.setType(3);
|
|
|
+ cloudTeacherOrder.setTime(1);
|
|
|
break;
|
|
|
|
|
|
default:
|
|
@@ -198,7 +213,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
sysUserCashAccountService.updateBalance(userId, amount.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "购买会员");
|
|
|
|
|
|
- orderCallback(studentPaymentOrder);
|
|
|
} else {
|
|
|
if (userCashAccount.getBalance().doubleValue() > 0) {
|
|
|
sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "购买会员");
|
|
@@ -208,7 +222,22 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- return studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
+ Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
+
|
|
|
+ // 订单明细
|
|
|
+ cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
|
|
|
+ cloudTeacherOrder.setStudentId(studentPaymentOrder.getUserId());
|
|
|
+ cloudTeacherOrder.setLevel(memberRankId);
|
|
|
+ cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
|
|
|
+ cloudTeacherOrder.setStatus(0);
|
|
|
+ cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
+ cloudTeacherOrderService.insert(cloudTeacherOrder);
|
|
|
+
|
|
|
+ if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
+ orderCallback(studentPaymentOrder);
|
|
|
+ }
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -236,8 +265,30 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
|
|
|
// 支付成功
|
|
|
if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
+ // 查询会员订单信息
|
|
|
+ CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
|
|
|
+ cloudTeacherOrder.setStatus(1);
|
|
|
+ cloudTeacherOrder.setUpdateTime(nowDate);
|
|
|
+ cloudTeacherOrderService.update(cloudTeacherOrder);
|
|
|
+
|
|
|
+ PeriodEnum periodEnum = PeriodEnum.MONTH;
|
|
|
+ switch (cloudTeacherOrder.getType()) {
|
|
|
+ case 1:
|
|
|
+ periodEnum = PeriodEnum.DAY;
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ periodEnum = PeriodEnum.MONTH;
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ periodEnum = PeriodEnum.YEAR;
|
|
|
+ break;
|
|
|
+
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
// 添加会员有效时长
|
|
|
- studentService.updateMemberRank(userId,Integer.parseInt(studentPaymentOrder.getMusicGroupId()));
|
|
|
+ studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
|
|
|
|
|
|
// 插入交易明细
|
|
|
BigDecimal amount = studentPaymentOrder.getActualAmount();
|