Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

Joburgess 5 tahun lalu
induk
melakukan
07f6af8f43
20 mengubah file dengan 398 tambahan dan 65 penghapusan
  1. 37 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java
  2. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  3. 44 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java
  4. 38 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/RewardsRulesQueryInfo.java
  5. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java
  6. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  7. 84 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java
  8. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  9. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  10. 4 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  11. 57 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml
  12. 7 1
      mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml
  13. 1 4
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  14. 6 9
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  15. 8 0
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  16. 4 2
      mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java
  17. 5 11
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleRewardsRulesController.java
  18. 22 26
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  19. 11 1
      mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java
  20. 24 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.List;
+import java.util.Map;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -23,4 +24,40 @@ public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseSc
 	 * @return
 	 */
 	List<String> queryOrganIdList();
+
+	/**
+	 * 根据教师列表和课程类型获取活动列表
+	 * @param teacherId
+	 * @param vipGroupCategoryIdList
+	 * @return
+	 */
+    List<CourseScheduleRewardsRules> findByTeacherAndCategory(@Param("teacherId") String teacherId, @Param("vipGroupCategoryIdList") String vipGroupCategoryIdList);
+
+	/**
+	 * COUNT活动列表
+	 * @param params
+	 * @return
+	 */
+	int findDetailPage(Map<String, Object> params);
+
+	/**
+	 * 分页获取活动列表
+	 * @param params
+	 * @return
+	 */
+	List<CourseScheduleRewardsRules> queryDetailPage(Map<String, Object> params);
+
+	/**
+	 * 获取教师名称列表
+	 * @param rewardsIds
+	 * @return
+	 */
+	List<Map<Integer, String>> findTeacherNames(@Param("rewardsIds") List<Integer> rewardsIds);
+
+	/**
+	 * 获取vip课程类型名称列表
+	 * @param rewardsIds
+	 * @return
+	 */
+	List<Map<Integer, String>> findVipCategoryNames(@Param("rewardsIds") List<Integer> rewardsIds);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -188,4 +188,11 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return java.util.List<com.ym.mec.biz.dal.entity.Teacher>
      */
     List<Teacher> findByTeacherIds(@Param("teacherIds") List<Integer> teacherIds);
+
+    /**
+     * 获取分部下的老师列表
+     * @param organId
+     * @return
+     */
+    List<Teacher> findTeacherByOrganId(@Param("organId")String organId);
 }

+ 44 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java

@@ -19,7 +19,6 @@ public class CourseScheduleRewardsRules {
 		public String getCode() {
 			return name();
 		}
-
 	}
 
 	/**  */
