From c28db81893f89b77550bde103e837c9f258e051c Mon Sep 17 00:00:00 2001 From: xupei Date: Wed, 13 Aug 2025 16:45:30 +0800 Subject: [PATCH] =?UTF-8?q?BUGFIX:=E5=90=8C=E4=B8=80=E6=B5=8F=E8=A7=88?= =?UTF-8?q?=E5=99=A8=E5=88=87=E6=8D=A2=E7=89=88=E6=9C=AC=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=AF=86=E7=A0=81=E8=A2=AB=E7=BD=AE=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/AccountController.java | 4 ++- .../ai/da/mapper/primary/entity/Account.java | 3 ++ .../com/ai/da/model/dto/AddSubAccountDTO.java | 6 ++++ .../com/ai/da/service/AccountService.java | 2 ++ .../da/service/impl/AccountServiceImpl.java | 30 +++++++++++++------ 5 files changed, 35 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index d2e1954d..77656d6a 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -304,7 +304,9 @@ public class AccountController { @PostMapping("deleteSubAccount") @ApiOperation(value = "子账号删除") public Response deleteSubAccount(@Valid @RequestBody AddSubAccountDTO addSubAccountDTO) { - return Response.success(accountService.deleteSubAccount(addSubAccountDTO)); +// return Response.success(accountService.deleteSubAccount(addSubAccountDTO)); + accountService.removeSubAccount(addSubAccountDTO, true); + return Response.success(); } @PostMapping("subAccountList") diff --git a/src/main/java/com/ai/da/mapper/primary/entity/Account.java b/src/main/java/com/ai/da/mapper/primary/entity/Account.java index ecfc9e15..7bcde787 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/Account.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/Account.java @@ -125,6 +125,9 @@ public class Account implements Serializable { private BigDecimal creditsUsageLimit; + // 学校分配的积分使用情况 + private BigDecimal creditsUsage = BigDecimal.ZERO; + private Integer subAccountNum; private String invitationCode; diff --git a/src/main/java/com/ai/da/model/dto/AddSubAccountDTO.java b/src/main/java/com/ai/da/model/dto/AddSubAccountDTO.java index 2f894789..04266d27 100644 --- a/src/main/java/com/ai/da/model/dto/AddSubAccountDTO.java +++ b/src/main/java/com/ai/da/model/dto/AddSubAccountDTO.java @@ -2,11 +2,17 @@ package com.ai.da.model.dto; import com.ai.da.mapper.primary.entity.Account; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.List; @Data +@NoArgsConstructor public class AddSubAccountDTO extends Account { private List deleteIdList; + + public AddSubAccountDTO(List deleteIdList) { + this.deleteIdList = deleteIdList; + } } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index a0429650..b1f9692d 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -205,6 +205,8 @@ public interface AccountService extends IService { Boolean deleteSubAccount(AddSubAccountDTO addSubAccountDTO); + void removeSubAccount(AddSubAccountDTO addSubAccountDTO, boolean returnCredits); + PageBaseResponse subAccountList(SubAccountPageDTO subAccountPageDTO); Account accountDetail(Long id); 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 0bd8f7be..e172c3db 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -132,10 +132,12 @@ public class AccountServiceImpl extends ServiceImpl impl Account account = getOneByEmail(accountDTO.getEmail()); //用户有效期校验 validateUserValidaExpire(account); - if ("Third-000000".equals(account.getUserPassword())) { + if ("Third-000000".equals(account.getUserPassword()) && !StringUtil.isNullOrEmpty(accountDTO.getPassword())) { account.setUserPassword(accountDTO.getPassword()); accountMapper.updateById(account); - } else { + } else if ("Third-000000".equals(account.getUserPassword())){ + throw new BusinessException("Password cannot be empty"); + } else { if (!account.getUserPassword().equals(accountDTO.getPassword())) { throw new BusinessException("password.error", ResultEnum.PROMPT.getCode()); } @@ -1161,10 +1163,14 @@ public class AccountServiceImpl extends ServiceImpl impl @Override public Boolean designWorksRegister(AccountDesignWorksRegisterDTO accountDesignWorksRegisterDTO) { log.info("注册账号。邮箱:{}", accountDesignWorksRegisterDTO.getUserEmail() ); - QueryWrapper qw = new QueryWrapper<>(); - qw.eq("BINARY user_email", accountDesignWorksRegisterDTO.getUserEmail()); - List accountList = accountMapper.selectList(qw); - if (CollectionUtil.isNotEmpty(accountList)) { + QueryWrapper qwA = new QueryWrapper<>(); + qwA.eq("BINARY user_email", accountDesignWorksRegisterDTO.getUserEmail()); + List accountList = accountMapper.selectList(qwA); + + QueryWrapper qwT = new QueryWrapper<>(); + qwT.eq("BINARY email", accountDesignWorksRegisterDTO.getUserEmail()); + List trialOrders = trialOrderMapper.selectList(qwT); + if (CollectionUtil.isNotEmpty(accountList) || CollectionUtil.isNotEmpty(trialOrders)) { throw new BusinessException("The email has already been registered"); } @@ -2032,9 +2038,12 @@ public class AccountServiceImpl extends ServiceImpl impl Account account = accounts.get(0); validateUserValidaExpire(account); - if ("Third-000000".equals(account.getUserPassword())) { + + if ("Third-000000".equals(account.getUserPassword()) && !StringUtil.isNullOrEmpty(accountDTO.getPassword())) { account.setUserPassword(accountDTO.getPassword()); accountMapper.updateById(account); + } else if ("Third-000000".equals(account.getUserPassword())){ + throw new BusinessException("Password cannot be empty"); } else { if (!account.getUserPassword().equals(accountDTO.getPassword())) { throw new BusinessException("password.error", ResultEnum.PROMPT.getCode()); @@ -2092,14 +2101,16 @@ public class AccountServiceImpl extends ServiceImpl impl qw.lambda().eq(Account::getUserPassword, accountDTO.getPassword()); accounts = accountMapper.selectList(qw); if (CollectionUtil.isEmpty(accounts)) { - throw new BusinessException("Password error."); + throw new BusinessException("password.error"); } Account account = accounts.get(0); validateUserValidaExpire(account); - if ("Third-000000".equals(account.getUserPassword())) { + if ("Third-000000".equals(account.getUserPassword()) && !StringUtil.isNullOrEmpty(accountDTO.getPassword())) { account.setUserPassword(accountDTO.getPassword()); accountMapper.updateById(account); + } else if ("Third-000000".equals(account.getUserPassword())){ + throw new BusinessException("Password cannot be empty"); } else { if (!account.getUserPassword().equals(accountDTO.getPassword())) { throw new BusinessException("password.error", ResultEnum.PROMPT.getCode()); @@ -2192,6 +2203,7 @@ public class AccountServiceImpl extends ServiceImpl impl if (isUsernameExists(account.getOrganizationName(), addSubAccountDTO.getUserName())) { throw new BusinessException("This organization already has an account with the same username."); } + // 之后是否需要检验密码不能设置为空 // 校验当前账号邮箱是否有个人账号 Account subAccount = accountMapper.selectOne(new QueryWrapper().eq("user_email", addSubAccountDTO.getUserEmail()));