This commit is contained in:
dute7liang
2024-01-14 20:50:25 +08:00
parent 7f195c02be
commit b163213beb
6 changed files with 136 additions and 20 deletions

View File

@@ -15,10 +15,7 @@ import com.ruoyi.cai.enums.ConsumeLogType;
import com.ruoyi.cai.manager.IdManager;
import com.ruoyi.cai.mapper.AccountMapper;
import com.ruoyi.cai.mapper.RechargeOrderMapper;
import com.ruoyi.cai.pay.OrderNoUtil;
import com.ruoyi.cai.pay.PayStatusEnum;
import com.ruoyi.cai.pay.PlatformTypeEnum;
import com.ruoyi.cai.pay.RechargeTypeEnum;
import com.ruoyi.cai.pay.*;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
@@ -69,6 +66,10 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
@Transactional(rollbackFor = Exception.class)
public RechargeOrder addRechargeOrder(AddRechargeOrderDto addRechargeOrderDto){
Long goodId = addRechargeOrderDto.getGoodId();
User user = userService.getById(addRechargeOrderDto.getUserId());
if(user == null){
throw new ServiceException("用户不存在");
}
Goods goods = goodsService.getById(goodId);
if(goods == null){
throw new ServiceException("充值价格错误");
@@ -80,7 +81,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
order.setRechargeCoin(goods.getAmount());
order.setRechargeType(RechargeTypeEnum.COIN.getCode());
order.setPrice(goods.getPrice());
order.setOrderNo(OrderNoUtil.createOrderNo(OrderNoUtil.RECHARGE_ORDER_SUB));
order.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.RECHARGE_ORDER_SUB));
order.setPayStatus(PayStatusEnum.READY_PAY.getCode());
order.setAdmin(false);
this.save(order);
@@ -140,7 +141,7 @@ public class RechargeOrderServiceImpl extends ServiceImpl<RechargeOrderMapper,Re
order.setRechargeCoin(dto.getRechargeCoin());
order.setPrice(BigDecimal.ZERO);
order.setRechargeType(dto.getRechargeType());
order.setOrderNo(OrderNoUtil.createOrderNo(OrderNoUtil.RECHARGE_ORDER_SUB));
order.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.RECHARGE_ORDER_SUB));
order.setPlatformType(PlatformTypeEnum.ADMIN.name());
order.setPayStatus(PayStatusEnum.NO_PAY.getCode());
order.setOperateIp(ServletUtils.getClientIP());

View File

@@ -5,15 +5,13 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.cai.domain.MemberPrice;
import com.ruoyi.cai.domain.User;
import com.ruoyi.cai.domain.UserMember;
import com.ruoyi.cai.domain.VipOrder;
import com.ruoyi.cai.dto.admin.vo.VipOrderAdminVo;
import com.ruoyi.cai.dto.dto.AddVipOrderDto;
import com.ruoyi.cai.mapper.VipOrderMapper;
import com.ruoyi.cai.pay.MemberStatusEnum;
import com.ruoyi.cai.pay.OrderNoUtil;
import com.ruoyi.cai.pay.PayStatusEnum;
import com.ruoyi.cai.pay.PlatformTypeEnum;
import com.ruoyi.cai.pay.*;
import com.ruoyi.cai.service.*;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.exception.ServiceException;
@@ -40,6 +38,8 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
private MemberPriceService memberPriceService;
@Autowired
private UserMemberService userMemberService;
@Autowired
private UserService userService;
/**
* 强制修改VIP
@@ -60,7 +60,7 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
vipOrder.setVipExpire(memberPrice.getExpires());
vipOrder.setVipLongs(memberPrice.getLongs());
vipOrder.setPrice(memberPrice.getPrice());
vipOrder.setOrderNo(OrderNoUtil.createOrderNo(OrderNoUtil.VIP_ORDER_SUB));
vipOrder.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.VIP_ORDER_SUB));
vipOrder.setPayStatus(PayStatusEnum.NO_PAY.getCode());
vipOrder.setPlatformType(PlatformTypeEnum.ADMIN.name());
vipOrder.setOperateIp(ServletUtils.getClientIP());
@@ -86,6 +86,10 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
@Override
public VipOrder addVipOrder(AddVipOrderDto addVipOrder){
Long memberPriceId = addVipOrder.getMemberPriceId();
User user = userService.getById(addVipOrder.getUserId());
if(user == null){
throw new ServiceException("用户不存在");
}
MemberPrice memberPrice = memberPriceService.getById(memberPriceId);
if(memberPrice == null){
throw new ServiceException("VIP价格错误");
@@ -98,7 +102,7 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
vipOrder.setVipExpire(memberPrice.getExpires());
vipOrder.setVipLongs(memberPrice.getLongs());
vipOrder.setPrice(memberPrice.getPrice());
vipOrder.setOrderNo(OrderNoUtil.createOrderNo(OrderNoUtil.VIP_ORDER_SUB));
vipOrder.setOrderNo(OrderNoUtil.createOrderNo(OrderTypeEnum.VIP_ORDER_SUB));
vipOrder.setPayStatus(PayStatusEnum.READY_PAY.getCode());
this.save(vipOrder);
return vipOrder;
@@ -134,13 +138,12 @@ public class VipOrderServiceImpl extends ServiceImpl<VipOrderMapper,VipOrder> im
}
public boolean incVip(Long userId,Integer memberType,Integer expire,Integer longs){
UserMember userMember = userMemberService.getByUserId(userId);
UserMember userMember = userMemberService.getByUserIdAndType(userId,memberType);
LocalDateTime createTime = LocalDateTime.now();
// 以前会员失效 , 买了不同的会员等级 不做续费操作
// 以前会员失效
if(userMember == null ||
!MemberStatusEnum.NORMAL.getCode().equals(userMember.getMemberStatus()) || // 会员不可用
userMember.getExpireDate().isBefore(createTime) || // 时间已经失效了 定时任务还没有执行
!memberType.equals(userMember.getMemberType()) // 会员类型变更
userMember.getExpireDate().isBefore(createTime)
){
if(userMember == null){
userMember = new UserMember();