|
@@ -213,26 +213,13 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
String[] checkCoupon = CouponDetailTypeEnum.getAllowType(MEMBER);
|
|
|
//使用优惠券
|
|
|
StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(dto.getCouponIdList(), amount, true, checkCoupon);
|
|
|
+ //写入redis证明是活动购买
|
|
|
+ String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
+ studentPaymentOrder.setOrderNo(orderNo);
|
|
|
+ RBucket<Object> cache = redissonClient.getBucket(BUY_2_QQHE_LOCK + orderNo);
|
|
|
+ cache.set(totalMonth, 35, TimeUnit.MINUTES);
|
|
|
//创建订单
|
|
|
Map<String, Object> result = getMap(dto.getAmount(), dto.getUseBalancePayment(), sysUser.getId(), sysUser.getOrganId(), studentPaymentOrder);
|
|
|
- //写cloud order
|
|
|
- LocalDate now = LocalDate.now();
|
|
|
- CloudTeacherOrder cto = new CloudTeacherOrder();
|
|
|
- cto.setStatus(0);//0 未生效
|
|
|
- cto.setOrganId(sysUser.getOrganId());
|
|
|
- cto.setStudentId(sysUser.getId());
|
|
|
- cto.setType(PeriodEnum.MONTH);
|
|
|
- cto.setLevel(1);
|
|
|
- cto.setTime(totalMonth.intValue());
|
|
|
- cto.setAmount(studentPaymentOrder.getActualAmount().add(studentPaymentOrder.getBalancePaymentAmount()));
|
|
|
- cto.setStartTime(now.toDate());
|
|
|
- cto.setEndTime(now.plusMonths(totalMonth.intValue()).toDate());
|
|
|
- cto.setOrderId(studentPaymentOrder.getId());
|
|
|
- cto.setCreateTime(new Date());
|
|
|
- cloudTeacherOrderService.insert(cto);
|
|
|
- //写入redis证明是活动购买
|
|
|
- RBucket<Object> cache = redissonClient.getBucket(BUY_2_QQHE_LOCK + studentPaymentOrder.getOrderNo());
|
|
|
- cache.set(1, 35, TimeUnit.MINUTES);
|
|
|
return BaseController.succeed(result);
|
|
|
}
|
|
|
|
|
@@ -323,8 +310,10 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
if (UseBalance) {
|
|
|
useBalanceAmount(studentPaymentOrder, "购买会员");
|
|
|
}
|
|
|
- String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
- studentPaymentOrder.setOrderNo(orderNo);
|
|
|
+ if (StringUtils.isBlank(studentPaymentOrder.getOrderNo())) {
|
|
|
+ String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
+ studentPaymentOrder.setOrderNo(orderNo);
|
|
|
+ }
|
|
|
studentPaymentOrder.setCreateTime(date);
|
|
|
studentPaymentOrder.setUpdateTime(date);
|
|
|
studentPaymentOrder.setVersion(0);
|
|
@@ -403,25 +392,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
logger.info("orderCallback >>> member param organId {} orderTime {} activityDate {} cache {}", sysUser.getOrganId(), studentPaymentOrder.getCreateTime(), activityDate, cache.isExists());
|
|
|
//分部编号59 并且下单时间大于等于activityDateStr todo 并且redis能查询到的就算齐齐哈尔活动购买的
|
|
|
if (sysUser.getOrganId() == 59 && studentPaymentOrder.getCreateTime().after(activityDate) && cache.isExists()) {
|
|
|
- //修改 cloudTeacherOrderService
|
|
|
- CloudTeacherOrder cloudTeacherOrder = cloudTeacherOrderService.queryByOrderId(studentPaymentOrder.getId());
|
|
|
- cloudTeacherOrder.setStatus(2);
|
|
|
- cloudTeacherOrder.setUpdateTime(nowDate);
|
|
|
- cloudTeacherOrderService.update(cloudTeacherOrder);
|
|
|
- //修改student 查询学生现在的会员过期没,如果过期了就按现在时间来,如果没过期就在结束时间上叠加
|
|
|
- logger.info("orderCallback >>> member MembershipStartTime {} now {}", student.getMembershipStartTime(), nowDate);
|
|
|
- if (Objects.nonNull(student.getMembershipStartTime()) && student.getMembershipStartTime().getTime() >= nowDate.getTime()) {
|
|
|
- student.setMembershipEndTime(DateUtil.addMonths(student.getMembershipEndTime(), cloudTeacherOrder.getTime()));
|
|
|
- } else {
|
|
|
- student.setMembershipStartTime(cloudTeacherOrder.getStartTime());
|
|
|
- student.setMembershipEndTime(cloudTeacherOrder.getEndTime());
|
|
|
- }
|
|
|
- student.setMemberRankSettingId(1);
|
|
|
- studentService.update(student);
|
|
|
- //发送激活信息
|
|
|
- Map<Integer, String> userPhones = new HashMap<>();
|
|
|
- userPhones.put(sysUser.getId(), sysUser.getPhone());
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CLOUD_TEACHER_ORDER_SUCCESS, userPhones, null, 0, null, null);
|
|
|
+ //齐齐哈尔会员活动
|
|
|
+ qqheMemberActivity(studentPaymentOrder, student, sysUser, cache);
|
|
|
//删除标记
|
|
|
cache.delete();
|
|
|
} else {
|
|
@@ -459,6 +431,40 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ //齐齐哈尔会员活动
|
|
|
+ private void qqheMemberActivity(StudentPaymentOrder studentPaymentOrder, Student student, SysUser sysUser, RBucket<Object> cache) {
|
|
|
+ BigDecimal totalMonth = (BigDecimal) cache.get();
|
|
|
+ //写cloud order
|
|
|
+ LocalDate now = LocalDate.now();
|
|
|
+ CloudTeacherOrder cto = new CloudTeacherOrder();
|
|
|
+ cto.setStatus(2);
|
|
|
+ cto.setOrganId(sysUser.getOrganId());
|
|
|
+ cto.setStudentId(sysUser.getId());
|
|
|
+ cto.setType(PeriodEnum.MONTH);
|
|
|
+ cto.setLevel(1);
|
|
|
+ cto.setTime(totalMonth.intValue());
|
|
|
+ cto.setAmount(studentPaymentOrder.getActualAmount().add(studentPaymentOrder.getBalancePaymentAmount()));
|
|
|
+ cto.setStartTime(now.toDate());
|
|
|
+ cto.setEndTime(now.plusMonths(totalMonth.intValue()).toDate());
|
|
|
+ cto.setOrderId(studentPaymentOrder.getId());
|
|
|
+ cto.setCreateTime(new Date());
|
|
|
+ cloudTeacherOrderService.insert(cto);
|
|
|
+ //修改student 查询学生现在的会员过期没,如果过期了就按现在时间来,如果没过期就在结束时间上叠加
|
|
|
+ logger.info("orderCallback >>> member MembershipStartTime {} now {}", student.getMembershipStartTime(), now);
|
|
|
+ if (Objects.nonNull(student.getMembershipStartTime()) && student.getMembershipStartTime().getTime() >= now.toDate().getTime()) {
|
|
|
+ student.setMembershipEndTime(DateUtil.addMonths(student.getMembershipEndTime(), cto.getTime()));
|
|
|
+ } else {
|
|
|
+ student.setMembershipStartTime(cto.getStartTime());
|
|
|
+ student.setMembershipEndTime(cto.getEndTime());
|
|
|
+ }
|
|
|
+ student.setMemberRankSettingId(1);
|
|
|
+ studentService.update(student);
|
|
|
+ //发送激活信息
|
|
|
+ Map<Integer, String> userPhones = new HashMap<>();
|
|
|
+ userPhones.put(sysUser.getId(), sysUser.getPhone());
|
|
|
+ sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CLOUD_TEACHER_ORDER_SUCCESS, userPhones, null, 0, null, null);
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
public HttpResponseResult ActiveBuy(Integer userId, Integer memberRankId, PeriodEnum month, BigDecimal amount, boolean isUseBalance, Integer buyNum, int giveNum, int activeRemark, String remark, boolean repay) throws Exception {
|