From 782a4f9976a6a9a72a512dc212454a588a5a93e0 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Tue, 2 Apr 2024 10:15:35 +0800 Subject: [PATCH] BUGFIX; --- .../ai/da/controller/ThirdPartyController.java | 4 ++-- .../ai/da/mapper/primary/entity/TrialOrder.java | 3 ++- .../java/com/ai/da/service/AccountService.java | 2 +- .../ai/da/service/impl/AccountServiceImpl.java | 16 +++++++++++++++- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ai/da/controller/ThirdPartyController.java b/src/main/java/com/ai/da/controller/ThirdPartyController.java index 2572ed5b..7132d9b2 100644 --- a/src/main/java/com/ai/da/controller/ThirdPartyController.java +++ b/src/main/java/com/ai/da/controller/ThirdPartyController.java @@ -42,8 +42,8 @@ public class ThirdPartyController { @CrossOrigin @ApiOperation(value = "Add user information") @PostMapping("/addTrialUser") - public Response addTrialUser(@RequestBody AccountTrialDTO accountTrialDTO) { - return Response.success(accountService.addTrialUser(accountTrialDTO)); + public Response addTrialUser(@RequestBody AccountTrialDTO accountTrialDTO, HttpServletRequest request) { + return Response.success(accountService.addTrialUser(accountTrialDTO, request)); } @CrossOrigin diff --git a/src/main/java/com/ai/da/mapper/primary/entity/TrialOrder.java b/src/main/java/com/ai/da/mapper/primary/entity/TrialOrder.java index cf37aeee..0e908b59 100644 --- a/src/main/java/com/ai/da/mapper/primary/entity/TrialOrder.java +++ b/src/main/java/com/ai/da/mapper/primary/entity/TrialOrder.java @@ -25,7 +25,7 @@ public class TrialOrder implements Serializable { @TableId(value = "id", type = IdType.AUTO) private Long id; - @ApiModelProperty("surname") + @ApiModelProperty("title") private String title; @ApiModelProperty("surname") @@ -64,4 +64,5 @@ public class TrialOrder implements Serializable { */ private Integer status; private Integer isDeleted; + private String ip; } diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index 5b00ba5b..6d42900b 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -99,7 +99,7 @@ public interface AccountService extends IService { Boolean completeGuidance(); - Boolean addTrialUser(AccountTrialDTO accountTrialDTO); + Boolean addTrialUser(AccountTrialDTO accountTrialDTO, HttpServletRequest request); IPage trialOrderList(TrialOrderDTO trialOrderDTO); 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 b6e75c34..a166eb91 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -466,7 +466,20 @@ public class AccountServiceImpl extends ServiceImpl impl } @Override - public Boolean addTrialUser(AccountTrialDTO accountTrialDTO) { + public Boolean addTrialUser(AccountTrialDTO accountTrialDTO, HttpServletRequest request) { + // 获取用户申请试用IP + String ipAddress = RequestInfoUtil.getIpAddress(request); + // 先检测试用订单 + QueryWrapper trialOrderQueryWrapper = new QueryWrapper<>(); + trialOrderQueryWrapper.lambda().eq(TrialOrder::getIp, ipAddress); + trialOrderQueryWrapper.lambda().and(wrapper -> + wrapper.eq(TrialOrder::getEmail, accountTrialDTO.getEmail()) + .or() // OR + .like(TrialOrder::getUserName, accountTrialDTO.getUserName())); + List trialOrders = trialOrderMapper.selectList(trialOrderQueryWrapper); + if (CollectionUtil.isNotEmpty(trialOrders)) { + throw new BusinessException("You have submitted a trial application, please wait for approval."); + } // 先检测用户名和邮箱 QueryWrapper qw = new QueryWrapper<>(); qw.lambda().eq(Account::getUserEmail, accountTrialDTO.getEmail()) @@ -487,6 +500,7 @@ public class AccountServiceImpl extends ServiceImpl impl TrialOrder trialOrder = CopyUtil.copyObject(accountTrialDTO, TrialOrder.class); trialOrder.setCreateTime(LocalDateTime.now()); trialOrder.setStatus(0); + trialOrder.setIp(ipAddress); trialOrderMapper.insert(trialOrder); SendEmailUtil.sendCustomEmail("1023316923@qq.com", null, trialOrder,1); SendEmailUtil.sendCustomEmail("calvinwong@aidlab.hk", null, trialOrder,1);