AmsAirdropTaskServiceImpl.java 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package com.ichaoj.ams.service.impl;
  2. import cn.hutool.core.bean.BeanUtil;
  3. import cn.hutool.core.util.StrUtil;
  4. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  5. import com.baomidou.mybatisplus.core.toolkit.Wrappers;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.ichaoj.ams.constant.AmsConstant;
  8. import com.ichaoj.ams.entity.AmsAirdropProject;
  9. import com.ichaoj.ams.entity.AmsAirdropTask;
  10. import com.ichaoj.ams.mapper.AmsAirdropTaskMapper;
  11. import com.ichaoj.ams.request.task.PageTaskRequest;
  12. import com.ichaoj.ams.response.task.TaskResponse;
  13. import com.ichaoj.ams.service.IAmsAirdropProjectService;
  14. import com.ichaoj.ams.service.IAmsAirdropTaskService;
  15. import com.ichaoj.common.model.PublicPage;
  16. import com.ichaoj.mybatis.service.SuperWhaleServiceImpl;
  17. import org.springframework.context.annotation.Lazy;
  18. import org.springframework.stereotype.Service;
  19. import javax.annotation.Resource;
  20. /**
  21. * <p>
  22. * 空投项目任务 服务实现类
  23. * </p>
  24. *
  25. * @author cjwen
  26. * @since 2023-05-10
  27. */
  28. @Service
  29. public class AmsAirdropTaskServiceImpl extends SuperWhaleServiceImpl<AmsAirdropTaskMapper, AmsAirdropTask> implements IAmsAirdropTaskService {
  30. @Resource
  31. @Lazy
  32. private IAmsAirdropProjectService projectService;
  33. @Override
  34. public boolean verifyTaskParam(String taskApi, String taskName, String taskUrl, AmsConstant.TaskType taskType) {
  35. return StrUtil.isNotBlank(taskApi) &&
  36. StrUtil.isNotBlank(taskName) &&
  37. StrUtil.isNotBlank(taskUrl) &&
  38. taskType != null;
  39. }
  40. @Override
  41. public PublicPage<TaskResponse> pageAirdropProject(PageTaskRequest taskRequest) {
  42. LambdaQueryWrapper<AmsAirdropTask> wrapper = Wrappers.lambdaQuery();
  43. wrapper
  44. .like(StrUtil.isNotBlank(taskRequest.getQueryValue()), AmsAirdropTask::getTaskName, taskRequest.getQueryValue())
  45. .or().eq(StrUtil.isNotBlank(taskRequest.getQueryValue()), AmsAirdropTask::getAmsTaskId, taskRequest.getQueryValue())
  46. .eq(taskRequest.getTaskType() != null, AmsAirdropTask::getTaskType, taskRequest.getTaskType())
  47. .orderByDesc(AmsAirdropTask::getCreateTime);
  48. Page<AmsAirdropTask> result = this.page(this.buildPageObj(taskRequest), wrapper);
  49. return this.convertPublicPage(result, task -> {
  50. TaskResponse response = BeanUtil.copyProperties(task, TaskResponse.class);
  51. AmsAirdropProject project = projectService.getById(task.getAirdropProjectId());
  52. response.setAmsProjectId(project.getAmsProjectId());
  53. response.setProjectLogo(project.getProjectLogo());
  54. response.setProjectName(project.getProjectName());
  55. return response;
  56. });
  57. }
  58. }