diff --git a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java index 987efa74..8245c886 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -317,20 +317,38 @@ public class AccountServiceImpl extends ServiceImpl impl QueryWrapper accountExtendQW = new QueryWrapper<>(); accountExtendQW.lambda().eq(AccountExtend::getAccountId, userHolder.getId()); accountExtendQW.lambda().eq(AccountExtend::getAuthType, "Wechat"); - AccountExtend accountExtend = accountExtendMapper.selectOne(accountExtendQW); - accountExtend.setAccountId(accountOld.getId()); - accountExtendMapper.updateById(accountExtend); + List accountExtends = accountExtendMapper.selectList(accountExtendQW); + if (CollectionUtil.isNotEmpty(accountExtends)) { + AccountExtend accountExtend = accountExtends.get(0); + accountExtend.setAccountId(accountOld.getId()); + accountExtendMapper.updateById(accountExtend); - accountMapper.deleteById(userHolder.getId()); + accountMapper.deleteById(userHolder.getId()); - String token = LocalCacheUtils.getTokenCache(String.valueOf(accountOld.getId())); - if (StringUtils.isNotBlank(token)) { - //用户已登入 - result.setToken(token); - } else { - result.setToken(createAccountToken(accountOld)); + String token = LocalCacheUtils.getTokenCache(String.valueOf(accountOld.getId())); + if (StringUtils.isNotBlank(token)) { + //用户已登入 + result.setToken(token); + } else { + result.setToken(createAccountToken(accountOld)); + } + return result; + }else { + accountOld.setSystemUser(3); + accountOld.setIsTrial(1); + accountOld.setCredits(BigDecimal.valueOf(100)); + accountOld.setValidEndTime(toDayEnd(Instant.now().plus(5, ChronoUnit.DAYS).toEpochMilli())); + accountOld.setUpdateDate(new Date()); + accountMapper.updateById(accountOld); + TrialOrder trialOrder = CopyUtil.copyObject(accountOld, TrialOrder.class); + trialOrder.setEmail(accountOld.getUserEmail()); + trialOrder.setCreateTime(LocalDateTime.now()); + trialOrder.setStatus(1); + // 获取用户申请试用IP + String ipAddress = RequestInfoUtil.getIpAddress(request); + trialOrder.setIp(ipAddress); + trialOrderMapper.insert(trialOrder); } - return result; } Account accountNew = accountMapper.selectById(userHolder.getId()); accountNew.setUserEmail(accountBindEmailDTO.getUserEmail());