Pārlūkot izejas kodu

管乐迷曲目来源内容平台

zouxuan 1 gadu atpakaļ
vecāks
revīzija
8d2b723477

+ 17 - 11
mec-application/src/main/java/com/ym/mec/web/controller/SubjectController.java

@@ -5,14 +5,19 @@ import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.wrapper.music.CbsSubjectWrapper;
 import com.dayaedu.cbs.openfeign.wrapper.musicInstrument.CbsMusicalInstrumentWrapper;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
+import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
 import com.ym.mec.biz.dal.wrapper.SubjectWrapper;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.*;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.collections.CollectionUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -26,6 +31,7 @@ import java.util.stream.Collectors;
 @RequestMapping("${app-config.url.web:}/subject")
 @Api(tags = "科目服务")
 @RestController
+@Slf4j
 public class SubjectController extends BaseController {
 
     @Resource
@@ -36,7 +42,7 @@ public class SubjectController extends BaseController {
     @ApiOperation(value = "修改、新增科目")
     @PostMapping("/upset")
     @PreAuthorize("@pcs.hasPermissions('subject/upset')")
-    public Object update(@RequestBody Subject subject){
+    public HttpResponseResult<Object> update(@RequestBody Subject subject){
         subjectService.upSetSubject(subject);
         return succeed();
     }
@@ -44,21 +50,21 @@ public class SubjectController extends BaseController {
     @ApiOperation(value = "根据科目编号查询科目")
     @GetMapping("/get/{id}")
     @PreAuthorize("@pcs.hasPermissions('subject/get')")
-    public Object get(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Integer id){
+    public HttpResponseResult<Subject> get(@ApiParam(value = "科目编号", required = true) @PathVariable("id") Integer id){
         return succeed(subjectService.get(id));
     }
 
     @ApiOperation(value = "分页查询科目列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('subject/queryPage')")
-    public Object queryPage(SubjectQueryInfo queryInfo){
+    public HttpResponseResult<PageInfo<Subject>> queryPage(SubjectQueryInfo queryInfo){
         return succeed(subjectService.queryPage(queryInfo));
     }
 
     @ApiOperation(value = "分页查询科目树状列表")
     @GetMapping("/queryPageTree")
     @PreAuthorize("@pcs.hasPermissions('subject/queryPageTree')")
-    public Object queryPageTree(SubjectQueryInfo queryInfo){
+    public HttpResponseResult<PageInfo<Subject>> queryPageTree(SubjectQueryInfo queryInfo){
         return succeed(subjectService.queryPageTree(queryInfo));
     }
 
@@ -66,7 +72,7 @@ public class SubjectController extends BaseController {
     @GetMapping("/querySubByMusicGroupId")
     @PreAuthorize("@pcs.hasPermissions('subject/querySubByMusicGroupId')")
     @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
-    public Object findSubByMusicGroupId(String musicGroupId){
+    public HttpResponseResult<List<Subject>> findSubByMusicGroupId(String musicGroupId){
         return succeed(subjectService.findSubByMusicGroupId(musicGroupId));
     }
 
@@ -74,14 +80,14 @@ public class SubjectController extends BaseController {
     @GetMapping("/setSubjectInfo")
     @PreAuthorize("@pcs.hasPermissions('subject/setSubjectInfo')")
     @ApiImplicitParams({ @ApiImplicitParam(name = "chargeTypeId", value = "收费类型编号", required = true, dataType = "Integer")})
-    public Object setSubjectInfo(Integer chargeTypeId){
+    public HttpResponseResult<SubFeeSettingDto> setSubjectInfo(Integer chargeTypeId){
         return succeed(subjectService.setSubjectInfo(chargeTypeId));
     }
 
     @ApiOperation(value = "修改、新增声部关联的商品列表")
     @PostMapping("/markGoods")
     @PreAuthorize("@pcs.hasPermissions('subject/markGoods')")
-    public Object markGoods(@RequestBody List<SubjectGoodsMapper> subjectGoodsMappers){
+    public HttpResponseResult<Object> markGoods(@RequestBody List<SubjectGoodsMapper> subjectGoodsMappers){
         subjectService.markGoods(subjectGoodsMappers);
         return succeed();
     }
@@ -90,28 +96,28 @@ public class SubjectController extends BaseController {
     @GetMapping("/findSubApplyDetail")
     @PreAuthorize("@pcs.hasPermissions('subject/findSubApplyDetail')")
     @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
-    public Object findSubApplyDetail(String musicGroupId){
+    public HttpResponseResult<List<SubjectApplyDetailDto>> findSubApplyDetail(String musicGroupId){
         return succeed(subjectService.findSubApplyDetail(musicGroupId));
     }
 
     @ApiOperation(value = "获取子集科目列表按父Id")
     @GetMapping("/findSubSubjects")
     @PreAuthorize("@pcs.hasPermissions('subject/findSubSubjects')")
-    public Object findSubSubjects(Integer parentSubjectId){
+    public HttpResponseResult<List<Subject>> findSubSubjects(Integer parentSubjectId){
         return succeed(subjectService.findSubSubjects(parentSubjectId));
     }
 
     @ApiOperation(value = "搜索按Id和名称")
     @PostMapping("/queryPageByIdOrName")
     @PreAuthorize("@pcs.hasPermissions('subject/queryPageByIdOrName')")
-    public Object queryPageByIdOrName(SubjectQueryInfo queryInfo){
+    public HttpResponseResult<PageInfo<Subject>> queryPageByIdOrName(SubjectQueryInfo queryInfo){
         return succeed(subjectService.queryPageByIdOrName(queryInfo));
     }
 
     @ApiOperation(value = "列出所有分部")
     @PostMapping("/list")
     // @PreAuthorize("@pcs.hasPermissions('subject/list')")
-    public Object list(){
+    public HttpResponseResult<List<Subject>> list(){
         return succeed(subjectService.list());
     }
 

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/InstrumentDao.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ym.mec.biz.dal.entity.Instrument;
+import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 乐器设置
+ * 2024-04-22 16:55:18
+ */
+public interface InstrumentDao extends BaseMapper<Instrument> {
+
+	/**
+	 * 分页查询
+	 * @param page IPage<InstrumentWrapper.Instrument>
+	 * @param param InstrumentWrapper.InstrumentQuery
+	 * @return List<InstrumentWrapper.Instrument>
+	 */
+	List<InstrumentWrapper.Instrument> selectPage(@Param("page") IPage<InstrumentWrapper.Instrument> page, @Param("param") InstrumentWrapper.InstrumentQuery param);
+
+}

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SubjectDao.java

@@ -8,6 +8,7 @@ import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.wrapper.SubjectWrapper;
 import com.ym.mec.common.dal.BaseDAO;
 
 import org.apache.ibatis.annotations.Param;
@@ -178,4 +179,8 @@ public interface SubjectDao extends BaseDAO<Integer, Subject> {
     List<Subject> queryCbsList(@Param("cbsSubjectIds") List<Long> cbsSubjectIds);
 
     List<Subject> notInSubjectIds(@Param("subjectId") Long subjectId);
+
+    int findCount(Map<String, Object> params);
+
+    List<SubjectWrapper.Subject> findPage(Map<String, Object> params);
 }

+ 55 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Instrument.java

@@ -0,0 +1,55 @@
+package com.ym.mec.biz.dal.entity;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+
+/**
+ * 乐器设置
+ * 2024-04-22 16:55:18
+ */
+@Data
+@ApiModel(" Instrument-乐器设置")
+@TableName("instrument")
+public class Instrument implements Serializable {
+
+    @ApiModelProperty("主键ID,内容平台乐器ID")
+    @TableId(value = "id_")
+    private Long id;
+
+    @ApiModelProperty("声部ID")
+	@TableField(value = "subject_id_")
+    private Long subjectId;
+
+    @ApiModelProperty("横竖屏:1:竖 0:横")
+	@TableField(value = "orientation_")
+    private Boolean orientation;
+
+    @ApiModelProperty("启用/停用")
+    @TableField(value = "enable_flag_")
+    private Boolean enableFlag;
+
+    @ApiModelProperty("删除标记")
+	@TableField(value = "del_flag_")
+    private Boolean delFlag;
+
+    @ApiModelProperty("创建时间")
+	@TableField(value = "create_time_")
+    private Date createTime;
+
+    @ApiModelProperty("更新时间")
+	@TableField(value = "update_time_")
+    private Date updateTime;
+
+    @ApiModelProperty("操作人")
+	@TableField(value = "operator_")
+    private Long operator;
+
+}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Subject.java

@@ -60,6 +60,9 @@ public class Subject {
 	@ApiModelProperty(value = "子节点列表",required = false)
 	private List<Subject> subjects;
 
+	@ApiModelProperty(value = "乐器名称",required = false)
+	private String institutionName;
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/wrapper/SubjectWrapper.java

@@ -75,7 +75,7 @@ public class SubjectWrapper {
         private String code;
 
         @ApiModelProperty(value = "父级编号",required = false)
-        private Long parentSubjectId;
+        private Integer parentSubjectId;
 
         private String parentSubjectName;
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/InstrumentService.java

@@ -2,8 +2,8 @@ package com.ym.mec.biz.service;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
-import com.yonge.cooleshow.biz.dal.entity.Instrument;
-import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper;
+import com.ym.mec.biz.dal.entity.Instrument;
+import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
 
 import java.util.List;
 import java.util.Map;

+ 7 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/impl/InstrumentServiceImpl.java

@@ -7,12 +7,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayaedu.cbs.openfeign.client.MusicFeignClientService;
 import com.dayaedu.cbs.openfeign.wrapper.musicInstrument.CbsMusicalInstrumentWrapper;
 import com.microsvc.toolkit.common.webportal.exception.BizException;
-import com.yonge.cooleshow.biz.dal.dao.InstrumentDao;
-import com.yonge.cooleshow.biz.dal.entity.Instrument;
-import com.yonge.cooleshow.biz.dal.entity.Subject;
-import com.yonge.cooleshow.biz.dal.service.InstrumentService;
-import com.yonge.cooleshow.biz.dal.service.SubjectService;
-import com.yonge.cooleshow.biz.dal.wrapper.InstrumentWrapper;
+import com.ym.mec.biz.dal.dao.InstrumentDao;
+import com.ym.mec.biz.dal.entity.Instrument;
+import com.ym.mec.biz.dal.entity.Subject;
+import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
+import com.ym.mec.biz.service.InstrumentService;
+import com.ym.mec.biz.service.SubjectService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -212,8 +212,7 @@ public class InstrumentServiceImpl extends ServiceImpl<InstrumentDao, Instrument
             if (entity == null) {
                 return;
             }
-            Subject subject = subjectService.get(entity.getSubjectId());
-            subject.setEnableFlag(true);
+            Subject subject = subjectService.get(entity.getSubjectId().intValue());
             subjectService.getDao().update(subject);
         }
     }

+ 15 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SubjectServiceImpl.java

@@ -1,6 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
-import com.dayaedu.cbs.openfeign.wrapper.music.CbsSubjectWrapper;
+import com.dayaedu.cbs.openfeign.client.SubjectFeignClientService;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SubjectDao;
 import com.ym.mec.biz.dal.dao.SubjectGoodsMapperDao;
@@ -8,12 +8,14 @@ import com.ym.mec.biz.dal.dto.ConditionDto;
 import com.ym.mec.biz.dal.dto.StudentSubjectDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.dto.SubjectApplyDetailDto;
+import com.ym.mec.biz.dal.entity.Instrument;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectGoodsMapper;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.SubjectQueryInfo;
 import com.ym.mec.biz.dal.wrapper.InstrumentWrapper;
 import com.ym.mec.biz.dal.wrapper.SubjectWrapper;
+import com.ym.mec.biz.service.InstrumentService;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.page.PageInfo;
@@ -38,6 +40,10 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implem
     private StudentRegistrationDao studentRegistrationDao;
     @Resource
     private SubjectGoodsMapperDao subjectGoodsMapperDao;
+    @Resource
+    private InstrumentService instrumentService;
+    @Resource
+    private SubjectFeignClientService subjectFeignClientService;
 
     @Override
     public BaseDAO<Integer, Subject> getDAO() {
@@ -215,6 +221,13 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implem
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = subjectDao.queryPageByIdOrName(params);
+            List<Integer> subjectIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
+            List<Instrument> list = instrumentService.lambdaQuery().in(Instrument::getSubjectId, subjectIds).list();
+            List<Long> instrumentIds = list.stream().map(e -> e.getId()).collect(Collectors.toList());
+            com.dayaedu.cbs.openfeign.wrapper.subject.SubjectWrapper.SubjectQuery query = new com.dayaedu.cbs.openfeign.wrapper.subject.SubjectWrapper.SubjectQuery();
+            query.getMusicalInstrumentIdList(StringUtils.join(instrumentIds, ","));
+            query.setPage(1);
+            subjectFeignClientService.page()
         }
         if (count == 0) {
             dataList = new ArrayList<>();
@@ -298,7 +311,7 @@ public class SubjectServiceImpl extends BaseServiceImpl<Integer, Subject> implem
             // 设置声部下的乐器信息
             List<Integer> subjectIds = dataList.stream().map(SubjectWrapper.Subject::getId).distinct().collect(Collectors.toList());
             Map<Integer, List<InstrumentWrapper.Instrument>> groupBySubjectId = instrumentService.getGroupBySubjectId(subjectIds, query.getEnableFlag());
-            Map<Long, Subject> map = this.findBySubjectByIdList(dataList.stream().map(SubjectWrapper.Subject::getParentSubjectId).collect(Collectors.toList())).stream()
+            Map<Integer, Subject> map = this.findBySubjectByIdList(dataList.stream().map(SubjectWrapper.Subject::getParentSubjectId).collect(Collectors.toList())).stream()
                     .collect(Collectors.toMap(Subject::getId, t -> t));
             dataList.forEach(e -> {
                 if(e.getParentSubjectId() != null && e.getParentSubjectId() > 0) {

+ 39 - 0
mec-biz/src/main/resources/config/mybatis/InstrumentMapper.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE  mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.ym.mec.biz.dal.dao.InstrumentDao">
+
+
+
+    <!-- 表字段 -->
+    <sql id="baseColumns">
+         t.id_ AS id
+        , t.subject_id_ AS subjectId
+        , t.orientation_ AS orientation
+        , t.del_flag_ AS delFlag
+        , t.enable_flag_ AS enableFlag
+        , t.create_time_ AS createTime
+        , t.update_time_ AS updateTime
+        , t.operator_ AS operator
+        </sql>
+
+    <select id="selectPage" resultType="com.ym.mec.biz.dal.wrapper.InstrumentWrapper$Instrument">
+		SELECT
+        	<include refid="baseColumns" />
+		FROM instrument t
+        <where>
+            <if test="param.subjectId != null">
+                AND t.subject_id_ = #{param.subjectId}
+            </if>
+            <if test="param.subjectIds != null and param.subjectIds.size() != 0">
+                AND t.subject_id_ in
+                <foreach collection="param.subjectIds" item="item" separator="," open="(" close=")">
+                    #{item}
+                </foreach>
+            </if>
+            <if test="param.enableFlag != null">
+                AND t.enable_flag_ = #{param.enableFlag}
+            </if>
+        </where>
+	</select>
+
+</mapper>

+ 94 - 0
mec-biz/src/main/resources/config/mybatis/SubjectMapper.xml

@@ -321,4 +321,98 @@
     <select id="notInSubjectIds" resultMap="Subject">
         SELECT * FROM subject WHERE del_flag_ = 0 and id_ != #{subjectId}
     </select>
+    <select id="findCount" resultType="java.lang.Integer">
+        select count(DISTINCT t.id_) from
+        (SELECT t.id_
+        FROM subject t
+        LEFT JOIN instrument i on t.id_ = i.subject_id_
+        <where>
+            <if test="parentSubjectId != null">
+                AND t.parent_subject_id_ = #{parentSubjectId}
+            </if>
+            <if test="parentSubjectId == null">
+                AND t.parent_subject_id_ != 0 AND t.cbs_subject_id_ is not null
+            </if>
+            <if test="keyword != null and keyword != ''">
+                AND (t.name_ LIKE CONCAT('%',#{keyword},'%') OR t.code_ LIKE CONCAT('%',#{keyword},'%'))
+            </if>
+            <if test="delFlag != null">
+                AND t.del_flag_ = #{delFlag}
+            </if>
+            <if test="subjectId != null">
+                AND t.id_ = #{subjectId}
+            </if>
+            <if test="subjectIds != null">
+                AND find_in_set(t.id_,#{subjectIds})
+            </if>
+            <if test="instrumentIds != null">
+                AND find_in_set(i.id_, #{instrumentIds})
+            </if>
+            <if test="enableFlag != null">
+                AND t.enable_flag_ = #{enableFlag} and i.enable_flag_ = #{enableFlag}
+            </if>
+        </where>
+        group by t.id_
+        <if test="hasInstrument != null">
+            <if test="hasInstrument == true">
+                having count(i.id_) > 0
+            </if>
+            <if test="hasInstrument == false">
+                having count(i.id_) = 0
+            </if>
+        </if>) t
+    </select>
+    <sql id="baseColumns">
+        t.id_ as id
+        , t.name_ as name
+        , t.code_ as code
+        , t.parent_subject_id_ as parentSubjectId
+        , t.img_ as img
+        , t.del_flag_ as delFlag
+        , t.update_time_ as updateTime
+        , t.create_time_ as createTime
+        ,t.cbs_subject_id_ as cbsSubjectId
+    </sql>
+    <select id="findPage" resultType="com.ym.mec.biz.dal.wrapper.SubjectWrapper$Subject">
+        SELECT
+        <include refid="baseColumns" />
+        FROM subject t
+        LEFT JOIN instrument i on t.id_ = i.subject_id_
+        <where>
+            <if test="parentSubjectId != null">
+                AND t.parent_subject_id_ = #{parentSubjectId}
+            </if>
+            <if test="parentSubjectId == null">
+                AND t.parent_subject_id_ != 0 AND t.cbs_subject_id_ is not null
+            </if>
+            <if test="keyword != null and keyword != ''">
+                AND (t.name_ LIKE CONCAT('%',#{keyword},'%') OR t.code_ LIKE CONCAT('%',#{keyword},'%'))
+            </if>
+            <if test="delFlag != null">
+                AND t.del_flag_ = #{delFlag}
+            </if>
+            <if test="subjectId != null">
+                AND t.id_ = #{subjectId}
+            </if>
+            <if test="subjectIds != null">
+                AND find_in_set(t.id_,#{subjectIds})
+            </if>
+            <if test="instrumentIds != null">
+                AND find_in_set(i.id_, #{instrumentIds})
+            </if>
+            <if test="enableFlag != null">
+                AND t.enable_flag_ = #{enableFlag} and i.enable_flag_ = #{enableFlag}
+            </if>
+        </where>
+        group by t.id_
+        <if test="hasInstrument != null">
+            <if test="hasInstrument == true">
+                having count(i.id_) > 0
+            </if>
+            <if test="hasInstrument == false">
+                having count(i.id_) = 0
+            </if>
+        </if>
+        <include refid="global.limit"/>
+    </select>
 </mapper>