|
@@ -4,6 +4,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
|
|
import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
|
|
import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
|
|
import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
import com.ym.mec.biz.dal.dto.MemberPayParamDto;
|
|
import com.ym.mec.biz.dal.dto.MemberPayParamDto;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.entity.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.enums.*;
|
|
@@ -14,8 +15,13 @@ import com.ym.mec.common.entity.HttpResponseResult;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.service.IdGeneratorService;
|
|
import com.ym.mec.common.service.IdGeneratorService;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
|
+import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
|
+import com.ym.mec.util.date.DateUtil;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
+import org.joda.time.LocalDate;
|
|
|
|
+import org.redisson.api.RBucket;
|
|
|
|
+import org.redisson.api.RedissonClient;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -26,281 +32,412 @@ import org.springframework.transaction.annotation.Propagation;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.Date;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.Map;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
|
+import java.util.function.BiPredicate;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.enums.CouponDetailTypeEnum.MEMBER;
|
|
|
|
+
|
|
@Service
|
|
@Service
|
|
public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
|
|
public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
|
|
|
|
|
|
- @Autowired
|
|
|
|
- private MemberRankSettingDao memberRankSettingDao;
|
|
|
|
- @Autowired
|
|
|
|
- private MemberRankPrivilegesDao memberRankPrivilegesDao;
|
|
|
|
- @Autowired
|
|
|
|
- private StudentService studentService;
|
|
|
|
- @Autowired
|
|
|
|
- private StudentPaymentOrderService studentPaymentOrderService;
|
|
|
|
- @Autowired
|
|
|
|
- private SysUserCashAccountService sysUserCashAccountService;
|
|
|
|
- @Autowired
|
|
|
|
- private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
|
- @Autowired
|
|
|
|
- private ContractService contractService;
|
|
|
|
- @Autowired
|
|
|
|
- private SysUserFeignService sysUserFeignService;
|
|
|
|
- @Autowired
|
|
|
|
- private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
|
- @Autowired
|
|
|
|
- private IdGeneratorService idGeneratorService;
|
|
|
|
- @Autowired
|
|
|
|
- private SysCouponCodeService sysCouponCodeService;
|
|
|
|
- @Autowired
|
|
|
|
- private StudentCloudCoachPaymentDetailsService studentCloudCoachPaymentDetailsService;
|
|
|
|
- @Autowired
|
|
|
|
- private CloudCoachPaymentProgramService cloudCoachPaymentProgramService;
|
|
|
|
|
|
+ @Autowired
|
|
|
|
+ private MemberRankSettingDao memberRankSettingDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private MemberRankPrivilegesDao memberRankPrivilegesDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private StudentService studentService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private StudentPaymentOrderService studentPaymentOrderService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserCashAccountService sysUserCashAccountService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private ContractService contractService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysUserFeignService sysUserFeignService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private IdGeneratorService idGeneratorService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysCouponCodeService sysCouponCodeService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private StudentCloudCoachPaymentDetailsService studentCloudCoachPaymentDetailsService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CloudCoachPaymentProgramService cloudCoachPaymentProgramService;
|
|
|
|
+ @Autowired
|
|
|
|
+ private RedissonClient redissonClient;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysConfigDao sysConfigDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private SysMessageService sysMessageService;
|
|
|
|
+
|
|
|
|
+ private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public BaseDAO<Integer, MemberRankSetting> getDAO() {
|
|
|
|
+ return memberRankSettingDao;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void add(MemberRankSetting memberRankSetting) {
|
|
|
|
+ memberRankSettingDao.insert(memberRankSetting);
|
|
|
|
+ List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
|
+ if (memberPrivilegesItemIdList == null || memberPrivilegesItemIdList.size() == 0) {
|
|
|
|
+ throw new BizException("操作失败:请配置会员权益");
|
|
|
|
+ }
|
|
|
|
+ memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
|
+ }
|
|
|
|
|
|
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public MemberRankSetting getDetail(Integer memberRankSettingId) {
|
|
|
|
+ MemberRankSetting memberRankSetting = memberRankSettingDao.get(memberRankSettingId);
|
|
|
|
+ List<MemberRankPrivileges> byRankSettingId = memberRankPrivilegesDao.findByRankSettingId(memberRankSettingId);
|
|
|
|
+ if (byRankSettingId != null && byRankSettingId.size() > 0) {
|
|
|
|
+ memberRankSetting.setMemberRankPrivileges(byRankSettingId);
|
|
|
|
+ memberRankSetting.setMemberPrivilegesItemIdList(byRankSettingId.stream().map(e -> e.getMemberPrivilegesId()).collect(Collectors.toList()));
|
|
|
|
+ }
|
|
|
|
+ return memberRankSetting;
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- public BaseDAO<Integer, MemberRankSetting> getDAO() {
|
|
|
|
- return memberRankSettingDao;
|
|
|
|
- }
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public void updateSetting(MemberRankSetting memberRankSetting) {
|
|
|
|
+ memberRankSettingDao.update(memberRankSetting);
|
|
|
|
+ memberRankPrivilegesDao.deleteByRankSettingId(memberRankSetting.getId());
|
|
|
|
+ List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
|
+ if (memberPrivilegesItemIdList != null && memberPrivilegesItemIdList.size() > 0) {
|
|
|
|
+ memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public void add(MemberRankSetting memberRankSetting) {
|
|
|
|
- memberRankSettingDao.insert(memberRankSetting);
|
|
|
|
- List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
|
- if (memberPrivilegesItemIdList == null || memberPrivilegesItemIdList.size() == 0) {
|
|
|
|
- throw new BizException("操作失败:请配置会员权益");
|
|
|
|
- }
|
|
|
|
- memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
|
- }
|
|
|
|
|
|
+ @Override
|
|
|
|
+ public List<MemberRankSetting> queryListByIsDefault(Boolean isDefault) {
|
|
|
|
+ return memberRankSettingDao.queryListByIsDefault(isDefault);
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- public MemberRankSetting getDetail(Integer memberRankSettingId) {
|
|
|
|
- MemberRankSetting memberRankSetting = memberRankSettingDao.get(memberRankSettingId);
|
|
|
|
- List<MemberRankPrivileges> byRankSettingId = memberRankPrivilegesDao.findByRankSettingId(memberRankSettingId);
|
|
|
|
- if (byRankSettingId != null && byRankSettingId.size() > 0) {
|
|
|
|
- memberRankSetting.setMemberRankPrivileges(byRankSettingId);
|
|
|
|
- memberRankSetting.setMemberPrivilegesItemIdList(byRankSettingId.stream().map(e -> e.getMemberPrivilegesId()).collect(Collectors.toList()));
|
|
|
|
- }
|
|
|
|
- return memberRankSetting;
|
|
|
|
- }
|
|
|
|
|
|
+ //原有购买会员支付接口 思路:分部等于59的时候 修改计算时间的地方 按齐齐哈尔的来
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public HttpResponseResult buy(MemberPayParamDto memberPayParamDto) throws Exception {
|
|
|
|
+ logger.info("团练宝购买:memberPayParamDto:{} ", memberPayParamDto);
|
|
|
|
+ Long paymentId = memberPayParamDto.getPaymentId();
|
|
|
|
+ CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(paymentId);
|
|
|
|
+ if (cloudCoachPaymentProgram == null) {
|
|
|
|
+ throw new BizException("团练宝缴费订单不存在,请联系指导老师");
|
|
|
|
+ }
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
+ StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(paymentId, sysUser.getId());
|
|
|
|
+ if (cloudCoachPaymentDetails == null) {
|
|
|
|
+ throw new BizException("您不在当前团练宝缴费项目中,请联系指导老师");
|
|
|
|
+ }
|
|
|
|
+ if (cloudCoachPaymentDetails.getPaymentStatus() == 1) {
|
|
|
|
+ throw new BizException("当前团练宝订单已支付,感谢您的支持");
|
|
|
|
+ }
|
|
|
|
+ //判断用户是否已存在订单
|
|
|
|
+ List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.queryByDealStatus(paymentId.toString(), OrderTypeEnum.MEMBER, DealStatusEnum.ING);
|
|
|
|
+ if (CollectionUtils.isNotEmpty(applyOrderList)) {
|
|
|
|
+ HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(applyOrderList.get(0), memberPayParamDto.getRepeatPay());
|
|
|
|
+ if (result.getCode() != 200) {
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public void updateSetting(MemberRankSetting memberRankSetting) {
|
|
|
|
- memberRankSettingDao.update(memberRankSetting);
|
|
|
|
- memberRankPrivilegesDao.deleteByRankSettingId(memberRankSetting.getId());
|
|
|
|
- List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
|
- if (memberPrivilegesItemIdList != null && memberPrivilegesItemIdList.size() > 0) {
|
|
|
|
- memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ Integer userId = cloudCoachPaymentDetails.getUserId();
|
|
|
|
+ Student student = studentService.getLocked(userId);
|
|
|
|
+ if (student == null) {
|
|
|
|
+ throw new BizException("非法访问");
|
|
|
|
+ }
|
|
|
|
+ SysUser user = sysUserFeignService.queryUserById(userId);
|
|
|
|
|
|
- @Override
|
|
|
|
- public List<MemberRankSetting> queryListByIsDefault(Boolean isDefault) {
|
|
|
|
- return memberRankSettingDao.queryListByIsDefault(isDefault);
|
|
|
|
- }
|
|
|
|
|
|
+ Integer organId = user.getOrganId();
|
|
|
|
+ if (organId == null) {
|
|
|
|
+ throw new BizException("学生没有分部编号");
|
|
|
|
+ }
|
|
|
|
+ BigDecimal actualAmount = cloudCoachPaymentProgram.getActualAmount();
|
|
|
|
+ //优惠券使用范围
|
|
|
|
+ String[] checkCoupon = CouponDetailTypeEnum.getAllowType(MEMBER);
|
|
|
|
+ //校验优惠券
|
|
|
|
+ StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(), actualAmount, true, checkCoupon);
|
|
|
|
+ studentPaymentOrder.setMusicGroupId(paymentId.toString());
|
|
|
|
+ studentPaymentOrder.setMemo(cloudCoachPaymentProgram.getRemark());
|
|
|
|
+ Map<String, Object> result = getMap(memberPayParamDto.getAmount(), memberPayParamDto.getUseBalancePayment(), userId, organId, studentPaymentOrder);
|
|
|
|
+ return BaseController.succeed(result);
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
|
- public HttpResponseResult buy(MemberPayParamDto memberPayParamDto) throws Exception {
|
|
|
|
- logger.info("团练宝购买:memberPayParamDto:{} ",memberPayParamDto);
|
|
|
|
- Long paymentId = memberPayParamDto.getPaymentId();
|
|
|
|
- CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(paymentId);
|
|
|
|
- if(cloudCoachPaymentProgram == null){
|
|
|
|
- throw new BizException("团练宝缴费订单不存在,请联系指导老师");
|
|
|
|
- }
|
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
|
- StudentCloudCoachPaymentDetails cloudCoachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(paymentId,sysUser.getId());
|
|
|
|
- if(cloudCoachPaymentDetails == null){
|
|
|
|
- throw new BizException("您不在当前团练宝缴费项目中,请联系指导老师");
|
|
|
|
- }
|
|
|
|
- if(cloudCoachPaymentDetails.getPaymentStatus() == 1){
|
|
|
|
- throw new BizException("当前团练宝订单已支付,感谢您的支持");
|
|
|
|
- }
|
|
|
|
- //判断用户是否已存在订单
|
|
|
|
- List<StudentPaymentOrder> applyOrderList = studentPaymentOrderService.queryByDealStatus(paymentId.toString(), OrderTypeEnum.MEMBER,DealStatusEnum.ING);
|
|
|
|
- if (CollectionUtils.isNotEmpty(applyOrderList)) {
|
|
|
|
- HttpResponseResult result = studentPaymentOrderService.checkRepeatPay(applyOrderList.get(0), memberPayParamDto.getRepeatPay());
|
|
|
|
- if (result.getCode() != 200) {
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ public static final String BUY_2_QQHE_LOCK = "BUY_2_QQHE_LOCK:";
|
|
|
|
|
|
- Integer userId = cloudCoachPaymentDetails.getUserId();
|
|
|
|
- Student student = studentService.getLocked(userId);
|
|
|
|
- if (student == null) {
|
|
|
|
- throw new BizException("非法访问");
|
|
|
|
- }
|
|
|
|
- SysUser user = sysUserFeignService.queryUserById(userId);
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
|
+ public HttpResponseResult buy2Qqhe(MemberPayParamDto memberPayParamDto) throws Exception {
|
|
|
|
+ Optional<SysUser> sysUserOpt = Optional.ofNullable(sysUserFeignService.queryUserInfo());
|
|
|
|
+ SysUser sysUser = sysUserOpt.orElseThrow(() -> new BizException("未查询到学生信息,请重新登录!"));
|
|
|
|
+ sysUserOpt.map(SysUser::getId)
|
|
|
|
+ .map(studentService::getLocked)
|
|
|
|
+ .orElseThrow(() -> new BizException("非法访问"));
|
|
|
|
+ //防止重复点击
|
|
|
|
+ RBucket<Object> bucket = redissonClient.getBucket(BUY_2_QQHE_LOCK + sysUser.getId());
|
|
|
|
+ if (!bucket.trySet(1, 2, TimeUnit.SECONDS)) {
|
|
|
|
+ throw new BizException("请勿频繁操作!");
|
|
|
|
+ }
|
|
|
|
+ int val = memberPayParamDto.getVal();
|
|
|
|
+ if (val < 0) {
|
|
|
|
+ throw new BizException("最少购买1个月!");
|
|
|
|
+ }
|
|
|
|
+ if (val > 12) {
|
|
|
|
+ throw new BizException("最多购买12个月!");
|
|
|
|
+ }
|
|
|
|
+ //获取赠送的月份
|
|
|
|
+ BigDecimal giveMonth = getGiveMonth(val);
|
|
|
|
+ //转换格式
|
|
|
|
+ BigDecimal valDecimal = new BigDecimal(val);
|
|
|
|
+ //单价150 固定
|
|
|
|
+ BigDecimal price = new BigDecimal("150");
|
|
|
|
+ //计算出购买的价格 单价 X 购买的月份
|
|
|
|
+ BigDecimal amount = price.multiply(valDecimal);
|
|
|
|
+ //获取会员总激活时间
|
|
|
|
+ BigDecimal totalMonth = valDecimal.add(giveMonth);
|
|
|
|
+ //优惠券使用范围
|
|
|
|
+ String[] checkCoupon = CouponDetailTypeEnum.getAllowType(MEMBER);
|
|
|
|
+ //使用优惠券
|
|
|
|
+ StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(), amount, true, checkCoupon);
|
|
|
|
+ //创建订单
|
|
|
|
+ Map<String, Object> result = getMap(memberPayParamDto.getAmount(), memberPayParamDto.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(memberPayParamDto, 35, TimeUnit.MINUTES);
|
|
|
|
|
|
- Integer organId = user.getOrganId();
|
|
|
|
- if (organId == null) {
|
|
|
|
- throw new BizException("学生没有分部编号");
|
|
|
|
- }
|
|
|
|
- BigDecimal actualAmount = cloudCoachPaymentProgram.getActualAmount();
|
|
|
|
|
|
+ return BaseController.succeed(result);
|
|
|
|
+ }
|
|
|
|
|
|
- Date date = new Date();
|
|
|
|
|
|
+ private BigDecimal getGiveMonth(int val) {
|
|
|
|
+ BigDecimal giveMonth;
|
|
|
|
+ //最小数o 最大数s
|
|
|
|
+ BiPredicate<Integer, Integer> predicate = (o, s) -> val >= o && val < s;
|
|
|
|
+ if (predicate.test(2, 4)) {
|
|
|
|
+ //购买2到4(不包含)之间月赠送1个月
|
|
|
|
+ giveMonth = BigDecimal.ONE;
|
|
|
|
+ } else if (predicate.test(4, 6)) {
|
|
|
|
+ //购买4到6(不包含)之间月赠送1个月
|
|
|
|
+ giveMonth = new BigDecimal("3");
|
|
|
|
+ } else if (val >= 6) {
|
|
|
|
+ //购买6(包含)个月以上送6个月
|
|
|
|
+ giveMonth = new BigDecimal("6");
|
|
|
|
+ } else {
|
|
|
|
+ //默认不赠送
|
|
|
|
+ giveMonth = BigDecimal.ZERO;
|
|
|
|
+ }
|
|
|
|
+ return giveMonth;
|
|
|
|
+ }
|
|
|
|
|
|
- StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(memberPayParamDto.getCouponIdList(),actualAmount,true);
|
|
|
|
- actualAmount = studentPaymentOrder.getActualAmount();
|
|
|
|
- studentPaymentOrder.setUserId(userId);
|
|
|
|
- studentPaymentOrder.setOrganId(organId);
|
|
|
|
- studentPaymentOrder.setRoutingOrganId(organId);
|
|
|
|
- studentPaymentOrder.setCreateTime(date);
|
|
|
|
- studentPaymentOrder.setUpdateTime(date);
|
|
|
|
- studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
|
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
|
- studentPaymentOrder.setVersion(0);
|
|
|
|
- studentPaymentOrder.setType(OrderTypeEnum.MEMBER);
|
|
|
|
- studentPaymentOrder.setGroupType(GroupType.MEMBER);
|
|
|
|
- studentPaymentOrder.setRemitFee(BigDecimal.ZERO);
|
|
|
|
- studentPaymentOrder.setCourseRemitFee(BigDecimal.ZERO);
|
|
|
|
- studentPaymentOrder.setMemo(cloudCoachPaymentProgram.getRemark());
|
|
|
|
- studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
|
- studentPaymentOrder.setMusicGroupId(paymentId.toString());
|
|
|
|
- // 判断金额是否正确
|
|
|
|
- if (actualAmount.compareTo(memberPayParamDto.getAmount()) != 0) {
|
|
|
|
- throw new BizException("非法请求");
|
|
|
|
- }
|
|
|
|
- //使用余额支付
|
|
|
|
- if (memberPayParamDto.getUseBalancePayment()) {
|
|
|
|
- useBalanceAmount(studentPaymentOrder,"购买会员");
|
|
|
|
- }
|
|
|
|
- String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
|
- studentPaymentOrder.setOrderNo(orderNo);
|
|
|
|
- studentPaymentOrder.setCreateTime(date);
|
|
|
|
- studentPaymentOrder.setUpdateTime(date);
|
|
|
|
- studentPaymentOrder.setVersion(0);
|
|
|
|
- studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
|
- Map result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
|
- return BaseController.succeed(result);
|
|
|
|
- }
|
|
|
|
|
|
+ //写入支付数据
|
|
|
|
+ private Map<String, Object> getMap(BigDecimal amount, Boolean UseBalance, Integer userId, Integer organId, StudentPaymentOrder studentPaymentOrder) throws Exception {
|
|
|
|
+ Date date = new Date();
|
|
|
|
+ BigDecimal actualAmount = studentPaymentOrder.getActualAmount();
|
|
|
|
+ studentPaymentOrder.setUserId(userId);
|
|
|
|
+ studentPaymentOrder.setOrganId(organId);
|
|
|
|
+ studentPaymentOrder.setRoutingOrganId(organId);
|
|
|
|
+ studentPaymentOrder.setCreateTime(date);
|
|
|
|
+ studentPaymentOrder.setUpdateTime(date);
|
|
|
|
+ studentPaymentOrder.setBalancePaymentAmount(BigDecimal.ZERO);
|
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
|
+ studentPaymentOrder.setVersion(0);
|
|
|
|
+ studentPaymentOrder.setType(OrderTypeEnum.MEMBER);
|
|
|
|
+ studentPaymentOrder.setGroupType(GroupType.MEMBER);
|
|
|
|
+ studentPaymentOrder.setRemitFee(BigDecimal.ZERO);
|
|
|
|
+ studentPaymentOrder.setCourseRemitFee(BigDecimal.ZERO);
|
|
|
|
+ studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
|
+ // 判断金额是否正确
|
|
|
|
+ if (actualAmount.compareTo(amount) != 0) {
|
|
|
|
+ throw new BizException("非法请求");
|
|
|
|
+ }
|
|
|
|
+ //使用余额支付
|
|
|
|
+ if (UseBalance) {
|
|
|
|
+ useBalanceAmount(studentPaymentOrder, "购买会员");
|
|
|
|
+ }
|
|
|
|
+ String orderNo = idGeneratorService.generatorId("payment") + "";
|
|
|
|
+ studentPaymentOrder.setOrderNo(orderNo);
|
|
|
|
+ studentPaymentOrder.setCreateTime(date);
|
|
|
|
+ studentPaymentOrder.setUpdateTime(date);
|
|
|
|
+ studentPaymentOrder.setVersion(0);
|
|
|
|
+ studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
|
+ Map<String, Object> result = studentPaymentOrderService.createOrder(studentPaymentOrder, null, "BUY_MEMBER");
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
|
|
- public StudentPaymentOrder useBalanceAmount(StudentPaymentOrder studentPaymentOrder,String memo){
|
|
|
|
- Integer userId = studentPaymentOrder.getUserId();
|
|
|
|
- SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
|
|
|
|
- if (userCashAccount == null) {
|
|
|
|
- throw new BizException("用户账户找不到");
|
|
|
|
- }
|
|
|
|
- BigDecimal actualAmount = studentPaymentOrder.getActualAmount();
|
|
|
|
- studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
|
- if (userCashAccount.getBalance().subtract(actualAmount).doubleValue() >= 0) {
|
|
|
|
- studentPaymentOrder.setActualAmount(BigDecimal.ZERO);
|
|
|
|
- studentPaymentOrder.setBalancePaymentAmount(actualAmount);
|
|
|
|
- sysUserCashAccountService.updateBalance(userId, actualAmount.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, memo);
|
|
|
|
|
|
+ public void useBalanceAmount(StudentPaymentOrder studentPaymentOrder, String memo) {
|
|
|
|
+ Integer userId = studentPaymentOrder.getUserId();
|
|
|
|
+ SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(userId);
|
|
|
|
+ if (userCashAccount == null) {
|
|
|
|
+ throw new BizException("用户账户找不到");
|
|
|
|
+ }
|
|
|
|
+ BigDecimal actualAmount = studentPaymentOrder.getActualAmount();
|
|
|
|
+ studentPaymentOrder.setPaymentChannel("BALANCE");
|
|
|
|
+ if (userCashAccount.getBalance().subtract(actualAmount).doubleValue() >= 0) {
|
|
|
|
+ studentPaymentOrder.setActualAmount(BigDecimal.ZERO);
|
|
|
|
+ studentPaymentOrder.setBalancePaymentAmount(actualAmount);
|
|
|
|
+ sysUserCashAccountService.updateBalance(userId, actualAmount.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, memo);
|
|
|
|
|
|
- } else {
|
|
|
|
- if (userCashAccount.getBalance().doubleValue() > 0) {
|
|
|
|
- sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, memo);
|
|
|
|
- studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
|
|
|
|
- studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().subtract(userCashAccount.getBalance()));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return studentPaymentOrder;
|
|
|
|
- }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ if (userCashAccount.getBalance().doubleValue() > 0) {
|
|
|
|
+ sysUserCashAccountService.updateBalance(userId, userCashAccount.getBalance().negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, memo);
|
|
|
|
+ studentPaymentOrder.setBalancePaymentAmount(userCashAccount.getBalance());
|
|
|
|
+ studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().subtract(userCashAccount.getBalance()));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
- @Override
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
|
- public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
|
|
|
|
- //查询原定的是否已处理
|
|
|
|
- StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
|
|
|
|
- if(orignStudentPaymentOrder == null){
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- if(orignStudentPaymentOrder.getStatus() != DealStatusEnum.ING){
|
|
|
|
- return false;
|
|
|
|
- }
|
|
|
|
- Integer userId = studentPaymentOrder.getUserId();
|
|
|
|
- Student student = studentService.get(userId);
|
|
|
|
- if (student == null) {
|
|
|
|
- throw new BizException("学员信息不存在");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- Date nowDate = new Date();
|
|
|
|
- // 更新订单信息
|
|
|
|
- studentPaymentOrder.setUpdateTime(nowDate);
|
|
|
|
- studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
|
|
|
+ @Override
|
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
|
+ public boolean orderCallback(StudentPaymentOrder studentPaymentOrder) {
|
|
|
|
+ //查询原定的是否已处理
|
|
|
|
+ StudentPaymentOrder orignStudentPaymentOrder = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
|
|
|
|
+ if (orignStudentPaymentOrder == null) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ if (orignStudentPaymentOrder.getStatus() != DealStatusEnum.ING) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ Integer userId = studentPaymentOrder.getUserId();
|
|
|
|
+ Student student = studentService.get(userId);
|
|
|
|
+ if (student == null) {
|
|
|
|
+ throw new BizException("学员信息不存在");
|
|
|
|
+ }
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(userId);
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ throw new BizException("学员信息不存在");
|
|
|
|
+ }
|
|
|
|
|
|
- if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
|
- //退还优惠券和余额
|
|
|
|
- studentPaymentOrderService.returnBalanceAndCoupon(studentPaymentOrder,"购买会员支付失败");
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+ Date nowDate = new Date();
|
|
|
|
+ // 更新订单信息
|
|
|
|
+ studentPaymentOrder.setUpdateTime(nowDate);
|
|
|
|
+ studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
|
|
|
- // 支付成功
|
|
|
|
- if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
|
- CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
|
|
|
|
- StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(),studentPaymentOrder.getUserId());
|
|
|
|
- //保存团练宝数据
|
|
|
|
- CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
|
|
|
|
- cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
|
- cloudTeacherOrder.setLevel(cloudCoachPaymentProgram.getMemberRankSettingId());
|
|
|
|
- cloudTeacherOrder.setStatus(1);
|
|
|
|
- cloudTeacherOrder.setType(cloudCoachPaymentProgram.getPeriod());
|
|
|
|
- cloudTeacherOrder.setTime(cloudCoachPaymentProgram.getMemberNum().intValue());
|
|
|
|
- cloudTeacherOrder.setStudentId(coachPaymentDetails.getUserId());
|
|
|
|
- cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
|
|
|
|
- cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
|
|
|
|
- cloudTeacherOrderService.insert(cloudTeacherOrder);
|
|
|
|
|
|
+ if (studentPaymentOrder.getStatus() == DealStatusEnum.CLOSE || studentPaymentOrder.getStatus() == DealStatusEnum.FAILED) {
|
|
|
|
+ //退还优惠券和余额
|
|
|
|
+ studentPaymentOrderService.returnBalanceAndCoupon(studentPaymentOrder, "购买会员支付失败");
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
|
|
- //修改缴费状态
|
|
|
|
- coachPaymentDetails.setPaymentStatus(1);
|
|
|
|
- coachPaymentDetails.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
|
- studentCloudCoachPaymentDetailsService.update(coachPaymentDetails);
|
|
|
|
- //修改实际缴费人数
|
|
|
|
- cloudCoachPaymentProgram.setPaymentUserNum(cloudCoachPaymentProgram.getPaymentUserNum() + 1);
|
|
|
|
- cloudCoachPaymentProgramService.update(cloudCoachPaymentProgram);
|
|
|
|
- // 插入交易明细
|
|
|
|
- sysUserCashAccountDetailService.saveSysUserCashAccountDetail(studentPaymentOrder,"购买会员");
|
|
|
|
|
|
+ // 支付成功
|
|
|
|
+ if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
|
|
|
|
+ //齐齐哈尔购买成功默认激活
|
|
|
|
+ // 活动时间:
|
|
|
|
+ // 1. 2022年2月8日上线预热
|
|
|
|
+ // 2. 2022年2月15日开始销售
|
|
|
|
+ // 3. 暂无结束时间,长期有效
|
|
|
|
+ //查询redis证明是活动购买
|
|
|
|
+ RBucket<Object> cache = redissonClient.getBucket(BUY_2_QQHE_LOCK + studentPaymentOrder.getOrderNo());
|
|
|
|
+ //查询活动时间
|
|
|
|
+ String activityDateStr = sysConfigDao.findConfigValue("qqhe_2022_buy_member_activity");
|
|
|
|
+ //获取活动时间
|
|
|
|
+ Date activityDate = DateUtil.stringToDate(activityDateStr, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
|
+ //分部编号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 查询学生现在的会员过期没,如果过期了就按现在时间来,如果没过期就在结束时间上叠加
|
|
|
|
+ if (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);
|
|
|
|
+ } else {
|
|
|
|
+ CloudCoachPaymentProgram cloudCoachPaymentProgram = cloudCoachPaymentProgramService.get(Long.parseLong(studentPaymentOrder.getMusicGroupId()));
|
|
|
|
+ StudentCloudCoachPaymentDetails coachPaymentDetails = studentCloudCoachPaymentDetailsService.findByUserId(cloudCoachPaymentProgram.getId(), studentPaymentOrder.getUserId());
|
|
|
|
+ //保存团练宝数据
|
|
|
|
+ CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
|
|
|
|
+ cloudTeacherOrder.setOrderId(studentPaymentOrder.getId());
|
|
|
|
+ cloudTeacherOrder.setLevel(cloudCoachPaymentProgram.getMemberRankSettingId());
|
|
|
|
+ cloudTeacherOrder.setStatus(1);
|
|
|
|
+ cloudTeacherOrder.setType(cloudCoachPaymentProgram.getPeriod());
|
|
|
|
+ cloudTeacherOrder.setTime(cloudCoachPaymentProgram.getMemberNum().intValue());
|
|
|
|
+ cloudTeacherOrder.setStudentId(coachPaymentDetails.getUserId());
|
|
|
|
+ cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
|
|
|
|
+ cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
|
|
|
|
+ cloudTeacherOrderService.insert(cloudTeacherOrder);
|
|
|
|
|
|
- try {
|
|
|
|
- contractService.transferProduceContract(userId, null, CourseViewTypeEnum.MEMBER_FEE);
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- logger.error("产品协议生成失败", e);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return true;
|
|
|
|
- }
|
|
|
|
|
|
+ //修改缴费状态
|
|
|
|
+ coachPaymentDetails.setPaymentStatus(1);
|
|
|
|
+ coachPaymentDetails.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
|
+ studentCloudCoachPaymentDetailsService.update(coachPaymentDetails);
|
|
|
|
+ //修改实际缴费人数
|
|
|
|
+ cloudCoachPaymentProgram.setPaymentUserNum(cloudCoachPaymentProgram.getPaymentUserNum() + 1);
|
|
|
|
+ cloudCoachPaymentProgramService.update(cloudCoachPaymentProgram);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ // 插入交易明细
|
|
|
|
+ sysUserCashAccountDetailService.saveSysUserCashAccountDetail(studentPaymentOrder, "购买会员");
|
|
|
|
+ try {
|
|
|
|
+ contractService.transferProduceContract(userId, null, CourseViewTypeEnum.MEMBER_FEE);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ logger.error("产品协议生成失败", e);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
|
|
- @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 {
|
|
|
|
- HttpResponseResult result = new HttpResponseResult();
|
|
|
|
- //判断用户是否已存在订单
|
|
|
|
- StudentPaymentOrder applyOrder = studentPaymentOrderService.findByUserAndActive(userId,202109,remark,"ING");
|
|
|
|
- if (applyOrder != null) {
|
|
|
|
- // 查询订单状态
|
|
|
|
- PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
|
|
|
|
- if(payStatus == PayStatus.SUCCESSED){
|
|
|
|
- throw new BizException("订单已支付成功,请勿重复支付");
|
|
|
|
- }/*else if(payStatus == PayStatus.PAYING){
|
|
|
|
|
|
+ @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 {
|
|
|
|
+ HttpResponseResult result = new HttpResponseResult();
|
|
|
|
+ //判断用户是否已存在订单
|
|
|
|
+ StudentPaymentOrder applyOrder = studentPaymentOrderService.findByUserAndActive(userId, 202109, remark, "ING");
|
|
|
|
+ if (applyOrder != null) {
|
|
|
|
+ // 查询订单状态
|
|
|
|
+ PayStatus payStatus = studentPaymentOrderService.queryPayStatus(applyOrder.getPaymentChannel(), applyOrder.getOrderNo(), applyOrder.getTransNo());
|
|
|
|
+ if (payStatus == PayStatus.SUCCESSED) {
|
|
|
|
+ throw new BizException("订单已支付成功,请勿重复支付");
|
|
|
|
+ }/*else if(payStatus == PayStatus.PAYING){
|
|
throw new BizException("订单还在交易中,请稍后重试");
|
|
throw new BizException("订单还在交易中,请稍后重试");
|
|
}*/
|
|
}*/
|
|
- if(repay){
|
|
|
|
- //处理关闭订单
|
|
|
|
- applyOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
|
- applyOrder.setMemo("关闭团练宝活动订单");
|
|
|
|
- if (applyOrder.getBalancePaymentAmount() != null && applyOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
- sysUserCashAccountService.updateBalance(applyOrder.getUserId(), applyOrder.getBalancePaymentAmount(),
|
|
|
|
- PlatformCashAccountDetailTypeEnum.REFUNDS, "购买团练宝活动支付失败");
|
|
|
|
- }
|
|
|
|
- studentPaymentOrderService.update(applyOrder);
|
|
|
|
- }else {
|
|
|
|
- result.setCode(HttpStatus.CONTINUE.value());
|
|
|
|
- result.setMsg("您有待支付的订单");
|
|
|
|
- return result;
|
|
|
|
- }
|
|
|
|
|
|
+ if (repay) {
|
|
|
|
+ //处理关闭订单
|
|
|
|
+ applyOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
|
+ applyOrder.setMemo("关闭团练宝活动订单");
|
|
|
|
+ if (applyOrder.getBalancePaymentAmount() != null && applyOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ sysUserCashAccountService.updateBalance(applyOrder.getUserId(), applyOrder.getBalancePaymentAmount(),
|
|
|
|
+ PlatformCashAccountDetailTypeEnum.REFUNDS, "购买团练宝活动支付失败");
|
|
|
|
+ }
|
|
|
|
+ studentPaymentOrderService.update(applyOrder);
|
|
|
|
+ } else {
|
|
|
|
+ result.setCode(HttpStatus.CONTINUE.value());
|
|
|
|
+ result.setMsg("您有待支付的订单");
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
|
|
- }
|
|
|
|
- result.setCode(HttpStatus.OK.value());
|
|
|
|
- MemberPayParamDto memberPayParamDto = new MemberPayParamDto();
|
|
|
|
|
|
+ }
|
|
|
|
+ result.setCode(HttpStatus.OK.value());
|
|
|
|
+ MemberPayParamDto memberPayParamDto = new MemberPayParamDto();
|
|
// memberPayParamDto.setMemberRankId(memberRankId);
|
|
// memberPayParamDto.setMemberRankId(memberRankId);
|
|
// memberPayParamDto.setUserId(userId);
|
|
// memberPayParamDto.setUserId(userId);
|
|
// memberPayParamDto.setPeriodEnum(month);
|
|
// memberPayParamDto.setPeriodEnum(month);
|
|
@@ -309,35 +446,35 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
// memberPayParamDto.setGiveNum(giveNum);
|
|
// memberPayParamDto.setGiveNum(giveNum);
|
|
// memberPayParamDto.setActiveRemark(activeRemark);
|
|
// memberPayParamDto.setActiveRemark(activeRemark);
|
|
// memberPayParamDto.setRemark(remark);
|
|
// memberPayParamDto.setRemark(remark);
|
|
- memberPayParamDto.setAmount(amount);
|
|
|
|
- return this.buy(memberPayParamDto);
|
|
|
|
- }
|
|
|
|
|
|
+ memberPayParamDto.setAmount(amount);
|
|
|
|
+ return this.buy(memberPayParamDto);
|
|
|
|
+ }
|
|
|
|
|
|
- //团练宝活动赠送优惠券
|
|
|
|
- public void cloudTeacherActiveGiveCoupon(CloudTeacherOrder cloudTeacherOrder){
|
|
|
|
- Integer activeRemark = cloudTeacherOrder.getActiveRemark();
|
|
|
|
- String remark = cloudTeacherOrder.getRemark();
|
|
|
|
- if(activeRemark == null || StringUtils.isEmpty(remark)){
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- Integer studentId = cloudTeacherOrder.getStudentId();
|
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(studentId);
|
|
|
|
- if(sysUser == null){
|
|
|
|
- throw new BizException("用户信息获取失败");
|
|
|
|
- }
|
|
|
|
- Integer couponId = 1;
|
|
|
|
- if(sysUser.getOrganId() != null && sysUser.getOrganId() == 4){
|
|
|
|
- couponId = 2;
|
|
|
|
- }
|
|
|
|
- if(activeRemark.equals(202109)){
|
|
|
|
- switch (remark){
|
|
|
|
- case "2赠1":
|
|
|
|
- sysCouponCodeService.exchangeCoupon(cloudTeacherOrder.getStudentId(),couponId,cloudTeacherOrder.getOrderId(),3,2,null);
|
|
|
|
- break;
|
|
|
|
- case "3赠2":
|
|
|
|
- sysCouponCodeService.exchangeCoupon(cloudTeacherOrder.getStudentId(),couponId,cloudTeacherOrder.getOrderId(),6,2,null);
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //团练宝活动赠送优惠券
|
|
|
|
+ public void cloudTeacherActiveGiveCoupon(CloudTeacherOrder cloudTeacherOrder) {
|
|
|
|
+ Integer activeRemark = cloudTeacherOrder.getActiveRemark();
|
|
|
|
+ String remark = cloudTeacherOrder.getRemark();
|
|
|
|
+ if (activeRemark == null || StringUtils.isEmpty(remark)) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ Integer studentId = cloudTeacherOrder.getStudentId();
|
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(studentId);
|
|
|
|
+ if (sysUser == null) {
|
|
|
|
+ throw new BizException("用户信息获取失败");
|
|
|
|
+ }
|
|
|
|
+ Integer couponId = 1;
|
|
|
|
+ if (sysUser.getOrganId() != null && sysUser.getOrganId() == 4) {
|
|
|
|
+ couponId = 2;
|
|
|
|
+ }
|
|
|
|
+ if (activeRemark.equals(202109)) {
|
|
|
|
+ switch (remark) {
|
|
|
|
+ case "2赠1":
|
|
|
|
+ sysCouponCodeService.exchangeCoupon(cloudTeacherOrder.getStudentId(), couponId, cloudTeacherOrder.getOrderId(), 3, 2, null);
|
|
|
|
+ break;
|
|
|
|
+ case "3赠2":
|
|
|
|
+ sysCouponCodeService.exchangeCoupon(cloudTeacherOrder.getStudentId(), couponId, cloudTeacherOrder.getOrderId(), 6, 2, null);
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|