MusicSheetController.java 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package com.ym.mec.web.controller;
  2. import com.alibaba.fastjson.JSON;
  3. import com.dayaedu.cbs.openfeign.wrapper.music.CbsMusicSheetWrapper;
  4. import com.microsvc.toolkit.common.response.template.R;
  5. import com.ym.mec.biz.dal.entity.SysMusicScore;
  6. import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
  7. import com.ym.mec.biz.service.InstrumentService;
  8. import com.ym.mec.biz.service.SysMusicScoreService;
  9. import com.ym.mec.vo.MusicSheetVo;
  10. import io.swagger.annotations.Api;
  11. import io.swagger.annotations.ApiImplicitParam;
  12. import io.swagger.annotations.ApiImplicitParams;
  13. import io.swagger.annotations.ApiOperation;
  14. import lombok.extern.slf4j.Slf4j;
  15. import org.apache.commons.collections.CollectionUtils;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.validation.annotation.Validated;
  19. import org.springframework.web.bind.annotation.GetMapping;
  20. import org.springframework.web.bind.annotation.PathVariable;
  21. import org.springframework.web.bind.annotation.RequestMapping;
  22. import org.springframework.web.bind.annotation.RestController;
  23. import java.util.Arrays;
  24. import java.util.List;
  25. import java.util.Map;
  26. import java.util.stream.Collectors;
  27. @Slf4j
  28. @Validated
  29. @RestController
  30. @RequestMapping("${app-config.url.web:}/musicSheet")
  31. @Api(tags = "曲谱表")
  32. public class MusicSheetController {
  33. @Autowired
  34. private SysMusicScoreService musicSheetService;
  35. @Autowired
  36. private InstrumentService instrumentService;
  37. /**
  38. * 查询单条
  39. *
  40. * @param id 详情ID
  41. * @return R<MusicSheetVo.MusicSheet>
  42. */
  43. @ApiOperation(value = "查询内容平台数据")
  44. @ApiImplicitParams({
  45. @ApiImplicitParam(name = "id", value = "id", dataType = "long")
  46. })
  47. @GetMapping("/cbsDetail/{id}")
  48. public R<MusicSheetVo.OpenMusicSheetDetail> cbsDetail(@PathVariable("id") Integer id) {
  49. CbsMusicSheetWrapper.MusicSheet musicSheet = musicSheetService.cbsDetail(id);
  50. musicSheet.setBizId(Long.valueOf(id));
  51. MusicSheetVo.MusicSheetDetail musicSheetDetail = JSON.parseObject(JSON.toJSONString(musicSheet), MusicSheetVo.MusicSheetDetail.class);
  52. SysMusicScore detail = musicSheetService.get(id);
  53. if (detail == null) {
  54. musicSheetDetail.setBizMusicCategoryId(null);
  55. } else {
  56. //musicSheetDetail.setPaymentType(detail.get());
  57. musicSheetDetail.setBizMusicCategoryId(detail.getCategoriesId() == null ? null : detail.getCategoriesId().longValue());
  58. }
  59. // 设置乐器信息
  60. if (StringUtils.isNotBlank(musicSheetDetail.getMusicalInstrumentIds())) {
  61. List<Integer> instrumentIds = Arrays.stream(musicSheetDetail.getMusicalInstrumentIds().split(","))
  62. .map(Integer::parseInt).collect(Collectors.toList());
  63. if (CollectionUtils.isNotEmpty(instrumentIds) && CollectionUtils.isNotEmpty(musicSheetDetail.getMusicalInstruments())) {
  64. Map<Integer, InstrumentWrapper.Instrument> instrumentMap = instrumentService.getMapByIds(instrumentIds);
  65. for (CbsMusicSheetWrapper.MusicalInstrument musicalInstrument : musicSheetDetail.getMusicalInstruments()) {
  66. InstrumentWrapper.Instrument instrument = instrumentMap.get(musicalInstrument.getId());
  67. if (instrument != null) {
  68. musicalInstrument.setOrientation(instrument.getOrientation());
  69. }
  70. }
  71. }
  72. }
  73. return R.from(MusicSheetVo.OpenMusicSheetDetail.from(musicSheetDetail.jsonString()));
  74. }
  75. }