Selaa lähdekoodia

Merge remote-tracking branch 'origin/master'

周箭河 5 vuotta sitten
vanhempi
commit
f14e67fb85
76 muutettua tiedostoa jossa 757 lisäystä ja 358 poistoa
  1. 6 3
      codegen/src/main/java/com/yonge/crud/CodegenApplication.java
  2. 3 3
      codegen/src/main/resources/generateConfigration.xml
  3. 14 8
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  4. 19 13
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java
  5. 9 5
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java
  6. 21 17
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/service/DefaultUserDetailsService.java
  7. 0 7
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java
  8. 6 11
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  9. 0 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java
  10. 5 8
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  11. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java
  12. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java
  13. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  14. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDao.java
  15. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  16. 22 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RegisterPayDto.java
  17. 22 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleRewardsRules.java
  18. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java
  19. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java
  20. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  21. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/RewardsRulesQueryInfo.java
  22. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java
  23. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/EmployeeService.java
  24. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java
  25. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  26. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  27. 7 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleRewardsRulesServiceImpl.java
  28. 19 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  29. 4 14
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  30. 51 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  31. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java
  32. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java
  33. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  34. 9 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  35. 11 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  36. 12 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java
  37. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherLeaveRecordServiceImpl.java
  38. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  39. 4 6
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  40. 7 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  41. 2 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  42. 15 10
      mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml
  43. 13 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml
  44. 1 3
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  45. 2 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  46. 5 0
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  47. 3 2
      mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml
  48. 1 1
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml
  49. 8 8
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  50. 5 5
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  51. 11 8
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  52. 4 4
      mec-common/common-core/src/main/java/com/ym/mec/common/security/AuthUser.java
  53. 25 10
      mec-education/src/main/java/com/ym/mec/education/controller/CourseScheduleController.java
  54. 3 3
      mec-education/src/main/java/com/ym/mec/education/controller/TeacherAttendanceController.java
  55. 1 12
      mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherServiceImpl.java
  56. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java
  57. 3 3
      mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java
  58. 2 1
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  59. 11 1
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/DemoGroupController.java
  60. 3 6
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSchoolController.java
  61. 10 5
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  62. 2 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java
  63. 5 0
      mec-web/pom.xml
  64. 28 0
      mec-web/src/main/java/com/ym/mec/web/config/ImageVerifyCodeConfig.java
  65. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java
  66. 39 7
      mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java
  67. 2 1
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java
  68. 8 8
      mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java
  69. 17 26
      mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java
  70. 66 0
      mec-web/src/main/java/com/ym/mec/web/controller/SmsCodeController.java
  71. 2 3
      mec-web/src/main/java/com/ym/mec/web/controller/SporadicChargeInfoController.java
  72. 2 2
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java
  73. 11 14
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupDefaultClassesUnitPriceController.java
  74. 1 5
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java
  75. 0 3
      mec-web/src/main/java/com/ym/mec/web/controller/education/EducationCourseScheduleController.java
  76. 70 0
      mec-web/src/main/java/com/ym/mec/web/controller/education/ImController.java

+ 6 - 3
codegen/src/main/java/com/yonge/crud/CodegenApplication.java

