|
@@ -40,7 +40,9 @@ import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
+import com.ym.mec.common.service.IdGeneratorService;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
+import com.ym.mec.util.date.DateUtil;
|
|
|
|
|
|
@Service
|
|
|
public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
|
|
@@ -74,6 +76,9 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
@Autowired
|
|
|
private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private IdGeneratorService idGeneratorService;
|
|
|
+
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
@Override
|
|
@@ -221,8 +226,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
+ String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
+ studentPaymentOrder.setOrderNo(orderNo);
|
|
|
+ studentPaymentOrder.setCreateTime(date);
|
|
|
+ studentPaymentOrder.setUpdateTime(date);
|
|
|
+ studentPaymentOrder.setVersion(0);
|
|
|
+ studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
|
|
|
// 订单明细
|
|
|
cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
|
|
@@ -231,11 +240,11 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
|
|
|
cloudTeacherOrder.setStatus(0);
|
|
|
cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
+ cloudTeacherOrder.setCreateTime(date);
|
|
|
+ cloudTeacherOrder.setUpdateTime(date);
|
|
|
cloudTeacherOrderService.insert(cloudTeacherOrder);
|
|
|
|
|
|
- if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
- orderCallback(studentPaymentOrder);
|
|
|
- }
|
|
|
+ Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
|
|
|
return result;
|
|
|
}
|
|
@@ -243,15 +252,18 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
|
|
|
+
|
|
|
+ Integer userId = studentPaymentOrder.getUserId();
|
|
|
+
|
|
|
+ Student student = studentService.getLocked(userId);
|
|
|
+ if (student == null) {
|
|
|
+ throw new BizException("学员信息不存在");
|
|
|
+ }
|
|
|
+
|
|
|
Date nowDate = new Date();
|
|
|
// 更新订单信息
|
|
|
studentPaymentOrder.setUpdateTime(nowDate);
|
|
|
- int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
- if (updateCount <= 0) {
|
|
|
- throw new BizException("订单更新失败");
|
|
|
- }
|
|
|
-
|
|
|
- Integer userId = studentPaymentOrder.getUserId();
|
|
|
+ studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
|
|
|
if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
|
|
@@ -267,9 +279,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
// 查询会员订单信息
|
|
|
CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
|
|
|
- cloudTeacherOrder.setStatus(1);
|
|
|
+ cloudTeacherOrder.setStatus(2);
|
|
|
cloudTeacherOrder.setUpdateTime(nowDate);
|
|
|
- cloudTeacherOrderService.update(cloudTeacherOrder);
|
|
|
|
|
|
PeriodEnum periodEnum = PeriodEnum.MONTH;
|
|
|
switch (cloudTeacherOrder.getType()) {
|
|
@@ -287,6 +298,31 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
+ if (student.getMemberRankSettingId() == null || nowDate.after(student.getMembershipEndTime())) {
|
|
|
+ cloudTeacherOrder.setStartTime(nowDate);
|
|
|
+ if (cloudTeacherOrder.getType() == 1) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addDays(nowDate, cloudTeacherOrder.getTime()));
|
|
|
+ } else if (cloudTeacherOrder.getType() == 2) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(nowDate, cloudTeacherOrder.getTime()));
|
|
|
+ } else if (cloudTeacherOrder.getType() == 3) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addYears(nowDate, cloudTeacherOrder.getTime()));
|
|
|
+ } else {
|
|
|
+ throw new BizException("不支持的周期类型");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ cloudTeacherOrder.setStartTime(DateUtil.addDays(student.getMembershipEndTime(), 1));
|
|
|
+ if (cloudTeacherOrder.getType() == 1) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addDays(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
|
|
|
+ } else if (cloudTeacherOrder.getType() == 2) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addMonths(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
|
|
|
+ } else if (cloudTeacherOrder.getType() == 3) {
|
|
|
+ cloudTeacherOrder.setEndTime(DateUtil.addYears(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
|
|
|
+ } else {
|
|
|
+ throw new BizException("不支持的周期类型");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ cloudTeacherOrderService.update(cloudTeacherOrder);
|
|
|
// 添加会员有效时长
|
|
|
studentService.updateMemberRank(userId, Integer.parseInt(studentPaymentOrder.getMusicGroupId()), periodEnum, cloudTeacherOrder.getTime());
|
|
|
|