BUG修复:用户更改套餐,积分/用户角色不变更问题

This commit is contained in:
2024-08-12 09:51:39 +08:00
parent e5a95972a5
commit 704e3c25bf

View File

@@ -300,6 +300,19 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
QueryWrapper<Account> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("BINARY user_email", email);
List<Account> accountList = accountMapper.selectList(queryWrapper);
log.info(accountList.toString());
if (CollectionUtil.isEmpty(accountList)) {
throw new BusinessException("email.does.not.exist", ResultEnum.PROMPT.getCode());
}
return accountList.get(0);
}
// 忽略大小写
private Account getAccountByEmail(String email) {
QueryWrapper<Account> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_email", email);
List<Account> accountList = accountMapper.selectList(queryWrapper);
log.info(accountList.toString());
if (CollectionUtil.isEmpty(accountList)) {
throw new BusinessException("email.does.not.exist", ResultEnum.PROMPT.getCode());
}
@@ -1068,6 +1081,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
int orderId = queryOrderResultSet.getInt("order_id");
int customerId = queryOrderResultSet.getInt("customer_id");
double totalSales = queryOrderResultSet.getDouble("total_sales");
log.info("Code-Create 订单:{} 顾客id:{}, 付款金额:{}",orderId, customerId, totalSales);
String email = "";
String userName = "";
// 为什么一般没有值
@@ -1094,7 +1108,7 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Boolean flag = Boolean.FALSE;
try {
// 不是新用户 直接延长使用期限
userInfo = getOneByEmail(email);
userInfo = getAccountByEmail(email);
} catch (BusinessException e) {
// 通过邮箱找不到用户 说明是新用户 => 创建用户
flag = Boolean.TRUE;
@@ -1106,23 +1120,24 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
Account account = extendValidity(validEndTime, totalSales);
int systemUserType = 0;
// 不管是不是新用户 都要更新用户角色和积分
String credits = "0";
if (totalSales == 5000.0){
log.info("年付用户初始积分6000");
credits = CreditsEventsEnum.INIT_MONTHLY.getValue();
systemUserType = 1;
}else if (totalSales == 500.0){
log.info("月付用户初始积分5000");
credits = CreditsEventsEnum.INIT_MONTHLY.getValue();
systemUserType = 2;
}else if (totalSales == 0.0){
log.info("测试用户初始积分10");
credits = "10";
systemUserType = 3;
}
if (flag) {
// 是新用户 => 新增一条数据
String credits = "0";
if (totalSales == 5000.0){
log.info("年付用户初始积分6000");
credits = CreditsEventsEnum.INIT_MONTHLY.getValue();
systemUserType = 1;
}else if (totalSales == 500.0){
log.info("月付用户初始积分5000");
credits = CreditsEventsEnum.INIT_MONTHLY.getValue();
systemUserType = 2;
}else if (totalSales == 0.0){
log.info("测试用户初始积分10");
credits = "10";
systemUserType = 3;
}
Boolean b = addUser(new AccountAddDTO(email,
StringUtil.isNullOrEmpty(userName) ? email.substring(0, email.indexOf("@")) : userName,
country,
@@ -1131,6 +1146,8 @@ public class AccountServiceImpl extends ServiceImpl<AccountMapper, Account> impl
if (b) log.info("付费新用户 {} 新增成功!", email);
} else {
userInfo.setValidEndTime(toDayEnd(account.getValidEndTime()));
userInfo.setCredits(new BigDecimal(credits));
userInfo.setSystemUser(systemUserType);
baseMapper.updateById(userInfo);
log.info("付费用户 {} 续订成功", email);
}