@@ -28,7 +28,7 @@ public class CodegenApplication {
 		 */
 
 		// "src/generateConfigration.xml"
-		GenerateConfiguration genConfig = toObject("codegen/src/main/resources/generateConfigration.xml", GenerateConfiguration.class);
+		GenerateConfiguration genConfig = toObject("src/main/resources/generateConfigration.xml", GenerateConfiguration.class);
 
 		Configuration config = genConfig.getDbConfiguration();
 
@@ -42,8 +42,11 @@ public class CodegenApplication {
 		String sqlmapPackageName = genConfig.getSqlmapPackageName();
 		String sqlmapConfigPackageName = genConfig.getSqlmapConfigPackageName();
 		for (Table table : tables) {
-			session.reverse(table, srcBase, pojoPackageName, sqlmapPackageName, daoPackageName, servicePackageName);
-
+			try {
+				session.reverse(table, srcBase, pojoPackageName, sqlmapPackageName, daoPackageName, servicePackageName);
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
 		}
 		// 生成sqlmapConfig
 		session.generateSqlmapConfig(tables, srcBase, sqlmapConfigPackageName, sqlmapPackageName);

+ 3 - 3
codegen/src/main/resources/generateConfigration.xml

@@ -9,9 +9,9 @@
 		<schema>mec_dev</schema>
 	</dbConfiguration>
 	<srcBase>d:/javabean</srcBase>
-	<pojoPackageName>auth.api.entity</pojoPackageName>
-	<daoPackageName>auth.dal.dao</daoPackageName>
-	<servicePackageName>auth.service</servicePackageName>
+	<pojoPackageName>com.ym.mec.biz.dal.entity</pojoPackageName>
+	<daoPackageName>com.ym.mec.biz.dal.dao</daoPackageName>
+	<servicePackageName>com.ym.mec.biz.service</servicePackageName>
 	<sqlmapPackageName>resources</sqlmapPackageName>
 	<sqlmapConfigPackageName>resources/config</sqlmapConfigPackageName>
 </GenerateConfiguration>

+ 14 - 8
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -1,13 +1,14 @@
 package com.ym.mec.auth.api.entity;
 
+import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
+import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.io.Serializable;
 import java.util.Date;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 
 /**
@@ -45,7 +46,7 @@ public class SysUser implements Serializable{
 
 	/** 部门ID */
 	@ApiModelProperty(value = "部门ID",required = false)
-	private String organId;
+	private Integer organId;
 
 	/** 部门ID */
 	@ApiModelProperty(value = "部门名称",required = false)
@@ -74,8 +75,13 @@ public class SysUser implements Serializable{
 	private String qqOpenid;
 
 	/** 用户类型 */
-	@ApiModelProperty(value = "用户类型",required = false)
-	private SysUserType userType;
+//	@ApiModelProperty(value = "用户类型",required = false)
+//	private String userType;
+
+	/** 用户类型 */
+//	@ApiModelProperty(value = "用户类型",required = false)
+	//STUDENT("学生"), EDU_TEACHER("教务老师"), TEACHER("指导老师"), SYSTEM("系统內置"), ADMIN("管理员")
+	private String userType;
 
 	@ApiModelProperty(value = "性别0女1男",required = false)
 	private Integer gender;
@@ -198,11 +204,11 @@ public class SysUser implements Serializable{
 		return this.avatar;
 	}
 
-	public String getOrganId() {
+	public Integer getOrganId() {
 		return organId;
 	}
 
-	public void setOrganId(String organId) {
+	public void setOrganId(Integer organId) {
 		this.organId = organId;
 	}
 
@@ -262,11 +268,11 @@ public class SysUser implements Serializable{
 		return this.qqOpenid;
 	}
 
-	public SysUserType getUserType() {
+	public String getUserType() {
 		return userType;
 	}
 
-	public void setUserType(SysUserType userType) {
+	public void setUserType(String userType) {
 		this.userType = userType;
 	}
 

+ 19 - 13
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/PhoneLoginAuthenticationFilter.java

@@ -1,11 +1,12 @@
 package com.ym.mec.auth.core.filter;
 
-import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.auth.config.token.PhoneAuthenticationToken;
-import com.ym.mec.auth.service.SysUserService;
-import com.ym.mec.common.security.SecurityConstants;
-import org.apache.commons.lang3.StringUtils;
+import java.io.IOException;
+
+import javax.servlet.FilterChain;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.security.authentication.AbstractAuthenticationToken;
 import org.springframework.security.authentication.AuthenticationServiceException;
 import org.springframework.security.authentication.LockedException;
@@ -14,11 +15,10 @@ import org.springframework.security.core.AuthenticationException;
 import org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter;
 import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 
-import javax.servlet.FilterChain;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
+import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.config.token.PhoneAuthenticationToken;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.common.security.SecurityConstants;
 
 public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProcessingFilter {
 
@@ -50,12 +50,18 @@ public class PhoneLoginAuthenticationFilter extends AbstractAuthenticationProces
 
 		SysUserInfo userInfo = sysUserService.queryUserInfoByPhone(principal);
 
-		String clientId = request.getParameter(clientIdParameter);
+		String clientId = request.getParameter(clientIdParameter).toUpperCase();
 		if (userInfo == null) {
 			userInfo = sysUserService.initUser(principal,clientId,isRegister);
 		}
 	
-		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
+//		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
+//			throw new LockedException("用户不存在,请联系教务老师");
+//		}
+		if("EDUCATION".equals(clientId)){
+			clientId = "SYSTEM";
+		}
+		if (!userInfo.getSysUser().getUserType().contains(clientId)) {
 			throw new LockedException("用户不存在,请联系教务老师");
 		}
 

+ 9 - 5
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/filter/UsernameAuthenticationFilter.java

@@ -7,7 +7,6 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.security.authentication.AuthenticationServiceException;
 import org.springframework.security.authentication.LockedException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -19,7 +18,6 @@ import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
 import org.springframework.util.Assert;
 
 import com.ym.mec.auth.api.dto.SysUserInfo;
-import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.service.SysUserService;
 import com.ym.mec.common.security.SecurityConstants;
 
@@ -65,14 +63,20 @@ public class UsernameAuthenticationFilter extends AbstractAuthenticationProcessi
 
 		SysUserInfo userInfo = sysUserService.queryUserInfoByUsername(username);
 
-		String clientId = request.getParameter(clientIdParameter);
+		String clientId = request.getParameter(clientIdParameter).toUpperCase();
 
 		if (userInfo == null) {
 			throw new UsernameNotFoundException("404.9");
 		}
 	
-		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
-			throw new LockedException("登录失败");
+//		if (userInfo.getSysUser().getUserType() != SysUserType.SYSTEM && !StringUtils.equalsIgnoreCase(clientId, userInfo.getSysUser().getUserType().getCode())) {
+//			throw new LockedException("登录失败");
+//		}
+		if("EDUCATION".equals(clientId)){
+			clientId = "SYSTEM";
+		}
+		if (!userInfo.getSysUser().getUserType().contains(clientId)) {
+			throw new LockedException("用户不存在,请联系教务老师");
 		}
 
 		UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(SecurityConstants.USERNAME_PRINCIPAL_PREFIX + username,

+ 21 - 17
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/core/provider/service/DefaultUserDetailsService.java

@@ -1,8 +1,10 @@
 package com.ym.mec.auth.core.provider.service;
 
-import java.util.ArrayList;
-import java.util.List;
-
+import com.ym.mec.auth.api.dto.SysUserInfo;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.service.SysUserService;
+import com.ym.mec.common.security.AuthUser;
+import com.ym.mec.common.security.SecurityConstants;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.LockedException;
@@ -15,13 +17,8 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
 import org.springframework.security.crypto.password.PasswordEncoder;
 import org.springframework.stereotype.Service;
 
-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.UserLockFlag;
-import com.ym.mec.auth.service.SysUserService;
-import com.ym.mec.common.security.AuthUser;
-import com.ym.mec.common.security.SecurityConstants;
+import java.util.ArrayList;
+import java.util.List;
 
 @Service
 public class DefaultUserDetailsService implements UserDetailsService {
@@ -57,19 +54,26 @@ public class DefaultUserDetailsService implements UserDetailsService {
 
 		List<GrantedAuthority> authorities = null;
 
-		SysUserType userType = userInfo.getSysUser().getUserType();
+		String userType = userInfo.getSysUser().getUserType();
+		String[] roles = userType.split(",");
 
-		if (userType == SysUserType.SYSTEM) {
+		if (userType.contains("SYSTEM")) {
 			authorities = AuthorityUtils.createAuthorityList(userInfo.getPermissions());
-		} else {
-			authorities = new ArrayList<GrantedAuthority>();
-			authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(userType.name())));
+		}
+
+		if (authorities == null) {
+			authorities = new ArrayList<>();
+			authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(userType)));
+		}
+
+		for (String role : roles) {
+			authorities.add(new SimpleGrantedAuthority(StringUtils.lowerCase(role)));
 		}
 
 		SysUser sysUser = userInfo.getSysUser();
 
-		return new AuthUser(sysUser.getId(), sysUser.getOrganId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0,
-				true, true, true, authorities);
+		return new AuthUser(sysUser.getId(), sysUser.getOrganId(), username, BCRYPT + sysUser.getPassword(), sysUser.getLockFlag() == 0, true, true, true,
+				authorities);
 	}
 
 }

+ 0 - 7
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java

@@ -47,13 +47,6 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	List<SysUser> queryByStatus(UserLockFlag status);
 
 	/**
-	 * 获取机构名称
-	 * @param organId
-	 * @return
-	 */
-    String getOrganName(String organId);
-
-	/**
 	 * 获取随机盐不为null的一条数据
 	 * @param userType
 	 * @return

+ 6 - 11
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -2,7 +2,6 @@ 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;
@@ -116,10 +115,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Override
 	public Integer add(SysUser sysUser) {
 		sysUserDao.insert(sysUser);
-		switch (sysUser.getUserType()){
-			case TEACHER:
-
-		}
 		ImResult imResult = imFeignService.register(new ImUserModel(sysUser.getId().toString(), sysUser.getUsername(), sysUser.getAvatar()));
 		sysUser.setImToken(imResult.getToken());
 		sysUserDao.update(sysUser);
@@ -139,9 +134,9 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 
 	@Override
 	public SysUser queryUserInfo(Integer userId) {
-		SysUser sysUser = sysUserDao.get(userId);
-		sysUser.setOrganName(sysUserDao.getOrganName(sysUser.getOrganId()));
-		return sysUser;
+//		SysUser sysUser = sysUserDao.get(userId);
+//		sysUser.setOrganName(sysUserDao.getOrganName(sysUser.getOrganId()));
+		return sysUserDao.get(userId);
 	}
 
 	@Override
@@ -154,8 +149,8 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 			if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
 				SysUser sysUser = new SysUser();
 				sysUser.setPhone(phone);
-				sysUser.setUserType(SysUserType.STUDENT);
-				sysUser.setOrganId("36");
+				sysUser.setUserType("STUDENT");
+				sysUser.setOrganId(36);
 				sysUserDao.insert(sysUser);
 				//添加用户现金账户
 				imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));
@@ -185,7 +180,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		}else if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
 			SysUser sysUser = new SysUser();
 			sysUser.setPhone(phone);
-			sysUser.setUserType(SysUserType.STUDENT);
+			sysUser.setUserType("STUDENT");
 			sysUserDao.insert(sysUser);
             //添加用户现金账户
 			imFeignService.register(new ImUserModel(sysUser.getId().toString(),phone,null));

+ 0 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/TokenController.java

@@ -23,7 +23,6 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestHeader;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.client.RestTemplate;
-
 import java.io.IOException;
 import java.util.Base64;
 import java.util.Map;

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

@@ -21,7 +21,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
-        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -43,7 +43,7 @@
             and create_time_ &lt;= #{createEndDate}
         </if>
         <if test="userType != null">
-            and user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            and user_type_ = #{userType}
         </if>
         <if test="organId != null">
             and organ_id_ = #{organId}
@@ -72,7 +72,7 @@
         -->
         INSERT INTO sys_user
         (is_super_admin_,im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_)
-        VALUES(#{isSuperAdmin},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        VALUES(#{isSuperAdmin},#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName})
     </insert>
 
@@ -102,7 +102,7 @@
                 username_ = #{username},
             </if>
             <if test="userType != null">
-                user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                user_type_ = #{userType},
             </if>
             <if test="updateTime != null">
                 update_time_ = NOW(),
@@ -188,10 +188,7 @@
     <select id="queryByStatus" resultMap="SysUser">
         select * from sys_user where lock_flag_ = #{status}
     </select>
-    <select id="getOrganName" resultType="java.lang.String">
-        SELECT GROUP_CONCAT(name_) FROM organization WHERE FIND_IN_SET(id_,#{organId})
-    </select>
     <select id="findUserBySalt" resultMap="SysUser">
-        SELECT * FROM sys_user WHERE salt_ IS NOT NULL AND salt_ = 'replace' AND user_type_ = #{userType} LIMIT 1
+        SELECT * FROM sys_user WHERE salt_ IS NOT NULL AND salt_ = 'replace' AND user_type_ LIKE CONCAT('%',#{userType},'%') LIMIT 1
     </select>
 </mapper>

+ 4 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleRewardsRulesDao.java

@@ -29,9 +29,12 @@ public interface CourseScheduleRewardsRulesDao extends BaseDAO<Integer, CourseSc
 	 * 根据教师列表和课程类型获取活动列表
 	 * @param teacherId
 	 * @param vipGroupCategoryIdList
+	 * @param subjectIds
 	 * @return
 	 */
-    List<CourseScheduleRewardsRules> findByTeacherAndCategory(@Param("teacherId") String teacherId, @Param("vipGroupCategoryIdList") String vipGroupCategoryIdList);
+    List<CourseScheduleRewardsRules> findByTeacherAndCategory(@Param("teacherId") String teacherId,
+															  @Param("vipGroupCategoryIdList") String vipGroupCategoryIdList,
+															  @Param("subjectIds") String subjectIds);
 
 	/**
 	 * COUNT活动列表

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleStudentPaymentDao.java

@@ -156,4 +156,13 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return
      */
     Set<Integer> queryVipStudentPer();
+
+    /**
+     * @describe
+     * @author Joburgess
+     * @date 2020/1/8
+     * @param courseIds: 统计课程上的学生人数
+     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
+     */
+    List<Map<Integer, Integer>> countCourseStudentNum(@Param("courseIds") List<Long> courseIds);
 }

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

@@ -161,7 +161,7 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
      * @param roleIds
      * @return
      */
-    Set<Integer> queryUserIdByRoleId(@Param("roleIds") Set<Integer> roleIds, @Param("organIds") String organIds);
+    Set<Integer> queryUserIdByRoleId(@Param("roleIds") Set<Integer> roleIds, @Param("organId") Integer organId);
 
     /**
      * 获取教务老师时当前用户的乐团

+ 8 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDao.java

@@ -37,5 +37,12 @@ public interface OrganizationDao extends BaseDAO<Integer, Organization> {
      */
     List<Map<Integer,String>> findOrganNameMap(String organIds);
 
-    List<Organization> findAllOrgans();
+    /**
+     * 获取分部名称
+     * @param organId
+     * @return
+     */
+	String getOrganName(String organId);
+	
+	List<Organization> findAllOrgans();
 }

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

@@ -212,9 +212,10 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
     /**
      * 获取分部下的老师列表
      * @param organId
+     * @param subjectIds
      * @return
      */
-    List<Teacher> findTeacherByOrganId(@Param("organId")String organId);
+    List<Teacher> findTeacherByOrganId(@Param("organId")String organId,@Param("subjectIds")String subjectIds);
 
     /**
      * 获取用户username

+ 22 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/RegisterPayDto.java

@@ -1,17 +1,30 @@
 package com.ym.mec.biz.dal.dto;
 
 import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 
 /**
  * 学团注册支付
  */
 public class RegisterPayDto {
+    //总金额
     private BigDecimal amount;
+    //报名id
     private Integer registerId;
+    //打包商品ids
     private String goodsGroupIds;
+    //单独商品ids
     private String goodsIds;
+    //教谱ids
     private String otherGoodsIds;
-    Boolean isUseBalancePayment = false;
+    //乐器id->type
+    private Map<Integer,String> goodsGroups;
+
+    //是否余额支付
+    private Boolean isUseBalancePayment = false;
+
 
     public Integer getRegisterId() {
         return registerId;
@@ -60,4 +73,12 @@ public class RegisterPayDto {
 	public void setIsUseBalancePayment(Boolean isUseBalancePayment) {
 		this.isUseBalancePayment = isUseBalancePayment;
 	}
+
+    public Map<Integer, String> getGoodsGroups() {
+        return goodsGroups;
+    }
+
+    public void setGoodsGroups(Map<Integer, String> goodsGroups) {
+        this.goodsGroups = goodsGroups;
+    }
 }

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

@@ -1,9 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
-
 import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
 import com.ym.mec.common.enums.BaseEnum;
 
@@ -36,6 +34,12 @@ public class CourseScheduleRewardsRules {
 	@ApiModelProperty(value = "分部列表(用逗号分开)", required = true)
 	private String organId;
 
+	@ApiModelProperty(value = "声部编号", required = true)
+	private String subjectIds;
+
+	@ApiModelProperty(value = "声部名称", required = true)
+	private String subjectName;
+
 	@ApiModelProperty(value = "梯度奖励规则", required = true)
 	private String rewardsRulesJson;
 
@@ -51,6 +55,22 @@ public class CourseScheduleRewardsRules {
 	@ApiModelProperty(value = "关联教师编号名称列表", required = true)
 	private String teacherNames;
 
+	public String getSubjectName() {
+		return subjectName;
+	}
+
+	public void setSubjectName(String subjectName) {
+		this.subjectName = subjectName;
+	}
+
+	public String getSubjectIds() {
+		return subjectIds;
+	}
+
+	public void setSubjectIds(String subjectIds) {
+		this.subjectIds = subjectIds;
+	}
+
 	public String getVipGroupCategoryNameList() {
 		return vipGroupCategoryNameList;
 	}

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupSubjectGoodsGroup.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.GoodsType;
 
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -45,6 +46,15 @@ public class MusicGroupSubjectGoodsGroup {
 	//团购减免课程费用
 	private BigDecimal remissionCourseFee;
 
+	//租赁押金
+	private BigDecimal depositFee;
+
+	//购买方式
+	private KitGroupPurchaseTypeEnum kitGroupPurchaseType;
+
+	//购买方式-减免金额 json
+	private String kitGroupPurchaseTypeJson;
+
 
 	/**  */
 	private java.util.Date createTime;
@@ -152,6 +162,31 @@ public class MusicGroupSubjectGoodsGroup {
 		this.remissionCourseFee = remissionCourseFee;
 	}
 
+	public BigDecimal getDepositFee() {
+		return depositFee;
+	}
+
+	public void setDepositFee(BigDecimal depositFee) {
+		this.depositFee = depositFee;
+	}
+
+	public KitGroupPurchaseTypeEnum getKitGroupPurchaseType() {
+		return kitGroupPurchaseType;
+	}
+
+	public void setKitGroupPurchaseType(KitGroupPurchaseTypeEnum kitGroupPurchaseType) {
+		this.kitGroupPurchaseType = kitGroupPurchaseType;
+	}
+
+
+	public String getKitGroupPurchaseTypeJson() {
+		return kitGroupPurchaseTypeJson;
+	}
+
+	public void setKitGroupPurchaseTypeJson(String kitGroupPurchaseTypeJson) {
+		this.kitGroupPurchaseTypeJson = kitGroupPurchaseTypeJson;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentAttendance.java

@@ -7,6 +7,8 @@ import io.swagger.annotations.ApiModelProperty;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(student_attendance):
  */
@@ -43,6 +45,8 @@ public class StudentAttendance {
 	
 	/**  */
 	private java.util.Date createTime;
+	/**  */
+	private java.util.Date updateTime;
 	
 	/** 如果是请假状态,此字段就指请假原因 */
 	@ApiModelProperty(value = "如果是请假状态,此字段就指请假原因",required = false)
@@ -51,6 +55,14 @@ public class StudentAttendance {
 	@ApiModelProperty(value = "当前课时")
 	private Integer currentClassTimes;
 
+	public Date getUpdateTime() {
+		return updateTime;
+	}
+
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
 	public Integer getCurrentClassTimes() {
 		return currentClassTimes;
 	}

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java

@@ -22,7 +22,7 @@ public class StudentRegistration {
     private Long id;
 
     @ApiModelProperty(value = "机构id", required = false)
-    private String organId;
+    private Integer organId;
 
     @ApiModelProperty(value = "学生编号", required = false)
     private Integer userId;
@@ -307,11 +307,11 @@ public class StudentRegistration {
     }
 
 
-    public String getOrganId() {
+    public Integer getOrganId() {
         return organId;
     }
 
-    public void setOrganId(String organId) {
+    public void setOrganId(Integer organId) {
         this.organId = organId;
     }
 

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

@@ -8,10 +8,20 @@ import java.util.Date;
 public class RewardsRulesQueryInfo extends QueryInfo {
     private Integer teacherId;
 
+    private Integer subjectId;
+
     private Integer vipGroupCategoryId;
 
     private String rewardMode;
 
+    public Integer getSubjectId() {
+        return subjectId;
+    }
+
+    public void setSubjectId(Integer subjectId) {
+        this.subjectId = subjectId;
+    }
+
     public Integer getTeacherId() {
         return teacherId;
     }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentVipGroupQueryInfo.java

@@ -22,13 +22,13 @@ public class StudentVipGroupQueryInfo extends QueryInfo {
     private Integer userId;
 
     @ApiModelProperty(value = "分部编号")
-    private String organId;
+    private Integer organId;
 
-    public String getOrganId() {
+    public Integer getOrganId() {
         return organId;
     }
 
-    public void setOrganId(String organId) {
+    public void setOrganId(Integer organId) {
         this.organId = organId;
     }
 

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

@@ -1,14 +1,11 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Employee;
-import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.io.IOException;
-
 public interface EmployeeService extends BaseService<Integer, Employee> {
 
     /**

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

@@ -21,4 +21,10 @@ public interface OrganizationService extends BaseService<Integer, Organization>
      * @return
      */
     List<Organization> queryEmployeeOrgan() throws Exception;
+
+    /**
+     * 获取分部名称
+     * @return
+     */
+    String getOrganName(String organId);
 }

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

@@ -135,5 +135,5 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param organId
      * @return
      */
-    List<Teacher> findTeacherByOrganId(String organId);
+    List<Teacher> findTeacherByOrganId(String organId,String subjectIds);
 }

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

@@ -126,9 +126,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			String organCode = organ.getKey();
 			String orgName = organ.getValue();
 
-			SysUserTsign sysUserTsign = sysUserTsignService.queryByCardNo(organCode);
+//			SysUserTsign sysUserTsign = sysUserTsignService.queryByCardNo(organCode);
 
-			if (sysUserTsign == null) {
+			/*if (sysUserTsign == null) {
 
 				String accountId = eSealPlugin.createOrganAccount(orgName, organCode);
 
@@ -146,7 +146,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 				sysUserTsignService.insert(sysUserTsign);
 
-			}
+			}*/
 		}
 	}
 

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

@@ -130,6 +130,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 	public int add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
 		String teacherId = courseScheduleRewardsRules.getTeacherId();
 		String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
+		String subjectIds = courseScheduleRewardsRules.getSubjectIds();
 		if(StringUtils.isEmpty(teacherId) || StringUtils.isEmpty(vipGroupCategoryIdList)){
 			throw new BizException("参数校验异常");
 		}
@@ -137,9 +138,9 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 			throw new BizException("请设置梯度");
 		}
 		//同一种课程形式,只能有一个老师
-		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
+		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList,subjectIds);
 		if(scheduleRewardsRules != null && scheduleRewardsRules.size() > 0){
-			throw new BizException("同一种课程类型,只能对应一个老师");
+			throw new BizException("重复的数据");
 		}
 		courseScheduleRewardsDao.insert(courseScheduleRewardsRules);
 		return courseScheduleRewardsRules.getId();
@@ -179,6 +180,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 	public int updateDetail(CourseScheduleRewardsRules courseScheduleRewardsRules) {
 		String teacherId = courseScheduleRewardsRules.getTeacherId();
 		String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
+		String subjectIds = courseScheduleRewardsRules.getSubjectIds();
 		if(StringUtils.isEmpty(teacherId) || StringUtils.isEmpty(vipGroupCategoryIdList)){
 			throw new BizException("参数校验异常");
 		}
@@ -189,14 +191,14 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
 			throw new BizException("参数校验异常");
 		}
 		//同一种课程形式,只能有一个老师
-		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
+		List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList,subjectIds);
 		if(scheduleRewardsRules.size() > 1){
-			throw new BizException("同一种课程类型,只能对应一个老师");
+			throw new BizException("重复的数据");
 		}
 		if(scheduleRewardsRules.size() == 1){
 			CourseScheduleRewardsRules rewardsRules = scheduleRewardsRules.get(0);
 			if(!rewardsRules.getId().equals(courseScheduleRewardsRules.getId())){
-				throw new BizException("同一种课程类型,只能对应一个老师");
+				throw new BizException("重复的数据");
 			}
 		}
 		courseScheduleRewardsRules.setUpdateTime(new Date());

+ 19 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -5,7 +5,6 @@ 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.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
@@ -350,6 +349,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
     @Override
     public PageInfo getCourseSchedulesWithDateByEdu(CourseScheduleQueryInfo queryInfo) {
+//        queryInfo.setOrganId(Long.parseLong(user.getOrganId()));
         PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 
         if (Objects.isNull(queryInfo.getDate())) {
@@ -359,12 +359,20 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List dataList = null;
+        List<CourseScheduleDto> dataList = null;
         int count = courseScheduleDao.countCourseSchedulesWithDate(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
             dataList = courseScheduleDao.getCourseSchedulesWithDate(params);
+            List<Long> allCourseScheduleIds = dataList.stream().map(CourseScheduleDto::getId).collect(Collectors.toList());
+            List<Map<Integer, Integer>> courseStudentNumMaps = courseScheduleStudentPaymentDao.countCourseStudentNum(allCourseScheduleIds);
+            Map<Long, Long> courseStudentNumMap = MapUtil.convertIntegerMap(courseStudentNumMaps);
+
+            for (int i=0;i<dataList.size();i++) {
+                Long studentNum=courseStudentNumMap.get(dataList.get(i).getId());
+                dataList.get(i).setTotalStudentNum(Objects.isNull(studentNum)?0:studentNum.intValue());
+            }
         }
         if (count == 0) {
             dataList = new ArrayList<>();
@@ -1370,7 +1378,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<Long, CourseSchedule> oldCourseSchedules = new HashMap<>();
 
         newCourseSchedules.forEach(newCourseSchedule -> {
-            if (newCourseSchedule.getStartClassTime().before(tomorrow) && sysUser.getUserType().equals(SysUserType.TEACHER)) {
+            if (!sysUser.getUserType().contains("SYSTEM") && newCourseSchedule.getStartClassTime().before(tomorrow) && sysUser.getUserType().contains("TEACHER")) {
                 throw new BizException("调整时间必须为明天及以后");
             }
 
@@ -1378,7 +1386,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
             oldCourseSchedules.put(newCourseSchedule.getId(), oldCourseSchedule);
 
-            if (oldCourseSchedule.getStartClassTime().before(now) && sysUser.getUserType().equals(SysUserType.TEACHER)) {
+            if (oldCourseSchedule.getStartClassTime().before(now) && sysUser.getUserType().contains("TEACHER")) {
                 throw new BizException("不能调整今天及以前的课程");
             }
 
@@ -1705,7 +1713,6 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Transactional(rollbackFor = Exception.class)
     public void courseScheduleCommplaint(CourseScheduleComplaints courseScheduleComplaints) {
         SysUser user = sysUserFeignService.queryUserInfo();
-
         if (Objects.isNull(user)) {
             throw new BizException("请登录");
         }
@@ -1779,6 +1786,11 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         courseScheduleComplaintsDao.update(courseScheduleComplaints);
     }
 
+    public static void main(String[] args) {
+        Date updateTime = DateUtil.stringToDate("19700101 000000",DateUtil.DATE_TIME_FORMAT);
+        System.out.println(updateTime);
+    }
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean updateCourseScheduleToOverStatus() {
@@ -1786,6 +1798,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Date date = new Date();
         //课程已结束,更新“未签到”学生的状态未“旷课”
         List<StudentAttendance> studentAttendanceList = courseScheduleDao.queryUnsignedStudentList();
+        Date updateTime = DateUtil.stringToDate("19700101 000000",DateUtil.DATE_TIME_FORMAT);
         for (StudentAttendance studentAttendance : studentAttendanceList) {
             studentAttendance.setStatus(StudentAttendanceStatusEnum.TRUANT);
             studentAttendance.setRemark("课程已结束,自动补旷课");
@@ -1795,6 +1808,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 studentAttendance.setCurrentClassTimes(studentAttendance.getCurrentClassTimes() + 1);
             }
             studentAttendance.setCreateTime(date);
+            studentAttendance.setUpdateTime(updateTime);
         }
 
         if (studentAttendanceList != null && studentAttendanceList.size() > 0) {

+ 4 - 14
mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java

@@ -2,10 +2,8 @@ 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.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.EmployeeDto;
@@ -15,7 +13,6 @@ import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.enums.ParamEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
-import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
@@ -40,7 +37,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	
 	@Autowired
 	private EmployeeDao employeeDao;
-
 	@Autowired
 	private ImFeignService imFeignService;
 	@Autowired
@@ -49,8 +45,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 	private TeacherDao teacherDao;
 	@Autowired
 	private SysUserCashAccountDao sysUserCashAccountDao;
-	@Autowired
-	private SysConfigDao sysConfigDao;
 
 	@Override
 	public BaseDAO<Integer, Employee> getDAO() {
@@ -67,22 +61,20 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				if(StringUtils.isEmpty(user.getPassword())){
 					employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
 				}
-				employee.setOrganId(employee.getOrganIdList());
 				employee.setUserId(user.getId());
+				employee.setId(user.getId());
 				employeeDao.insert(employee);
 				//新增用户角色
 				employeeDao.batchAddEmployeeRole(user.getId(),employee.getRoleIds());
-				employee.setUserType(SysUserType.SYSTEM);
+				employee.setUserType(user.getUserType() + ",SYSTEM");
 				teacherDao.updateUser(employee);
+				return;
 			}else{
 				throw new BizException("员工已存在");
 			}
-			return;
 		}
 		employee.setPassword(new BCryptPasswordEncoder().encode(ParamEnum.INIT_PASSWORD.getCode().toString()));
-		employee.setUserType(SysUserType.SYSTEM);
-		employee.setUsername(employee.getRealName());
-		employee.setOrganId(employee.getOrganIdList());
+		employee.setUserType("SYSTEM");
 		teacherDao.addSysUser(employee);
 		employee.setUserId(employee.getId());
         employeeDao.insert(employee);
@@ -109,13 +101,11 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 				throw new BizException("手机号已存在");
 			}
 		}
-		employee.setUsername(employee.getRealName());
 		employeeDao.update(employee);
 		//删除当前用户角色
 		employeeDao.delEmployeeRole(employee.getId());
 		//新增用户角色
 		employeeDao.batchAddEmployeeRole(employee.getId(),employee.getRoleIds());
-		employee.setOrganId(employee.getOrganIdList());
 		teacherDao.updateUser(employee);
 	}
 

+ 51 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -181,7 +181,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.SECTION_MANAGER);
 
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getUsername());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
         }
         // 保存乐团付费主体列表
         //批量新增
@@ -382,6 +382,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         BigDecimal instrumentFee = BigDecimal.ZERO;
         BigDecimal accessoriesFee = BigDecimal.ZERO;
         BigDecimal otherFee = BigDecimal.ZERO;
+        BigDecimal remitFee = BigDecimal.ZERO;
 
         //乐器及打包辅件
         List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
@@ -411,7 +412,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 
                 orderAmount = orderAmount.add(orderDetail.getPrice());
             }
-        } else if (studentRegistration.getTemporaryCourseFee() == null && StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) {
+        } else if (StringUtils.isNoneBlank(registerPayDto.getGoodsGroupIds())) {
             goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(registerPayDto.getGoodsGroupIds());
             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT) && musicOneSubjectClassPlan.getKitGroupPurchaseType().equals(KitGroupPurchaseTypeEnum.LEASE)) {
@@ -434,6 +435,42 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
                     courseFee.subtract(goodsGroup.getRemissionCourseFee());
                 }
             }
+        } else if (registerPayDto.getGoodsGroups() != null && registerPayDto.getGoodsGroups().size() > 0) {
+            String goodsGroupIds = registerPayDto.getGoodsGroups().keySet().stream().map(key -> key.toString()).collect(Collectors.joining(","));
+            goodsGroups = musicGroupSubjectGoodsGroupService.findGoodsGroupByIds(goodsGroupIds);
+            for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
+                Map groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), HashMap.class);
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("GROUP")) {
+                    if(!groupType.containsKey("GROUP")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    remitFee = new BigDecimal((String) groupType.get("GROUP"));
+                }
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("LEASE")) {
+                    if(!groupType.containsKey("LEASE")){
+                       throw new BizException("乐器提供方式不存在");
+                    }
+                    goodsGroup.setPrice(goodsGroup.getDepositFee());
+                    goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.LEASE);
+                    remitFee = new BigDecimal((String) groupType.get("LEASE"));
+                }
+                if (registerPayDto.getGoodsGroups().get(goodsGroup.getId()).equals("FREE")) {
+                    if(!groupType.containsKey("FREE")){
+                        throw new BizException("乐器提供方式不存在");
+                    }
+                    goodsGroup.setPrice(new BigDecimal(0));
+                    remitFee = new BigDecimal((String) groupType.get("FREE"));
+                }
+                if(goodsGroup.getType().equals(GoodsType.INSTRUMENT)){
+                    instrumentFee = instrumentFee.add(goodsGroup.getPrice());
+                }else if(goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
+                    accessoriesFee = accessoriesFee.add(goodsGroup.getPrice());
+                }else {
+                    otherFee = otherFee.add(goodsGroup.getPrice());
+                }
+                orderAmount = orderAmount.add(goodsGroup.getPrice());
+            }
+            orderAmount.subtract(remitFee);
         }
 
         //单独辅件
@@ -847,7 +884,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
         roleIds.add(SysUserRole.DEAN_OF_STUDIES);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_ACTION_GROUP, "1", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_ACTION_GROUP,"1",musicGroup.getName());
     }
 
     private MusicGroup saveLog(String musicGroupId, MusicGroupStatusEnum statusEnum) throws Exception {
@@ -878,7 +915,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY, "", sysUser.getUsername());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_CREATE_MUSIC_GROUP_APPLY,"",sysUser.getUsername());
     }
 
     @Override
@@ -913,7 +950,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_ACTION_APPLY, "", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_ACTION_APPLY,"",musicGroup.getName());
     }
 
     @Override
