liujc 1 年之前
父節點
當前提交
aa5e50dea0

+ 35 - 12
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/controller/TenantAlbumController.java

@@ -2,19 +2,15 @@ package com.yonge.cooleshow.admin.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
 import com.yonge.cooleshow.admin.io.request.TenantAlbumVo;
-import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
-import com.yonge.cooleshow.auth.api.entity.SysUser;
-import com.yonge.cooleshow.biz.dal.entity.TenantAlbum;
-import com.yonge.cooleshow.biz.dal.entity.TenantAlbumMusic;
-import com.yonge.cooleshow.biz.dal.entity.TenantAlbumRef;
-import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.api.feign.dto.TenantWrapper;
+import com.yonge.cooleshow.biz.dal.dto.search.StudentMusicSheetSearch;
+import com.yonge.cooleshow.biz.dal.entity.*;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumRefService;
-import com.yonge.cooleshow.biz.dal.service.TenantAlbumService;
-import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.service.*;
+import com.yonge.cooleshow.biz.dal.vo.MusicSheetVo;
 import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.toolset.base.exception.BizException;
@@ -22,6 +18,7 @@ import com.yonge.toolset.base.page.PageInfo;
 import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
@@ -34,6 +31,7 @@ import org.springframework.web.bind.annotation.RestController;
 import java.util.Comparator;
 import java.util.List;
 import java.util.Map;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 /**
@@ -58,6 +56,9 @@ public class TenantAlbumController {
     @Autowired
     private TenantInfoService tenantInfoService;
 
+    @Autowired
+    private MusicSheetService musicSheetService;
+
     /**
      * 查询分页
      *
@@ -106,14 +107,36 @@ public class TenantAlbumController {
         Map<SubjectTypeEnum, List<TenantAlbumMusic>> groupByType =
                 tenantAlbumMusics.stream().collect(Collectors.groupingBy(TenantAlbumMusic::getSubjectType));
 
+
+        List<Long> musicSheetIdlist = tenantAlbumMusics.stream().map(next -> next.getMusicSheetId()).distinct().collect(Collectors.toList());
+
+
+        StudentMusicSheetSearch search = new StudentMusicSheetSearch();
+        search.setMusicSheetIdlist(musicSheetIdlist);
+        search.setPage(1);
+        search.setRows(9999);
+        IPage<MusicSheetVo> records = musicSheetService.selectStudentPage(PageUtil.getPage(search), search, null);
+        Map<Long, MusicSheetVo> idMsMap = records.getRecords().stream()
+                .collect(Collectors.toMap(MusicSheet::getId, Function.identity()));
         List<TenantAlbumWrapper.MusicSheetData> musicSheetData = vo.getMusicSheetData();
         groupByType.forEach((key, value) -> {
             value.sort(Comparator.comparing(TenantAlbumMusic::getSortNumber));
             TenantAlbumWrapper.MusicSheetData sheetData = new TenantAlbumWrapper.MusicSheetData();
             sheetData.setSubjectType(key);
-            sheetData.setMusicSheetList(value);
-            musicSheetData.add(sheetData);
+            List<TenantAlbumWrapper.TenantAlbumSheet> tenantAlbumSheets = value.stream().map(next -> {
+
+                TenantAlbumWrapper.TenantAlbumSheet tenantAlbumSheet = new TenantAlbumWrapper.TenantAlbumSheet();
+                BeanUtils.copyProperties(value, tenantAlbumSheet);
+                Long musicSheetId = tenantAlbumSheet.getMusicSheetId();
+                MusicSheetVo musicSheet = idMsMap.getOrDefault(musicSheetId, new MusicSheetVo());
+                tenantAlbumSheet.setMusicSheetName(musicSheet.getMusicSheetName());
+                tenantAlbumSheet.setMusicTag(musicSheet.getMusicTag());
+                return tenantAlbumSheet;
+            }).collect(Collectors.toList());
 
+
+            sheetData.setTenantAlbumSheetList(tenantAlbumSheets);
+            musicSheetData.add(sheetData);
         });
 
         return HttpResponseResult.succeed(vo);

+ 6 - 0
cooleshow-user/user-admin/src/main/java/com/yonge/cooleshow/admin/io/request/TenantAlbumVo.java

@@ -66,6 +66,12 @@ public class TenantAlbumVo {
         @ApiModelProperty("原价")
         private BigDecimal costPrice;
 
+        @ApiModelProperty("类型")
+        private String type;
+
+        @ApiModelProperty("级别")
+        private String level;
+
         @ApiModelProperty("曲目相关信息")
         private List<MusicSheetData> musicSheetData = new ArrayList<>();
 

+ 7 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/dto/search/StudentMusicSheetSearch.java

@@ -3,6 +3,9 @@ package com.yonge.cooleshow.biz.dal.dto.search;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.biz.dal.enums.album.PurchaseRecordTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
 
 /**
  * Description 学生查询乐谱
@@ -10,6 +13,7 @@ import io.swagger.annotations.ApiModelProperty;
  * @author liujunchi
  * @date 2022-04-01
  */
