浏览代码

教学伴奏修改

zouxuan 3 年之前
父节点
当前提交
4237ff9a26

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreCategoriesDao.java

@@ -12,4 +12,12 @@ import java.util.List;
 public interface SysMusicScoreCategoriesDao extends BaseDAO<Integer, SysMusicScoreCategories> {
 
     List<SysMusicScoreCategories> findByParentId(@Param("parentId") Integer parentId);
+
+    void batchInsert(@Param("categoriesList") List<SysMusicScoreCategories> sysMusicScoreCategoriesList);
+
+    void batchDel(@Param("categoriesIds") String categoriesIds);
+
+    String findByCategoriesIds(@Param("categoriesIds") String categoriesIds);
+
+    void batchUpdate(@Param("categories") List<SysMusicScoreCategories> updateCategories);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicScoreDao.java

@@ -10,4 +10,6 @@ import java.util.List;
 public interface SysMusicScoreDao extends BaseDAO<Integer, SysMusicScore> {
 
     List<SysMusicScore> findByIds(@Param("musicScoreIds") String musicScoreIds);
+
+    int countBuyCategoriesIds(@Param("categoriesIds") String delCategoriesIds);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMusicScoreCategories.java

@@ -30,8 +30,18 @@ public class SysMusicScoreCategories {
 	/**  */
 	private java.util.Date updateTime;
 
+	private String delCategoriesIds;
+
 	private List<SysMusicScoreCategories> sysMusicScoreCategoriesList;
 
+	public String getDelCategoriesIds() {
+		return delCategoriesIds;
+	}
+
+	public void setDelCategoriesIds(String delCategoriesIds) {
+		this.delCategoriesIds = delCategoriesIds;
+	}
+
 	public List<SysMusicScoreCategories> getSysMusicScoreCategoriesList() {
 		return sysMusicScoreCategoriesList;
 	}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysExamSongQueryInfo.java

@@ -35,6 +35,26 @@ public class SysExamSongQueryInfo extends QueryInfo {
 
     private Integer showFlag;
 
+    private Boolean enable;
+
+    private String organId;
+
+    public Boolean getEnable() {
+        return enable;
+    }
+
+    public void setEnable(Boolean enable) {
+        this.enable = enable;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+
     public Integer getShowFlag() {
         return showFlag;
     }

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysMusicScoreCategoriesService.java

@@ -10,4 +10,10 @@ import java.util.List;
 public interface SysMusicScoreCategoriesService extends BaseService<Integer, SysMusicScoreCategories> {
 
     List<SysMusicScoreCategories> queryTree(MusicScoreQueryInfo menuQueryInfo);
+
+    void save(SysMusicScoreCategories musicScoreCategories);
+
+    void updateCategories(SysMusicScoreCategories musicScoreCategories);
+
+    void del(Integer id);
 }

+ 94 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicScoreCategoriesServiceImpl.java

@@ -4,13 +4,18 @@ package com.ym.mec.biz.service.impl;
 import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
 import com.ym.mec.auth.api.entity.SysMenu;
 import com.ym.mec.biz.dal.dao.SysMusicScoreCategoriesDao;
+import com.ym.mec.biz.dal.dao.SysMusicScoreDao;
 import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -19,6 +24,8 @@ public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer,
 	
 	@Autowired
 	private SysMusicScoreCategoriesDao sysMusicScoreCategoriesDao;
+	@Autowired
+	private SysMusicScoreDao sysMusicScoreDao;
 
 	@Override
 	public BaseDAO<Integer, SysMusicScoreCategories> getDAO() {
@@ -36,6 +43,93 @@ public class SysMusicScoreCategoriesServiceImpl extends BaseServiceImpl<Integer,
 		return scoreCategories;
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void save(SysMusicScoreCategories musicScoreCategories) {
+		musicScoreCategories.setParentId(0);
+		sysMusicScoreCategoriesDao.insert(musicScoreCategories);
+		List<SysMusicScoreCategories> sysMusicScoreCategoriesList = musicScoreCategories.getSysMusicScoreCategoriesList();
+		if(sysMusicScoreCategoriesList != null && sysMusicScoreCategoriesList.size() > 0){
+			for (SysMusicScoreCategories categories : sysMusicScoreCategoriesList) {
+				categories.setParentId(musicScoreCategories.getId());
+				sysMusicScoreCategoriesDao.insert(categories);
+				List<SysMusicScoreCategories> categoriesList = categories.getSysMusicScoreCategoriesList();
+				if(categoriesList != null && categoriesList.size() > 0){
+					categoriesList.forEach(e->{
+						e.setParentId(categories.getId());
+					});
+					sysMusicScoreCategoriesDao.batchInsert(categoriesList);
+				}
+			}
+		}
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public void updateCategories(SysMusicScoreCategories musicScoreCategories) {
+		sysMusicScoreCategoriesDao.update(musicScoreCategories);
+		String delCategoriesIds = musicScoreCategories.getDelCategoriesIds();
+		if(StringUtils.isNotEmpty(delCategoriesIds)){
+			//获取当前节点以及子节点
+			delCategoriesIds = sysMusicScoreCategoriesDao.findByCategoriesIds(delCategoriesIds);
+			//是否有在使用的分类
+			int count = sysMusicScoreDao.countBuyCategoriesIds(delCategoriesIds);
+			if(count > 0){
+				throw new BizException("操作失败:当前分类已使用");
+			}
+			sysMusicScoreCategoriesDao.batchDel(delCategoriesIds);
+		}
+		List<SysMusicScoreCategories> sysMusicScoreCategoriesList = musicScoreCategories.getSysMusicScoreCategoriesList();
+		if(sysMusicScoreCategoriesList != null && sysMusicScoreCategoriesList.size() > 0){
+			List<SysMusicScoreCategories> insertCategoriesList = sysMusicScoreCategoriesList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
+			if(insertCategoriesList != null && insertCategoriesList.size() > 0){
+				for (SysMusicScoreCategories categories : insertCategoriesList) {
+					categories.setParentId(musicScoreCategories.getId());
+					sysMusicScoreCategoriesDao.insert(categories);
+					List<SysMusicScoreCategories> categoriesList = categories.getSysMusicScoreCategoriesList();
+					if(categoriesList != null && categoriesList.size() > 0){
+						categoriesList.forEach(e->{
+							e.setParentId(categories.getId());
+						});
+						sysMusicScoreCategoriesDao.batchInsert(categoriesList);
+					}
+				}
+			}
+			List<SysMusicScoreCategories> updateCategoriesList = sysMusicScoreCategoriesList.stream().filter(e -> e.getId() != null).collect(Collectors.toList());
+			if(updateCategoriesList != null && updateCategoriesList.size() > 0){
+				for (SysMusicScoreCategories categories : updateCategoriesList) {
+					List<SysMusicScoreCategories> categoriesList = categories.getSysMusicScoreCategoriesList();
+					if(categoriesList != null && categoriesList.size() > 0){
+						List<SysMusicScoreCategories> insertCategories = categoriesList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
+						if(insertCategories != null && insertCategories.size() > 0){
+							for (SysMusicScoreCategories insertCategory : insertCategories) {
+								insertCategory.setParentId(categories.getId());
+							}
+							sysMusicScoreCategoriesDao.batchInsert(insertCategories);
+						}
+						List<SysMusicScoreCategories> updateCategories = categoriesList.stream().filter(e -> e.getId() == null).collect(Collectors.toList());
+						if(updateCategories != null && updateCategories.size() > 0){
+							sysMusicScoreCategoriesDao.batchUpdate(updateCategories);
+						}
+					}
+				}
+				sysMusicScoreCategoriesDao.batchUpdate(updateCategoriesList);
+			}
+		}
+	}
+
+	@Override
+	public void del(Integer id) {
+		String byCategoriesIds = sysMusicScoreCategoriesDao.findByCategoriesIds(id.toString());
+		byCategoriesIds = sysMusicScoreCategoriesDao.findByCategoriesIds(byCategoriesIds);
+		//是否有在使用的分类
+		int count = sysMusicScoreDao.countBuyCategoriesIds(byCategoriesIds);
+		if(count > 0){
+			throw new BizException("操作失败:当前分类已使用");
+		}
+		sysMusicScoreCategoriesDao.batchDel(byCategoriesIds);
+	}
+
 	private SysMusicScoreCategories getTree(SysMusicScoreCategories categories,List<SysMusicScoreCategories> scoreCategoriesAllList){
 		//得到根节点对象
 		//获取子节点list

+ 35 - 3
mec-biz/src/main/resources/config/mybatis/SysMusicScoreCategoriesMapper.xml

@@ -31,7 +31,14 @@
 		INSERT INTO sys_music_score_categories (parent_id_,name_,cover_img_,operator_id_,create_time_,update_time_)
 		VALUES(#{parentId},#{name},#{coverImg},#{operatorId},NOW(),NOW())
 	</insert>
-	
+	<insert id="batchInsert">
+		INSERT INTO sys_music_score_categories (parent_id_,name_,cover_img_,operator_id_,create_time_,update_time_)
+		VALUES
+		<foreach collection="categoriesList" item="bean" separator=",">
+			(#{bean.parentId},#{bean.name},#{bean.coverImg},#{bean.operatorId},NOW(),NOW())
+		</foreach>
+	</insert>
+
 	<!-- 根据主键查询一条记录 -->
 	<update id="update" parameterType="com.ym.mec.biz.dal.entity.SysMusicScoreCategories">
 		UPDATE sys_music_score_categories <set>
@@ -55,12 +62,34 @@
 			</if>
 			</set> WHERE id_ = #{id}
 	</update>
-	
+	<update id="batchUpdate">
+		<foreach collection="categories" item="bean" index="index" open="" close="" separator=";">
+			UPDATE sys_music_score_categories <set>
+			<if test="bean.operatorId != null">
+				operator_id_ = #{bean.operatorId},
+			</if>
+			<if test="bean.coverImg != null">
+				cover_img_ = #{bean.coverImg},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = #{updateTime},
+			</if>
+			<if test="bean.name != null">
+				name_ = #{bean.name},
+			</if>
+			update_time_ = NOW()
+		</set> WHERE id_ = #{id}
+		</foreach>
+	</update>
+
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
 		DELETE FROM sys_music_score_categories WHERE id_ = #{id} 
 	</delete>
-	
+	<delete id="batchDel">
+		DELETE FROM sys_music_score_categories WHERE FIND_IN_SET(id_,#{categoriesIds})
+	</delete>
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="SysMusicScoreCategories" parameterType="map">
 		SELECT * FROM sys_music_score_categories ORDER BY id_
@@ -76,6 +105,9 @@
 		<include refid="queryTree"/>
 		ORDER BY sm.id_
 	</select>
+	<select id="findByCategoriesIds" resultType="java.lang.String">
+		SELECT GROUP_CONCAT(id_) FROM sys_music_score_categories WHERE FIND_IN_SET(id_,strlist) OR FIND_IN_SET(parent_id_,strlist)
+	</select>
 	<sql id="queryTree">
 		<where>
 			<if test="parentId != null">

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicScoreMapper.xml

@@ -108,6 +108,9 @@
     <select id="findByIds" resultMap="SysMusicScore">
 		SELECT * FROM sys_music_score WHERE FIND_IN_SET(id_,#{musicScoreIds})
 	</select>
+    <select id="countBuyCategoriesIds" resultType="java.lang.Integer">
+		SELECT COUNT(0) FROM sys_music_score WHERE FIND_IN_SET(music_score_categories_id_,#{categoriesIds}) AND del_flag_ = 0
+	</select>
     <sql id="queryPageSql">
 		<where>
 			ses.del_flag_ = 0

+ 25 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SysMusicScoreCategoriesController.java

@@ -1,6 +1,7 @@
 package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.dto.MusicScoreQueryInfo;
+import com.ym.mec.biz.dal.entity.SysMusicScoreCategories;
 import com.ym.mec.biz.dal.page.SysExamSongQueryInfo;
 import com.ym.mec.biz.service.SysMusicScoreCategoriesService;
 import com.ym.mec.common.controller.BaseController;
@@ -25,6 +26,30 @@ public class SysMusicScoreCategoriesController extends BaseController {
         return succeed(sysMusicScoreCategoriesService.queryPage(queryInfo));
     }
 
+    @ApiOperation(value = "新增")
+    @GetMapping("/save")
+    @PreAuthorize("@pcs.hasPermissions('sysMusicScoreCategories/save')")
+    public Object save(@RequestBody SysMusicScoreCategories musicScoreCategories) {
+        sysMusicScoreCategoriesService.save(musicScoreCategories);
+        return succeed();
+    }
+
+    @ApiOperation(value = "新增")
+    @GetMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('sysMusicScoreCategories/update')")
+    public Object update(@RequestBody SysMusicScoreCategories musicScoreCategories) {
+        sysMusicScoreCategoriesService.updateCategories(musicScoreCategories);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除")
+    @GetMapping("/delete")
+    @PreAuthorize("@pcs.hasPermissions('sysMusicScoreCategories/delete')")
+    public Object delete(Integer id) {
+        sysMusicScoreCategoriesService.del(id);
+        return succeed();
+    }
+
     @ApiOperation(value = "树状列表")
     @GetMapping("/queryTree")
     @PreAuthorize("@pcs.hasPermissions('sysMusicScoreCategories/queryTree')")