@@ -1047,7 +1084,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP, "1", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_STOP,"1",musicGroup.getName());
         return true;
     }
 
@@ -1150,7 +1187,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
         roleIds.add(SysUserRole.ADMISSIONS_DIRECTOR);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT, "", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_LENGTHEN_PAYMENT,"",musicGroup.getName());
         return true;
     }
 
@@ -1180,7 +1217,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         memo.put("Id", musicGroupQuit.getId());
         memo.put("type", "MUSICGROUP");
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP, JSONObject.toJSONString(memo), sysUser.getUsername());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_STUDENT_APPLY_QUIT_GROUP,JSONObject.toJSONString(memo),sysUser.getUsername());
         return true;
     }
 
@@ -1651,8 +1688,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
 
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE, "",
-                teacher.getRealName(), musicGroup.getName(), scope.equals("all") ? "所有" : "本次");
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_TEACHER_AMOUNT_CHANGE,"",
+                teacher.getRealName(),musicGroup.getName(),scope.equals("all")?"所有":"本次");
         return true;
     }
 
@@ -1744,6 +1781,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         List<Integer> months = subFeeSettingDto.getMonths();
 
+        Date date = new Date();
+
         //判断缴费日历是否修改
         boolean isModifiedOfCalender = false;
 
@@ -1780,7 +1819,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             }
             musicGroupStudentFeeDao.batchUpdateCalender(join, musicGroupId);
             List<MusicGroupStudentFee> fees = musicGroupStudentFeeDao.queryByMusicGroupId(musicGroupId);