+@Data
 public class StudentMusicSheetSearch  extends MusicSheetSearch{
 
 
@@ -37,6 +41,9 @@ public class StudentMusicSheetSearch  extends MusicSheetSearch{
     @ApiModelProperty(value = "平台")
     private String platform;
 
+    @ApiModelProperty("musicSheetId集合")
+    List<Long> musicSheetIdlist;
+
     // 客户端类型
     private ClientEnum clientType;
 

+ 5 - 6
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/entity/TenantAlbumMusic.java

@@ -59,13 +59,12 @@ public class TenantAlbumMusic implements Serializable {
 	@TableField(value = "create_time_")
     private Date createTime;
 
+    @ApiModelProperty("级别")
+    @TableField(value = "level_")
+    private String  level;
 
-    @ApiModelProperty("更新时间")
+    @ApiModelProperty("类型")
     @TableField(value = "type_")
-    private String type;
-
-    @ApiModelProperty("创建时间")
-    @TableField(value = "level_")
-    private String level;
+    private String  type;
 
 }

+ 3 - 3
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/TenantEntryRecordService.java

@@ -25,13 +25,13 @@ public interface TenantEntryRecordService extends IService<TenantEntryRecord>  {
      * @return IPage<TenantEntryRecord>
      */
     IPage<TenantEntryRecord> selectPage(IPage<TenantEntryRecord> page, TenantEntryRecordWrapper.TenantEntryRecordQuery query);
-	
+
     /**
      * 添加
      * @param tenantEntryRecord TenantEntryRecordWrapper.TenantEntryRecord
      * @return Boolean
      */
-     Boolean add(TenantEntryRecordWrapper.TenantEntryRecord tenantEntryRecord);   
+     Boolean add(TenantEntryRecordWrapper.TenantEntryRecord tenantEntryRecord);
 
     /**
      * 更新
@@ -39,5 +39,5 @@ public interface TenantEntryRecordService extends IService<TenantEntryRecord>  {
      * @return Boolean
      */
      Boolean update(TenantEntryRecordWrapper.TenantEntryRecord tenantEntryRecord);
-     
+
 }

+ 2 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/TenantAlbumServiceImpl.java

@@ -324,6 +324,8 @@ public class TenantAlbumServiceImpl extends ServiceImpl<TenantAlbumMapper, Tenan
                 tenantAlbumMusic1.setMusicSheetId(tenantAlbumMusic);
                 tenantAlbumMusic1.setSortNumber(sort.getAndIncrement());
                 tenantAlbumMusic1.setDelFlag(false);
+                tenantAlbumMusic1.setLevel(next.getLevel());
+                tenantAlbumMusic1.setType(next.getType());
                 return tenantAlbumMusic1;
             }).collect(Collectors.toList());
         }).flatMap(Collection::stream).collect(Collectors.toList());

