Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

周箭河 5 lat temu
rodzic
commit
ae8bcd9660
21 zmienionych plików z 197 dodań i 50 usunięć
  1. 2 2
      cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml
  2. 9 3
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  3. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java
  4. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleComplaints.java
  5. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  6. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleRewardsRulesService.java
  7. 11 1
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  8. 21 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java
  9. 8 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  10. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  11. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  12. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  13. 3 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupDefaultClassesCycleServiceImpl.java
  14. 57 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  15. 6 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml
  16. 4 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml
  17. 10 7
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  18. 1 1
      mec-biz/src/main/resources/config/mybatis/VipGroupClassGroupMapperMapper.xml
  19. 1 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  20. 21 5
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleRewardsRulesController.java
  21. 9 9
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

+ 2 - 2
cms/src/main/resources/config/mybatis/SysNewsInformationMapper.xml

@@ -51,8 +51,8 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.cms.dal.entity.SysNewsInformation" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_,del_flag_,href_target_,order_)
-		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{linkUrl},#{hrefTarget},#{order},0,#{hrefTarget},#{order})
+		INSERT INTO sys_news_information (id_,title_,content_,cover_image_,type_,status_,create_time_,update_time_,link_url_,href_target_,order_,del_flag_,href_target_)
+		VALUES(#{id},#{title},#{content},#{coverImage},#{type},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),now(),#{linkUrl},#{hrefTarget},#{order},0,#{hrefTarget})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->

+ 9 - 3
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -2,6 +2,7 @@ package com.ym.mec.auth.service.impl;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.auth.dal.dao.SysUserDao;
 import com.ym.mec.auth.service.SysRoleMenuService;
@@ -160,10 +161,15 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 					return queryUserInfoByPhone(phone);
 				}
 			}
-			throw new UsernameNotFoundException("404.9");
-		}else {
-			throw new UsernameNotFoundException("404.9");
+		}else if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
+			SysUser sysUser = new SysUser();
+			sysUser.setPhone(phone);
+			sysUser.setUserType(SysUserType.STUDENT);
+			sysUserDao.insert(sysUser);
+			imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));
+			return queryUserInfoByPhone(phone);
 		}
+		throw new UsernameNotFoundException("404.9");
 	}
 
 }

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

@@ -17,4 +17,10 @@ public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseSc
 	 * @return
 	 */
 	List<CourseScheduleRewardsRules> query(@Param("organId") Integer organId, @Param("courseScheduleType") CourseScheduleType courseScheduleType);
+
+	/**
+	 * 查询已设置的分部列表
+	 * @return
+	 */
+	List<String> queryOrganIdList();
 }

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleComplaints.java

@@ -42,9 +42,19 @@ public class CourseScheduleComplaints {
 	private Double teacherLiabilityRatio;
 	
 	private Double studentLiabilityRatio;
-	
+
+	private Float score;
+
 	private SysUser user = new SysUser();
-	
+
+	public Float getScore() {
+		return score;
+	}
+
+	public void setScore(Float score) {
+		this.score = score;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java

@@ -91,6 +91,7 @@ public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
     BACKSTAGE_MUSIC_GROUP_STOP("BACKSTAGE_MUSIC_GROUP_STOP", "乐团暂停"),
     BACKSTAGE_MUSIC_GROUP_CLOSE("BACKSTAGE_MUSIC_GROUP_CLOSE", "乐团结束"),
     BACKSTAGE_VIP_COURSE_APPLY("BACKSTAGE_VIP_COURSE_APPLY", "VIP课申请"),
+    BACKSTAGE_TEACHER_APPLY_VIP("BACKSTAGE_TEACHER_APPLY_VIP", "VIP课申请"),
     BACKSTAGE_VIP_COURSE_STOP("BACKSTAGE_VIP_COURSE_STOP", "VIP课停止"),
     BACKSTAGE_TEACHER_FREEZE("BACKSTAGE_TEACHER_FREEZE", "老师冻结"),
     BACKSTAGE_TEACHER_POSITIVE("BACKSTAGE_TEACHER_POSITIVE", "老师转正"),

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.biz.dal.entity.CourseScheduleRewardsRules;
@@ -16,4 +17,10 @@ public interface CourseScheduleRewardsRulesService extends BaseService<Integer,
 	 * @return
 	 */
 	BigDecimal queryRewardsAmount(Integer organId, CourseScheduleType courseScheduleType, int coursesNum);
+
+	/**
+	 * 查询已设置的分部列表
+	 * @return
+	 */
+	List<Integer> queryOrganIdList();
 }

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

@@ -23,7 +23,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @param vipGroup: VIP课申请信息
      * @return void
      */
-    void createVipGroup(VipGroupApplyDto vipGroup);
+    void createVipGroup(VipGroupApplyDto vipGroup,Integer systemId);
 
     /**
      * @describe 更新vip课程信息
@@ -285,5 +285,15 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      */
     void stopVipGroupWithNoCreate();
+
+    /**
+     * @describe 添加vip课学员
+     * @author Joburgess
+     * @date 2019/11/15
+     * @param vipGroupId:
+     * @param studentIds:
+     * @return void
+     */
+    void addVipGroupStudents(Long vipGroupId,List<Integer> studentIds);
     
 }