-            Date date = new Date();
             fees.forEach(e -> {
                 e.setNextPaymentDate(musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null, e));
                 e.setUpdateTime(date);
@@ -1863,7 +1901,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.EDUCATIONAL_TEACHER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT, "", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_ACTION_PAYMENT,"",musicGroup.getName());
         //所有人开启缴费
         studentRegistrationDao.musicGroupOpenPay(musicGroupId, PaymentStatusEnum.OPEN);
         return musicGroup;
@@ -1951,6 +1989,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         }
         Set<Integer> roleIds = new HashSet<>(1);
         roleIds.add(SysUserRole.SECTION_MANAGER);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING, "", musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds,musicGroup.getOrganId()),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_MARKING,"",musicGroup.getName());
     }
 }

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

@@ -89,7 +89,7 @@ public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, Music
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateStudentFee(UpdateStudentFeeDto studentFeeDto) {
-		//修改学员缴费周期和是否锁定
+		//修改学员缴费周期和是否锁定z
 		musicGroupStudentFeeDao.updateStudentFee(studentFeeDto);
 		MusicGroupStudentFee fee = musicGroupStudentFeeDao.findByUser(studentFeeDto.getStudentId(), studentFeeDto.getMusicGroupId());
 		if(fee == null){

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

@@ -51,6 +51,11 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		return organizationDao.queryEmployeeOrgan(userId);
 	}
 
+	@Override
+	public String getOrganName(String organId) {
+		return organizationDao.getOrganName(organId);
+	}
+
 
 	private Organization getTree(Organization org){
 		//得到根节点对象

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

@@ -196,18 +196,18 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 					true,
 					courseSchedule.getSchoolId().intValue());
 		}
-		teacherAttendance.setSignInTime(date);
-		teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
-		teacherAttendance.setSignOutTime(date);
-		teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
-		teacherAttendance.setCurrentClassTimes(classTimes + 1);
-		if(yesOrNoEnum != YesOrNoEnum.YES && courseSchedule.getStartClassTime().before(date)){
-			teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
-			teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
-		}
 		if(Objects.nonNull(teacherAttendance.getId())){
 			teacherAttendanceDao.update(teacherAttendance);
 		}else{
+			teacherAttendance.setSignInTime(date);
+			teacherAttendance.setSignInStatus(YesOrNoEnum.YES);
+			teacherAttendance.setSignOutTime(date);
+			teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
+			teacherAttendance.setCurrentClassTimes(classTimes + 1);
+			if(yesOrNoEnum != YesOrNoEnum.YES && courseSchedule.getStartClassTime().before(date)){
+				teacherAttendance.setSignInStatus(YesOrNoEnum.NO);
+				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
+			}
 			teacherAttendanceDao.insert(teacherAttendance);
 		}
 	}

+ 9 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -2,12 +2,10 @@ 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.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.entity.ImResult;
@@ -316,9 +314,16 @@ public class StudentManageServiceImpl implements StudentManageService {
         }
         SysUser sysUser1 = sysUserFeignService.queryUserByMobile(sysUser.getPhone());
         if(sysUser1 != null){
-            throw new BizException("手机号已被占用");
+            if(sysUser1.getUserType().contains("STUDENT")){
+                throw new BizException("手机号已被占用");
+            }else {
+                sysUser.setId(sysUser1.getId());
+                sysUser.setUserType(sysUser1.getUserType() + ",STUDENT");
+                teacherDao.updateUser(sysUser);
+                return sysUser1.getId();
+            }
         }
-        sysUser.setUserType(SysUserType.STUDENT);
+        sysUser.setUserType("STUDENT");
         teacherDao.addSysUser(sysUser);
         Integer userId = sysUser.getId();
         ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getPhone(), null));

+ 11 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -27,7 +27,6 @@ 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.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.MusicGroupDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
@@ -191,7 +190,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             roleIds.add(SysUserRole.SECTION_MANAGER);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
         }
         return i;
     }
@@ -253,11 +252,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 				sysUser.setUpdateTime(date);
 				sysUser.setLockFlag(0);
 				sysUser.setDelFlag(com.ym.mec.auth.api.enums.YesOrNoEnum.NO);
-				sysUser.setUserType(SysUserType.STUDENT);
+				sysUser.setUserType("STUDENT");
 				sysUser.setGender(studentRegistration.getGender());
-				if (studentRegistration.getOrganId() != null) {
-					sysUser.setOrganId(studentRegistration.getOrganId());
-				}
+                sysUser.setOrganId(studentRegistration.getOrganId());
 				sysUser.setRealName(studentRegistration.getParentsName());
 				sysUser.setUsername(studentRegistration.getName());
 				sysUser.setIdCardNo(studentRegistration.getIdCardNo());
@@ -273,10 +270,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 				ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
 				sysUser.setImToken(register.getToken());
 			} else {
-				if (!sysUser.getUserType().equals(SysUserType.STUDENT)) {
-					throw new BizException("您系统存在非学生的账户,不能注册学生");
+				if (!sysUser.getUserType().contains("STUDENT")) {
+                    sysUser.setUserType(sysUser.getUserType() + ",STUDENT");
 				}
-				sysUser.setUserType(SysUserType.STUDENT);
 				sysUser.setPhone(studentRegistration.getParentsPhone());
 				sysUser.setOrganId(studentRegistration.getOrganId());
 				sysUser.setRealName(studentRegistration.getParentsName());
@@ -549,9 +545,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());
                 sysUser.setGender(studentRegistration.getGender());
-                sysUser.setUserType(SysUserType.STUDENT);
+                sysUser.setUserType("STUDENT");
                 sysUser.setIdCardNo(studentRegistration.getIdCardNo());
-                sysUser.setOrganId(musicGroup.getOrganId().toString());
+                sysUser.setOrganId(musicGroup.getOrganId());
                 sysUser.setBirthdate(studentRegistration.getBirthdate());
                 teacherDao.addSysUser(sysUser);
                 userId = sysUser.getId();
@@ -563,14 +559,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 sysUser.setImToken(register.getToken());
                 teacherDao.updateUser(sysUser);
             } else {
-                if(!sysUser.getUserType().equals(SysUserType.STUDENT)){
-                    throw new BizException("您系统存在非学生的账户,不能注册学生");
+                if(!sysUser.getUserType().contains("STUDENT")){
+                    sysUser.setUserType(sysUser.getUserType() + ",STUDENT");
                 }
                 sysUser.setPhone(studentRegistration.getParentsPhone());
                 sysUser.setRealName(studentRegistration.getParentsName());
                 sysUser.setUsername(studentRegistration.getName());
                 sysUser.setGender(studentRegistration.getGender());
-                sysUser.setOrganId(musicGroup.getOrganId().toString());
+                sysUser.setOrganId(musicGroup.getOrganId());
                 sysUser.setBirthdate(studentRegistration.getBirthdate());
                 teacherDao.updateUser(sysUser);
                 userId = sysUser.getId();
@@ -584,7 +580,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId() + ""), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds, musicGroup.getOrganId()), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
             musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
             //添加班级关联

+ 12 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentWithdrawServiceImpl.java

@@ -1,24 +1,10 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.*;
-
+import com.google.common.collect.Lists;
 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.MusicGroupDao;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.service.SysMessageService;
-
-import org.apache.commons.lang3.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.google.common.collect.Lists;
 import com.ym.mec.biz.dal.dao.StudentWithdrawDao;
 import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
 import com.ym.mec.biz.dal.dto.CashAccountDetail;
