ResWareServiceImpl.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package cn.efunbox.audio.impl.res;
  2. import cn.efunbox.audio.entity.BaseOrderEnum;
  3. import cn.efunbox.audio.entity.res.ResAlbum;
  4. import cn.efunbox.audio.entity.res.ResWare;
  5. import cn.efunbox.audio.helper.SortHelper;
  6. import cn.efunbox.audio.page.ResOnePage;
  7. import cn.efunbox.audio.repository.res.ResAlbumRepository;
  8. import cn.efunbox.audio.repository.res.ResWareRepository;
  9. import cn.efunbox.audio.service.res.ResWareService;
  10. import cn.efunbox.audio.utils.ResApiCode;
  11. import cn.efunbox.audio.utils.ResApiResult;
  12. import org.apache.commons.lang3.StringUtils;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import java.util.LinkedHashMap;
  16. import java.util.List;
  17. @Service
  18. public class ResWareServiceImpl implements ResWareService {
  19. @Autowired
  20. ResWareRepository resWareRepository;
  21. @Autowired
  22. ResAlbumRepository resAlbumRepository;
  23. /**
  24. * 根据专辑获取节目列表
  25. * @param contentId 专辑编号
  26. * @param pageNum 页码
  27. * @param pageSize 页大小
  28. * @return
  29. */
  30. @Override
  31. public ResApiResult<ResOnePage<ResWare>> getResWareListByContentId(String contentId,String order, Integer pageNum, Integer pageSize) {
  32. if(StringUtils.isBlank(contentId)){
  33. return ResApiResult.error(ResApiCode.PARAMETER_NULL,ResApiCode.PARAMETER_NULL.getMessage()+"contentId");//错误提示语格式=》请求参数为空:contentId
  34. }
  35. ResWare resWare = new ResWare();
  36. resWare.setContentId(contentId);
  37. //总记录数
  38. Long count = resWareRepository.count(resWare);
  39. if(count == 0){
  40. return ResApiResult.error(ResApiCode.NOT_FOUND);
  41. }
  42. ResOnePage onePage = new ResOnePage(count);
  43. if(pageNum != null){
  44. onePage.setPageNum(pageNum);
  45. }
  46. if(pageSize != null){
  47. onePage.setPageSize(pageSize);
  48. }
  49. //查询
  50. List<ResWare> wareList = resWareRepository.find(resWare,
  51. onePage.getStart(),
  52. onePage.getPageSize(),
  53. SortHelper.sortMap2Sort(
  54. new LinkedHashMap<String, BaseOrderEnum>() {{
  55. if(StringUtils.isBlank(order) || "asc".equals(order)){
  56. put("chapterRanking", BaseOrderEnum.ASC);
  57. }else{
  58. put("chapterRanking",BaseOrderEnum.DESC);
  59. }
  60. }}
  61. )
  62. );
  63. if(wareList == null || wareList.size() == 0){
  64. return ResApiResult.error(ResApiCode.NOT_FOUND);
  65. }
  66. wareList.stream().forEach(obj->{
  67. obj.setDownLoadFlag("0".equals(obj.getDbDownLoadFlag())?true:false);
  68. });
  69. onePage.setChapterList(wareList);
  70. //响应
  71. return ResApiResult.ok(onePage);
  72. }
  73. /**
  74. * 获取节目详情信息
  75. * @param chapterId
  76. * @return
  77. */
  78. @Override
  79. public ResApiResult<ResWare> getResWareById(String chapterId) {
  80. if(StringUtils.isBlank(chapterId)){
  81. return ResApiResult.error(ResApiCode.PARAMETER_NULL,ResApiCode.PARAMETER_NULL.getMessage()+"contentId");//错误提示语格式=》请求参数为空:chapterId
  82. }
  83. //课件查询
  84. ResWare resWare = resWareRepository.find(chapterId);
  85. if(resWare == null){
  86. return ResApiResult.error(ResApiCode.NOT_FOUND);
  87. }
  88. //课程
  89. ResAlbum resAlbum = resAlbumRepository.find(resWare.getContentId());
  90. if(resAlbum != null){
  91. resWare.setContentName(resAlbum.getContentName());
  92. resWare.setContentPicUrl(resAlbum.getContentPicUrl());
  93. }
  94. //响应
  95. return ResApiResult.ok(resWare);
  96. }
  97. }