+ 21 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java

@@ -29,7 +29,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 
 	@Autowired
 	private CourseScheduleRewardsRulesDao courseScheduleRewardsDao;
-	
+
 	@Autowired
 	private OrganizationDao organizationDao;
 
@@ -43,14 +43,14 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 		PageInfo<CourseScheduleRewardsRules> pageInfo = new PageInfo<CourseScheduleRewardsRules>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<String, Object>();
 		MapUtil.populateMap(params, queryInfo);
-		
+
 		List<CourseScheduleRewardsRules> dataList = null;
 		int count = this.findCount(params);
 		if (count > 0) {
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = this.getDAO().queryPage(params);
-			for(CourseScheduleRewardsRules rules : dataList){
+			for (CourseScheduleRewardsRules rules : dataList) {
 				rules.setOrganNameList(organizationDao.findByOrganIds(rules.getOrganIdList()).stream().collect(Collectors.joining("、")));
 			}
 		}
@@ -106,6 +106,24 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 		return rewardsRules.getAmount().multiply(new BigDecimal(coursesNum));
 	}
 
+	@Override
+	public List<Integer> queryOrganIdList() {
+		List<String> list = courseScheduleRewardsDao.queryOrganIdList();
+
+		List<Integer> result = new ArrayList<Integer>();
+
+		for (String organIdStr : list) {
+			String[] organIds = organIdStr.split(",");
+			for (String s : organIds) {
+				if (!result.contains(Integer.parseInt(s))) {
+					result.add(Integer.parseInt(s));
+				}
+			}
+		}
+
+		return result;
+	}
+
 	class RewardsRules implements Comparable<RewardsRules> {
 
 		private int min;

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.entity.SysUserRole;
@@ -842,6 +843,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 
@@ -850,11 +852,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		}
 
 		if(Objects.isNull(courseScheduleComplaints.getCourseScheduleId())){
-			throw new BizException("请指定需要投诉的课程");
+			throw new BizException("请指定需要评价的课程");
 		}
 
 		if(StringUtils.isBlank(courseScheduleComplaints.getReason())){
-			throw new BizException("请说明投诉原因");
+			throw new BizException("请说明写下您的评价");
 		}
 
 		if(StringUtils.length(courseScheduleComplaints.getReason())>150){
@@ -865,7 +867,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 		CourseScheduleComplaints byUserAndCourse = courseScheduleComplaintsDao.findByUserAndCourse(courseScheduleComplaints.getUserId().longValue(), courseScheduleComplaints.getCourseScheduleId());
 		if(byUserAndCourse!=null){
-			throw new BizException("您已经对该课程进行过申诉操作!");
+			throw new BizException("您已经对该课程做出了评价!");
 		}
 
 		CourseScheduleDto courseSchedules = courseScheduleDao.getCourseSchedules(courseScheduleComplaints.getCourseScheduleId());
@@ -884,7 +886,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 		CourseSchedule courseSchedule = courseScheduleDao.get(courseScheduleComplaints.getCourseScheduleId());
 		Set<Integer> roleIds = new HashSet<>(1);
 		roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL,"",courseSchedule.getName(),user.getUsername());
+		Map<String,Long> memo = new HashMap<>(1);
+		memo.put("courseScheduleComplaintsId",courseScheduleComplaints.getId());
+		sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPEAL, JSONObject.toJSONString(memo),courseSchedule.getName(),user.getUsername());
 	}
 
 	@Override

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