@@ -26,7 +12,9 @@ import com.ym.mec.biz.dal.dto.WithdrawInfoDto;
 import com.ym.mec.biz.dal.entity.StudentWithdraw;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.service.StudentWithdrawService;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.SysUserCashAccountDetailService;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -34,6 +22,15 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.util.date.DateUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.util.*;
 
 @Service
 public class StudentWithdrawServiceImpl extends BaseServiceImpl<Integer, StudentWithdraw> implements StudentWithdrawService {

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

@@ -95,7 +95,8 @@ public class TeacherLeaveRecordServiceImpl extends BaseServiceImpl<Long, Teacher
 		teacherLeaveRecordDao.insert(teacherLeaveRecord);
 		Set<Integer> roleIds = new HashSet<>(1);
 		roleIds.add(SysUserRole.DEAN_OF_STUDIES);
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId());
+		Teacher teacher = teacherDao.get(sysUser.getId());
+		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
 		if (userIds != null && userIds.size() > 0) {
 			Map<String,Object> memo = new HashMap<>(1);
 			memo.put("leaveRecordId",teacherLeaveRecord.getId());

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

@@ -3,7 +3,6 @@ package com.ym.mec.biz.service.impl;
 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.enums.SysUserType;
 import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
@@ -72,7 +71,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	public int add(Teacher teacher) throws Exception {
 		SysUser user = sysUserFeignService.queryUserByMobile(teacher.getPhone());
 		if(user != null && user.getId() != null){
-			if(user.getUserType() == SysUserType.TEACHER){
+			if(user.getUserType().contains("TEACHER")){
 				throw new BizException("此手机号已被占用");
 			}
 			Integer id = user.getId();
@@ -81,16 +80,15 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				teacher.setId(id);
 				teacher.setDelFlag(YesOrNoEnum.NO);
 				teacherDao.insert(teacher);
-				if(user.getUserType() == SysUserType.SYSTEM){
-					teacher.setOrganId(null);
-				}
+				teacher.setOrganId(null);
+				teacher.setUserType(user.getUserType() + ",TEACHER");
 				teacherDao.updateUser(teacher);
 			}else {
 				throw new BizException("用户已存在");
 			}
 			return id;
 		}
-		teacher.setUserType(SysUserType.TEACHER);
+		teacher.setUserType("TEACHER");
 		teacher.setUsername(teacher.getRealName());
 		teacherDao.addSysUser(teacher);
 		//添加用户现金账户
@@ -120,7 +118,9 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 			}
 		}
 		teacher.setUpdateTime(new Date());
+		teacher.setTeacherOrganId(teacher.getOrganId());
 		teacherDao.update(teacher);
+		teacher.setOrganId(null);
 		teacherDao.updateUser(teacher);
 		imFeignService.update(new ImUserModel(teacher.getId().toString(),teacher.getUsername(),teacher.getAvatar()));
 	}
@@ -327,8 +327,8 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
 	@Override
-	public List<Teacher> findTeacherByOrganId(String organId) {
-		return teacherDao.findTeacherByOrganId(organId);
+	public List<Teacher> findTeacherByOrganId(String organId,String subjectIds) {
+		return teacherDao.findTeacherByOrganId(organId,subjectIds);
 	}
 
 	@Override
@@ -398,7 +398,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				List<String> organNames = organizationDao.findByOrganIds(teacher.getFlowOrganRange());
 				teacher.setFlowOrganRange(StringUtils.join(organNames,","));
 			}
-			if(StringUtils.isNotEmpty(teacher.getOrganId())){
+			if(teacher.getTeacherOrganId() != null){
 				teacher.setOrganName(organizationDao.get(teacher.getTeacherOrganId()).getName());
 			}
 			//专业技能

+ 4 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -11,6 +11,7 @@ import com.ym.mec.biz.service.VipGroupActivityService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -105,12 +106,9 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		if(Objects.isNull(teacher)){
 			throw new BizException("未找到指定教师");
 		}
-		String organIds = "";
-		if(Objects.nonNull(teacher.getOrganId())){
-			organIds = teacher.getOrganId();
-		}
-		if (Objects.nonNull(teacher.getFlowOrganRange())) {
-			organIds = teacher.getOrganId() + "," + teacher.getFlowOrganRange();
+		String organIds = teacher.getTeacherOrganId().toString();
+		if (StringUtils.isNotEmpty(teacher.getFlowOrganRange())) {
+			organIds += "," + teacher.getFlowOrganRange();
 		}
 		return vipGroupActivityDao.findByCategory(categoryId,organIds);
 	}

+ 7 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -159,12 +159,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("请设置教学点");
 		}
 
-		SysUser sysUser = sysUserFeignService.queryUserById(vipGroup.getVipGroupApplyBaseInfo().getUserId());
-
-        if(Objects.isNull(sysUser)){
-        	throw new BizException("该用户不存在");
-		}
-
         String studentIds=vipGroup.getStudentIds();
 		List<String> studentIdList=new ArrayList<>();
 
@@ -353,12 +347,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
 		Map<String,Long> memo = new HashMap<>(1);
 		memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
-
-		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,sysUser.getOrganId());
+		Teacher teacher = teacherDao.get(vipGroup.getVipGroupApplyBaseInfo().getUserId());
+//		SysUser sysUser = sysUserFeignService.queryUserById(vipGroup.getVipGroupApplyBaseInfo().getUserId());
+		if(Objects.isNull(teacher)){
+			throw new BizException("该用户不存在");
+		}
+		Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
 //		if (vipGroup.getVipGroupApplyBaseInfo().getUserId() != null){
 //			sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_VIP_COURSE_APPLY, JSONObject.toJSONString(memo),sysUser.getUsername(),sysUser.getUsername());
 //		}else {
-		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),sysUser.getUsername());
+		sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
 //		}
 	}
 

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

@@ -1237,8 +1237,9 @@
             schoole_id_
         FROM course_schedule WHERE teacher_id_=#{teacherId} and CONCAT( class_date_, ' ', start_class_time_ ) between #{startTime} and #{endTime}
         <if test="type != null">
-        and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+          and type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>
+        ORDER BY CONCAT(class_date_,' ',start_class_time_)
     </select>
     <!-- 查找班级未开始的课程 -->
     <select id="findNoStartCoursesByClassGroupId" resultMap="CourseSchedule">

+ 15 - 10
mec-biz/src/main/resources/config/mybatis/CourseScheduleRewardsMapper.xml

@@ -17,6 +17,8 @@
 		<result column="update_time_" property="updateTime" />
 		<result column="vip_group_category_id_list_" property="vipGroupCategoryIdList" />
 		<result column="teacher_id_" property="teacherId" />
+		<result column="subject_id_" property="subjectIds" />
+		<result column="subject_name_" property="subjectName" />
 	</resultMap>
 
 	<!-- 根据主键查询一条记录 -->
