浏览代码

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父节点
当前提交
5e0fe3a82f

+ 24 - 4
cms/src/main/java/com/ym/mec/cms/service/impl/SysNewsInformationServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.Map;
 import com.ym.mec.cms.controller.queryinfo.NewsInformationQueryInfo;
 import com.ym.mec.cms.dal.entity.NewsStatusEnum;
 import com.ym.mec.common.page.PageInfo;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -15,6 +16,7 @@ import com.ym.mec.cms.dal.entity.SysNewsInformation;
 import com.ym.mec.cms.service.SysNewsInformationService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 
 @Service
 public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNewsInformation> implements SysNewsInformationService {
@@ -43,16 +45,34 @@ public class SysNewsInformationServiceImpl extends BaseServiceImpl<Long, SysNews
 		//1精彩活动,2热门资讯,3banner类型
 		Map<String,PageInfo<SysNewsInformation>> homeList = new HashMap<>();
 		queryInfo.setStatus(NewsStatusEnum.SHOW);
+		
+		String memo = queryInfo.getMemo();
+		
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		queryInfo.setType(3);
+		int count = sysNewsInformationDao.queryCount(params);
+		if(count == 0){
+			queryInfo.setMemo(null);
+		}
+		homeList.put("banner",queryPage(queryInfo));
+		
+		queryInfo.setMemo(memo);
+		queryInfo.setType(6);
+		count = sysNewsInformationDao.queryCount(params);
+		if(count == 0){
+			queryInfo.setMemo(null);
+		}
+		homeList.put("app",queryPage(queryInfo));
+		
+		queryInfo.setMemo(null);
 		queryInfo.setType(1);
 		homeList.put("active",queryPage(queryInfo));
 		queryInfo.setType(2);
 		homeList.put("hot",queryPage(queryInfo));
-		queryInfo.setType(3);
-		homeList.put("banner",queryPage(queryInfo));
 		queryInfo.setType(5);
 		homeList.put("flash",queryPage(queryInfo));
-		queryInfo.setType(6);
-		homeList.put("app",queryPage(queryInfo));
 		return homeList;
 	}
 

+ 1 - 1
mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml

@@ -182,7 +182,7 @@
         <result property="portrait" column="avatar_"/>
     </resultMap>
     <select id="getBasic" resultMap="ImUserModel">
-        select CASE WHEN real_name_ IS NULL OR real_name_ = '' THEN username_ ELSE real_name_ END username_,id_,avatar_
+        select CASE WHEN user_type_ LIKE '%STUDENT%' THEN username_ ELSE real_name_ END username_,id_,avatar_
         from sys_user where id_ = #{userId} LIMIT 1
     </select>
     

+ 15 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -328,7 +328,7 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param teacherId
      * @return
      */
-    List<BasicUserDto> queryTeacherBaseInfo(@Param("teacherId") Set<Integer> teacherId);
+    List<BasicUserDto> queryTeacherBaseInfo(@Param("teacherId") Set<Integer> teacherId,@Param("search") String search);
 
     /**
      * 获取教师immodel
@@ -376,4 +376,18 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @return
      */
     List<BasicUserDto> queryEducationIpa(@Param("userId") Integer userId, @Param("search") String search);
+
+    /**
+     * 获取当前学员关联的课程上的老师(已结束的vip和陪练)
+     * @param studentId
+     * @return
+     */
+    Set<Integer> findCloseCourseTeacherIds(Integer studentId);
+
+    /**
+     * 获取已结束课程老师关联的学生列表
+     * @param teacherId
+     * @return
+     */
+    List<BasicUserDto> findCloseCourseStudentIds(@Param("teacherId") Integer teacherId,@Param("search") String search);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/BatchInsertCoursesDto.java