@@ -555,7 +555,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroupQuitDao.insert(musicGroupQuit);
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,"",sysUser.getUsername());
+        Map<String,Object> memo = new HashMap<>(2);
+        memo.put("Id",musicGroupQuit.getId());
+        memo.put("type","MUSICGROUP");
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,JSONObject.toJSONString(memo),sysUser.getUsername());
         return true;
     }
 

+ 0 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.service.impl;
 
-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.StudentManageDao;
@@ -35,8 +34,6 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Autowired
     private StudentPaymentOrderDao studentPaymentOrderDao;
     @Autowired
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
     private VipGroupDao vipGroupDao;
 
     @Override

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
@@ -89,7 +90,9 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		roleIds.add(SysUserRole.DEAN_OF_STUDIES);
 		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds);
 		if (userIds != null && userIds.size() > 0) {
-			sysMessageService.batchSeoMessage(userIds, MessageTypeEnum.EDUCATION_PUSH_TEACHER_LEAVE_APPLY, "", teacher.getRealName());
+			Map<String,Object> memo = new HashMap<>(1);
+			memo.put("leaveRecordId",teacherLeaveRecord.getId());
+			sysMessageService.batchSeoMessage(userIds, MessageTypeEnum.EDUCATION_PUSH_TEACHER_LEAVE_APPLY, JSONObject.toJSONString(memo), teacher.getRealName());
 		}
 		return true;
 	}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupDefaultClassesCycleServiceImpl.java

@@ -69,6 +69,9 @@ public class VipGroupDefaultClassesCycleServiceImpl extends BaseServiceImpl<Inte
 		super.delete(id);
 		List<VipGroupDefaultClassesCycle> allRecord = vipGroupDefaultClassesCycleDao.findAllByOrgan(bean.getOrganId());
 		allRecord=createMinClassTimess(allRecord);
+		if (allRecord == null || allRecord.size() == 0) {
+			return 1;
+		}
 		vipGroupDefaultClassesCycleDao.deleteAllByOrgan(bean.getOrganId());
 		return vipGroupDefaultClassesCycleDao.batchInstert(allRecord);
 	}

+ 57 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,8 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -107,7 +109,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 	@Transactional(rollbackFor = Exception.class)
 	@Override
-	public void createVipGroup(VipGroupApplyDto vipGroup) {
+	public void createVipGroup(VipGroupApplyDto vipGroup,Integer systemId) {
 
 		if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())){
 			throw new BizException("请选择指导老师");
@@ -256,6 +258,17 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		courseScheduleService.checkNewCourseSchedules(vipGroup.getCourseSchedules(),false);
 		vipGroupApplyBaseInfoDto.setCourseSchedulesJson(JSON.toJSONString(vipGroup.getCourseSchedules()));
 		vipGroupDao.update(vipGroupApplyBaseInfoDto);
+
+		SysUser systemUser = sysUserFeignService.queryUserById(systemId);
+		Set<Integer> roleIds = new HashSet<>(1);
+		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
+		Map<String,Long> memo = new HashMap<>(1);
+		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
+		if (systemId != null){
+			sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),systemUser.getUsername(),sysUser.getUsername());
+		}else {
+			sysMessageService.batchSeoMessage(roleIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
+		}
 	}
 
 	@Override
@@ -528,6 +541,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		StudentVipGroupDetailDto vipGroupDetail = vipGroupDao.getVipGroupDetail(vipGroupId);
 		if(StringUtils.isNotEmpty(vipGroup.getCourseSchedulesJson())){
 			vipGroupDetail.setCourseSchedules(JSON.parseArray(vipGroup.getCourseSchedulesJson(),CourseSchedule.class));
+			List<CourseSchedule> collect = vipGroupDetail.getCourseSchedules().stream()
+					.sorted(Comparator.comparing(CourseSchedule::getStartClassTime))
+					.collect(Collectors.toList());
+			vipGroupDetail.setCourseSchedules(collect);
 		}
 
         vipGroupDetail.setNumberOfClasses(vipGroupDao.countTeacherVipGroups(vipGroupDetail.getTeacherId().longValue()));
@@ -1303,6 +1320,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
 	public void appendVipGroupCourseSchedules(VipGroupApplyDto vipGroupApplyDto) {
 		if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId())){
 			throw new BizException("请指定vip课");
@@ -1311,7 +1329,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("指定的vip课不存在");
 		}
