zouxuan 5 anos atrás
pai
commit
792a027ee0

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

@@ -46,4 +46,18 @@ public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseSc
 	 * @return
 	 */
 	List<CourseScheduleRewardsRules> queryDetailPage(Map<String, Object> params);
+
+	/**
+	 * 获取教师名称列表
+	 * @param rewardsIds
+	 * @return
+	 */
+	List<Map<Integer, String>> findTeacherNames(List<Integer> rewardsIds);
+
+	/**
+	 * 获取vip课程类型名称列表
+	 * @param rewardsIds
+	 * @return
+	 */
+	List<Map<Integer, String>> findVipCategoryNames(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(String organId);
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java

@@ -42,8 +42,31 @@ public class CourseScheduleRewardsRules {
 	@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;
 	/**  */

+ 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;
+    }
+}

+ 9 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java

@@ -5,6 +5,7 @@ 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;
@@ -38,5 +39,12 @@ public interface CourseScheduleRewardsRulesService extends BaseService<Integer,
 	 * @param queryInfo
 	 * @return
 	 */
-	PageInfo<CourseScheduleRewardsRules> queryDetailPage(QueryInfo queryInfo);
+	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);
 }

+ 45 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java

@@ -1,13 +1,10 @@
 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;
@@ -25,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 {
@@ -127,6 +125,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public int add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
 		String teacherId = courseScheduleRewardsRules.getTeacherId();
 		String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
@@ -146,7 +145,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 	}
 
 	@Override
-	public PageInfo<CourseScheduleRewardsRules> queryDetailPage(QueryInfo queryInfo) {
+	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);
@@ -156,9 +155,16 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = courseScheduleRewardsDao.queryDetailPage(params);
-//			for (CourseScheduleRewardsRules rules : dataList) {
-//				rules.setOrganNameList(organizationDao.findByOrganIds(rules.getOrganId()).stream().collect(Collectors.joining("、")));
-//			}
+			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<>();
@@ -167,6 +173,36 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 		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;

+ 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("请指定乐团");

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

@@ -101,10 +101,46 @@
 		WHERE INTE_ARRAY(csrr.vip_group_category_id_list_,#{vipGroupCategoryIdList})
 		AND INTE_ARRAY(csrr.teacher_id_,#{teacherId})
 	</select>
-	<select id="queryDetailPage" resultMap="CourseScheduleRewardsRules">
 
+	<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>

+ 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>

+ 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>

+ 3 - 2
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,7 +29,7 @@ public class CourseScheduleRewardsRulesController extends BaseController {
 	@ApiOperation(value = "查询规则列表")
 	@GetMapping("/queryPage")
 	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/queryPage')")
-	public Object queryPage(QueryInfo queryInfo) {
+	public Object queryPage(RewardsRulesQueryInfo queryInfo) {
 		return succeed(courseScheduleRewardsRulesService.queryDetailPage(queryInfo));
 	}
 
@@ -57,7 +58,7 @@ public class CourseScheduleRewardsRulesController extends BaseController {
 	@PostMapping("/update")
 	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/update')")
 	public Object update(CourseScheduleRewardsRules courseScheduleRewardsRules) {
-		return succeed(courseScheduleRewardsRulesService.update(courseScheduleRewardsRules));
+		return succeed(courseScheduleRewardsRulesService.updateDetail(courseScheduleRewardsRules));
 	}
 
 	@ApiOperation(value = "删除")

+ 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')")