SceneDownloadLogServiceImpl.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.fdkankan.scene.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.fdkankan.common.constant.DownloadStatus;
  7. import com.fdkankan.common.constant.RecStatus;
  8. import com.fdkankan.common.constant.TbStatus;
  9. import com.fdkankan.scene.entity.SceneCooperation;
  10. import com.fdkankan.scene.entity.SceneDataDownload;
  11. import com.fdkankan.scene.entity.SceneDownloadLog;
  12. import com.fdkankan.scene.mapper.ISceneDownloadLogMapper;
  13. import com.fdkankan.scene.service.ISceneDownloadLogService;
  14. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  15. import java.util.stream.Collectors;
  16. import org.springframework.stereotype.Service;
  17. import java.util.Calendar;
  18. import java.util.List;
  19. /**
  20. * <p>
  21. * 场景下载记录 服务实现类
  22. * </p>
  23. *
  24. * @author dengsixing
  25. * @since 2021-12-23
  26. */
  27. @Service
  28. public class SceneDownloadLogServiceImpl extends ServiceImpl<ISceneDownloadLogMapper, SceneDownloadLog> implements ISceneDownloadLogService {
  29. @Override
  30. public void updateStatusByNum(String sceneNum, Integer status) {
  31. this.update(new LambdaUpdateWrapper<SceneDownloadLog>()
  32. .eq(SceneDownloadLog::getNum, sceneNum)
  33. .eq(SceneDownloadLog::getTbStatus, TbStatus.VALID.code())
  34. .set(SceneDownloadLog::getDownloadStatus, status));
  35. }
  36. @Override
  37. public void deleteStatusByNum(String sceneNum) {
  38. this.update(new LambdaUpdateWrapper<SceneDownloadLog>()
  39. .eq(SceneDownloadLog::getNum, sceneNum)
  40. .eq(SceneDownloadLog::getTbStatus, TbStatus.VALID.code())
  41. .eq(SceneDownloadLog::getDownloadStatus, DownloadStatus.SUCCESS.code())
  42. .set(SceneDownloadLog::getUpdateTime, Calendar.getInstance().getTime())
  43. .set(SceneDownloadLog::getTbStatus, TbStatus.DELETE.code()));
  44. }
  45. @Override
  46. public SceneDownloadLog findByStatusAndNum(String sceneNum, Integer status) {
  47. List<SceneDownloadLog> list =
  48. this.list(new LambdaQueryWrapper<SceneDownloadLog>()
  49. .eq(SceneDownloadLog::getNum, sceneNum)
  50. .eq(SceneDownloadLog::getDownloadStatus, status)
  51. .orderByDesc(SceneDownloadLog::getId));
  52. if(CollUtil.isEmpty(list)){
  53. return null;
  54. }
  55. return list.get(0);
  56. }
  57. @Override
  58. public SceneDownloadLog findLastOneByNum(String sceneNum) {
  59. SceneDownloadLog downloadLog =
  60. this.getOne(new LambdaQueryWrapper<SceneDownloadLog>()
  61. .eq(SceneDownloadLog::getNum, sceneNum)
  62. .orderByDesc(SceneDownloadLog::getId).last("limit 1"));
  63. return downloadLog;
  64. }
  65. @Override
  66. public void updateSceneDownloadLog(String num, Integer status, String url, String reason) {
  67. List<SceneDownloadLog> downloadLogIngList = this.list(
  68. new LambdaQueryWrapper<SceneDownloadLog>().eq(SceneDownloadLog::getNum, num)
  69. .select(SceneDownloadLog::getId)
  70. .eq(SceneDownloadLog::getDownloadStatus, DownloadStatus.DOWNLOADING.code()));
  71. if(CollUtil.isEmpty(downloadLogIngList)){
  72. return;
  73. }
  74. List<Long> idList = downloadLogIngList.stream().map(SceneDownloadLog::getId).collect(Collectors.toList());
  75. this.update(new LambdaUpdateWrapper<SceneDownloadLog>()
  76. .set(SceneDownloadLog::getDownloadStatus, status)
  77. .set(SceneDownloadLog::getDownloadUrl, url)
  78. .set(SceneDownloadLog::getReason, reason)
  79. .in(SceneDownloadLog::getId, idList));
  80. }
  81. }