@@ -7,6 +7,8 @@ import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 
 public class BatchInsertCoursesDto {
+	
+	private String musicGroupId;
 
 	private Integer classGroupId;
 
@@ -24,6 +26,14 @@ public class BatchInsertCoursesDto {
 
 	private boolean isJumpHoliday;
 
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
 	public Integer getClassGroupId() {
 		return classGroupId;
 	}

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

@@ -69,7 +69,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param studentId
 	 * @return
 	 */
-	List<BasicUserDto> findTeachersByStuId(Integer studentId);
+	List<BasicUserDto> findTeachersByStuId(Integer studentId,String search);
 
 	/**
 	 * 取消乐团

+ 4 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1086,7 +1086,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public List<BasicUserDto> findTeachersByStuId(Integer studentId) {
+    public List<BasicUserDto> findTeachersByStuId(Integer studentId,String search) {
         //获取相关乐团老师列表
         Set<Integer> teacherIds = teacherDao.findMusicTeacherIds(studentId);
         //获取学员所在乐团列表
@@ -1103,8 +1103,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         teacherIds.addAll(teacherDao.findVipTeacherIds(studentId));
         //获取陪练课老师列表
         teacherIds.addAll(teacherDao.findPracticeTeacherIds(studentId));
+        //获取陪练课,vip课代课老师关联
+        teacherIds.addAll(teacherDao.findCloseCourseTeacherIds(studentId));
         if(teacherIds.size() > 0){
-        	return teacherDao.queryTeacherBaseInfo(teacherIds);
+        	return teacherDao.queryTeacherBaseInfo(teacherIds,search);
         }
         return new ArrayList<BasicUserDto>();
     }

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

@@ -185,7 +185,9 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				});
 			}
 		}
-		return teachers;
+		//获取课程关联的学生列表
+		teachers.addAll(teacherDao.findCloseCourseStudentIds(teacherId, search));
+		return teachers.stream().distinct().collect(Collectors.toList());
 	}
 
     @Override

+ 22 - 2
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -795,11 +795,13 @@
         <foreach collection="teacherId" item="userId" open="(" close=")" separator=",">
             #{userId}
         </foreach>
+        <if test="search != null and search != ''">
+            AND su.real_name_ LIKE CONCAT('%',#{search},'%')
+        </if>
         GROUP BY su.id_
     </select>
     <select id="queryTeacherImModel" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.ImUserModel">
-        SELECT su.id_,su.avatar_,
-        CASE WHEN su.username_ IS NULL THEN su.real_name_ ELSE su.real_name_ END username_
+        SELECT su.id_,su.avatar_,su.real_name_ username_
         FROM sys_user su
         WHERE su.id_ IN
         <foreach collection="teacherIds" item="userId" open="(" close=")" separator=",">
@@ -860,4 +862,22 @@
         </if>
         GROUP BY su.id_
     </select>
+    <select id="findCloseCourseTeacherIds" resultType="java.lang.Integer">
+        SELECT DISTINCT csts.user_id_ FROM course_schedule_student_payment cssp
+        LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
+        LEFT JOIN course_schedule_teacher_salary csts ON csts.course_schedule_id_ = cs.id_
+        WHERE cssp.group_type_ IN ('VIP','PRACTICE') AND cs.status_ = 'OVER' AND cssp.user_id_ = #{studentId}
+    </select>
+    <select id="findCloseCourseStudentIds" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
+        SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,NULL subject_name_,su.user_type_
+        FROM course_schedule_teacher_salary csts
+        LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
+        LEFT JOIN course_schedule_student_payment cssp ON cs.id_ = cssp.course_schedule_id_
+        LEFT JOIN sys_user su ON su.id_ = cssp.user_id_
+        WHERE csts.group_type_ IN ('VIP','PRACTICE') AND cs.status_ = 'OVER' AND csts.user_id_ = #{teacherId} AND su.id_ IS NOT NULL
+        <if test="search != null and search != ''">
+            AND su.username_ LIKE CONCAT('%',#{search},'%')
+        </if>
+        GROUP BY su.id_
+    </select>
 </mapper>

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

@@ -73,12 +73,12 @@ public class MusicGroupController extends BaseController {
 
     @ApiOperation(value = "根据学员编号,获取有关联的老师列表")
     @GetMapping("/findTeachersByStuId")
-    public Object findTeachersByStuId() {
+    public Object findTeachersByStuId(String search) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        return succeed(musicGroupService.findTeachersByStuId(sysUser.getId()));
+        return succeed(musicGroupService.findTeachersByStuId(sysUser.getId(),search));
     }
 
 

+ 51 - 16
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -1,15 +1,51 @@
 package com.ym.mec.web.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang.ArrayUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
 import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.BatchInsertCoursesDto;
 import com.ym.mec.biz.dal.dto.CoursePostponeDto;
 import com.ym.mec.biz.dal.dto.CreateCourseScheduleDto;
 import com.ym.mec.biz.dal.dto.VipGroupCourseAdjustInfoDto;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
+import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.biz.dal.entity.Employee;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
@@ -21,21 +57,6 @@ import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.StudentAttendanceService;
 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 io.swagger.annotations.ApiParam;
-import org.apache.commons.lang.ArrayUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.ui.ModelMap;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.*;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
 
 /**
  * @Author Joburgess
@@ -58,6 +79,10 @@ public class CourseScheduleController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private MusicGroupService musicGroupService;
+    
+    @Autowired
+    private ClassGroupDao classGroupDao;
+    
     @Autowired
     private EmployeeDao employeeDao;
 
@@ -269,6 +294,16 @@ public class CourseScheduleController extends BaseController {
     @PostMapping("/batchAddCourses")
     @PreAuthorize("@pcs.hasPermissions('courseSchedule/batchAddCourses')")
     public Object batchAddCourses(@RequestBody BatchInsertCoursesDto batchInsertCoursesDto){
+    	if(batchInsertCoursesDto.getClassGroupId() == null){
+			if (batchInsertCoursesDto.getType() != CourseScheduleType.VIP && batchInsertCoursesDto.getType() != CourseScheduleType.PRACTICE) {
+				return failed("请指定班级");
+			}
+    		List<ClassGroup> classGroupList = classGroupDao.findClassGroupByMusicGroupIdAndType(batchInsertCoursesDto.getMusicGroupId(), ClassGroupTypeEnum.valueOf(batchInsertCoursesDto.getType().getCode()));
+    		if(classGroupList == null || classGroupList.size() == 0){
+    			return failed("没有查询到班级信息");
+    		}
+    		batchInsertCoursesDto.setClassGroupId(classGroupList.get(0).getId());
+    	}
 		scheduleService.batchAddCourseSchedule(batchInsertCoursesDto.getClassGroupId(), batchInsertCoursesDto.getCoursesTimes(),
 				batchInsertCoursesDto.getStartDate(), batchInsertCoursesDto.getTeachingArrangementList(), batchInsertCoursesDto.getTeachMode(),
 				batchInsertCoursesDto.getType(), batchInsertCoursesDto.getSchoolId(), batchInsertCoursesDto.getIsJumpHoliday());