Browse Source

fix: ams 任务模块优化

cjwen 1 year ago
parent
commit
cf5b8f9c34

+ 4 - 2
src/main/java/com/ichaoj/ams/controller/AirdropTaskController.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import com.ichaoj.ams.entity.AmsAirdropTask;
 import com.ichaoj.ams.request.airdrop.PageProjectRequest;
 import com.ichaoj.ams.request.task.CreateAirdropTask;
+import com.ichaoj.ams.request.task.PageTaskRequest;
 import com.ichaoj.ams.request.task.UpdateAirdropTask;
 import com.ichaoj.ams.request.task.UpdateTaskStatusRequest;
 import com.ichaoj.ams.response.airdrop.AirdropProjectResponse;
@@ -15,6 +16,7 @@ import com.ichaoj.common.model.PublicPage;
 import com.ichaoj.common.model.PublicResult;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
@@ -77,8 +79,8 @@ public class AirdropTaskController {
     @PostMapping("/page")
     @Operation(summary = "分页查询空投任务")
     @AuthResource
-    public PublicResult<PublicPage<TaskResponse>> pageTask(@RequestBody PageProjectRequest projectRequest) {
-        PublicPage<TaskResponse> result = taskService.pageAirdropProject(projectRequest);
+    public PublicResult<PublicPage<TaskResponse>> pageTask(@RequestBody PageTaskRequest taskRequest) {
+        PublicPage<TaskResponse> result = taskService.pageAirdropProject(taskRequest);
         return PublicResult.success(result);
     }
 }

+ 0 - 2
src/main/java/com/ichaoj/ams/controller/TradeRecordController.java

@@ -1,8 +1,6 @@
 package com.ichaoj.ams.controller;
 
-import com.ichaoj.ams.request.execute.PageExecuteRequest;
 import com.ichaoj.ams.request.record.PageTradeRecordRequest;
-import com.ichaoj.ams.response.execute.ExecuteResponse;
 import com.ichaoj.ams.response.record.TradeRecordResponse;
 import com.ichaoj.ams.service.IAmsTradeRecordService;
 import com.ichaoj.common.annotation.AuthResource;

+ 1 - 1
src/main/java/com/ichaoj/ams/entity/AmsExecuteRecord.java

@@ -32,7 +32,7 @@ public class AmsExecuteRecord implements Serializable {
     /**
      * 交互名称
      */
-    private String executeTimes;
+    private Integer executeTimes;
 
     /**
      * 空投项目id

+ 2 - 2
src/main/java/com/ichaoj/ams/request/execute/CreateExecute.java

@@ -12,9 +12,9 @@ import lombok.Data;
 public class CreateExecute {
 
     /**
-     * 交互名称
+     * 执行次数
      */
-    private String executeTimes;
+    private Integer executeTimes;
 
     /**
      * 空投项目id

+ 9 - 4
src/main/java/com/ichaoj/ams/request/task/PageTaskRequest.java

@@ -1,5 +1,8 @@
 package com.ichaoj.ams.request.task;
 
+import com.ichaoj.ams.constant.AmsConstant;
+import com.ichaoj.ams.response.task.TaskResponse;
+import com.ichaoj.common.model.PublicPage;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
@@ -13,10 +16,12 @@ import javax.validation.constraints.NotBlank;
 @EqualsAndHashCode(callSuper = true)
 @Data
 @Schema(title = "修改空投任务")
-public class PageTaskRequest extends CreateAirdropTask {
+public class PageTaskRequest extends PublicPage<TaskResponse> {
 
-    @Schema(title = "空投任务Id")
-    @NotBlank(message = "amsTaskId 不能为空")
-    private String amsTaskId;
+    @Schema(title = "查询参数")
+    private String queryValue;
+
+    @Schema(title = "任务类型")
+    private AmsConstant.TaskType taskType;
 
 }

+ 6 - 11
src/main/java/com/ichaoj/ams/response/airdrop/AirdropProjectResponse.java

@@ -18,30 +18,25 @@ public class AirdropProjectResponse {
 
     private String amsProjectId;
 
-    /**
-     * 项目名称
-     */
-    private String projectName;
-
     /**
      * 项目logo
      */
     private String projectLogo;
 
     /**
-     * 预估费用
+     * 项目名称
      */
-    private BigDecimal estimatedCost;
+    private String projectName;
 
     /**
-     * 项目相关url
+     * 预计投入usdt
      */
-    private String projectUrl;
+    private String estimatedCost;
 
     /**
-     * 官网地址
+     * 项目相关url
      */
-    private String projectWebsite;
+    private String projectUrl;
 
     /**
      * 空投状态

+ 1 - 15
src/main/java/com/ichaoj/ams/response/execute/ExecuteResponse.java

@@ -19,7 +19,7 @@ public class ExecuteResponse {
     /**
      * 交互名称
      */
-    private String executeName;
+    private Integer executeName;
 
     /**
      * 任务id
@@ -66,20 +66,6 @@ public class ExecuteResponse {
      */
     private String maxGas;
 
-    /**
-     * 空投项目id
-     */
-    private String projectId;
-
-    private String projectName;
-
-    private String projectLogo;
-
-    /**
-     * 任务id
-     */
-    private List<TaskResponse> tasks;
-
     /**
      * 创建时间
      */

+ 14 - 15
src/main/java/com/ichaoj/ams/response/task/TaskResponse.java

@@ -21,11 +21,6 @@ public class TaskResponse {
      */
     private String amsTaskId;
 
-    /**
-     * 空投项目id
-     */
-    private String airdropProjectId;
-
     /**
      * 任务名称
      */
@@ -36,16 +31,6 @@ public class TaskResponse {
      */
     private String contractAddress;
 
-    /**
-     * 任务交互api
-     */
-    private String taskApi;
-
-    /**
-     * 任务交互url
-     */
-    private String taskUrl;
-
     /**
      * 任务类型
      */
@@ -66,4 +51,18 @@ public class TaskResponse {
      */
     private LocalDateTime updateTime;
 
+
+    private String amsProjectId;
+
+    /**
+     * 项目logo
+     */
+    private String projectLogo;
+
+    /**
+     * 项目名称
+     */
+    private String projectName;
+
+
 }

+ 5 - 6
src/main/java/com/ichaoj/ams/service/IAmsAirdropTaskService.java

@@ -3,7 +3,7 @@ package com.ichaoj.ams.service;
 import com.ichaoj.ams.constant.AmsConstant;
 import com.ichaoj.ams.entity.AmsAirdropTask;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.ichaoj.ams.request.airdrop.PageProjectRequest;
+import com.ichaoj.ams.request.task.PageTaskRequest;
 import com.ichaoj.ams.response.task.TaskResponse;
 import com.ichaoj.common.model.PublicPage;
 
@@ -27,11 +27,10 @@ public interface IAmsAirdropTaskService extends IService<AmsAirdropTask> {
      */
     boolean verifyTaskParam(String taskApi, String taskName, String taskUrl, AmsConstant.TaskType taskType);
 
-
     /**
-     *
-     * @param projectRequest
-     * @return
+     * 分页查询任务
+     * @param taskRequest 分页参数
+     * @return 分页结果
      */
-    PublicPage<TaskResponse> pageAirdropProject(PageProjectRequest projectRequest);
+    PublicPage<TaskResponse> pageAirdropProject(PageTaskRequest taskRequest);
 }

+ 31 - 5
src/main/java/com/ichaoj/ams/service/impl/AmsAirdropTaskServiceImpl.java

@@ -1,16 +1,25 @@
 package com.ichaoj.ams.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ichaoj.ams.constant.AmsConstant;
+import com.ichaoj.ams.entity.AmsAirdropProject;
 import com.ichaoj.ams.entity.AmsAirdropTask;
 import com.ichaoj.ams.mapper.AmsAirdropTaskMapper;
-import com.ichaoj.ams.request.airdrop.PageProjectRequest;
+import com.ichaoj.ams.request.task.PageTaskRequest;
 import com.ichaoj.ams.response.task.TaskResponse;
+import com.ichaoj.ams.service.IAmsAirdropProjectService;
 import com.ichaoj.ams.service.IAmsAirdropTaskService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ichaoj.common.model.PublicPage;
+import com.ichaoj.mybatis.service.SuperWhaleServiceImpl;
+import org.springframework.context.annotation.Lazy;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.Resource;
+
 /**
  * <p>
  * 空投项目任务 服务实现类
@@ -20,7 +29,11 @@ import org.springframework.stereotype.Service;
  * @since 2023-05-10
  */
 @Service
-public class AmsAirdropTaskServiceImpl extends ServiceImpl<AmsAirdropTaskMapper, AmsAirdropTask> implements IAmsAirdropTaskService {
+public class AmsAirdropTaskServiceImpl extends SuperWhaleServiceImpl<AmsAirdropTaskMapper, AmsAirdropTask> implements IAmsAirdropTaskService {
+
+    @Resource
+    @Lazy
+    private IAmsAirdropProjectService projectService;
 
     @Override
     public boolean verifyTaskParam(String taskApi, String taskName, String taskUrl, AmsConstant.TaskType taskType) {
@@ -31,7 +44,20 @@ public class AmsAirdropTaskServiceImpl extends ServiceImpl<AmsAirdropTaskMapper,
     }
 
     @Override
-    public PublicPage<TaskResponse> pageAirdropProject(PageProjectRequest projectRequest) {
-        return null;
+    public PublicPage<TaskResponse> pageAirdropProject(PageTaskRequest taskRequest) {
+        LambdaQueryWrapper<AmsAirdropTask> wrapper = Wrappers.lambdaQuery();
+        wrapper
+                .like(StrUtil.isNotBlank(taskRequest.getQueryValue()), AmsAirdropTask::getTaskName, taskRequest.getQueryValue())
+                .eq(taskRequest.getTaskType() != null, AmsAirdropTask::getTaskType, taskRequest.getTaskType())
+                .orderByDesc(AmsAirdropTask::getCreateTime);
+        Page<AmsAirdropTask> result = this.page(this.buildPageObj(taskRequest), wrapper);
+        return this.convertPublicPage(result, task -> {
+            TaskResponse response = BeanUtil.copyProperties(task, TaskResponse.class);
+            AmsAirdropProject project = projectService.getById(task.getAirdropProjectId());
+            response.setAmsProjectId(project.getAmsProjectId());
+            response.setProjectLogo(project.getProjectLogo());
+            response.setProjectName(project.getProjectName());
+            return response;
+        });
     }
 }