-		VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
+		ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(), null);
 		//课程信息调整
 		vipGroupApplyDto.getCourseSchedules().forEach(courseSchedule -> {
 			courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
@@ -1319,17 +1337,51 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			courseSchedule.setActualTeacherId(vipGroup.getUserId());
 			courseSchedule.setStatus(CourseStatusEnum.NOT_START);
 			courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
-			courseSchedule.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
+			courseSchedule.setClassGroupId(classGroup.getId());
 		});
 		courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
 
 		TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
 
+		BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
+		if(Objects.nonNull(byTeacherAndCategory)){
+			onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
+			offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
+		}else{
+			ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
+			onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
+			offlineTeacherSalary=classGroupTeacherSalary.getSalary();
+		}
+
 		//创建老师单节课课酬信息
 		courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroup,
 				vipGroupApplyDto.getCourseSchedules(),
-				byTeacherAndCategory.getOnlineClassesSalary(),
-				byTeacherAndCategory.getOfflineClassesSalary());
+				onlineTeacherSalary,
+				offlineTeacherSalary);
+
+
+		List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
+
+		List<ImGroupMember> imGroupMemberList = new ArrayList<>();
+		//生成学生单课缴费信息
+		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
+			courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroup.getId(),classGroupStudent.getUserId());
+			imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
+		}
+		ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
+		imFeignService.groupJoin(new ImGroupModel(classGroup.getId().toString(),
+				imGroupMembers, classGroup.getName()));
+	}
+
+	@Override
+	public void addVipGroupStudents(Long vipGroupId, List<Integer> studentIds) {
+		if(CollectionUtils.isEmpty(studentIds)){
+			throw new BizException("请选择学生");
+		}
+		if(Objects.isNull(vipGroupId)){
+			throw new BizException("请指定班级");
+		}
+
 	}
 
 	@Override

+ 6 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml

@@ -18,6 +18,7 @@
 		<result column="student_liability_ratio_" property="studentLiabilityRatio" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
