|
@@ -963,13 +963,13 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
@Override
|
|
|
public ResponseJson superVipUpByBeans(SuperVipDto vipDto, HttpHeaders headers) {
|
|
|
Integer userId = vipDto.getUserId();
|
|
|
- SuperVipPo superVip = vipMapper.findSuperVip(userId);
|
|
|
- //库里没有则新增
|
|
|
- if (null == superVip) {
|
|
|
- //1.查用户采美豆,够就用采美豆下单,不够就返回信息
|
|
|
+ SuperVipDto endFlag = findEnd(userId);
|
|
|
+ //过期和没买过都是生效时间重置,到期时间=现在+套餐时间
|
|
|
+ if (endFlag.getVipFlag() == 0 || endFlag.getVipFlag()==-1) {
|
|
|
Integer userBeans = vipMapper.findUserBeans(userId);
|
|
|
Integer userPackage = vipDto.getUserPackage();
|
|
|
Double price = vipMapper.findUserPackage(userPackage);
|
|
|
+ //1.查用户采美豆,够就用采美豆下单,不够就返回信息
|
|
|
if (Double.valueOf(userBeans) >= (price * 100)) {
|
|
|
//用户采美豆>=套餐需要的采美豆,调用采美豆支付方法
|
|
|
//传空表示新客户
|
|
@@ -978,20 +978,32 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
}
|
|
|
return ResponseJson.error("用户采美豆不足,请确认后再支付", null);
|
|
|
}
|
|
|
- if (superVip.getDelFlag() != 0) {
|
|
|
- return ResponseJson.error("用户信息已删除,请确认后重试", null);
|
|
|
+ else{
|
|
|
+ //续费生效时间不变,原到期时间+套餐时间
|
|
|
+ beanPay(vipDto, endFlag.getEndTime(), 1);
|
|
|
+ return ResponseJson.success("支付采美豆购买成功", null);
|
|
|
}
|
|
|
- //库里有用户信息,查是否过期,没过期续费,过期重买
|
|
|
- // 设置日期时间格式
|
|
|
- Long current = System.currentTimeMillis();
|
|
|
- Long endTime = superVip.getEndTime().getTime();
|
|
|
- //现在时间大于过期时间则重买,重买begintime=now,不是重买的话begintime=supervip.getendtime否则续费
|
|
|
- if (current >= endTime) {
|
|
|
- beanPay(vipDto, null, 0);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 根据userId查是否过期,返回dto对象,flag=0未买过,-1过期,1有效,endTime过期时间
|
|
|
+ */
|
|
|
+ private SuperVipDto findEnd(Integer userId) {
|
|
|
+ SuperVipPo superVip = vipMapper.findSuperVip(userId);
|
|
|
+ SuperVipDto superVipDto = new SuperVipDto();
|
|
|
+ if (superVip == null) {
|
|
|
+ superVipDto.setVipFlag(0);
|
|
|
} else {
|
|
|
- beanPay(vipDto, superVip.getEndTime(), 1);
|
|
|
+ SuperVipPo endTime = vipMapper.findEndTime(userId);
|
|
|
+ if (endTime == null) {
|
|
|
+ superVipDto.setVipFlag(-1);
|
|
|
+ superVipDto.setEndTime(superVip.getEndTime());
|
|
|
+ }
|
|
|
+ superVipDto.setVipFlag(1);
|
|
|
+ superVipDto.setEndTime(endTime.getEndTime());
|
|
|
}
|
|
|
- return ResponseJson.success("支付采美豆购买成功", null);
|
|
|
+ return superVipDto;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -1007,20 +1019,47 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
Double price = vipMapper.findUserPackage(userPackageId);
|
|
|
Integer userBeans = vipMapper.findUserBeans(userId);
|
|
|
vipMapper.updateUserBeans(vipDto.getUserId(), Integer.valueOf(String.valueOf(userBeans - price * 100)));
|
|
|
- //2.改user权限
|
|
|
- vipMapper.updateUserPermission(userId, 7);
|
|
|
- vipMapper.updateUserIdentity(userId, 7);
|
|
|
- //3.超级会员表更改
|
|
|
- SuperVipPo superVip = vipMapper.findSuperVip(userId);
|
|
|
- //重买标记是0生效时间就是now
|
|
|
+ //采美豆消费表记录
|
|
|
+ vipMapper.updateUserBeansHistory(userId, Integer.valueOf((int) (price * 100)));
|
|
|
if (repayFlag == 0) {
|
|
|
+ SuperVipPo superVip = new SuperVipPo();
|
|
|
beginTime = new Date();
|
|
|
superVip.setBeginTime(beginTime);
|
|
|
+ superVip.setUpdateTime(beginTime);
|
|
|
+ superVip.setDelFlag(0);
|
|
|
+ superVip.setUserId(userId);
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ cal.setTime(beginTime);
|
|
|
+ Integer userPackageTime = vipMapper.findUserPackageTime(userPackageId);
|
|
|
+ cal.add(Calendar.MONTH, userPackageTime);
|
|
|
+ superVip.setEndTime(beginTime);
|
|
|
+ //2.超级会员表更改,重买标记是0生效时间就是now
|
|
|
+ vipMapper.addVip(superVip);
|
|
|
+ //购买记录表加数据
|
|
|
+ setHistory(userId,price,userPackageId,beginTime);
|
|
|
+ }else{
|
|
|
+ SuperVipPo superVip = vipMapper.findSuperVip(userId);
|
|
|
+ superVip.setUpdateTime(new Date());
|
|
|
+ Calendar cal = Calendar.getInstance();
|
|
|
+ //续费加时间
|
|
|
+ cal.setTime(beginTime);
|
|
|
+ Integer userPackageTime = vipMapper.findUserPackageTime(userPackageId);
|
|
|
+ cal.add(Calendar.MONTH, userPackageTime);
|
|
|
+ superVip.setEndTime(beginTime);
|
|
|
+ vipMapper.updateVip(superVip);
|
|
|
+ //购买记录表加数据
|
|
|
+ setHistory(userId,price,userPackageId,beginTime);
|
|
|
}
|
|
|
- superVip.setDelFlag(0);
|
|
|
- superVip.setUserId(userId);
|
|
|
- superVip.setUpdateTime(beginTime);
|
|
|
- //4.改采美豆历史表和会员购买记录
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 修改超级会员记录表
|
|
|
+ * @param userId
|
|
|
+ * @param price
|
|
|
+ * @param userPackageId
|
|
|
+ * @param beginTime
|
|
|
+ */
|
|
|
+ private void setHistory(Integer userId,Double price,Integer userPackageId,Date beginTime){
|
|
|
VipPayHistoryPo payHistory = new VipPayHistoryPo();
|
|
|
payHistory.setUserId(userId);
|
|
|
payHistory.setUserBeans(price * 100);
|
|
@@ -1029,22 +1068,7 @@ public class RegisterServiceImpl implements RegisterService {
|
|
|
payHistory.setPackageId(userPackageId);
|
|
|
payHistory.setPrice(0.00);
|
|
|
payHistory.setBeginTime(beginTime);
|
|
|
- //给begintime加上套餐的时间变成到期时间
|
|
|
- Calendar cal = Calendar.getInstance();
|
|
|
- cal.setTime(beginTime);
|
|
|
- Integer userPackageTime = vipMapper.findUserPackageTime(userPackageId);
|
|
|
- cal.add(Calendar.MONTH, userPackageTime);
|
|
|
- payHistory.setEndTime(beginTime);
|
|
|
- superVip.setEndTime(beginTime);
|
|
|
- //加入超级会员表,重买标记是1,修改表
|
|
|
- if (repayFlag == 1) {
|
|
|
- vipMapper.updateVip(superVip);
|
|
|
- }
|
|
|
- vipMapper.addVip(superVip);
|
|
|
- //加入会员购买记录
|
|
|
vipMapper.addPayHistory(payHistory);
|
|
|
- //采美豆变更加入采美豆历史表
|
|
|
- vipMapper.updateUserBeansHistory(userId, Integer.valueOf((int) (price * 100)));
|
|
|
}
|
|
|
}
|
|
|
|