@@ -40,14 +39,57 @@ public class CourseScheduleRewardsRules {
 	@ApiModelProperty(value = "梯度奖励规则", required = true)
 	private String rewardsRulesJson;
 
+	@ApiModelProperty(value = "vip课程类型", required = true)
+	private String vipGroupCategoryIdList;
+
+	@ApiModelProperty(value = "vip课程类型名称列表", required = true)
+	private String vipGroupCategoryNameList;
+
+	@ApiModelProperty(value = "关联教师编号列表", required = true)
+	private String teacherId;
+
+	@ApiModelProperty(value = "关联教师编号名称列表", required = true)
+	private String teacherNames;
+
+	public String getVipGroupCategoryNameList() {
+		return vipGroupCategoryNameList;
+	}
+
+	public void setVipGroupCategoryNameList(String vipGroupCategoryNameList) {
+		this.vipGroupCategoryNameList = vipGroupCategoryNameList;
+	}
+
+	public String getTeacherNames() {
+		return teacherNames;
+	}
+
+	public void setTeacherNames(String teacherNames) {
+		this.teacherNames = teacherNames;
+	}
+
 	/**  */
 	private java.util.Date createTime;
-
 	/**  */
 	private java.util.Date updateTime;
 	
 	private String organNameList;
 
+	public String getVipGroupCategoryIdList() {
+		return vipGroupCategoryIdList;
+	}
+
+	public void setVipGroupCategoryIdList(String vipGroupCategoryIdList) {
+		this.vipGroupCategoryIdList = vipGroupCategoryIdList;
+	}
+
+	public String getTeacherId() {
+		return teacherId;
+	}
+
+	public void setTeacherId(String teacherId) {
+		this.teacherId = teacherId;
+	}
+
 	public void setId(Integer id) {
 		this.id = id;
 	}

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/RewardsRulesQueryInfo.java

@@ -0,0 +1,38 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class RewardsRulesQueryInfo extends QueryInfo {
+    private Integer teacherId;
+
+    private Integer vipGroupCategoryId;
+
+    private String rewardMode;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getVipGroupCategoryId() {
+        return vipGroupCategoryId;
+    }
+
+    public void setVipGroupCategoryId(Integer vipGroupCategoryId) {
+        this.vipGroupCategoryId = vipGroupCategoryId;
+    }
+
+    public String getRewardMode() {
+        return rewardMode;
+    }
+
+    public void setRewardMode(String rewardMode) {
+        this.rewardMode = rewardMode;
+    }
+}

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java

@@ -5,6 +5,9 @@ import java.util.List;
 
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
+import com.ym.mec.biz.dal.page.RewardsRulesQueryInfo;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface CourseScheduleRewardsRulesService extends BaseService<Integer, CourseScheduleRewardsRules> {
@@ -23,4 +26,25 @@ public interface CourseScheduleRewardsRulesService extends BaseService<Integer,
 	 * @return
 	 */
 	List<Integer> queryOrganIdList();
+
+	/**
+	 * 添加教师奖励活动
+	 * @param courseScheduleRewardsRules
+	 * @return
+	 */
+	int add(CourseScheduleRewardsRules courseScheduleRewardsRules);
+
+	/**
+	 * 分页获取活动列表
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<CourseScheduleRewardsRules> queryDetailPage(RewardsRulesQueryInfo queryInfo);
+
+	/**
+	 * 修改
+	 * @param courseScheduleRewardsRules
+	 * @return
+	 */
+	int updateDetail(CourseScheduleRewardsRules courseScheduleRewardsRules);
 }

+ 7 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java

@@ -129,4 +129,11 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @return
      */
     PageInfo<musicGroupStudentApplyDto> queryMusicGroupStudentApply(queryMusicGroupStudentQueryInfo queryInfo);
+
+    /**
+     * 获取分部下教师
+     * @param organId
+     * @return
+     */
+    List<Teacher> findTeacherByOrganId(String organId);
 }

+ 84 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java

@@ -1,13 +1,12 @@
 package com.ym.mec.biz.service.impl;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.page.RewardsRulesQueryInfo;