+ 79 - 7
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TenantAlbumWrapper.java

@@ -3,14 +3,11 @@ package com.yonge.cooleshow.biz.dal.wrapper;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.microsvc.toolkit.common.response.paging.QueryInfo;
-import com.yonge.cooleshow.biz.dal.entity.MusicSheet;
-import com.yonge.cooleshow.biz.dal.entity.TenantAlbumMusic;
 import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -106,8 +103,6 @@ public class TenantAlbumWrapper {
         @ApiModelProperty("机构利润")
         private BigDecimal tenantProfits;
 
-
-
         @ApiModelProperty("购买周期")
         private Integer purchaseCycle;
 
@@ -248,7 +243,84 @@ public class TenantAlbumWrapper {
         @ApiModelProperty(value = "声部列表",hidden = true)
         private List<Long> musicSheetIdList = new ArrayList<>();
 
-        @ApiModelProperty("声部列表")
-        private List<TenantAlbumMusic> musicSheetList = new ArrayList<>();
+        @ApiModelProperty("曲目列表")
+        private List<TenantAlbumSheet> tenantAlbumSheetList = new ArrayList<>();
+
+        @ApiModelProperty("类型")
+        private String type;
+
+        @ApiModelProperty("级别")
+        private String level;
+
+        @ApiModelProperty("标签")
+        private String musicTag;
     }
+
+
+
+    @Data
+    @ApiModel("曲目返回")
+    public static class TenantAlbumSheet {
+
+        @ApiModelProperty("主键ID")
+        private Long id;
+
+        @ApiModelProperty("机构ID")
+        private Long tenantId;
+
+        @ApiModelProperty("声部分类(ENSEMBLE, MUSIC, SUBJECT)")
+        private SubjectTypeEnum subjectType;
+
+        @ApiModelProperty("机构专辑ID")
+        private Long tenantAlbumId;
+
+        @ApiModelProperty("曲目ID")
+        private Long musicSheetId;
+
+        @ApiModelProperty("曲目排序")
+        private Integer sortNumber;
+
+        @ApiModelProperty("删除标识")
+        private Boolean delFlag;
+
+        @ApiModelProperty("更新时间")
+        private Date updateTime;
+
+        @ApiModelProperty("创建时间")
+        @TableField(value = "create_time_")
+        private Date createTime;
+
+        @ApiModelProperty("级别")
+        private String  level;
+
+        @ApiModelProperty("类型")
+        private String  type;
+
+        @ApiModelProperty(value = "曲谱名称")
+        private String musicSheetName;
+
+
+        @ApiModelProperty(value = "封面图")
+        private String titleImg;
+
+
+        @ApiModelProperty(value = "艺术家")
+        private String composer;
+
+        @ApiModelProperty(value = "曲谱声部(适用的乐器,可能是多个,用逗号分隔)")
+        private String musicSubject;
+
+
+        @ApiModelProperty(value = "曲谱标签(多个标签用逗号分隔)")
+        private String musicTag;
+
+        @ApiModelProperty(value = "曲谱来源(平台用户ID或者是老师ID)")
+        private Long userId;
+
+        @ApiModelProperty(value = "上传人")
+        private String userName;
+    }
+
+
+
 }

+ 6 - 0
cooleshow-user/user-biz/src/main/resources/config/mybatis/MusicSheetMapper.xml

@@ -145,6 +145,11 @@
             or t.music_subject_ is null or t.music_subject_ = ''
             )
         </if>
+        <if test="param.musicSheetIdlist != null">
+            <foreach collection="param.musicSheetIdlist" separator="," item="item" open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="param.state != null">
             and t.state_ = #{param.state}
         </if>
