From 1f77698bc42b9484957462cd5e0c0b2e8c30fc69 Mon Sep 17 00:00:00 2001 From: shahaibo <1023316923@qq.com> Date: Mon, 11 Dec 2023 16:59:05 +0800 Subject: [PATCH] =?UTF-8?q?TASK:=20=E8=AF=95=E7=94=A8=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B5=8B=E8=AF=95;?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ai/da/controller/AccountController.java | 16 +++++++++ .../com/ai/da/model/dto/TrialOrderDTO.java | 15 ++++++++ .../com/ai/da/service/AccountService.java | 7 ++++ .../da/service/impl/AccountServiceImpl.java | 34 +++++++++++++++++++ 4 files changed, 72 insertions(+) create mode 100644 src/main/java/com/ai/da/model/dto/TrialOrderDTO.java diff --git a/src/main/java/com/ai/da/controller/AccountController.java b/src/main/java/com/ai/da/controller/AccountController.java index 12a491e1..b7608bda 100644 --- a/src/main/java/com/ai/da/controller/AccountController.java +++ b/src/main/java/com/ai/da/controller/AccountController.java @@ -1,11 +1,14 @@ package com.ai.da.controller; +import com.ai.da.common.response.PageBaseResponse; import com.ai.da.common.response.Response; import com.ai.da.common.security.jwt.JWTTokenHelper; +import com.ai.da.mapper.entity.TrialOrder; import com.ai.da.model.dto.*; import com.ai.da.model.enums.Language; import com.ai.da.model.vo.AccountLoginVO; import com.ai.da.model.vo.AccountPreLoginVO; +import com.ai.da.model.vo.QueryLibraryPageVO; import com.ai.da.service.AccountService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -15,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import java.util.List; @Api(tags = "Account模块") @@ -91,4 +95,16 @@ public class AccountController { public Response completeGuidance() { return Response.success(accountService.completeGuidance()); } + + @ApiOperation(value = "试用订单列表") + @PostMapping("/trialOrderList") + public Response> trialOrderList(@Valid @RequestBody TrialOrderDTO trialOrderDTO) { + return Response.success(PageBaseResponse.success(accountService.trialOrderList(trialOrderDTO))); + } + + @ApiOperation(value = "通过试用订单审批") + @PostMapping("/trialOrderApproval") + public Response trialOrderApproval(@RequestParam("ids") List ids) { + return Response.success(accountService.trialOrderApproval(ids)); + } } diff --git a/src/main/java/com/ai/da/model/dto/TrialOrderDTO.java b/src/main/java/com/ai/da/model/dto/TrialOrderDTO.java new file mode 100644 index 00000000..7b239ddc --- /dev/null +++ b/src/main/java/com/ai/da/model/dto/TrialOrderDTO.java @@ -0,0 +1,15 @@ +package com.ai.da.model.dto; + +import com.ai.da.model.vo.PageQueryBaseVo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +@Data +@ApiModel("登入") +public class TrialOrderDTO extends PageQueryBaseVo { + +} diff --git a/src/main/java/com/ai/da/service/AccountService.java b/src/main/java/com/ai/da/service/AccountService.java index 9160b97b..ccd74f3d 100644 --- a/src/main/java/com/ai/da/service/AccountService.java +++ b/src/main/java/com/ai/da/service/AccountService.java @@ -1,15 +1,18 @@ package com.ai.da.service; import com.ai.da.mapper.entity.Account; +import com.ai.da.mapper.entity.TrialOrder; import com.ai.da.model.dto.*; import com.ai.da.model.enums.Language; import com.ai.da.model.vo.AccountLoginVO; import com.ai.da.model.vo.AccountPreLoginVO; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import org.springframework.web.bind.annotation.RequestBody; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; +import java.util.List; /** * 服务类 @@ -100,4 +103,8 @@ public interface AccountService extends IService { Boolean completeGuidance(); Boolean addTrialUser(AccountTrialDTO accountTrialDTO); + + IPage trialOrderList(TrialOrderDTO trialOrderDTO); + + Boolean trialOrderApproval(List ids); } 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 9020e098..a9c1687e 100644 --- a/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/AccountServiceImpl.java @@ -27,6 +27,8 @@ import com.ai.da.service.LibraryService; import com.ai.da.service.UserLikeGroupService; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -501,4 +503,36 @@ public class AccountServiceImpl extends ServiceImpl impl } return Boolean.TRUE; } + + @Override + public IPage trialOrderList(TrialOrderDTO trialOrderDTO) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(TrialOrder::getStatus, 0); + return trialOrderMapper.selectPage(new Page<>(trialOrderDTO.getPage(), trialOrderDTO.getSize()), qw); + } + + @Override + public Boolean trialOrderApproval(List ids) { + for (Long id : ids) { + TrialOrder trialOrder = trialOrderMapper.selectById(id); + trialOrder.setStatus(1); + trialOrder.setUpdateTime(LocalDateTime.now()); + trialOrderMapper.updateById(trialOrder); + Account account = new Account(); + account.setUserName(trialOrder.getUserName()); + account.setUserPassword("Third-000000"); + account.setUserEmail(trialOrder.getEmail()); + account.setLanguage(Language.ENGLISH.name()); + account.setValidStartTime(System.currentTimeMillis()); + account.setValidEndTime(Instant.now().plus(3, ChronoUnit.DAYS).toEpochMilli()); + account.setCreateDate(new Date()); + account.setIsTrial(1); + account.setIsBeginner(1); + accountMapper.insert(account); + // 发送邮件提醒用户试用用户已创建 + SendEmailUtil.sendCustomEmail("1023316923@qq.com", null, trialOrder,2); + SendEmailUtil.sendCustomEmail(account.getUserEmail(), null, trialOrder, 3); + } + return Boolean.TRUE; + } }