ProjectExportService.java 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. package cn.cslg.pas.service;
  2. import cn.cslg.pas.common.model.vo.ProjectExportVO;
  3. import cn.cslg.pas.common.model.vo.ProjectVO;
  4. import cn.cslg.pas.common.utils.FileUtils;
  5. import cn.cslg.pas.common.utils.SecurityUtils.LoginUtils;
  6. import cn.cslg.pas.common.utils.StringUtils;
  7. import cn.cslg.pas.domain.ProjectExport;
  8. import cn.cslg.pas.domain.User;
  9. import cn.cslg.pas.mapper.ProjectExportMapper;
  10. import cn.dev33.satoken.stp.StpUtil;
  11. import cn.hutool.core.io.FileUtil;
  12. import com.alibaba.fastjson.JSON;
  13. import com.alibaba.fastjson.JSONArray;
  14. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  15. import com.baomidou.mybatisplus.core.metadata.IPage;
  16. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  17. import com.baomidou.mybatisplus.extension.service.IService;
  18. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  19. import lombok.RequiredArgsConstructor;
  20. import org.springframework.context.annotation.Lazy;
  21. import org.springframework.stereotype.Service;
  22. import java.io.IOException;
  23. import java.util.ArrayList;
  24. import java.util.Date;
  25. import java.util.List;
  26. import java.util.stream.Collectors;
  27. /**
  28. * @author Administrator
  29. * @description 针对表【os_thematic_export(专题库数据导出记录)】的数据库操作Service
  30. * @createDate 2022-04-24 08:06:14
  31. */
  32. @Service
  33. @RequiredArgsConstructor(onConstructor_ = {@Lazy})
  34. public class ProjectExportService extends ServiceImpl<ProjectExportMapper, ProjectExport> {
  35. private final FileUtils fileUtils;
  36. private final LoginUtils loginUtils;
  37. private final RequestService requestService;
  38. public IPage<ProjectExport> getPageList(ProjectExportVO params) throws IOException {
  39. LambdaQueryWrapper<ProjectExport> queryWrapper = new LambdaQueryWrapper<>();
  40. if (params.getProjectId() != null) {
  41. queryWrapper.eq(ProjectExport::getProjectId, params.getProjectId());
  42. }
  43. queryWrapper.orderByDesc(ProjectExport::getCreateTime);
  44. IPage<ProjectExport> pageList = this.page(new Page<>(params.getCurrent(), params.getSize()), queryWrapper);
  45. List<Integer> personIds = pageList.getRecords().stream().map(ProjectExport::getCreateBy).collect(Collectors.toList());
  46. List<ProjectVO.Personnel> personnelList =new ArrayList<>();
  47. if(personIds.size()!=0){
  48. String jsonObject1 = requestService.getPersonnelFromPCS(personIds);
  49. JSONArray jsonArray = JSON.parseArray(jsonObject1);
  50. personnelList = jsonArray.toJavaList(ProjectVO.Personnel.class);
  51. }
  52. for(ProjectExport data: pageList.getRecords()) {
  53. data.setCreateName(personnelList.stream().filter(item -> item.getId().equals(data.getCreateBy())).findFirst().orElse(new ProjectVO.Personnel()).getPersonnelName());
  54. }
  55. return pageList;
  56. }
  57. public Integer add(ProjectExport projectExport) {
  58. projectExport.setCreateBy(loginUtils.getId());
  59. projectExport.setCreateTime(new Date());
  60. projectExport.insert();
  61. return projectExport.getId();
  62. }
  63. public void delete(Integer id) {
  64. ProjectExport temp = this.getById(id);
  65. this.removeById(id);
  66. if (StringUtils.isNotEmpty(temp.getUrl())) {
  67. FileUtil.del(fileUtils.getSystemPath(temp.getUrl()));
  68. }
  69. }
  70. }