+import com.ym.mec.common.exception.BizException;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -23,6 +22,7 @@ import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.json.JsonUtil;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integer, CourseScheduleRewardsRules> implements CourseScheduleRewardsRulesService {
@@ -124,6 +124,85 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 		return result;
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
+		String teacherId = courseScheduleRewardsRules.getTeacherId();
+		String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
+		if(StringUtils.isEmpty(teacherId) || StringUtils.isEmpty(vipGroupCategoryIdList)){
+			throw new BizException("参数校验异常");
+		}
+		if(StringUtils.isEmpty(courseScheduleRewardsRules.getRewardsRulesJson())){
+			throw new BizException("请设置梯度");
+		}
+		//同一种课程形式,只能有一个老师
+		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
+		if(scheduleRewardsRules != null && scheduleRewardsRules.size() > 0){
+			throw new BizException("同一种课程类型,只能对应一个老师");
+		}
+		courseScheduleRewardsDao.insert(courseScheduleRewardsRules);
+		return courseScheduleRewardsRules.getId();
+	}
+
+	@Override
+	public PageInfo<CourseScheduleRewardsRules> queryDetailPage(RewardsRulesQueryInfo queryInfo) {
+		PageInfo<CourseScheduleRewardsRules> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		List<CourseScheduleRewardsRules> dataList = null;
+		int count = courseScheduleRewardsDao.findDetailPage(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = courseScheduleRewardsDao.queryDetailPage(params);
+			List<Integer> rewardsIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
+			//获取教师列表
+			if(rewardsIds != null && rewardsIds.size() > 0){
+				Map<Integer,String> teacherNameMap = MapUtil.convertIntegerMap(courseScheduleRewardsDao.findTeacherNames(rewardsIds));
+				Map<Integer,String> vipCategoryNameMap = MapUtil.convertIntegerMap(courseScheduleRewardsDao.findVipCategoryNames(rewardsIds));
+				dataList.forEach(e->{
+					e.setTeacherNames(teacherNameMap.get(e.getId()));
+					e.setVipGroupCategoryNameList(vipCategoryNameMap.get(e.getId()));
+				});
+			}
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public int updateDetail(CourseScheduleRewardsRules courseScheduleRewardsRules) {
+		String teacherId = courseScheduleRewardsRules.getTeacherId();
+		String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
+		if(StringUtils.isEmpty(teacherId) || StringUtils.isEmpty(vipGroupCategoryIdList)){
+			throw new BizException("参数校验异常");
+		}
+		if(StringUtils.isEmpty(courseScheduleRewardsRules.getRewardsRulesJson())){
+			throw new BizException("请设置梯度");
+		}
+		if(courseScheduleRewardsRules.getId() == null){
+			throw new BizException("参数校验异常");
+		}
+		//同一种课程形式,只能有一个老师
+		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
+		if(scheduleRewardsRules.size() > 1){
+			throw new BizException("同一种课程类型,只能对应一个老师");
+		}
+		if(scheduleRewardsRules.size() == 1){
+			CourseScheduleRewardsRules rewardsRules = scheduleRewardsRules.get(0);
+			if(!rewardsRules.getId().equals(courseScheduleRewardsRules.getId())){
+				throw new BizException("同一种课程类型,只能对应一个老师");
+			}
+		}
+		courseScheduleRewardsRules.setUpdateTime(new Date());
+		courseScheduleRewardsDao.update(courseScheduleRewardsRules);
+		return courseScheduleRewardsRules.getId();
+	}
+
 	class RewardsRules implements Comparable<RewardsRules> {
 
 		private int min;

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -111,7 +111,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             Set<Integer> subjectIds = dataList.stream().map(e -> e.getActualSubjectId()).collect(Collectors.toSet());
             Map<Integer,String> subjectMap = MapUtil.convertIntegerMap(musicGroupSubjectPlanDao.findSubjectMap(subjectIds,queryInfo.getMusicGroupId()));
             dataList.forEach(e->{
-                e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(subjectMap.get(e.getActualSubjectId())));
+            	if(StringUtils.isNotBlank(subjectMap.get(e.getActualSubjectId()))){
+            		e.setKitGroupPurchaseTypeEnum(KitGroupPurchaseTypeEnum.valueOf(subjectMap.get(e.getActualSubjectId())));
+            	}
             });
         }
         if (count == 0) {

+ 5 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -334,6 +334,11 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
 	@Override
+	public List<Teacher> findTeacherByOrganId(String organId) {
+		return teacherDao.findTeacherByOrganId(organId);
+	}
+
+	@Override
 	public List<BasicUserDto> queryMusicGroupTeacher(String musicGroupId) {
 		if(Objects.isNull(musicGroupId)){
 			throw new BizException("请指定乐团");

+ 4 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -892,7 +892,10 @@
     </select>
     
     <select id="queryVipGroupTeachereClassTimesByMonth" resultType="map" parameterType="map">
-        SELECT vp.organ_id_ organ_id_,cs.actual_teacher_id_ teacher_id_,count(cs.id_) times,t.is_support_course_schedule_rewards_rules_ FROM course_schedule cs left join vip_group vp on cs.music_group_id_ = vp.id_ left join teacher t on cs.actual_teacher_id_ = t.id_ where cs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} and date_format(#{monthDate} , '%Y%m' ) = date_format(cs.class_date_, '%Y%m' ) group by vp.organ_id_,cs.actual_teacher_id_
+        SELECT vp.organ_id_ organ_id_,cs.actual_teacher_id_ teacher_id_,COUNT(cs.id_) times,t.is_support_course_schedule_rewards_rules_
+        FROM course_schedule cs LEFT JOIN vip_group vp ON cs.music_group_id_ = vp.id_ LEFT JOIN teacher t ON cs.actual_teacher_id_ = t.id_
+        WHERE cs.status_ = #{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND date_format(#{monthDate} , '%Y%m' ) = date_format(cs.class_date_, '%Y%m' )
+        GROUP BY vp.organ_id_,cs.actual_teacher_id_
     </select>
     
     <select id="queryFinishedWithNoUpdateStatus" resultMap="CourseSchedule">

+ 57 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml

@@ -15,6 +15,8 @@
 		<result column="rewards_rules_json_" property="rewardsRulesJson" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="vip_group_category_id_list_" property="vipGroupCategoryIdList" />
+		<result column="teacher_id_" property="teacherId" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -33,9 +35,9 @@
 		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
 			AS ID FROM DUAL </selectKey> -->
 		INSERT INTO course_schedule_rewards_rules
-		(id_,name_,course_schedule_type_,reward_mode_,organ_id_,rewards_rules_json_,create_time_,update_time_)
+		(id_,name_,course_schedule_type_,reward_mode_,organ_id_,rewards_rules_json_,create_time_,update_time_,vip_group_category_id_list_,teacher_id_)
 		VALUES(#{id},#{name},#{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{organId},#{rewardsRulesJson},now(),now())
+		#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{organId},#{rewardsRulesJson},now(),now(),#{vipGroupCategoryIdList},#{teacherId})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -50,6 +52,12 @@
 				course_schedule_type_ =
 				#{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
 			</if>
+			<if test="vipGroupCategoryIdList != null">
+				vip_group_category_id_list_ = #{vipGroupCategoryIdList},
+			</if>
+			<if test="teacherId != null">
+				teacher_id_ = #{teacherId},
+			</if>
 			<if test="id != null">
 				id_ = #{id},
 			</if>
@@ -96,4 +104,51 @@
 	<select id="queryOrganIdList" resultType="java.lang.String">
 		SELECT organ_id_ FROM course_schedule_rewards_rules
 	</select>
+	<select id="findByTeacherAndCategory" resultMap="CourseScheduleRewardsRules">
+		SELECT * FROM course_schedule_rewards_rules csrr
+		WHERE INTE_ARRAY(csrr.vip_group_category_id_list_,#{vipGroupCategoryIdList})
+		AND INTE_ARRAY(csrr.teacher_id_,#{teacherId})
+	</select>
+
+	<select id="queryDetailPage" resultMap="CourseScheduleRewardsRules">
+		SELECT * FROM course_schedule_rewards_rules csrr
+		<include refid="findDetailPageSql"/>
+		ORDER BY id_ DESC
+		<include refid="global.limit" />
+	</select>
+	<select id="findDetailPage" resultType="java.lang.Integer">
+		SELECT COUNT(csrr.id_) FROM course_schedule_rewards_rules csrr
+		<include refid="findDetailPageSql"/>
+	</select>
+	<select id="findTeacherNames" resultType="java.util.Map">
+		SELECT csrr.id_ 'key',GROUP_CONCAT(su.real_name_) 'value' FROM course_schedule_rewards_rules csrr
+		LEFT JOIN sys_user su ON FIND_IN_SET(su.id_,csrr.teacher_id_)
+		WHERE csrr.id_ IN
+		<foreach collection="rewardsIds" separator="," item="item" open="(" close=")">
+			#{item}
+		</foreach>
+		GROUP BY csrr.id_
+	</select>
+	<select id="findVipCategoryNames" resultType="java.util.Map">
+		SELECT csrr.id_ 'key',GROUP_CONCAT(vgc.name_) 'value' FROM course_schedule_rewards_rules csrr
+		LEFT JOIN vip_group_category vgc ON FIND_IN_SET(vgc.id_,csrr.vip_group_category_id_list_)
+		WHERE vgc.del_flag_ != '1' AND csrr.id_ IN
+		<foreach collection="rewardsIds" separator="," item="item" open="(" close=")">
+			#{item}
+		</foreach>
+		GROUP BY csrr.id_
+	</select>
+	<sql id="findDetailPageSql">
+		<where>
+			<if test="teacherId">
+				AND FIND_IN_SET(#{teacherId},csrr.teacher_id_)
+			</if>
+			<if test="rewardMode">
+				AND csrr.reward_mode_ = #{rewardMode}
+			</if>
+			<if test="vipGroupCategoryId">
+				AND FIND_IN_SET(#{vipGroupCategoryId},csrr.vip_group_category_id_list_)
+			</if>
+		</where>
+	</sql>
 </mapper>

+ 7 - 1
mec-biz/src/main/resources/config/mybatis/SchoolMapper.xml

@@ -136,6 +136,12 @@
         select * from school where del_flag_ != 1 and user_id_ = #{userId}
     </select>
     <select id="findVipSchoolByUserId" resultMap="School">
-        SELECT * FROM school WHERE del_flag_ != 1 AND (FIND_IN_SET(organ_id_,#{organId}) and user_id_ is NULL) or user_id_ = #{userId}
+        SELECT * FROM school WHERE del_flag_ != 1
+        <if test="organId != null">
+        AND (FIND_IN_SET(organ_id_,#{organId}) and user_id_ is NULL  or user_id_ = #{userId})
+        </if>
+        <if test="organId == null">
+        	and user_id_ = #{userId}
+        </if>
     </select>
 </mapper>

+ 1 - 4
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -132,11 +132,8 @@
             <if test="organId != null">
                 AND FIND_IN_SET(su.organ_id_,#{organId})
             </if>
-            <if test="studentName != null and studentName != ''">
-                AND su.username_ LIKE CONCAT('%',#{studentName},'%')
-            </if>
             <if test="search != null and search != ''">
-                AND (su.phone_ LIKE CONCAT('%',#{search},'%') OR su.real_name_ LIKE CONCAT('%',#{search},'%'))
+                AND (su.phone_ LIKE CONCAT('%',#{search},'%') OR su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_ LIKE CONCAT('%',#{search},'%'))
             </if>
         </where>
     </sql>

+ 6 - 9
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -286,24 +286,21 @@
     </select>
 
     <resultMap id="queryFeeDetailMap" type="com.ym.mec.biz.dal.dto.StudentFeeDetailDto">
-        <result column="expect_amount_" property="courseFee"/>
         <result column="actual_amount_" property="totalAmount"/>
         <collection property="goods" ofType="com.ym.mec.biz.dal.dto.StudentFeeDto">
             <result property="goodsName" column="goods_name_"/>
-            <result property="goodsType" column="goods_type_"/>
+            <result property="goodsType" column="type_"/>
             <result property="musicalFee" column="price_"/>
         </collection>
     </resultMap>
     <select id="queryFeeDetail" resultMap="queryFeeDetailMap">
-        SELECT spo.actual_amount_,spo.expect_amount_,spod.price_,GROUP_CONCAT(g.name_) goods_name_,MAX(g.type_)
-        goods_type_
-        FROM student_registration sr
-        LEFT JOIN student_payment_order spo ON sr.music_group_id_ = spo.music_group_id_ AND spo.user_id_ = sr.user_id_
+        SELECT spo.actual_amount_,SUM(spod.price_) price_,GROUP_CONCAT(g.name_) goods_name_,IF(MAX(g.type_) IS NULL,'COURSE',MAX(g.type_)) type_
+		FROM student_payment_order spo
         LEFT JOIN student_payment_order_detail spod ON spod.payment_order_id_ = spo.id_
         LEFT JOIN goods g ON FIND_IN_SET(g.id_,spod.goods_id_list_)
-        WHERE spo.type_ = 'APPLY' AND sr.user_id_ = #{studentId} AND sr.music_group_id_ = #{musicGroupId}
-        AND sr.music_group_status_ != 'QUIT'
-        GROUP BY spo.id_,spod.id_
+        WHERE spo.type_ = 'APPLY' AND spo.group_type_ = 'MUSIC' AND spo.user_id_ = #{studentId} AND spo.music_group_id_ = #{musicGroupId}
+        GROUP BY spo.id_,spod.type_
+        ORDER BY spo.id_ DESC
     </select>
 
     <!-- 根据乐团和声部获取未分班的学生 -->

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -558,4 +558,12 @@
             #{teacherId}
         </foreach>
     </select>
+    <select id="findTeacherByOrganId" resultMap="TeacherBasicDto">
+        SELECT su.id_,su.username_,su.real_name_ FROM teacher t
+        LEFT JOIN sys_user su ON t.id_ = su.id_
+        WHERE su.del_flag_ != 1
+        <if test="organId != null">
+            AND FIND_IN_SET(t.organ_id_,#{organId})
+        </if>
+    </select>
 </mapper>

+ 4 - 2
mec-student/src/main/java/com/ym/mec/student/controller/WithdrawController.java

@@ -2,6 +2,7 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.biz.service.StudentWithdrawService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -22,7 +23,8 @@ public class WithdrawController extends BaseController {
 	@ApiOperation(value = "新增提现申请")
 	@PostMapping("/add")
 	public Object add(String bankCardNo, BigDecimal amount) throws Exception {
-		studentWithdrawService.apply(bankCardNo, amount);
-		return succeed();
+		throw new BizException("此功能暂未开放");
+//		studentWithdrawService.apply(bankCardNo, amount);
+//		return succeed();
 	}
 }

+ 5 - 11
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleRewardsRulesController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.page.RewardsRulesQueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -28,8 +29,8 @@ public class CourseScheduleRewardsRulesController extends BaseController {
 	@ApiOperation(value = "查询规则列表")
 	@GetMapping("/queryPage")
 	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/queryPage')")
-	public Object queryPage(QueryInfo queryInfo) {
-		return succeed(courseScheduleRewardsRulesService.queryPage(queryInfo));
+	public Object queryPage(RewardsRulesQueryInfo queryInfo) {
+		return succeed(courseScheduleRewardsRulesService.queryDetailPage(queryInfo));
 	}
 
 	@ApiOperation(value = "单查询")
@@ -50,21 +51,14 @@ public class CourseScheduleRewardsRulesController extends BaseController {
 	@PostMapping("/add")
 	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/add')")
 	public Object add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
-		List<Integer> organIdList = courseScheduleRewardsRulesService.queryOrganIdList();
-		String[] organIdArrays = courseScheduleRewardsRules.getOrganId().split(",");
-		for (String organId : organIdArrays) {
-			if (organIdList.contains(Integer.parseInt(organId))) {
-				return failed("所设分部存在异常");
-			}
-		}
-		return succeed(courseScheduleRewardsRulesService.insert(courseScheduleRewardsRules));
+		return succeed(courseScheduleRewardsRulesService.add(courseScheduleRewardsRules));
 	}
 
 	@ApiOperation(value = "修改")
 	@PostMapping("/update")
 	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/update')")
 	public Object update(CourseScheduleRewardsRules courseScheduleRewardsRules) {
-		return succeed(courseScheduleRewardsRulesService.update(courseScheduleRewardsRules));
+		return succeed(courseScheduleRewardsRulesService.updateDetail(courseScheduleRewardsRules));
 	}
 
 	@ApiOperation(value = "删除")

+ 22 - 26
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -1,38 +1,37 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
-import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentRegistrationService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.exception.BizException;
-import com.ym.mec.util.date.DateUtil;
-import com.ym.mec.util.excel.POIUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.util.Date;
+import java.util.List;
+
+import javax.servlet.http.HttpServletResponse;
+
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.util.Date;
-import java.util.List;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
+import com.ym.mec.biz.dal.dto.TeacherSalaryDto;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.page.CourseScheduleTeacherSalaryQueryInfo;
+import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.util.date.DateUtil;
+import com.ym.mec.util.excel.POIUtil;
 
 @RequestMapping
 @Api(tags = "数据导出服务")
@@ -48,7 +47,6 @@ public class ExportController extends BaseController {
 
     @ApiOperation(value = "导出乐器采购清单")
     @GetMapping("order/musicalListExport")
-    @PreAuthorize("@pcs.hasPermissions('order/musicalListExport')")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
     public void musicalListExport(HttpServletResponse response,String musicGroupId){
         List<Goods> musicalList = studentPaymentOrderDetailService.getMusicalList(musicGroupId);
@@ -79,7 +77,6 @@ public class ExportController extends BaseController {
 
     @ApiOperation(value = "乐团【报名中、缴费中】 学生详情列表导出")
     @PostMapping(value = "studentRegistration/queryStudentApplyDetailExport")
-    @PreAuthorize("@pcs.hasPermissions('studentRegistration/queryStudentApplyDetailExport')")
     public void queryStudentApplyDetailExport(StudentRegistrationQueryInfo queryInfo, HttpServletResponse response) {
         List<StudentApplyDetailDto> studentApplyDetail = studentRegistrationService.queryStudentDetailPage(queryInfo).getRows();
         if(studentApplyDetail == null || studentApplyDetail.size() < 1){
@@ -108,15 +105,14 @@ public class ExportController extends BaseController {
     }
 
     @ApiOperation(value = "分页导出教师薪酬列表")
-    @PostMapping("courseScheduleTeacherSalary/export")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleTeacherSalary/export')")
+    @RequestMapping("courseScheduleTeacherSalary/export")
     public void export(CourseScheduleTeacherSalaryQueryInfo queryInfo, HttpServletResponse response) {
         List<TeacherSalaryDto> teacherSalaries = courseScheduleTeacherSalaryService.querySalaries(queryInfo).getRows();
         OutputStream ouputStream = null;
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[] { "用户编号","用户名", "手机号", "课程类型", "实际薪水", "补助", "结算时间", "教师角色"}, new String[] {
                     "userId","username", "phone", "type.msg", "name", "actualSalary", "subsidy", "settlementTime", "teacherRole.msg"}, teacherSalaries);
-            response.setContentType("application/msexcel");
+            response.setContentType("application/vnd.ms-excel");
             response.setHeader("Content-disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             ouputStream = response.getOutputStream();
             workbook.write(ouputStream);

+ 11 - 1
mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.timevale.tgtext.text.pdf.PdfStructTreeController.returnType;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
@@ -8,9 +9,11 @@ import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.page.SchoolQueryInfo;
 import com.ym.mec.biz.service.SchoolService;
 import com.ym.mec.common.controller.BaseController;
+
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
@@ -119,7 +122,14 @@ public class SchoolController extends BaseController {
         if (sysUser == null) {
             return failed("用户信息获取失败");
         }
-        String organidList = sysUser.getOrganId();
+        String organidList = null;
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if(employee == null){
+            	return failed("非法请求");
+            }
+            organidList = employee.getOrganIdList();
+        }
         return succeed(schoolService.findVipSchoolByTeacher(userId,organidList,null));
     }
 }

+ 24 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

@@ -116,6 +116,30 @@ public class TeacherController extends BaseController {
         return succeed(teacherService.findOrganTeacherBySubject(subjecId));
     }
 
+    @ApiOperation(value = "获取分部教师")
+    @GetMapping("/findTeacherByOrganId")
+    @PreAuthorize("@pcs.hasPermissions('teacher/findTeacherByOrganId')")
+    public HttpResponseResult findTeacherByOrganId(String organId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(organId)) {
+                organId = employee.getOrganIdList();
+            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+                return failed("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(organId.split(",")))){
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(teacherService.findTeacherByOrganId(organId));
+    }
+
     @ApiOperation(value = "获取乐团所有老师")
     @GetMapping("/findMusicGroupTeachers")
     @PreAuthorize("@pcs.hasPermissions('teacher/findMusicGroupTeachers')")