+		<result column="score_" property="score" />
 	</resultMap>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -37,7 +38,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO course_schedule_complaints (id_,user_id_,course_schedule_id_,reason_,status_,wf_process_id_,wf_order_id_,create_time_,update_time_,teacher_liability_ratio_,student_liability_ratio_) VALUES(#{id},#{userId},#{courseScheduleId},#{reason},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{wfProcessId},#{wfOrderId},now(),now(),#{teacherLiabilityRatio},#{studentLiabilityRatio})
+		INSERT INTO course_schedule_complaints (id_,user_id_,course_schedule_id_,reason_,status_,wf_process_id_,wf_order_id_,create_time_,update_time_,teacher_liability_ratio_,student_liability_ratio_,score_) VALUES(#{id},#{userId},#{courseScheduleId},#{reason},#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{wfProcessId},#{wfOrderId},now(),now(),#{teacherLiabilityRatio},#{studentLiabilityRatio},#{score})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -74,6 +75,9 @@
 			<if test="studentLiabilityRatio != null">
 			student_liability_ratio_ = #{studentLiabilityRatio},
 			</if>
+			<if test="score != null">
+				score_ = #{score},
+			</if>
 		</set> WHERE id_ = #{id}
 	</update>
 	
@@ -84,7 +88,7 @@
 	
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="CourseScheduleComplaints" parameterType="map">
-		SELECT * FROM course_schedule_complaints ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM course_schedule_complaints WHERE score_ &lt;= 2 ORDER BY id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml

@@ -91,4 +91,8 @@
 	<select id="query" resultType="map">
 		SELECT * FROM course_schedule_rewards_rules where find_in_set(#{organId},organ_id_list_) and course_schedule_type_ = #{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} order by update_time_ desc
 	</select>
+	
+	<select id="queryOrganIdList" resultType="java.lang.String">
+		SELECT organ_id_list_ FROM course_schedule_rewards_rules
+	</select>
 </mapper>

+ 10 - 7
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -115,15 +115,18 @@
     </update>
 
     <select id="findStudentsByOrganId" resultMap="studentManageListDto">
-        SELECT sr.user_id_,su.username_ real_name_,su.gender_,sr.parents_name_,sr.parents_phone_
-        FROM (SELECT * FROM student_registration WHERE id_ IN(SELECT MAX(id_) FROM student_registration GROUP BY user_id_)) sr
-        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        SELECT su.id_ user_id_,su.username_ real_name_,su.gender_,
+        MAX(sr.parents_name_) parents_name_,MAX(sr.parents_phone_) parents_phone_
+        FROM sys_user su
+        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
         <include refid="findStudentsByOrganIdSql"/>
-        ORDER BY sr.create_time_ DESC
+        GROUP BY su.id_
+        ORDER BY su.create_time_ DESC
         <include refid="global.limit"/>
     </select>
     <sql id="findStudentsByOrganIdSql">
         <where>
+                su.user_type_ = "STUDENT"
             <if test="organId != null">
                 AND FIND_IN_SET(su.organ_id_,#{organId})
             </if>
@@ -137,9 +140,9 @@
     </sql>
 
     <select id="countStudentByOrganId" resultType="java.lang.Integer">
-        SELECT COUNT(DISTINCT sr.user_id_)
-        FROM student_registration sr
-        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
+        SELECT COUNT(DISTINCT su.id_)
+        FROM sys_user su
+        LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
         <include refid="findStudentsByOrganIdSql"/>
     </select>
     <select id="findStudentBaseInfoByUserID" resultMap="studentManageListDto">

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

@@ -86,7 +86,7 @@
             LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
             WHERE vgcgm.vip_group_id_ IN
             <foreach collection="vipGroupIds" item="vipGroupId" open="(" close=")" separator=",">
-                #{vipGroupIds}
+                #{vipGroupId}
             </foreach>
     </select>
 </mapper>

+ 1 - 1
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -41,7 +41,7 @@ public class TeacherVipGroupController extends BaseController {
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(user.getOrganId().toString());
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(user.getOrganId());
-		vipGroupService.createVipGroup(vipGroupApplyDto);
+		vipGroupService.createVipGroup(vipGroupApplyDto,null);
 		return succeed();
 	}
 

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

@@ -3,6 +3,8 @@ package com.ym.mec.web.controller;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,35 +27,49 @@ public class CourseScheduleRewardsRulesController extends BaseController {
 
 	@ApiOperation(value = "查询规则列表")
 	@GetMapping("/queryPage")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/queryPage')")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/queryPage')")
 	public Object queryPage(QueryInfo queryInfo) {
 		return succeed(courseScheduleRewardsRulesService.queryPage(queryInfo));
 	}
 
 	@ApiOperation(value = "单查询")
 	@GetMapping("/query")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/query')")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/query')")
 	public Object query(Integer id) {
 		return succeed(courseScheduleRewardsRulesService.get(id));
 	}
 
+	@ApiOperation(value = "查询已设置的分部列表")
+	@GetMapping("/queryOrganIdList")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/queryOrganIdList')")
+	public Object queryOrganIdList() {
+		return succeed(courseScheduleRewardsRulesService.queryOrganIdList());
+	}
+
 	@ApiOperation(value = "新增")
 	@PostMapping("/add")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/add')")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/add')")
 	public Object add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
+		List<Integer> organIdList = courseScheduleRewardsRulesService.queryOrganIdList();
+		String[] organIdArrays = courseScheduleRewardsRules.getOrganIdList().split(",");
+		for (String organId : organIdArrays) {
+			if (organIdList.contains(Integer.parseInt(organId))) {
+				return failed("所设分部存在异常");
+			}
+		}
 		return succeed(courseScheduleRewardsRulesService.insert(courseScheduleRewardsRules));
 	}
 
 	@ApiOperation(value = "修改")
 	@PostMapping("/update")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/update')")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/update')")
 	public Object update(CourseScheduleRewardsRules courseScheduleRewardsRules) {
 		return succeed(courseScheduleRewardsRulesService.update(courseScheduleRewardsRules));
 	}
 
 	@ApiOperation(value = "删除")
 	@PostMapping("/delete")
-    @PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/delete')")
+	@PreAuthorize("@pcs.hasPermissions('courseScheduleRewards/delete')")
 	public Object delete(Integer id) {
 		return succeed(courseScheduleRewardsRulesService.delete(id));
 	}

+ 9 - 9
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
@@ -9,14 +10,12 @@ import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupSalaryQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.StudentApplyRefundsService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.VipGroupService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -28,10 +27,7 @@ import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * @Author Joburgess
@@ -66,7 +62,11 @@ public class VipGroupManageController extends BaseController {
             return failed("请指定指导老师!");
         }
         vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(sysUser.getOrganId().toString());
-        vipGroupService.createVipGroup(vipGroupApplyDto);
+        sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        vipGroupService.createVipGroup(vipGroupApplyDto,sysUser.getId());
         return succeed();
     }