@@ -356,6 +361,7 @@
             <if test="param.auditVersion != null ">
                 and #{param.auditVersion} = t.audit_version_
             </if>
+
         </where>
         order by
         <choose>

+ 97 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/TenantAlbumController.java

@@ -0,0 +1,97 @@
+package com.yonge.cooleshow.student.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.microsvc.toolkit.common.response.paging.QueryInfo;
+import com.yonge.cooleshow.biz.dal.entity.TenantAlbum;
+import com.yonge.cooleshow.biz.dal.entity.TenantAlbumMusic;
+import com.yonge.cooleshow.biz.dal.entity.TenantAlbumRef;
+import com.yonge.cooleshow.biz.dal.entity.TenantInfo;
+import com.yonge.cooleshow.biz.dal.enums.SubjectTypeEnum;
+import com.yonge.cooleshow.biz.dal.service.TenantAlbumMusicService;
+import com.yonge.cooleshow.biz.dal.service.TenantAlbumRefService;
+import com.yonge.cooleshow.biz.dal.service.TenantAlbumService;
+import com.yonge.cooleshow.biz.dal.service.TenantInfoService;
+import com.yonge.cooleshow.biz.dal.wrapper.TenantAlbumWrapper;
+import com.yonge.cooleshow.common.entity.HttpResponseResult;
+import com.yonge.toolset.base.exception.BizException;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Comparator;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * @Author:haonan
+ * @Date:2023/7/27 18:26
+ * @Filename:TenantAlbumController
+ */
+
+@RestController
+@RequestMapping("/StudentTenantAlbum")
+@Api(value = "学生端机构管理", tags = "学生端机构管理")
+public class TenantAlbumController {
+    @Autowired
+    TenantAlbumService tenantAlbumService;
+
+    @Autowired
+    private TenantAlbumMusicService tenantAlbumMusicService;
+
+    @Autowired
+    private TenantAlbumRefService tenantAlbumRefService;
+
+    @Autowired
+    private TenantInfoService tenantInfoService;
+
+    /**
+     * 查询分页
+     *
+     * @param query
+     */
+    @PostMapping("/page")
+    @ApiOperation(value = "查询分页", notes = "StudentTenantAlbum")
+    @PreAuthorize("@pcs.hasPermissions('tenantAlbum/page')")
+    public HttpResponseResult<PageInfo<TenantAlbumWrapper.TenantAlbum>> page(@RequestBody TenantAlbumWrapper.TenantAlbumQuery query) {
+        IPage<TenantAlbumWrapper.TenantAlbum> pages = tenantAlbumService.selectPage(QueryInfo.getPage(query), query);
+        return HttpResponseResult.succeed(PageUtil.pageInfo(pages));
+    }
+
+    /**
+     * 下拉框搜索
+     *
+     * @param query
+     */
+    @PostMapping("/select")
+    @ApiOperation(value = "查询分页", notes = "StudentTenantAlbum")
+    @PreAuthorize("@pcs.hasPermissions('tenantAlbum/select')")
+    public HttpResponseResult<PageInfo<TenantAlbumWrapper.TenantAlbum>> select(@RequestBody TenantAlbumWrapper.TenantAlbumQuery query) {
+        IPage<TenantAlbumWrapper.TenantAlbum> pages = tenantAlbumService.selectPage(QueryInfo.getPage(query), query);
+        return HttpResponseResult.succeed(PageUtil.pageInfo(pages));
+    }
+
+
+
+    /**
+     * 查询详情
+     *
+     * @param id 详情ID
+     * @return TenantAlbum
+     */
+    @PostMapping("/detail")
+    @ApiOperation(value = "查询详情", notes = "detail")
+    @PreAuthorize("@pcs.hasPermissions('tenantAlbum/detail')")
+    public HttpResponseResult<TenantAlbumWrapper.TenantAlbum> detail(@RequestParam("id") Long id) {
+
+        return null;
+    }
+
+
+
+}