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.task.PageTaskRequest; import com.ichaoj.ams.response.task.TaskResponse; import com.ichaoj.ams.service.IAmsAirdropProjectService; import com.ichaoj.ams.service.IAmsAirdropTaskService; 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; /** *

* 空投项目任务 服务实现类 *

* * @author cjwen * @since 2023-05-10 */ @Service public class AmsAirdropTaskServiceImpl extends SuperWhaleServiceImpl implements IAmsAirdropTaskService { @Resource @Lazy private IAmsAirdropProjectService projectService; @Override public boolean verifyTaskParam(String taskApi, String taskName, String taskUrl, AmsConstant.TaskType taskType) { return StrUtil.isNotBlank(taskApi) && StrUtil.isNotBlank(taskName) && StrUtil.isNotBlank(taskUrl) && taskType != null; } @Override public PublicPage pageAirdropProject(PageTaskRequest taskRequest) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper .like(StrUtil.isNotBlank(taskRequest.getQueryValue()), AmsAirdropTask::getTaskName, taskRequest.getQueryValue()) .or().eq(StrUtil.isNotBlank(taskRequest.getQueryValue()), AmsAirdropTask::getAmsTaskId, taskRequest.getQueryValue()) .eq(taskRequest.getTaskType() != null, AmsAirdropTask::getTaskType, taskRequest.getTaskType()) .orderByDesc(AmsAirdropTask::getCreateTime); Page 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; }); } }