@@ -35,9 +37,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_,vip_group_category_id_list_,teacher_id_)
+		(id_,name_,course_schedule_type_,reward_mode_,organ_id_,rewards_rules_json_,create_time_,update_time_,vip_group_category_id_list_,teacher_id_,subject_id_)
 		VALUES(#{id},#{name},#{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{organId},#{rewardsRulesJson},now(),now(),#{vipGroupCategoryIdList},#{teacherId})
+		#{rewardMode,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{organId},#{rewardsRulesJson},now(),now(),#{vipGroupCategoryIdList},#{teacherId},#{subjectIds})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -58,8 +60,8 @@
 			<if test="teacherId != null">
 				teacher_id_ = #{teacherId},
 			</if>
-			<if test="id != null">
-				id_ = #{id},
+			<if test="subjectIds != null">
+				subject_id_ = #{subjectIds},
 			</if>
 			<if test="updateTime != null">
 				update_time_ = now(),
@@ -73,9 +75,6 @@
 			<if test="rewardsRulesJson != null">
 				rewards_rules_json_ = #{rewardsRulesJson},
 			</if>
-			<if test="createTime != null">
-				create_time_ = #{createTime},
-			</if>
 		</set>
 		WHERE id_ = #{id}
 	</update>
@@ -98,7 +97,8 @@
 	</select>
 	
 	<select id="query" resultType="map">
-		SELECT * FROM course_schedule_rewards_rules where find_in_set(#{organId},organ_id_) and course_schedule_type_ = #{courseScheduleType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} order by update_time_ desc
+		SELECT * FROM course_schedule_rewards_rules WHERE find_in_set(#{organId},organ_id_)
+		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">
@@ -108,12 +108,14 @@
 		SELECT * FROM course_schedule_rewards_rules csrr
 		WHERE INTE_ARRAY(csrr.vip_group_category_id_list_,#{vipGroupCategoryIdList})
 		AND INTE_ARRAY(csrr.teacher_id_,#{teacherId})
+		AND INTE_ARRAY(csrr.subject_id_,#{subjectIds})
 	</select>
 
 	<select id="queryDetailPage" resultMap="CourseScheduleRewardsRules">
-		SELECT * FROM course_schedule_rewards_rules csrr
+		SELECT GROUP_CONCAT(s.name_) subject_name_,csrr.* FROM course_schedule_rewards_rules csrr
+		LEFT JOIN `subject` s ON FIND_IN_SET(s.id_,csrr.subject_id_)
 		<include refid="findDetailPageSql"/>
-		ORDER BY id_ DESC
+		GROUP BY csrr.id_ ORDER BY csrr.id_ DESC
 		<include refid="global.limit" />
 	</select>
 	<select id="findDetailPage" resultType="java.lang.Integer">
@@ -163,6 +165,9 @@
 			<if test="teacherId">
 				AND FIND_IN_SET(#{teacherId},csrr.teacher_id_)
 			</if>
+			<if test="subjectId">
+				AND FIND_IN_SET(#{subjectId},csrr.subject_id_)
+			</if>
 			<if test="search">
 				AND csrr.name_ LIKE CONCAT('%',#{search},'%')
 			</if>

+ 13 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleStudentPaymentMapper.xml

@@ -213,6 +213,19 @@
 		WHERE vg.status_ IN (2,4) AND cssp.group_type_ = 'VIP'
 		GROUP BY cssp.user_id_
 	</select>
+    <select id="countCourseStudentNum" resultType="java.util.Map">
+		SELECT
+			course_schedule_id_ AS 'key',
+			COUNT( DISTINCT user_id_ ) AS 'value'
+		FROM
+			course_schedule_student_payment
+		WHERE course_schedule_id_ IN
+			<foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+				#{courseId}
+			</foreach>
+		GROUP BY
+			course_schedule_id_
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

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

@@ -37,7 +37,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
-        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -187,7 +187,6 @@
             LEFT JOIN sys_user_role sur ON sur.user_id_ = e.user_id_
         </if>
         <where>
-            su.user_type_ = 'SYSTEM'
             <if test="organId != null">
                 AND INTE_ARRAY(e.organ_id_list_,#{organId})
             </if>
@@ -215,7 +214,6 @@
             LEFT JOIN sys_user_role sur ON sur.user_id_ = e.user_id_
         </if>
         <where>
-            su.user_type_ = 'SYSTEM'
             <if test="organId != null">
                 AND INTE_ARRAY(e.organ_id_list_,#{organId})
             </if>

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

@@ -368,8 +368,8 @@
 		<foreach collection="roleIds" open="(" separator="," close=")" item="item">
 			#{item}
 		</foreach>
-		<if test="organIds != null">
-			AND INTE_ARRAY(e.organ_id_list_,#{organIds})
+		<if test="organId != null">
+			AND FIND_IN_SET(#{organId},e.organ_id_list_)
 		</if>
 	</select>
 	<select id="queryTeacherIdMap" resultType="java.util.Map">

+ 5 - 0
mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -120,6 +120,11 @@
     <select id="findOrganNameMap" resultType="java.util.Map">
         SELECT o.id_ 'key',o.name_ 'value' FROM organization o WHERE FIND_IN_SET(o.id_,#{organIds})
     </select>
+
+    <select id="getOrganName" resultType="java.lang.String">
+        SELECT GROUP_CONCAT(name_) FROM organization WHERE FIND_IN_SET(id_,#{organId})
+    </select>
+    
     <select id="findAllOrgans" resultMap="Organization">
         SELECT * from organization where del_flag_=0 ORDER BY id_ ASC;
     </select>

+ 3 - 2
mec-biz/src/main/resources/config/mybatis/StudentAttendanceMapper.xml

@@ -16,6 +16,7 @@
         <result column="teacher_id_" property="teacherId"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
         <result column="remark_" property="remark"/>
         <result column="current_class_times_" property="currentClassTimes"/>
     </resultMap>
@@ -40,13 +41,13 @@
 
     <insert id="addStudentAttendances" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
       INSERT INTO student_attendance (group_type_, music_group_id_, class_group_id_, course_schedule_id_,
-      user_id_, teacher_id_, status_, create_time_, remark_ ,current_class_times_)
+      user_id_, teacher_id_, status_, create_time_,update_time_, remark_ ,current_class_times_)
       VALUES
 	  <foreach collection="list" item="studentAttendance" separator=",">
           (#{studentAttendance.groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
           #{studentAttendance.musicGroupId},#{studentAttendance.classGroupId},#{studentAttendance.courseScheduleId},
           #{studentAttendance.userId},#{studentAttendance.teacherId},
-          #{studentAttendance.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),
+          #{studentAttendance.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},now(),#{studentAttendance.updateTime},
           #{studentAttendance.remark},#{studentAttendance.currentClassTimes})
       </foreach>
     </insert>

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

@@ -99,7 +99,7 @@
             schr.user_id_ comment_user_id_,
             suc.username_ comment_user_name_,
             suc.avatar_,
-            IF(suc.user_type_!='STUDENT',1,0) is_teacher_,
+            IF(suc.user_type_ LIKE '%STUDENT%',0,1) is_teacher_,
             schr.content_ comment_content_,
             schr.create_time_ comment_time
         FROM

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

@@ -81,7 +81,7 @@
                 username_ = #{username},
             </if>
             <if test="userType != null">
-                user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                user_type_ = #{userType},
             </if>
             <if test="updateTime != null">
                 update_time_ = NOW(),
@@ -130,7 +130,7 @@
     </select>
     <sql id="findStudentsByOrganIdSql">
         <where>
-                su.user_type_ = 'STUDENT'
+                su.user_type_ LIKE '%STUDENT%'
             <if test="organId != null">
                 AND FIND_IN_SET(su.organ_id_,#{organId})
             </if>
@@ -156,7 +156,7 @@
         SELECT COUNT(DISTINCT su.id_)
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.user_type_ = 'STUDENT'
+        WHERE su.user_type_ LIKE '%STUDENT%'
         <include refid="queryHasCourseSql"/>
     </select>
     <select id="findStudentBaseInfoByUserID" resultMap="studentManageListDto">
@@ -164,7 +164,7 @@
         su.phone_ parents_phone_,sr.current_class_,sr.current_grade_,su.nation_
         FROM sys_user su
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ =#{userId} AND su.user_type_ = 'STUDENT' LIMIT 1
+        WHERE su.id_ =#{userId} AND su.user_type_ LIKE '%STUDENT%' LIMIT 1
     </select>
 
     <select id="findGoodsNamesByIds" resultType="string">
@@ -565,7 +565,7 @@
         SELECT su.id_ FROM sys_user su
         LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
         LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-        WHERE su.user_type_ = 'STUDENT' AND cs.status_ != 'OVER'
+        WHERE su.user_type_ LIKE '%STUDENT%' AND cs.status_ != 'OVER'
         <include refid="queryHasCourseSql"/>
         GROUP BY su.id_
         ORDER BY su.create_time_ DESC
@@ -575,7 +575,7 @@
         SELECT COUNT(DISTINCT su.id_) FROM sys_user su
         LEFT JOIN course_schedule_student_payment cssp ON cssp.user_id_ = su.id_
         LEFT JOIN course_schedule cs ON cs.id_ = cssp.course_schedule_id_
-        WHERE su.user_type_ = 'STUDENT' AND cs.status_ != 'OVER'
+        WHERE su.user_type_ LIKE '%STUDENT%' AND cs.status_ != 'OVER'
         <include refid="queryHasCourseSql"/>
     </select>
     <select id="queryNotCourse" resultType="java.lang.Integer">
@@ -598,7 +598,7 @@
     </select>
     <sql id="queryNotCourseSql">
         <where>
-            su.user_type_ = 'STUDENT'
+                su.user_type_ LIKE '%STUDENT%'
             <if test="organId != null">
                 AND FIND_IN_SET(su.organ_id_,#{organId})
             </if>
@@ -645,7 +645,7 @@
         LEFT JOIN organization o ON su.organ_id_ = o.id_
         LEFT JOIN student_registration sr ON su.id_ = sr.user_id_ AND cssp.music_group_id_ = sr.music_group_id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
-        WHERE cssp.id_ IS NOT NULL AND su.user_type_ = 'STUDENT' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
+        WHERE cssp.id_ IS NOT NULL AND su.user_type_ LIKE '%STUDENT%' AND (sr.music_group_status_ != 'QUIT' OR sr.id_ IS NULL) AND su.password_ IS NULL
         AND (mg.status_ = 'PROGRESS' OR vg.status_ IN (2,4))
         <if test="organId != null and organId != ''">
             AND FIND_IN_SET(su.organ_id_,#{organId})

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

@@ -56,7 +56,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
-        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -375,7 +375,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
-        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -543,7 +543,7 @@
         GROUP BY sr.music_group_id_
     </select>
     <select id="queryUserByPhone" resultMap="StudentRegistration">
-        SELECT su.id_,su.real_name_,su.phone_,sr.current_grade_,
+        SELECT su.id_,su.real_name_ parents_name_,su.phone_,sr.current_grade_,
         sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
         FROM sys_user su
         LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
@@ -565,14 +565,14 @@
         SELECT a.name_ organ_name_,a.num_ student_num_,b.num_ per_num_,ifnull(b.num_,0)*100/a.num_ per_
         FROM (SELECT o.id_,o.name_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
         LEFT JOIN organization o ON su.organ_id_ = o.id_
-        WHERE su.user_type_ = 'STUDENT' AND su.id_ IN
+        WHERE su.user_type_ LIKE '%STUDENT%' AND su.id_ IN
         <foreach collection="userIds" separator="," open="(" close=")" item="item">
             #{item}
         </foreach>
         GROUP BY su.organ_id_) a
         LEFT JOIN
         (SELECT su.organ_id_ id_,COUNT(DISTINCT su.id_) num_ FROM sys_user su
-        WHERE su.user_type_ = 'STUDENT' AND su.password_ IS NOT NULL AND su.id_ IN
+        WHERE su.user_type_ LIKE '%STUDENT%' AND su.password_ IS NOT NULL AND su.id_ IN
         <foreach collection="userIds" separator="," open="(" close=")" item="item">
             #{item}
         </foreach>

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

@@ -11,8 +11,8 @@
         <result column="organ_id_" property="organId"/>
         <result column="teacher_organ_id_" property="teacherOrganId"/>
         <result column="organ_name_" property="organName"/>
-        <result column="job_type_" property="jobType"/>
-        <result column="job_nature_" property="jobNature"/>
+        <result column="job_type_" property="jobType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="job_nature_" property="jobNature" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="is_probation_period_" property="isProbationPeriod"
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="education_background_" property="educationBackground"/>
@@ -40,7 +40,7 @@
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="wx_openid_" property="wxOpenid"/>
         <result column="qq_openid_" property="qqOpenid"/>
-        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="user_type_" property="userType"/>
         <result column="gender_" property="gender"/>
         <result column="nation_" property="nation"/>
         <result column="birthdate_" property="birthdate"/>
@@ -74,14 +74,14 @@
             keyProperty="id">
         INSERT INTO teacher
         (id_,organ_id_,job_type_,job_nature_,is_probation_period_,education_background_,graduate_school_,technical_titles_,work_unit_,subject_id_,entry_date_,demission_date_,certificate_type_,certificate_num_,flow_organ_range_,introduction_,update_time_,create_time_,is_support_course_schedule_rewards_rules_)
-        VALUES(#{id},#{organId},#{jobType},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportCourseScheduleRewardsRules})
+        VALUES(#{id},#{organId},#{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{jobNature},#{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{educationBackground},#{graduateSchool},#{technicalTitles},#{workUnit},#{subjectId},#{entryDate},#{demissionDate},#{certificateType},#{certificateNum},#{flowOrganRange},#{introduction},now(),now(),#{isSupportCourseScheduleRewardsRules})
     </insert>
 
     <insert id="addSysUser" parameterType="com.ym.mec.auth.api.entity.SysUser" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO sys_user
         (im_token_,id_,username_,salt_,phone_,avatar_,organ_id_,create_time_,update_time_,wx_openid_,qq_openid_,user_type_,gender_,nation_,birthdate_,email_,id_card_no_,wechat_id_,real_name_,password_)
-        VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+        VALUES(#{imToken},#{id},#{username},#{salt},#{phone},#{avatar},#{organId},now(),now(),#{wxOpenid},#{qqOpenid},#{userType},
         #{gender},#{nation},#{birthdate},#{email},#{idCardNo},#{wechatId},#{realName},#{password})
     </insert>
 
@@ -108,7 +108,7 @@
                 demission_date_ = #{demissionDate},
             </if>
             <if test="jobType != null">
-                job_type_ = #{jobType},
+                job_type_ = #{jobType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="flowOrganRange != null">
                 flow_organ_range_ = #{flowOrganRange},
@@ -117,7 +117,7 @@
                 certificate_type_ = #{certificateType},
             </if>
             <if test="jobNature != null">
-                job_nature_ = #{jobNature},
+                job_nature_ = #{jobNature,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
             <if test="isProbationPeriod != null">
                 is_probation_period_ = #{isProbationPeriod,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
@@ -180,7 +180,7 @@
                 real_name_ = #{realName},
             </if>
             <if test="userType != null">
-                user_type_ = #{userType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+                user_type_ = #{userType},
             </if>
             <if test="updateTime != null">
                 update_time_ = NOW(),
@@ -593,6 +593,9 @@
         <if test="organId != null">
             AND FIND_IN_SET(t.organ_id_,#{organId})
         </if>
+        <if test="subjectIds != null">
+            AND INTE_ARRAY(t.subject_id_,#{subjectIds})
+        </if>
     </select>
     <select id="queryUsernameByIds" resultType="java.util.Map" parameterType="list">
         select id_ `key`,username_ `value` FROM sys_user s

+ 4 - 4
mec-common/common-core/src/main/java/com/ym/mec/common/security/AuthUser.java

@@ -20,9 +20,9 @@ public class AuthUser extends User {
 	/**
 	 * 所在组织的编号
 	 */
-	private String organId;
+	private Integer organId;
 
-	public AuthUser(Integer userId, String organId, String username, String password, boolean enabled, boolean accountNonExpired,
+	public AuthUser(Integer userId, Integer organId, String username, String password, boolean enabled, boolean accountNonExpired,
 			boolean credentialsNonExpired, boolean accountNonLocked, Collection<? extends GrantedAuthority> authorities) {
 		super(username, password, enabled, accountNonExpired, credentialsNonExpired, accountNonLocked, authorities);
 		this.userId = userId;
@@ -37,11 +37,11 @@ public class AuthUser extends User {
 		this.userId = userId;
 	}
 
-	public String getOrganId() {
+	public Integer getOrganId() {
 		return organId;
 	}
 
-	public void setOrganId(String organId) {
+	public void setOrganId(Integer organId) {
 		this.organId = organId;
 	}
 

+ 25 - 10
mec-education/src/main/java/com/ym/mec/education/controller/CourseScheduleController.java

@@ -1,24 +1,37 @@
 package com.ym.mec.education.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+
+import lombok.extern.slf4j.Slf4j;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+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.dto.ClassDateAdjustDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.common.exception.BizException;
 import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
 import com.ym.mec.education.req.ClassGroupReq;
 import com.ym.mec.education.req.CourseScheduleReq;
 import com.ym.mec.education.resp.CourseScheduleResp;
 import com.ym.mec.education.service.ICourseScheduleService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
 
 /**
  * @program: mec
@@ -36,6 +49,8 @@ public class CourseScheduleController {
     private ICourseScheduleService courseScheduleService;
     @Autowired
     private CourseScheduleService scheduleService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @PostMapping("/list")
     @ApiOperation("课表列表")

+ 3 - 3
mec-education/src/main/java/com/ym/mec/education/controller/TeacherAttendanceController.java

@@ -50,7 +50,7 @@ public class TeacherAttendanceController extends BaseController {
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return succeed(iteacherAttendanceService.findTeacherAbnormalSignInCourseScheduleRecord(Integer.parseInt(user.getOrganId()),date,signInStatus));
+        return succeed(iteacherAttendanceService.findTeacherAbnormalSignInCourseScheduleRecord(user.getOrganId(),date,signInStatus));
     }
 
     @PostMapping("/findTeacherAbnormalSignInDates")
@@ -60,7 +60,7 @@ public class TeacherAttendanceController extends BaseController {
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return succeed(iteacherAttendanceService.findTeacherAbnormalSignInDates(Integer.parseInt(user.getOrganId()),month));
+        return succeed(iteacherAttendanceService.findTeacherAbnormalSignInDates(user.getOrganId(),month));
     }
 
     @PostMapping("/countTeacherAbnormalSignInClassTimes")
@@ -70,6 +70,6 @@ public class TeacherAttendanceController extends BaseController {
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
-        return iteacherAttendanceService.countTeacherAbnormalSignInClassTimes(Integer.parseInt(user.getOrganId()),date);
+        return iteacherAttendanceService.countTeacherAbnormalSignInClassTimes(user.getOrganId(),date);
     }
 }

+ 1 - 12
mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
+
 import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -39,40 +40,28 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
 
     @Autowired
     private ISysUserService sysUserService;
-
     @Autowired
     private ISubjectService subjectService;
-
     @Autowired
     private IClassGroupService classGroupService;
-
     @Autowired
     private IDemoGroupService demoGroupService;
     @Autowired
     private IClassGroupTeacherMapperService classGroupTeacherMapperService;
-
     @Autowired
     private IDemoGroupCoursesPlanService iDemoGroupCoursesPlanService;
-
     @Autowired
     private ITeacherLeaveRecordService teacherLeaveRecordService;
-
     @Autowired
     private IVipGroupService vipGroupService;
-
     @Autowired
     private IVipGroupCategoryService vipGroupCategoryService;
-
     @Autowired
     private ICourseScheduleService courseScheduleService;
     @Autowired
     private ITeacherAttendanceService teacherAttendanceService;
     @Autowired
     private IStudentAttendanceService studentAttendanceService;
-
-
-    @Autowired
-    private IVipGroupDefaultClassesCycleService vipGroupDefaultClassesCycleService;
     @Autowired
     private IMusicGroupService musicGroupService;
     @Autowired

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java

@@ -58,7 +58,7 @@ public class MusicGroupRegisterController extends BaseController {
         }else{
             studentRegistration.setPaymentStatus(PaymentStatusEnum.NO);
         }
-        studentRegistration.setOrganId(musicGroup.getOrganId().toString());
+        studentRegistration.setOrganId(musicGroup.getOrganId());
         return succeed(studentRegistrationService.addStudent(studentRegistration));
     }
 

+ 3 - 3
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -79,7 +79,7 @@ public class SporadicChargeInfoController extends BaseController {
             if (sysUser == null || sysUser.getId() == null) {
                 return failed("用户不存在");
             }
-            if (sysUser.getUserType() != SysUserType.STUDENT) {
+            if (!sysUser.getUserType().contains("STUDENT")) {
                 return failed("用户信息异常");
             }
             sporadicPayDto.setUserId(sysUser.getId());
@@ -106,10 +106,10 @@ public class SporadicChargeInfoController extends BaseController {
         if (sysUser == null || sysUser.getId() == null) {
             return failed("请先登录");
         }
-        if (sysUser.getOrganId() == null || sysUser.getOrganId().isEmpty()) {
+        if (sysUser.getOrganId() == null) {
             return failed("用户信息有误,没有分部信息");
         }
-        Integer organId = Integer.parseInt(sysUser.getOrganId());
+        Integer organId = sysUser.getOrganId();
 
         if (type == null || type <= 0) {
             return failed("参数不合法");

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

@@ -283,8 +283,9 @@ public class StudentOrderController extends BaseController {
         return succeed("订单不存在");
     }
 
+
     @RequestMapping("paymentResult")
-    public void paymentResult(HttpServletResponse response, String orderNo) {
+    public void paymentResult(HttpServletResponse response,String orderNo) {
         try {
             String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
             response.sendRedirect(baseApiUrl + "/#/paymentresult?orderNo=" + orderNo);

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

@@ -3,12 +3,15 @@ package com.ym.mec.teacher.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.DemoGroupApplyDto;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.service.DemoGroupService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
@@ -30,6 +33,8 @@ public class DemoGroupController extends BaseController {
     @Autowired
     private SysConfigDao sysConfigDao;
     @Autowired
+    private TeacherDao teacherDao;
+    @Autowired
     private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "试听课申请")
@@ -39,8 +44,13 @@ public class DemoGroupController extends BaseController {
         if(Objects.isNull(user)){
             return failed(HttpStatus.FORBIDDEN,"请登录");
         }
+        Teacher teacher = teacherDao.get(user.getId());
+        String organId = teacher.getTeacherOrganId().toString();
+        if(StringUtils.isNotEmpty(teacher.getFlowOrganRangeId())){
+            organId += "," + teacher.getFlowOrganRangeId();
+        }
         demoGroup.setUserId(user.getId());
-        demoGroup.setOrganIdList(user.getOrganId().toString());
+        demoGroup.setOrganIdList(organId);
         demoGroupService.demoGroupApply(demoGroup);
         return succeed();
     }

+ 3 - 6
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherSchoolController.java

@@ -7,11 +7,9 @@ import com.ym.mec.biz.dal.entity.School;
 import com.ym.mec.biz.dal.entity.Teacher;
 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.http.HttpStatus;
@@ -83,8 +81,7 @@ public class TeacherSchoolController extends BaseController {
         if(teacher == null){
         	return failed("非法访问");
 		}
-
-		String organIdList = teacher.getOrganId();
+		String organIdList = teacher.getTeacherOrganId().toString();
 		if (StringUtils.isNoneBlank(teacher.getFlowOrganRange())) {
 			organIdList = organIdList + "," + teacher.getFlowOrganRange();
 		}
@@ -103,9 +100,9 @@ public class TeacherSchoolController extends BaseController {
             return failed("非法访问");
         }
 
-        String organIdList = teacher.getOrganId();
+        String organIdList = teacher.getTeacherOrganId().toString();
         if (StringUtils.isNoneBlank(teacher.getFlowOrganRange())) {
-            organIdList = organIdList + "," + teacher.getFlowOrganRange();
+            organIdList += "," + teacher.getFlowOrganRange();
         }
         return succeed(schoolService.findVipSchoolByTeacher(sysUser.getId(),organIdList,isDefault));
     }

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

@@ -2,8 +2,10 @@ package com.ym.mec.teacher.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
+import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
@@ -28,9 +30,10 @@ public class TeacherVipGroupController extends BaseController {
 
 	@Autowired
 	private VipGroupService vipGroupService;
-
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private TeacherDao teacherDao;
 
 	@ApiOperation("vip课申请")
 	@PostMapping("/vipGroupApply")
@@ -39,10 +42,12 @@ public class TeacherVipGroupController extends BaseController {
 		if (Objects.isNull(user)) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-		vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(user.getId());
-		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
-		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(user.getOrganId().toString());
-		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(Integer.parseInt(user.getOrganId()));
+		Integer userId = user.getId();
+		Teacher teacher = teacherDao.get(userId);
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(userId);
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(userId));
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(teacher.getTeacherOrganId().toString());
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
 		vipGroupService.createVipGroup(vipGroupApplyDto);
 		return succeed();
 	}

+ 2 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java

@@ -7,6 +7,7 @@ import com.ym.mec.biz.dal.entity.Teacher;
 import com.ym.mec.biz.dal.entity.VipGroupCategory;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 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;
@@ -29,6 +30,7 @@ public class VipGroupCategoryController extends BaseController {
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+	
 	@Autowired
 	private TeacherDao teacherDao;
 

+ 5 - 0
mec-web/pom.xml

@@ -51,6 +51,11 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-biz</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>com.github.penggle</groupId>
+			<artifactId>kaptcha</artifactId>
+			<version>2.3.2</version>
+		</dependency>
 
 	</dependencies>
 	<build>

+ 28 - 0
mec-web/src/main/java/com/ym/mec/web/config/ImageVerifyCodeConfig.java

@@ -0,0 +1,28 @@
+package com.ym.mec.web.config;
+
+import com.google.code.kaptcha.impl.DefaultKaptcha;
+import com.google.code.kaptcha.util.Config;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Properties;
+
+@Configuration
+public class ImageVerifyCodeConfig {
+    @Bean(name="captchaProducer")
+    public DefaultKaptcha getKaptchaBean(){
+        DefaultKaptcha defaultKaptcha=new DefaultKaptcha();
+        Properties properties=new Properties();
+        properties.setProperty("kaptcha.border", "yes");
+        properties.setProperty("kaptcha.border.color", "105,179,90");
+        properties.setProperty("kaptcha.textproducer.font.color", "blue");
+        properties.setProperty("kaptcha.image.width", "125");
+        properties.setProperty("kaptcha.image.height", "45");
+        properties.setProperty("kaptcha.session.key", "code");
+        properties.setProperty("kaptcha.textproducer.char.length", "4");
+        properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑");
+        Config config=new Config(properties);
+        defaultKaptcha.setConfig(config);
+        return defaultKaptcha;
+    }
+}

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

@@ -280,7 +280,7 @@ public class CourseScheduleController extends BaseController {
             return failed("用户信息获取失败");
         }
         Employee employee = employeeDao.get(sysUser.getId());
-        if(StringUtils.isEmpty(queryInfo.getOrganIdList())){
+        if(StringUtils.isEmpty(queryInfo.getOrganIdList())&&Objects.nonNull(employee)){
             queryInfo.setOrganIdList(employee.getOrganIdList());
         }
         return succeed(scheduleService.endFindCourseSchedules(queryInfo));

+ 39 - 7
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -6,14 +6,16 @@ import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
 import com.ym.mec.biz.service.EmployeeService;
+import com.ym.mec.biz.service.OrganizationService;
+import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
-
 import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
@@ -31,6 +33,10 @@ public class EmployeeController extends BaseController {
     private EmployeeService employeeService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private StudentManageService studentManageService;
+    @Autowired
+    private OrganizationService organizationService;
 
     @ApiOperation(value = "根据部门获取下面的员工")
     @GetMapping("/queryEmployByOrganId")
@@ -81,18 +87,44 @@ public class EmployeeController extends BaseController {
         return succeed();
     }
 
-    @ApiOperation(value = "删除员工")
-    @PostMapping("/delete/{userId}")
-    @PreAuthorize("@pcs.hasPermissions('employee/delete')")
-    public Object update(@PathVariable("userId") Long userId) {
-        employeeService.deleteEmployee(userId);
-        return succeed();
+    @ApiOperation(value = "修改用户")
+    @PostMapping("/updateUser")
+    public Object update(SysUser sysUser) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user != null) {
+            Date date = new Date();
+            sysUser.setId(user.getId());
+            sysUser.setUpdateTime(date);
+            studentManageService.updateUser(sysUser);
+            return succeed();
+        }
+        return failed("获取用户失败");
     }
 
+//    @ApiOperation(value = "删除员工")
+//    @PostMapping("/delete/{userId}")
+//    @PreAuthorize("@pcs.hasPermissions('employee/delete')")
+//    public Object update(@PathVariable("userId") Long userId) {
+//        employeeService.deleteEmployee(userId);
+//        return succeed();
+//    }
+
     @ApiOperation(value = "获取所有员工")
     @GetMapping("/findAll")
     @PreAuthorize("@pcs.hasPermissions('employee/findAll')")
     public Object findAll() {
         return succeed(employeeService.findAll(null));
     }
+
+    @ApiOperation(value = "获取用户信息")
+    @GetMapping("/queryUserInfo")
+    public Object apiQueryUserInfo() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser != null && sysUser.getId() != null){
+            Employee employee = employeeService.get(sysUser.getId());
+            sysUser.setOrganName(organizationService.getOrganName(employee.getOrganIdList()));
+            return succeed(sysUser);
+        }
+        return failed("获取用户信息失败");
+    }
 }

+ 2 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -71,7 +71,8 @@ public class ExportController extends BaseController {
         if (sysUser == null) {
             throw new BizException("获取用户信息失败");
         }
-        List<StudentHasCourseDto> hasCourseDtos = studentManageService.queryHasCourseStudent(sysUser.getOrganId());
+        Employee employee = employeeDao.get(sysUser.getId());
+        List<StudentHasCourseDto> hasCourseDtos = studentManageService.queryHasCourseStudent(employee.getOrganIdList());
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"学员编号", "姓名", "分部", "所在乐团", "乐团所属声部", "所在vip课"}, new String[]{
                     "userId", "userName", "organName", "musicGroupName", "subjectName", "vipGroupName"}, hasCourseDtos);

+ 8 - 8
mec-web/src/main/java/com/ym/mec/web/controller/IndexController.java

@@ -1,5 +1,7 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.entity.Employee;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -15,12 +17,6 @@ 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.DemoGroupDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
 import com.ym.mec.common.controller.BaseController;
 
 @Api(tags = "首页")
@@ -45,6 +41,9 @@ public class IndexController extends BaseController {
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
+
+	@Autowired
+	private EmployeeDao employeeDao;
 	
 	@Autowired
 	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
@@ -57,8 +56,9 @@ public class IndexController extends BaseController {
 		if (sysUser == null || sysUser.getId() == null) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
 		}
-
-		String organId = sysUser.getOrganId();
+		Integer userId = sysUser.getId();
+		Employee employee = employeeDao.get(userId);
+		String organId = employee.getOrganIdList();
 		if (sysUser.getIsSuperAdmin()) {
 			organId = null;
 		}else if(StringUtils.isEmpty(organId)){

+ 17 - 26
mec-web/src/main/java/com/ym/mec/web/controller/SchoolController.java

@@ -1,22 +1,5 @@
 package com.ym.mec.web.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-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.RequestMapping;
-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.EmployeeDao;
@@ -27,6 +10,17 @@ import com.ym.mec.biz.dal.entity.Teacher;
 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;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Arrays;
+import java.util.Date;
+import java.util.List;
 
 @RequestMapping("school")
 @Api(tags = "学校(教学点)服务")
@@ -127,17 +121,14 @@ public class SchoolController extends BaseController {
     @ApiOperation(value = "获取教师vip课教学点")
     @GetMapping("/findVipSchoolByTeacher")
     public Object findVipSchoolByTeacher(@ApiParam(value = "教师编号", required = true) Integer userId){
-    	SysUser sysUser = sysUserFeignService.queryUserById(userId);
-        if (sysUser == null) {
+        Teacher teacher = teacherDao.get(userId);
+        if (teacher == null) {
             return failed("用户信息获取失败");
         }
-        StringBuffer sb = new StringBuffer();
-        sb.append(sysUser.getOrganId());
-        Teacher teacher = teacherDao.get(userId);
-        if(teacher == null){
-        	return failed("老师信息不存在");
+        String organId = teacher.getTeacherOrganId().toString();
+        if(StringUtils.isEmpty(teacher.getFlowOrganRange())){
+            organId += "," + teacher.getFlowOrganRange();
         }
-        sb.append(",").append(teacher.getFlowOrganRange());
-        return succeed(schoolService.findVipSchoolByTeacher(userId,sb.toString(),null));
+        return succeed(schoolService.findVipSchoolByTeacher(userId,organId,null));
     }
 }

+ 66 - 0
mec-web/src/main/java/com/ym/mec/web/controller/SmsCodeController.java

@@ -1,5 +1,8 @@
 package com.ym.mec.web.controller;
 
+import com.google.code.kaptcha.Constants;
+import com.google.code.kaptcha.Producer;
+import com.google.code.kaptcha.servlet.KaptchaServlet;
 import com.ym.mec.biz.service.SmsCodeService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.security.SecurityConstants;
@@ -9,10 +12,18 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.imageio.ImageIO;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.awt.image.BufferedImage;
+import java.util.concurrent.TimeUnit;
+
 @RestController
 @RequestMapping("code")
 @Api(tags = "验证码服务")
@@ -20,6 +31,10 @@ public class SmsCodeController extends BaseController {
 
     @Autowired
     private SmsCodeService smsCodeService;
+    @Autowired
+    private Producer captchaProducer;
+    @Autowired
+    private RedisTemplate<String,String> redisTemplate;
 
     @ApiOperation(value = "发送登录短信验证码")
     @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String")
@@ -42,4 +57,55 @@ public class SmsCodeController extends BaseController {
         }
         return failed();
     }
+
+    @PostMapping(value = "/verifyLoginImage")
+    @ApiOperation("校验登录图形验证码")
+    @ApiImplicitParams({ @ApiImplicitParam(name = "phone", value = "手机号", required = true, dataType = "String"),
+            @ApiImplicitParam(name = "code", value = "验证码", required = true, dataType = "String") })
+    public Object verifyImageCode(String phone,String code){
+        if(StringUtils.isEmpty(phone) || StringUtils.isEmpty(code)){
+            return failed(SecurityConstants.PARAM_VERIFY_EXCEPTION);
+        }
+        String redisKey = Constants.KAPTCHA_SESSION_KEY + phone;
+        if(redisTemplate.hasKey(redisKey)){
+            if(StringUtils.equalsIgnoreCase(redisTemplate.opsForValue().get(redisKey),code)){
+                return succeed();
+            }
+        }
+        return failed(SecurityConstants.VERIFY_FAILURE);
+    }
+
+    @GetMapping(value = "/getLoginImage")
+    @ApiOperation("获取登录图片验证码")
+    @ApiImplicitParam(name = "phone", value = "手机号", required = true, dataType = "String")
+    public void getKaptchaImage(HttpServletResponse response, String phone) throws Exception {
+        if(StringUtils.isEmpty(phone)){
+            return;
+        }
+        response.setDateHeader("Expires", 0);
+
+        // Set standard HTTP/1.1 no-cache headers.
+        response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate");
+        // Set IE extended HTTP/1.1 no-cache headers (use addHeader).
+        response.addHeader("Cache-Control", "post-check=0, pre-check=0");
+        // Set standard HTTP/1.0 no-cache header.
+        response.setHeader("Pragma", "no-cache");
+        // return a jpeg
+        response.setContentType("image/jpeg");
+        // create the text for the image
+        String capText = captchaProducer.createText();
+
+        redisTemplate.opsForValue().set(Constants.KAPTCHA_SESSION_KEY + phone,capText,3, TimeUnit.MINUTES);
+        // create the image with the text
+        BufferedImage bi = captchaProducer.createImage(capText);
+        KaptchaServlet kaptchaServlet = new KaptchaServlet();
+        kaptchaServlet.init();
+        ServletOutputStream out = response.getOutputStream();
+        try {
+            ImageIO.write(bi, "jpg", out);
+            out.flush();
+        } finally {
+            out.close();
+        }
+    }
 }

+ 2 - 3
mec-web/src/main/java/com/ym/mec/web/controller/SporadicChargeInfoController.java

@@ -2,7 +2,6 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
@@ -79,13 +78,13 @@ public class SporadicChargeInfoController extends BaseController {
 			if(user == null){
 				return failed("学员信息不存在");
 			}
-			if(user.getUserType() != SysUserType.STUDENT){
+			if(!user.getUserType().contains("STUDENT")){
 				return failed("该用户不是学员");
 			}
 			if(user.getOrganId() == null){
 				return failed("分部信息异常");
 			}
-			sporadicChargeInfo.setOrganId(Integer.parseInt(user.getOrganId()));
+			sporadicChargeInfo.setOrganId(user.getOrganId());
 		}
 		if(sporadicChargeInfo.getChargeType().equals("6")){
 			SporadicChargeInfo info = sporadicChargeInfoService.findByOrganIdAndType(sporadicChargeInfo.getOrganId(), Integer.parseInt(sporadicChargeInfo.getChargeType()));

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

@@ -119,7 +119,7 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "获取分部教师")
     @GetMapping("/findTeacherByOrganId")
     @PreAuthorize("@pcs.hasPermissions('teacher/findTeacherByOrganId')")
-    public HttpResponseResult findTeacherByOrganId(String organId) {
+    public HttpResponseResult findTeacherByOrganId(String organId,String subjectIds) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if (sysUser == null) {
             return failed("用户信息获取失败");
@@ -137,7 +137,7 @@ public class TeacherController extends BaseController {
                 }
             }
         }
-        return succeed(teacherService.findTeacherByOrganId(organId));
+        return succeed(teacherService.findTeacherByOrganId(organId,subjectIds));
     }
 
     @ApiOperation(value = "获取乐团所有老师")

+ 11 - 14
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupDefaultClassesUnitPriceController.java

@@ -1,11 +1,12 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
+import com.ym.mec.biz.service.VipGroupDefaultClassesUnitPriceService;
+import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
-import java.util.Date;
-import java.util.Objects;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -13,11 +14,7 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 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.entity.VipGroupDefaultClassesUnitPrice;
-import com.ym.mec.biz.service.VipGroupDefaultClassesUnitPriceService;
-import com.ym.mec.common.controller.BaseController;
+import java.util.Date;
 
 @Api(tags = "vip课默认单价")
 @RequestMapping("vipGroupDefaultClassesUnitPrice")
@@ -54,11 +51,11 @@ public class VipGroupDefaultClassesUnitPriceController extends BaseController {
 		Date date = new Date();
 		vipGroupDefaultClassesUnitPrice.setCreateTime(date);
 		vipGroupDefaultClassesUnitPrice.setUpdateTime(date);
-		if(Objects.isNull(vipGroupDefaultClassesUnitPrice.getOrganId())){
-			if(sysUser.getOrganId() != null){
-				vipGroupDefaultClassesUnitPrice.setOrganId(Integer.parseInt(sysUser.getOrganId()));
-			}
-		}
+//		if(Objects.isNull(vipGroupDefaultClassesUnitPrice.getOrganId())){
+//			if(sysUser.getOrganId() != null){
+//				vipGroupDefaultClassesUnitPrice.setOrganId(sysUser.getOrganId());
+//			}
+//		}
 		vipGroupDefaultClassesUnitPriceService.insert(vipGroupDefaultClassesUnitPrice);
 		return succeed();
 	}

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

@@ -70,11 +70,7 @@ public class VipGroupManageController extends BaseController {
         if(Objects.isNull(teacher)){
             return failed("请指定指导老师!");
         }
-        if(StringUtils.isEmpty(sysUser.getOrganId()) || sysUser.getOrganId().contains(",")){
-            vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
-        }else {
-            vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(Integer.parseInt(sysUser.getOrganId()));
-        }
+        vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
         vipGroupService.createVipGroup(vipGroupApplyDto);
         return succeed();
     }

+ 0 - 3
mec-web/src/main/java/com/ym/mec/web/controller/education/EducationCourseScheduleController.java

@@ -6,7 +6,6 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
@@ -36,8 +35,6 @@ public class EducationCourseScheduleController extends BaseController {
     @Autowired
     private SysUserFeignService sysUserFeignService;
     @Autowired
-    private SysConfigService sysConfigService;
-    @Autowired
     private EmployeeDao employeeDao;
 
     @ApiOperation(value = "根据月份获取乐团在该月有课的日期")

+ 70 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/ImController.java

@@ -0,0 +1,70 @@
+package com.ym.mec.web.controller.education;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@Api(tags = "即时通讯相关服务")
+@RequestMapping("im")
+@RestController
+public class ImController extends BaseController {
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private ClassGroupService classGroupService;
+    @Autowired
+    private TeacherService teacherService;
+
+    @ApiOperation(value = "获取教务所有聊天群组")
+    @GetMapping("/queryEmployeeGroups")
+    @PreAuthorize("@pcs.hasPermissions('im/queryEmployeeGroups')")
+    public Object queryEmployeeGroups(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        return succeed(teacherService.queryTeacherGroups(sysUser.getId(),search));
+    }
+
+    @ApiOperation(value = "获取当前教务通讯录列表")
+    @GetMapping("/queryGroupStudents")
+    @PreAuthorize("@pcs.hasPermissions('im/queryGroupStudents')")
+    public Object queryGroupStudents(String search){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("获取用户信息失败");
+        }
+        return succeed(teacherService.queryGroupStudents(sysUser.getId(),search));
+    }
+
+    @ApiOperation(value = "根据群编号,获取群组基本信息")
+    @GetMapping("/findGroupById")
+    @PreAuthorize("@pcs.hasPermissions('im/findGroupById')")
+    public Object findGroupById(Integer groupId){
+        if(null == groupId){
+            return failed("参数校验错误");
+        }
+        return succeed(classGroupService.findGroupById(groupId));
+    }
+
+    @ApiOperation(value = "根据群编号,获取群组所有成员基本信息")
+    @GetMapping("/findGroupUsers")
+    @PreAuthorize("@pcs.hasPermissions('im/findGroupUsers')")
+    public Object findGroupUsers(Integer groupId) {
+        if (groupId == null) {
+            return failed("参数校验错误");
+        }
+        return succeed(classGroupService.findGroupUsers(groupId));
+    }
+
+}