Преглед изворни кода

Merge remote-tracking branch 'origin/master'

Joburgess пре 5 година
родитељ
комит
aaca1ac321
45 измењених фајлова са 680 додато и 390 уклоњено
  1. 1 1
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/AuthServerApplication.java
  2. 7 0
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/dal/dao/SysUserDao.java
  3. 19 30
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  4. 3 0
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  5. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  6. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java
  7. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java
  8. 8 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  9. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupSubjectGoodsAndInfoDto.java
  10. 55 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAddDto.java
  11. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java
  12. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java
  13. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroupStudentFee.java
  14. 10 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  15. 41 46
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultMusicGroupSalary.java
  16. 1 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/DealStatusEnum.java
  17. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EmployeeQueryInfo.java
  18. 0 6
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  19. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java
  20. 10 6
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  21. 7 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  22. 37 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  23. 0 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/EmployeeServiceImpl.java
  24. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  25. 41 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  26. 120 71
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  27. 0 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java
  28. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  29. 101 93
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  30. 25 17
      mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml
  31. 11 2
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  32. 3 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml
  33. 9 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml
  34. 13 2
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  35. 0 21
      mec-client-api/src/main/java/com/ym/mec/web/TeacherFeignService.java
  36. 0 12
      mec-client-api/src/main/java/com/ym/mec/web/fallback/TeacherFeignServiceFallback.java
  37. 27 5
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  38. 4 0
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java
  39. 2 11
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SmsCodeController.java
  40. 1 1
      mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java
  41. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  42. 15 0
      mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java
  43. 11 0
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java
  44. 3 2
      mec-web/src/main/java/com/ym/mec/web/controller/StudentRegistrationController.java
  45. 3 0
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherDefaultMusicGroupSalaryController.java

+ 1 - 1
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/AuthServerApplication.java

@@ -16,7 +16,7 @@ import com.spring4all.swagger.EnableSwagger2Doc;
 
 @SpringBootApplication
 @EnableDiscoveryClient
-@EnableFeignClients("com.ym.mec.im")
+@EnableFeignClients({"com.ym.mec.im"})
 @MapperScan("com.ym.mec.auth.dal.dao")
 @ComponentScan(basePackages="com.ym.mec")
 @Configuration

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

@@ -52,4 +52,11 @@ public interface SysUserDao extends BaseDAO<Integer, SysUser> {
 	 * @return
 	 */
     String getOrganName(Integer organId);
+
+	/**
+	 * 获取随机盐不为null的一条数据
+	 * @param userType
+	 * @return
+	 */
+	SysUser findUserBySalt(String userType);
 }

+ 19 - 30
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;
@@ -14,7 +13,6 @@ import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
-import com.ym.mec.web.TeacherFeignService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -34,9 +32,6 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	private SysUserRoleService sysUserRoleService;
 
 	@Autowired
-	private TeacherFeignService teacherFeignService;
-
-	@Autowired
 	private SysRoleMenuService sysRoleMenuService;
 
 	@Autowired
@@ -145,15 +140,25 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Override
 	public SysUserInfo initUser(String phone, String clientId) {
 		if(autoRegister){
-			if(StringUtils.equalsIgnoreCase(clientId,"teacher")){
-				//注册用户
-				SysUser sysUser = registerUser(phone,SysUserType.TEACHER);
-				return queryUserInfoByPhone(phone);
-			}else if(StringUtils.equalsIgnoreCase(clientId,"student")){
-				SysUser sysUser = registerUser(phone,SysUserType.STUDENT);
-				//注册现金账户
-				teacherFeignService.saveUserCashAccount(sysUser.getId());
-				return queryUserInfoByPhone(phone);
+			Date date = new Date();
+			if(StringUtils.equalsIgnoreCase(clientId,"TEACHER")){
+				SysUser sysUser = sysUserDao.findUserBySalt("TEACHER");
+				if(sysUser != null){
+					sysUser.setPhone(phone);
+					sysUser.setPassword(null);
+					sysUser.setUpdateTime(date);
+					sysUserDao.update(sysUser);
+					return queryUserInfoByPhone(phone);
+				}
+			}else if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
+				SysUser sysUser = sysUserDao.findUserBySalt("STUDENT");
+				if(sysUser != null){
+					sysUser.setPhone(phone);
+					sysUser.setPassword(null);
+					sysUser.setUpdateTime(date);
+					sysUserDao.update(sysUser);
+					return queryUserInfoByPhone(phone);
+				}
 			}
 			throw new UsernameNotFoundException("404.9");
 		}else {
@@ -161,20 +166,4 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		}
 	}
 
-	private SysUser registerUser(String phone, SysUserType sysUserType){
-		SysUser sysUser = new SysUser();
-		sysUser.setPhone(phone);
-		sysUser.setUsername(phone);
-		sysUser.setOrganId(1);
-		sysUser.setGender(1);
-		sysUser.setIsSuperAdmin(false);
-		//注册用户
-		sysUser.setUserType(sysUserType);
-		sysUserDao.insert(sysUser);
-		ImResult register = imFeignService.register(new ImUserModel(sysUser.getId().toString(), phone, null));
-		sysUser.setImToken(register.getToken());
-		sysUserDao.update(sysUser);
-		return sysUser;
-	}
-
 }

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

@@ -186,4 +186,7 @@
     <select id="getOrganName" resultType="java.lang.String">
         SELECT name_ FROM organization WHERE id_ = #{organId}
     </select>
+    <select id="findUserBySalt" resultMap="SysUser">
+        SELECT * FROM sys_user WHERE salt_ IS NOT NULL AND user_type_ = #{userType} LIMIT 1
+    </select>
 </mapper>

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

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupSubjectPlanDao.java

@@ -55,4 +55,12 @@ public interface MusicGroupSubjectPlanDao extends BaseDAO<Integer, MusicGroupSub
      * @return
      */
     int batchUpdateFee(@Param("plans") List<MusicGroupSubjectPlan> musicGroupSubjectPlans);
+
+    /**
+     * 根据科目编号和乐团编号获取乐团规划
+     * @param musicGroupId
+     * @param subjectId
+     * @return
+     */
+    MusicGroupSubjectPlan findSubjectPlan(@Param("musicGroupId") String musicGroupId,@Param("subjectId") Integer subjectId);
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDetailDao.java

@@ -29,8 +29,18 @@ public interface StudentPaymentOrderDetailDao extends BaseDAO<Long, StudentPayme
 
     /**
      * 查询订单商品
+     *
      * @param orderId
      * @return
      */
     List<StudentPaymentOrderDetail> findApplyOrderGoods(@Param("orderId") Long orderId);
+
+    /**
+     * 查询用户报名订单
+     *
+     * @param userId
+     * @param status
+     * @return
+     */
+    List<StudentPaymentOrderDetail> findUserApplyOrder(@Param("userId") Integer userId, @Param("status") DealStatusEnum status);
 }

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

@@ -34,7 +34,7 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     int queryStudentDetailCount(Map<String, Object> params);
 
     /**
-     * 根据乐团编号和声部获取缴费学员人数
+     * 根据乐团编号获取缴费学员人数
      *
      * @param musicGroupId
      * @return
@@ -257,4 +257,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
     int deleteClassGroup(@Param("classGroupId") Integer classGroupId);
 
     int findMusicGroupStudentNum(@Param("musicGroupId") String musicGroupId);
+
+    /**
+     * 更新用户信息
+     *
+     * @return
+     */
+    int updateUser(@Param("id") Integer id,@Param("realName") String realName, @Param("idCardNo") String idCardNo);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupSubjectGoodsAndInfoDto.java

@@ -21,6 +21,9 @@ public class MusicGroupSubjectGoodsAndInfoDto {
     //乐团计划及收费信息
     private MusicGroupSubjectPlan musicGroupSubjectPlan;
 
+    //学生定制商品
+    private List<Goods> studentGoods;
+
     //其他商品(教材、琴谱)
     private List<Goods> otherGoods;
 
@@ -55,4 +58,12 @@ public class MusicGroupSubjectGoodsAndInfoDto {
     public void setOtherGoods(List<Goods> otherGoods) {
         this.otherGoods = otherGoods;
     }
+
+    public List<Goods> getStudentGoods() {
+        return studentGoods;
+    }
+
+    public void setStudentGoods(List<Goods> studentGoods) {
+        this.studentGoods = studentGoods;
+    }
 }

+ 55 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentAddDto.java

@@ -0,0 +1,55 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+public class StudentAddDto{
+
+    @ApiModelProperty(value = "临时课程费用", required = false)
+    private BigDecimal temporaryCourseFee;
+
+    @ApiModelProperty(value = "课程费用", required = false)
+    private BigDecimal courseFee;
+
+    @ApiModelProperty(value = "订单详情", required = false)
+    private List<StudentPaymentOrderDetail> studentPaymentOrderDetails;
+
+    @ApiModelProperty(value = "基本信息", required = false)
+    private StudentRegistration studentRegistration;
+
+    public BigDecimal getTemporaryCourseFee() {
+        return temporaryCourseFee;
+    }
+
+    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
+        this.temporaryCourseFee = temporaryCourseFee;
+    }
+
+    public BigDecimal getCourseFee() {
+        return courseFee;
+    }
+
+    public void setCourseFee(BigDecimal courseFee) {
+        this.courseFee = courseFee;
+    }
+
+    public List<StudentPaymentOrderDetail> getStudentPaymentOrderDetails() {
+        return studentPaymentOrderDetails;
+    }
+
+    public void setStudentPaymentOrderDetails(List<StudentPaymentOrderDetail> studentPaymentOrderDetails) {
+        this.studentPaymentOrderDetails = studentPaymentOrderDetails;
+    }
+
+    public StudentRegistration getStudentRegistration() {
+        return studentRegistration;
+    }
+
+    public void setStudentRegistration(StudentRegistration studentRegistration) {
+        this.studentRegistration = studentRegistration;
+    }
+}

+ 0 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SubFeeSettingDto.java

@@ -3,7 +3,6 @@ package com.ym.mec.biz.dal.dto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
-
 import java.util.List;
 
 public class SubFeeSettingDto {

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/MusicGroup.java

@@ -6,6 +6,8 @@ import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.util.Date;
+
 /**
  * 对应数据库表(music_group):
  */
@@ -131,6 +133,28 @@ public class MusicGroup {
 	@ApiModelProperty(value = "备注",required = true)
 	private String memo;
 
+	@ApiModelProperty(value = "预计开团日期",required = true)
+	private Date expectStartGroupDate;
+
+	@ApiModelProperty(value = "成团人数",required = true)
+	private Integer groupMemberNum;
+
+	public Date getExpectStartGroupDate() {
+		return expectStartGroupDate;
+	}
+
+	public void setExpectStartGroupDate(Date expectStartGroupDate) {
+		this.expectStartGroupDate = expectStartGroupDate;
+	}
+
+	public Integer getGroupMemberNum() {
+		return groupMemberNum;
+	}
+
+	public void setGroupMemberNum(Integer groupMemberNum) {
+		this.groupMemberNum = groupMemberNum;
+	}
+
 	public String getCooperationOrganName() {
 		return cooperationOrganName;
 	}

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

@@ -73,13 +73,14 @@ public class MusicGroupStudentFee {
 	/**  */
 	private java.util.Date updateTime;
 
-	public MusicGroupStudentFee(String musicGroupId, Integer userId, Integer subjectId, BigDecimal courseFee, Date nextPaymentDate, Integer continuousAbsenteeismTimes, BigDecimal temporaryCourseFee) {
+	public MusicGroupStudentFee(String musicGroupId, Integer userId, Integer subjectId,
+								BigDecimal courseFee, Date nextPaymentDate, BigDecimal temporaryCourseFee) {
 		this.musicGroupId = musicGroupId;
 		this.userId = userId;
 		this.subjectId = subjectId;
 		this.courseFee = courseFee;
 		this.nextPaymentDate = nextPaymentDate;
-		this.continuousAbsenteeismTimes = continuousAbsenteeismTimes;
+		this.continuousAbsenteeismTimes = 0;
 		this.temporaryCourseFee = temporaryCourseFee;
 		this.paymentStatus = PaymentStatus.PAID_COMPLETED;
 	}

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

@@ -91,9 +91,10 @@ public class StudentRegistration {
     @ApiModelProperty(value = "班级名称", required = true)
     private String classGroupName;
 
-    @ApiModelProperty(value = "时课程费用", required = true)
+    @ApiModelProperty(value = "时课程费用", required = true)
     private BigDecimal temporaryCourseFee;
 
+
     public ClassGroupStudentStatusEnum getMusicGroupStatus() {
         return musicGroupStatus;
     }
@@ -111,14 +112,6 @@ public class StudentRegistration {
         this.musicGroupStatus = musicGroupStatus;
     }
 
-    public BigDecimal getTemporaryCourseFee() {
-        return temporaryCourseFee;
-    }
-
-    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
-        this.temporaryCourseFee = temporaryCourseFee;
-    }
-
     public Integer getActualSubjectId() {
         return actualSubjectId;
     }
@@ -308,4 +301,12 @@ public class StudentRegistration {
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);
 	}
+
+    public BigDecimal getTemporaryCourseFee() {
+        return temporaryCourseFee;
+    }
+
+    public void setTemporaryCourseFee(BigDecimal temporaryCourseFee) {
+        this.temporaryCourseFee = temporaryCourseFee;
+    }
 }

+ 41 - 46
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultMusicGroupSalary.java

@@ -3,6 +3,7 @@ package com.ym.mec.biz.dal.entity;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
+import java.util.Date;
 
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -50,29 +51,21 @@ public class TeacherDefaultMusicGroupSalary {
 	/**  */
 	private java.util.Date updateTime;
 
-	public YesOrNoEnum getDelFlag() {
-		return delFlag;
+	public Long getId() {
+		return id;
 	}
 
-	public void setDelFlag(YesOrNoEnum delFlag) {
-		this.delFlag = delFlag;
-	}
-
-	public void setId(Long id){
+	public void setId(Long id) {
 		this.id = id;
 	}
-	
-	public Long getId(){
-		return this.id;
+
+	public Integer getUserId() {
+		return userId;
 	}
-			
-	public void setUserId(Integer userId){
+
+	public void setUserId(Integer userId) {
 		this.userId = userId;
 	}
-	
-	public Integer getUserId(){
-		return this.userId;
-	}
 
 	public CourseScheduleType getCourseScheduleType() {
 		return courseScheduleType;
@@ -82,12 +75,28 @@ public class TeacherDefaultMusicGroupSalary {
 		this.courseScheduleType = courseScheduleType;
 	}
 
+	public BigDecimal getMainTeacher90MinSalary() {
+		return mainTeacher90MinSalary;
+	}
+
+	public void setMainTeacher90MinSalary(BigDecimal mainTeacher90MinSalary) {
+		this.mainTeacher90MinSalary = mainTeacher90MinSalary;
+	}
+
+	public BigDecimal getAssistantTeacher90MinSalary() {
+		return assistantTeacher90MinSalary;
+	}
+
+	public void setAssistantTeacher90MinSalary(BigDecimal assistantTeacher90MinSalary) {
+		this.assistantTeacher90MinSalary = assistantTeacher90MinSalary;
+	}
+
 	public BigDecimal getMainTeacher30MinSalary() {
-		return assistantTeacher30MinSalary;
+		return mainTeacher30MinSalary;
 	}
 
-	public void setMainTeacher30MinSalary(BigDecimal assistantTeacher30MinSalary) {
-		this.assistantTeacher30MinSalary = assistantTeacher30MinSalary;
+	public void setMainTeacher30MinSalary(BigDecimal mainTeacher30MinSalary) {
+		this.mainTeacher30MinSalary = mainTeacher30MinSalary;
 	}
 
 	public BigDecimal getAssistantTeacher30MinSalary() {
@@ -98,41 +107,27 @@ public class TeacherDefaultMusicGroupSalary {
 		this.assistantTeacher30MinSalary = assistantTeacher30MinSalary;
 	}
 
-	public void setCreateTime(java.util.Date createTime){
-		this.createTime = createTime;
-	}
-	
-	public java.util.Date getCreateTime(){
-		return this.createTime;
-	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
-		this.updateTime = updateTime;
-	}
-	
-	public java.util.Date getUpdateTime(){
-		return this.updateTime;
-	}
-	
-	public BigDecimal getMainTeacher90MinSalary() {
-		return mainTeacher90MinSalary;
+	public YesOrNoEnum getDelFlag() {
+		return delFlag;
 	}
 
-	public void setMainTeacher90MinSalary(BigDecimal mainTeacher90MinSalary) {
-		this.mainTeacher90MinSalary = mainTeacher90MinSalary;
+	public void setDelFlag(YesOrNoEnum delFlag) {
+		this.delFlag = delFlag;
 	}
 
-	public BigDecimal getAssistantTeacher90MinSalary() {
-		return assistantTeacher90MinSalary;
+	public Date getCreateTime() {
+		return createTime;
 	}
 
-	public void setAssistantTeacher90MinSalary(BigDecimal assistantTeacher90MinSalary) {
-		this.assistantTeacher90MinSalary = assistantTeacher90MinSalary;
+	public void setCreateTime(Date createTime) {
+		this.createTime = createTime;
 	}
 
-	@Override
-	public String toString() {
-		return ToStringBuilder.reflectionToString(this);
+	public Date getUpdateTime() {
+		return updateTime;
 	}
 
+	public void setUpdateTime(Date updateTime) {
+		this.updateTime = updateTime;
+	}
 }

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

@@ -6,6 +6,7 @@ import com.ym.mec.common.enums.BaseEnum;
  * '交易状态(1,交易中;2,成功交易;3,交易失败,4交易关闭;)',
  */
 public enum DealStatusEnum implements BaseEnum<String, DealStatusEnum> {
+	WAIT_PAY("WAIT_PAY", "等待支付"),
 	ING("ING", "交易中"),
 	SUCCESS("SUCCESS", "成功交易"),
 	FAILED("FAILED", "交易失败"),

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

@@ -10,7 +10,7 @@ import io.swagger.annotations.ApiModelProperty;
 public class EmployeeQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "部门ID",required = true)
-    private Long organId;
+    private String organId;
 
     @ApiModelProperty(value = "角色ID",required = false)
     private Long roleId;
@@ -18,11 +18,11 @@ public class EmployeeQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "用户名或电话",required = false)
     private Long userNameOrPhone;
 
-    public Long getOrganId() {
+    public String getOrganId() {
         return organId;
     }
 
-    public void setOrganId(Long organId) {
+    public void setOrganId(String organId) {
         this.organId = organId;
     }
 

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

@@ -282,12 +282,6 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      */
     boolean batchIncreaseClassTimes(List<Integer> classGroupList);
 
-    /**
-     * 获取提高班班级
-     * @param musicGroupId
-     * @return
-     */
-    List<ClassGroup> highClassGroupList(String musicGroupId);
 
 
     List<ClassGroupTeachersDto> classGroupAndTeacher(Integer classGroupId);

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java

@@ -2,7 +2,9 @@ package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.MusicGroupRegRespDto;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -54,4 +56,22 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @return
      */
     int batchUpdateFee(List<MusicGroupSubjectPlan> musicGroupSubjectPlans);
+
+
+    /**
+     * 根据科目编号和乐团编号获取乐团规划
+     * @param musicGroupId
+     * @param subjectId
+     * @return
+     */
+    MusicGroupSubjectPlan findSubjectPlan(String musicGroupId, Integer subjectId);
+
+    /**
+     * 中途添加的学生的缴费信息
+     *
+     * @param musicGroupId
+     * @param subjectId
+     * @return
+     */
+    MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, StudentRegistration studentRegistration);
 }

+ 10 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java

@@ -6,10 +6,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDto;
-import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -127,10 +124,10 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 
 	/**
 	 * 乐团插入新学员
-	 * @param studentRegistration
+	 * @param studentAddDto
 	 * @return
 	 */
-    Integer insertStudent(StudentRegistration studentRegistration) throws Exception;
+    Integer insertStudent(StudentAddDto studentAddDto) throws Exception;
 
 	/**
 	 * 获取班级学生
@@ -216,4 +213,11 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
 	 * @return
 	 */
 	List<Map<Integer,String>> findParentId(String parentPhones);
+
+	/**
+	 * 更新用户注册信息
+	 * @param studentRegistration
+	 * @return
+	 */
+	StudentRegistration updateStudent(StudentRegistration studentRegistration);
 }

+ 7 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -278,6 +278,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //1、插入班级信息
             Date date;
             date = new Date();
+            highClassGroup.setId(null);
             highClassGroup.setCreateTime(date);
             highClassGroup.setUpdateTime(date);
             highClassGroup.setType(ClassGroupTypeEnum.HIGH);
@@ -1569,17 +1570,6 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroup> highClassGroupList(String musicGroupId) {
-        List<ClassGroup> classGroupList = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroupId, ClassGroupTypeEnum.HIGH);
-        for (ClassGroup classGroup : classGroupList) {
-            List<String> subjects = subjectService.findBySubIds(classGroup.getSubjectIdList());
-            String subjectName = StringUtils.join(subjects, ",");
-            classGroup.setSubjectName(subjectName);
-        }
-        return classGroupList;
-    }
-
-    @Override
     public List<ClassGroupTeachersDto> classGroupAndTeacher(Integer classGroupId) {
         List<ClassGroupTeachersDto> classGroups = classGroupDao.findClassGroupByMixClassGroupId(classGroupId);
         String classGroupIds = "";
@@ -1604,11 +1594,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     public List<HighClassGroupDto> findClassGroupByMusicGroupIdAndSubjectId(String musicGroupId, Integer subjectId) {
         List<HighClassGroupDto> highClassGroupList = classGroupDao.findClassGroupByMusicGroupIdAndSubjectId(musicGroupId, subjectId);
         for (HighClassGroupDto highClassGroup : highClassGroupList) {
+            List<String> subjects = subjectService.findBySubIds(highClassGroup.getSubjectIdList());
+            highClassGroup.setSubjectName(subjects.stream().collect(Collectors.joining(",")));
+
             ClassGroupTeacherMapper bishopTeacher = classGroupTeacherMapperDao.findByClassGroupAndRole(highClassGroup.getId().longValue(), TeachTypeEnum.BISHOP);
             highClassGroup.setTeacherName(bishopTeacher.getUserName());
+            highClassGroup.setUserId(bishopTeacher.getUserId());
             CourseSchedule courseSchedule = courseScheduleDao.findOneCourseScheduleByClassGroupId(highClassGroup.getId());
-            highClassGroup.setStartClassTime(DateUtil.format(courseSchedule.getStartClassTime(), "HH:mm:ss"));
-            highClassGroup.setEndClassTime(DateUtil.format(courseSchedule.getEndClassTime(), "HH:mm:ss"));
+            highClassGroup.setStartClassTime(DateUtil.format(courseSchedule.getStartClassTime(), "HH:mm"));
+            highClassGroup.setEndClassTime(DateUtil.format(courseSchedule.getEndClassTime(), "HH:mm"));
 
             Calendar calendar = Calendar.getInstance();
             calendar.setTime(courseSchedule.getClassDate());

+ 37 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -1,11 +1,41 @@
 package com.ym.mec.biz.service.impl;
 
-import com.ym.mec.biz.dal.dao.*;
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+
+import com.ym.mec.biz.dal.dao.ClassGroupTeacherMapperDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
+import com.ym.mec.biz.dal.dao.TeacherDefaultMusicGroupSalaryDao;
 import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.ClassGroup;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
+import com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.ClassGroupService;
+import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
+import com.ym.mec.biz.service.CourseScheduleService;
+import com.ym.mec.biz.service.CourseScheduleTeacherSalaryService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
@@ -14,17 +44,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.poi.ss.formula.functions.T;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.CollectionUtils;
-
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collector;
-import java.util.stream.Collectors;
 
 @Service
 public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, ClassGroupTeacherMapper> implements ClassGroupTeacherMapperService {
@@ -135,7 +154,10 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
                 Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherDefaultMusicGroupSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
 
-                TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=collect.get(classGroupNoStartCourseSchedule.getType());
+				TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(classGroupNoStartCourseSchedule.getType());
+				if (teacherDefaultMusicGroupSalary == null) {
+					throw new BizException("请先设置老师课酬");
+				}
 
                 //对应基准课酬
                 BigDecimal baseSalary = new BigDecimal(0),classTimeDuty=new BigDecimal(0);

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

@@ -125,8 +125,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 		if(user == null){
 			throw new Exception("获取用户信息失败");
 		}
-
-		queryInfo.setOrganId(user.getOrganId().longValue());
 		PageInfo<EmployeeDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
 		Map<String, Object> params = new HashMap<>();
 		MapUtil.populateMap(params, queryInfo);
@@ -137,7 +135,6 @@ public class EmployeeServiceImpl extends BaseServiceImpl<Integer, Employee>  imp
 			pageInfo.setTotal(count);
 			params.put("offset", pageInfo.getOffset());
 			dataList = employeeDao.queryEmployByOrganId(params);
-
 		}
 		if (count == 0) {
 			dataList = new ArrayList<>();

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

@@ -259,6 +259,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //记录操作日志
         musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId,"确认开团(筹备中 -> 进行中)",sysUser.getId(),""));
         musicGroup.setStatus(MusicGroupStatusEnum.PROGRESS);
+        //获取所有已缴费学员人数
+        List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryStudentByMusicGroupId(musicGroupId);
+        musicGroup.setGroupMemberNum(studentRegistrations == null?0:studentRegistrations.size());
         musicGroupDao.update(musicGroup);
         //3.0发送该消息
         /*if(new Integer(3).equals(musicGroup.getChargeTypeId())){
@@ -885,10 +888,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new Exception("用户信息获取失败");
         }
         String musicGroupId = subFeeSettingDto.getMusicGroup().getId();
-        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
-        if(musicGroup == null){
+        if(musicGroupDao.get(musicGroupId) == null){
             throw new Exception("乐团信息不存在");
         }
+        MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
 
         Date date = new Date();
         List<Integer> months = subFeeSettingDto.getMonths();

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java

@@ -1,12 +1,15 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSON;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
 import com.ym.mec.biz.dal.dto.MusicGroupRegRespDto;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GoodsType;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.util.collection.MapUtil;
+import org.snaker.engine.core.OrderService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -18,6 +21,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, MusicGroupSubjectPlan> implements MusicGroupSubjectPlanService {
@@ -39,6 +43,8 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
 
     @Autowired
     private SubjectService subjectService;
+    @Autowired
+    private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
 
     @Override
     public BaseDAO<Integer, MusicGroupSubjectPlan> getDAO() {
@@ -125,4 +131,39 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
     public int batchUpdateFee(List<MusicGroupSubjectPlan> musicGroupSubjectPlans) {
         return musicGroupSubjectPlanDao.batchUpdateFee(musicGroupSubjectPlans);
     }
+
+    @Override
+    public MusicGroupSubjectGoodsAndInfoDto getStudentGoodsAndInfo(String musicGroupId, Integer subjectId, StudentRegistration studentRegistration) {
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+
+        //课程形态
+        Map<String, Object> courseForm = JSON.parseObject(musicGroup.getCourseForm(), Map.class);
+
+        //乐团计划及收费信息
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = this.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+        musicOneSubjectClassPlan.setFee(studentRegistration.getTemporaryCourseFee());
+
+        List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailDao.findUserApplyOrder(studentRegistration.getUserId(), DealStatusEnum.WAIT_PAY);
+
+        String goodsIds = orderDetails.stream().filter(orderDetail -> orderDetail.getGoodsIdList() != null).map(orderDetail -> orderDetail.getGoodsIdList()).collect(Collectors.joining(","));
+
+        List<Goods> goodies = goodsService.findGoodsByIds(goodsIds);
+
+
+        //获取声部(科目)下其他商品
+        List<Goods> otherGoods = goodsService.findTypeGoods("OTHER");
+
+        MusicGroupSubjectGoodsAndInfoDto musicGroupSubjectGoodsAndInfo = new MusicGroupSubjectGoodsAndInfoDto();
+        musicGroupSubjectGoodsAndInfo.setMusicGroupSubjectPlan(musicOneSubjectClassPlan);
+        musicGroupSubjectGoodsAndInfo.setCourseScheduleInfo(courseForm);
+        musicGroupSubjectGoodsAndInfo.setStudentGoods(goodies);
+        musicGroupSubjectGoodsAndInfo.setOtherGoods(otherGoods);
+        return musicGroupSubjectGoodsAndInfo;
+    }
+
+
+    @Override
+    public MusicGroupSubjectPlan findSubjectPlan(String musicGroupId, Integer subjectId) {
+        return musicGroupSubjectPlanDao.findSubjectPlan(musicGroupId,subjectId);
+    }
 }

+ 120 - 71
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -5,6 +5,7 @@ import com.ym.mec.auth.api.entity.SysUserRole;
 import com.ym.mec.auth.api.enums.SysUserType;
 import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.StudentAddDto;
 import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
 import com.ym.mec.biz.dal.dto.StudentInfo;
@@ -15,6 +16,7 @@ import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
+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.im.ImFeignService;
@@ -51,7 +53,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
     @Autowired
-    private SysMessageConfigDao sysMessageConfigDao;
+    private ClassGroupRelationDao classGroupRelationDao;
     @Autowired
     private SysMessageService sysMessageService;
     @Autowired
@@ -109,20 +111,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     public Integer batchUpdateSubject(Integer userId, Integer subId, String musicGroupId) throws Exception {
         //获取当前学员的当前声部
         StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
-        if(studentRegistration == null){
+        if (studentRegistration == null) {
             throw new Exception("学员信息不存在");
         }
         //当前专业报名人数减一
-        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId,studentRegistration.getActualSubjectId(),-1);
+        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getActualSubjectId(), -1);
         //批量调剂(未缴费学员)
         int i = studentRegistrationDao.batchUpdateSubject(userId, subId, musicGroupId);
         //修改专业已报名人数
-        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId,subId,1);
+        musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, subId, 1);
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
         Set<Integer> roleIds = new HashSet<>(2);
         roleIds.add(SysUserRole.SECTION_MANAGER);
         roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE,"",musicGroup.getName());
+        sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds), MessageTypeEnum.BACKSTAGE_STUDENT_SUBJECT_CHANGE, "", musicGroup.getName());
         return studentRegistrationDao.batchUpdateSubject(userId, subId, musicGroupId);
     }
 
@@ -187,10 +189,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             userId = sysUser.getId();
             //添加用户现金账户
             sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
-			// 添加用户电子签章账户
-			//contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
+            // 添加用户电子签章账户
+            //contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
             //注册到融云
-            if(StringUtils.isEmpty(sysUser.getAvatar())){
+            if (StringUtils.isEmpty(sysUser.getAvatar())) {
                 sysUser.setAvatar(sysConfigDao.findConfigValue(SysConfigService.USER_DEFAULT_HEAD_URL));
             }
             ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
@@ -203,19 +205,19 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistration.setUserId(sysUser.getId());
         studentRegistrationDao.insert(studentRegistration);
         //增加报名学生数
-        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
+        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(), 1);
         //报名成功后,发送短信
         String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId();
         String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);
         Subject subject = subjectDao.get(studentRegistration.getActualSubjectId());
         MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
 
-        Map<Integer,String> map = new HashMap<>(1);
-        map.put(studentRegistration.getUserId(),studentRegistration.getParentsPhone());
+        Map<Integer, String> map = new HashMap<>(1);
+        map.put(studentRegistration.getUserId(), studentRegistration.getParentsPhone());
         sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
-                MessageTypeEnum.SMS_APPLY_MESSAGE,map,null,0,"",
-                studentRegistration.getParentsName(),subject.getName(), HttpUtil.getSortUrl(studentApplyUrl),
-                DateUtil.format(musicGroup.getApplyExpireDate(),DateUtil.DATE_FORMAT_MIN),serverPhone);
+                MessageTypeEnum.SMS_APPLY_MESSAGE, map, null, 0, "",
+                studentRegistration.getParentsName(), subject.getName(), HttpUtil.getSortUrl(studentApplyUrl),
+                DateUtil.format(musicGroup.getApplyExpireDate(), DateUtil.DATE_FORMAT_MIN), serverPhone);
         return studentRegistration;
     }
 
@@ -273,14 +275,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
                 studentPaymentOrderDetail4goods.setUpdateTime(date);
                 studentPaymentOrderDetail4goods.setPaymentOrderId(studentPaymentOrder.getId());
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goods);
-
             }
         }
         //单独教谱
@@ -303,8 +305,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
         musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
-        if(musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()){
-            throw new Exception("乐团人数已满");
+        if (studentRegistration.getTemporaryCourseFee() == null && musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
+            throw new BizException("乐团人数已满");
         }
         musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
         return studentPaymentOrder;
@@ -362,7 +364,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
@@ -403,8 +406,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public Integer insertStudent(StudentRegistration studentRegistration) throws Exception {
-        StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
+    public Integer insertStudent(StudentAddDto studentAddDto) throws Exception {
+        StudentRegistration studentRegistration = studentAddDto.getStudentRegistration();
+        if (studentRegistration == null) {
+            throw new Exception("参数校验失败");
+        }
+        String musicGroupId = studentRegistration.getMusicGroupId();
+        StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(musicGroupId, studentRegistration.getParentsPhone());
         if (phoneAndMusicGroupId != null) {
             throw new Exception("该学员已存在");
         } else {
@@ -425,7 +433,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 //添加用户电子签章账户
                 contractService.register(userId, sysUser.getRealName(), sysUser.getIdCardNo(), sysUser.getPhone());
                 //注册到融云
-                if(StringUtils.isEmpty(sysUser.getAvatar())){
+                if (StringUtils.isEmpty(sysUser.getAvatar())) {
                     sysUser.setAvatar(sysConfigDao.findConfigValue(SysConfigService.USER_DEFAULT_HEAD_URL));
                 }
                 ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
@@ -436,20 +444,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
             studentRegistration.setActualSubjectId(studentRegistration.getSubjectId());
             studentRegistration.setUserId(userId);
-            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+            studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
             studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
             //学生报名表
             studentRegistrationDao.insertBasic(studentRegistration);
-            MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
+            MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
             Set<Integer> roleIds = new HashSet<>(1);
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
-            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds),MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT,"",musicGroup.getName(),studentRegistration.getName());
+            sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
-//            musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId(),1);
-            if (studentRegistration.getClassGroupId() != null) {
-                ClassGroup classGroup = classGroupDao.get(studentRegistration.getClassGroupId());
+            musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
+            Integer classGroupId = studentRegistration.getClassGroupId();
+            if (classGroupId != null) {
+                ClassGroup classGroup = classGroupDao.get(classGroupId);
                 if (classGroup != null) {
-                    if (!classGroup.getMusicGroupId().equals(studentRegistration.getMusicGroupId())) {
+                    if (!classGroup.getMusicGroupId().equals(musicGroupId)) {
                         throw new Exception("班级录入错误");
                     } else {
                         //修改实际学生人数
@@ -460,13 +470,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 } else {
                     throw new Exception("班级不存在");
                 }
-                //新增班级学生关系
-                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(studentRegistration.getClassGroupId(), userId));
-                MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
+                //新增班级学生关系(单技班)
+                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupId, userId));
+                //新增班级学生关系(合奏班)
+                ClassGroupRelation classGroupRelation = classGroupRelationDao.findClassGroupRelation(classGroupId);
+                classGroupStudentMapperDao.insert(new ClassGroupStudentMapper(classGroupRelation.getClassGroupId(), userId));
+
                 //获取当前月
                 Integer month = Integer.parseInt(DateUtil.getMonth(new Date()));
                 //获取下次缴费月份
-                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
+                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
                 List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
                 for (int i = 0; i < months.size(); i++) {
                     if (months.get(i).equals(month)) {
@@ -477,9 +490,27 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 calendar.add(Calendar.MONTH, month);
                 DateUtil.getFirstDayOfMonth(calendar.getTime());
                 //保存乐团学生费用表
-                musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(studentRegistration.getMusicGroupId(),
-                        userId, studentRegistration.getSubjectId(), musicOneSubjectClassPlan.getFee(),
-                        DateUtil.getFirstDayOfMonth(calendar.getTime()), 0, studentRegistration.getTemporaryCourseFee()));
+                if (studentAddDto.getCourseFee() == null) {
+                    MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
+                    studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
+                }
+                musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
+                        userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
+                        DateUtil.getFirstDayOfMonth(calendar.getTime()), null));
+                //生成订单
+                StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
+                studentPaymentOrder.setUserId(userId);
+                studentPaymentOrder.setType(OrderTypeEnum.APPLY);
+                studentPaymentOrder.setStatus(DealStatusEnum.ING);
+                studentPaymentOrder.setMusicGroupId(musicGroupId);
+                studentPaymentOrder.setClassGroupId(classGroupId);
+                studentPaymentOrderService.insert(studentPaymentOrder);
+                //生成订单明细
+                List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
+                studentPaymentOrderDetails.forEach(e -> {
+                    e.setPaymentOrderId(studentPaymentOrder.getId());
+                });
+                studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
             }
             return userId;
         }
@@ -513,35 +544,39 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
-            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
-            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-            studentRegistrationDao.update(studentRegistration);
 
-            //获取当前月
-            Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
-            //获取下次缴费月份
-            List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
-            List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
-            for (int i = 0; i < months.size(); i++) {
-                if (months.get(i).equals(month)) {
-                    month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+            if (studentRegistration.getTemporaryCourseFee() == null) {
+                //获取当前月
+                Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
+                //获取下次缴费月份
+                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
+                List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
+                for (int i = 0; i < months.size(); i++) {
+                    if (months.get(i).equals(month)) {
+                        month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+                    }
                 }
+                Calendar calendar = Calendar.getInstance();
+                calendar.add(Calendar.MONTH, month);
+
+                //加入缴费周期
+                MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
+                musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
+                musicGroupStudentFee.setUserId(studentRegistration.getUserId());
+                musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
+                musicGroupStudentFee.setCreateTime(nowDate);
+                musicGroupStudentFee.setUpdateTime(nowDate);
+                musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
+                musicGroupStudentFee.setLatestPaidTime(nowDate);
+                musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
+                musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+                musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+                studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
             }
-            Calendar calendar = Calendar.getInstance();
-            calendar.add(Calendar.MONTH, month);
-
-            //加入缴费周期
-            MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
-            musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
-            musicGroupStudentFee.setUserId(studentRegistration.getUserId());
-            musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
-            musicGroupStudentFee.setCreateTime(nowDate);
-            musicGroupStudentFee.setUpdateTime(nowDate);
-            musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
-            musicGroupStudentFee.setLatestPaidTime(nowDate);
-            musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
-            musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-            musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+
+            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistrationDao.update(studentRegistration);
 
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(studentRegistration.getUserId());
@@ -575,15 +610,15 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             sysUserCashAccountDetailService.insert(paymentDetail);
 
             //发送缴费成功通知(短信 + push)
-            Map<Integer,String> map = new HashMap<>(1);
-            map.put(studentPaymentOrder.getUserId(),studentRegistration.getParentsPhone());
+            Map<Integer, String> map = new HashMap<>(1);
+            map.put(studentPaymentOrder.getUserId(), studentRegistration.getParentsPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
-                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS,map,null,0,"1",
-                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS, map, null, 0, "1",
+                    studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
             //push
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
-                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS,map,null,0,"1",
-                    studentRegistration.getParentsName(),studentPaymentOrder.getActualAmount());
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_SUCCESS, map, null, 0, "1",
+                    studentRegistration.getParentsName(), studentPaymentOrder.getActualAmount());
         }
 
         //失败减去已收款金额
@@ -595,10 +630,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             //发送缴费成功通知(短信 + push)
             String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL + studentRegistration.getMusicGroupId());
 
-            Map<Integer,String> map = new HashMap<>(1);
-            map.put(studentPaymentOrder.getUserId(),studentRegistration.getParentsPhone());
+            Map<Integer, String> map = new HashMap<>(1);
+            map.put(studentPaymentOrder.getUserId(), studentRegistration.getParentsPhone());
             sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.YIMEI,
-                    MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED,map,null,0,"1",
+                    MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED, map, null, 0, "1",
                     studentApplyUrl);
 //            sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG,
 //                    MessageTypeEnum.STUDENT_SMS_PAYMENT_FAILED,map,null,0,"1",
@@ -672,4 +707,18 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     public List<Map<Integer, String>> findParentId(String parentPhones) {
         return studentRegistrationDao.findParentId(parentPhones);
     }
+
+    @Override
+    @Transactional
+    public StudentRegistration updateStudent(StudentRegistration studentRegistration) {
+        StudentRegistration student = get(studentRegistration.getId());
+        if (student == null) {
+            throw new BizException("用户注册信息不存在,无法更新");
+        }
+        student.setParentsName(studentRegistration.getParentsName());
+        student.setIdCardNo(studentRegistration.getIdCardNo());
+        update(student);
+        studentRegistrationDao.updateUser(student.getUserId(), student.getParentsName(), student.getIdCardNo());
+        return student;
+    }
 }

+ 0 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultMusicGroupSalaryServiceImpl.java

@@ -35,19 +35,6 @@ public class TeacherDefaultMusicGroupSalaryServiceImpl extends BaseServiceImpl<L
 			teacherDefaultMusicGroupSalaryDao.delByTeacherId(salary.getUserId());
 			//批量新增
 			teacherDefaultMusicGroupSalaryDao.batchAdd(salaries);
-			/*Date date = new Date();
-			teacherDefaultMusicGroupSalaries.forEach(e->{
-				if(e.getId() == null){
-					teacherDefaultMusicGroupSalaryDao.insert(e);
-				}else{
-					if(e.getDelFlag() == YesOrNoEnum.YES){
-						teacherDefaultMusicGroupSalaryDao.delete(e.getId());
-					}else {
-						e.setUpdateTime(date);
-						teacherDefaultMusicGroupSalaryDao.update(e);
-					}
-				}
-			});*/
 		}
 	}
 }

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

@@ -8,6 +8,9 @@ import com.ym.mec.auth.api.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
+import com.ym.mec.biz.dal.enums.JobTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -49,6 +52,10 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	@Autowired
 	private SysUserCashAccountDao sysUserCashAccountDao;
 	@Autowired
+	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+	@Autowired
+	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
+	@Autowired
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private ImFeignService imFeignService;

+ 101 - 93
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -142,7 +142,9 @@
 
     <!-- 查询当前表的总记录数 -->
     <select id="queryCount" resultType="int">
-        SELECT COUNT(*) FROM class_group where del_flag_ = 0
+        SELECT COUNT(*)
+        FROM class_group
+        where del_flag_ = 0
     </select>
 
     <!-- 查询根据主教助教查询班级信息 -->
@@ -207,7 +209,7 @@
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
-		LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
+        LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
         WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
         <include refid="global.limit"/>
     </select>
@@ -281,7 +283,7 @@
         FROM student_payment_order spo
         LEFT JOIN class_group cg ON cg.id_ = spo.class_group_id_
         <where>
-                cg.del_flag_ = 0
+            cg.del_flag_ = 0
             <if test="search != null and search != ''">
                 AND cg.name_ LIKE CONCAT('%',#{search},'%')
             </if>
@@ -307,7 +309,7 @@
         FROM student_payment_order spo
         LEFT JOIN class_group cg ON cg.id_ = spo.class_group_id_
         <where>
-                spo.status_ = 'SUCCESS' AND cg.del_flag_ = 0
+            spo.status_ = 'SUCCESS' AND cg.del_flag_ = 0
             <if test="search != null and search != ''">
                 AND cg.name_ LIKE CONCAT('%',#{search},'%')
             </if>
@@ -362,22 +364,22 @@
     </select>
     <select id="findByVipGroup" resultMap="ClassGroup">
         SELECT
-            cg.*
+        cg.*
         FROM
-            vip_group_class_group_mapper vcgm
-            LEFT JOIN class_group cg ON vcgm.class_group_id_ = cg.id_
-            WHERE vcgm.vip_group_id_=#{vipGroupId}
-            <if test="delFlag!=null">
-                AND cg.del_flag_ = #{delFlag}
-            </if>
+        vip_group_class_group_mapper vcgm
+        LEFT JOIN class_group cg ON vcgm.class_group_id_ = cg.id_
+        WHERE vcgm.vip_group_id_=#{vipGroupId}
+        <if test="delFlag!=null">
+            AND cg.del_flag_ = #{delFlag}
+        </if>
     </select>
 
     <select id="lockClassGroup" resultMap="ClassGroup">
         SELECT
-            cg.*
+        cg.*
         FROM
-            class_group cg
-            WHERE cg.id_=#{classGroupId} FOR UPDATE
+        class_group cg
+        WHERE cg.id_=#{classGroupId} FOR UPDATE
     </select>
     <select id="countTeacherVipNum" resultType="java.util.Map">
         SELECT vg.user_id_ `key`,COUNT(vg.id_) `value` FROM vip_group vg
@@ -407,79 +409,79 @@
 
     <select id="findTeacherMusicClassGroup" resultMap="TeacherClassGroupDto">
         SELECT
-            cg.id_ class_group_id_,
-            cg.name_ class_group_name_,
-            cg.student_num_,
-            cg.current_class_times_,
-            cg.total_class_times_,
-            cg.subject_id_list_,
-            cg.type_,
-            COUNT(cg.id_) surplus_class_times_,
-            mg.id_ music_group_id_,
-            mg.name_ music_group_name_,
-            s.id_ school_id_,
-            s.name_ school_name_
+        cg.id_ class_group_id_,
+        cg.name_ class_group_name_,
+        cg.student_num_,
+        cg.current_class_times_,
+        cg.total_class_times_,
+        cg.subject_id_list_,
+        cg.type_,
+        COUNT(cg.id_) surplus_class_times_,
+        mg.id_ music_group_id_,
+        mg.name_ music_group_name_,
+        s.id_ school_id_,
+        s.name_ school_name_
         FROM
-            course_schedule_teacher_salary csts
-            LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
-            LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
-            LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
-            LEFT JOIN school s ON mg.school_id_ = s.id_
+        course_schedule_teacher_salary csts
+        LEFT JOIN course_schedule cs ON cs.id_ = csts.course_schedule_id_
+        LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
+        LEFT JOIN school s ON mg.school_id_ = s.id_
         WHERE
-            csts.user_id_ = #{teacherId}
-            AND cs.status_ != 'OVER'
-            AND cs.type_ != 'VIP'
-            AND cs.type_ != 'DEMO'
-            AND csts.expect_salary_!=0
-            AND cg.del_flag_ = 0
+        csts.user_id_ = #{teacherId}
+        AND cs.status_ != 'OVER'
+        AND cs.type_ != 'VIP'
+        AND cs.type_ != 'DEMO'
+        AND csts.expect_salary_!=0
+        AND cg.del_flag_ = 0
         GROUP BY cg.id_
     </select>
     <select id="findTeacherVipClassGroup" resultMap="TeacherClassGroupDto">
         SELECT
-            cg.id_ class_group_id_,
-            cg.name_ class_group_name_,
-            cg.type_,
-            cg.subject_id_list_,
-            vg.payment_expire_date_,
-            vg.courses_expire_date_,
-            vg.single_class_minutes_,
-            vg.courses_start_date,
-            IF(vg.online_classes_num_ IS NULL,0,vg.online_classes_num_) online_classes_num_,
-            IF(vg.offline_classes_num_ IS NULL,0,vg.offline_classes_num_) offline_classes_num_,
-            cg.total_class_times_,
-            COUNT(vg.id_) surplus_class_times_,
-            vg.id_ music_group_id_,
-	        vg.name_ music_group_name_,
-            s.id_ school_id_,
-            s.name_ school_name_
+        cg.id_ class_group_id_,
+        cg.name_ class_group_name_,
+        cg.type_,
+        cg.subject_id_list_,
+        vg.payment_expire_date_,
+        vg.courses_expire_date_,
+        vg.single_class_minutes_,
+        vg.courses_start_date,
+        IF(vg.online_classes_num_ IS NULL,0,vg.online_classes_num_) online_classes_num_,
+        IF(vg.offline_classes_num_ IS NULL,0,vg.offline_classes_num_) offline_classes_num_,
+        cg.total_class_times_,
+        COUNT(vg.id_) surplus_class_times_,
+        vg.id_ music_group_id_,
+        vg.name_ music_group_name_,
+        s.id_ school_id_,
+        s.name_ school_name_
         FROM
-            vip_group vg
-            LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
-            LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
-            LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
-            LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
-            LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
+        vip_group vg
+        LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
+        LEFT JOIN class_group cg ON vgcgm.class_group_id_=cg.id_
+        LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
+        LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
+        LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
-            vg.user_id_ = #{teacherId}
-            AND cg.del_flag_ = 0
+        vg.user_id_ = #{teacherId}
+        AND cg.del_flag_ = 0
         GROUP BY
-            vg.id_,cg.id_
+        vg.id_,cg.id_
     </select>
     <select id="countGroupCourses" resultType="java.lang.Integer">
         SELECT COUNT(DISTINCT mg.id_)
         FROM class_group_teacher_mapper cgtm
         LEFT JOIN music_group mg ON cgtm.music_group_id_ = mg.id_
         LEFT JOIN class_group cg ON cg.id_ = cgtm.class_group_id_
-		LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
+        LEFT JOIN teacher t ON t.id_ = cgtm.user_id_
         WHERE cgtm.user_id_ = #{search} AND cg.del_flag_ = 0 AND (cg.type_ = 'NORMAL' OR cg.type_ = 'MIX')
     </select>
     <select id="findStudentOrganIdsByClassGroup" resultType="int">
         SELECT
-            DISTINCT su.organ_id_
+        DISTINCT su.organ_id_
         FROM
-            class_group_student_mapper cgsm
-            LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
-            WHERE cgsm.class_group_id_=#{classGroupId}
+        class_group_student_mapper cgsm
+        LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
+        WHERE cgsm.class_group_id_=#{classGroupId}
     </select>
 
     <select id="queryNamesByClassId" resultType="java.util.Map">
@@ -520,7 +522,8 @@
     <select id="countStudyNum" resultType="java.util.Map">
         SELECT cgsm.class_group_id_ 'key',COUNT(cgsm.user_id_) 'value' FROM class_group_student_mapper cgsm
         LEFT JOIN student_registration sr ON (sr.user_id_ = cgsm.user_id_ AND sr.music_group_id_ = cgsm.music_group_id_)
-        WHERE FIND_IN_SET(cgsm.class_group_id_,#{classGroupIds}) AND cgsm.status_='NORMAL' AND FIND_IN_SET(sr.music_group_status_,'NORMAL,LEAVE') GROUP BY cgsm.class_group_id_
+        WHERE FIND_IN_SET(cgsm.class_group_id_,#{classGroupIds}) AND cgsm.status_='NORMAL' AND
+        FIND_IN_SET(sr.music_group_status_,'NORMAL,LEAVE') GROUP BY cgsm.class_group_id_
     </select>
 
     <select id="countQuitNum" resultType="java.util.Map">
@@ -531,7 +534,7 @@
 
     <sql id="queryMusicGroupCourseScheduleSql">
         <where>
-                cg.del_flag_ = 0
+            cg.del_flag_ = 0
             <if test="classScheduleType != null">
                 AND cs.type_ = #{classScheduleType}
             </if>
@@ -615,7 +618,8 @@
         <result column="online_classes_num_" property="onlineClassesNum"/>
         <result column="offline_classes_num_" property="offLineClassesNum"/>
         <result column="teacher_school_id_" property="teacherSchoolId"/>
-        <result column="payment_status_" property="paymentStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="payment_status_" property="paymentStatus"
+                typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
     <select id="queryStudentVipCourses" resultMap="CourseListDto">
         SELECT cg.id_ class_group_id_,vg.name_ music_group_name_,su.username_,
@@ -635,7 +639,8 @@
         FROM music_group mg
         LEFT JOIN class_group cg ON cg.music_group_id_ = mg.id_
         LEFT JOIN music_group_student_fee_ mgsf ON mgsf.music_group_id_ = mg.id_
-        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.type_ != 'VIP' AND cg.del_flag_ = 0 AND mgsf.user_id_ = #{userId}
+        WHERE FIND_IN_SET(mg.id_,#{musicGroupIds}) AND cg.type_ != 'VIP' AND cg.del_flag_ = 0 AND mgsf.user_id_ =
+        #{userId}
         GROUP BY mg.id_,mgsf.payment_status_
     </select>
 
@@ -649,21 +654,21 @@
     <update id="batchIncreaseClassTimes" parameterType="java.util.List">
         UPDATE class_group SET current_class_times_ = current_class_times_+1,update_time_ = now() WHERE id_ in
         <foreach collection="list" item="item" index="index" open="(" close=")" separator=",">
-        #{item}
+            #{item}
         </foreach>
     </update>
     <update id="batchUpdateClassGroupCourseTimes" parameterType="map">
-      <foreach collection="classGroupCourseTimes.entrySet()" index="key" item="value" open="" close="" separator=";">
-          UPDATE class_group SET total_class_times_=#{value} WHERE id_=#{key}
-      </foreach>
+        <foreach collection="classGroupCourseTimes.entrySet()" index="key" item="value" open="" close="" separator=";">
+            UPDATE class_group SET total_class_times_=#{value} WHERE id_=#{key}
+        </foreach>
     </update>
 
     <select id="findClassGroupByMusicGroupIdAndType" resultMap="ClassGroup">
-        SELECT * FROM class_group  WHERE music_group_id_=#{musicGroupId}
+        SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId}
         <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>
-         AND del_flag_='0'
+        AND del_flag_='0'
     </select>
 
     <!-- 根据合奏班id获取子班及老师 -->
@@ -674,22 +679,22 @@
     </select>
     <select id="findClassGroupNamesByClassGroups" resultType="string">
         SELECT
-            name_
+        name_
         FROM
-            class_group
+        class_group
         WHERE
-            id_ IN
-            <foreach collection="classGroups" open="(" close=")" item="classGroupId" separator=",">
-                #{classGroupId}
-            </foreach>
+        id_ IN
+        <foreach collection="classGroups" open="(" close=")" item="classGroupId" separator=",">
+            #{classGroupId}
+        </foreach>
         AND del_flag_ = 0
     </select>
     <select id="findByCourseSchedules" resultMap="ClassGroup">
         SELECT
-            cg.*
+        cg.*
         FROM
-            course_schedule cs
-            LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cs.id_ IN
         <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
             #{courseScheduleId}
@@ -698,17 +703,17 @@
     </select>
     <select id="findByCourseSchedule" resultMap="ClassGroup">
         SELECT
-            cg.*
+        cg.*
         FROM
-            course_schedule cs
-            LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
+        course_schedule cs
+        LEFT JOIN class_group cg ON cs.class_group_id_=cg.id_
         WHERE cs.id_=#{courseScheduleId} AND cg.del_flag_ = 0
     </select>
     <select id="findClassGroupsByMixClassGroup" resultMap="ClassGroup">
         SELECT
-            cg.*
+        cg.*
         FROM
-            class_group_relation cgr
+        class_group_relation cgr
         LEFT JOIN class_group cg ON cgr.sub_class_group_id_=cg.id_
         WHERE cgr.class_group_id_=#{maxCourseScheduleId} AND cg.del_flag_ = 0
     </select>
@@ -731,7 +736,10 @@
         <result column="current_class_times_" property="currentClassTimes"/>
     </resultMap>
     <select id="findClassGroupByMusicGroupIdAndSubjectId" resultMap="HighClassGroup">
-        SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId} AND FIND_IN_SET(#{subjectId},subject_id_list_)
+        SELECT * FROM class_group WHERE music_group_id_=#{musicGroupId}
+        <if test="subjectId != null">
+            AND FIND_IN_SET(#{subjectId},subject_id_list_)
+        </if>
         AND type_='HIGH' AND del_flag_='0';
     </select>
 

+ 25 - 17
mec-biz/src/main/resources/config/mybatis/EmployeeMapper.xml

@@ -178,30 +178,38 @@
         </collection>
     </resultMap>
     <select id="queryEmployByOrganId" resultMap="EmployeeDto">
-        SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
-        e.entry_date_,e.demission_date_,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
-        FROM (SELECT * FROM employee WHERE FIND_IN_SET(#{organId},organ_id_list_) <include refid="global.limit"/>) e
-        LEFT JOIN sys_user su ON su.id_ = e.user_id_
-        LEFT JOIN sys_user_role sur ON sur.user_id_ = e.user_id_
+        SELECT ue.*,o.name_ organ_name_list_,o.id_ organ_id_list_,sr.role_name_,sr.id_ role_id_
+        FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
+        e.entry_date_,e.demission_date_,e.organ_id_list_ organ_id_,e.create_time_
+        FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
+        <where>
+            <if test="organId != null">
+                FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+        </where> <include refid="global.limit"/>) ue
+        LEFT JOIN sys_user_role sur ON sur.user_id_ = ue.user_id_
         LEFT JOIN sys_role sr ON sr.id_ = sur.role_id_
-        LEFT JOIN organization o ON FIND_IN_SET(o.id_,e.organ_id_list_)
-        WHERE su.user_type_ LIKE '%SYSTEM%'
+        LEFT JOIN organization o ON FIND_IN_SET(o.id_,ue.organ_id_)
+        WHERE ue.user_type_ LIKE '%SYSTEM%'
         <if test="search != null">
-            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
+            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
-        ORDER BY e.create_time_ DESC
+        ORDER BY ue.create_time_ DESC
     </select>
 
     <select id="queryEmployByOrganIdCount" resultType="int">
-        SELECT COUNT(e.user_id_)
-        FROM employee e
-        LEFT JOIN sys_user su ON su.id_ = e.user_id_
-        WHERE su.user_type_ LIKE '%SYSTEM%'
+        SELECT COUNT(ue.user_id_)
+        FROM (SELECT e.user_id_,su.real_name_,su.gender_,su.phone_,su.user_type_,e.job_nature_,su.lock_flag_,
+        e.entry_date_,e.demission_date_,e.organ_id_list_,e.create_time_
+        FROM employee e LEFT JOIN sys_user su ON e.user_id_ = su.id_
+        <where>
+            <if test="organId != null">
+                FIND_IN_SET(su.organ_id_,#{organId})
+            </if>
+        </where>) ue
+        WHERE ue.user_type_ LIKE '%SYSTEM%'
         <if test="search != null">
-            AND (su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.phone_ LIKE CONCAT('%',#{search},'%'))
-        </if>
-        <if test="organId != null">
-            AND FIND_IN_SET(#{organId},e.organ_id_list_)
+            AND (ue.real_name_ LIKE CONCAT('%',#{search},'%') OR ue.phone_ LIKE CONCAT('%',#{search},'%'))
         </if>
     </select>
 </mapper>

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

@@ -27,6 +27,8 @@
 		<result column="img_" property="img" />
 		<result column="director_user_id_" property="directorUserId" />
 		<result column="settlement_type_" property="settlementType" />
+		<result column="expect_start_group_date_" property="expectStartGroupDate" />
+		<result column="group_member_num_" property="groupMemberNum" />
 		<result column="memo_" property="memo" />
 	</resultMap>
 
@@ -51,11 +53,12 @@
 		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
 		INSERT INTO music_group
 		(id_,name_,organ_id_,school_id_,apply_expire_date_,team_teacher_id_,educational_teacher_id_,charge_type_id_,course_form_,create_time_,update_time_,status_,
-		bill_start_date_,improvent_classes_num_,enroll_classes_,payment_expire_date_,is_extra_class_,settlement_type_,cooperation_organ_id_,enlightenment_course_time_,parent_meeting_time_,img_,director_user_id_,is_classroom_lessons_,memo_)
+		bill_start_date_,improvent_classes_num_,enroll_classes_,payment_expire_date_,is_extra_class_,settlement_type_,cooperation_organ_id_,enlightenment_course_time_,
+		parent_meeting_time_,img_,director_user_id_,is_classroom_lessons_,memo_,expect_start_group_date_)
 		VALUES(#{id},#{name},#{organId},#{schoolId},#{applyExpireDate},#{teamTeacherId},#{educationalTeacherId},#{chargeTypeId},#{courseForm},now(),now(),
 		#{status, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{billStartDate},#{improventClassesNum},#{enrollClasses},#{paymentExpireDate},
 		#{isExtraClass, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{settlementType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
-		#{cooperationOrganId},#{enlightenmentCourseTime},#{parentMeetingTime},#{img},#{directorUserId},#{isClassroomLessons},#{memo})
+		#{cooperationOrganId},#{enlightenmentCourseTime},#{parentMeetingTime},#{img},#{directorUserId},#{isClassroomLessons},#{memo},#{expectStartGroupDate})
 	</insert>
 
 	<!-- 根据主键查询一条记录 -->
@@ -128,6 +131,12 @@
 			<if test="isClassroomLessons != null">
 				is_classroom_lessons_ = #{isClassroomLessons},
 			</if>
+			<if test="expectStartGroupDate != null">
+				expect_start_group_date_ = #{expectStartGroupDate},
+			</if>
+			<if test="groupMemberNum != null">
+				group_member_num_ = #{groupMemberNum},
+			</if>
 			<if test="memo != null">
 				memo_ = #{memo},
 			</if>

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupSubjectPlanMapper.xml

@@ -141,4 +141,7 @@
         LEFT JOIN subject sb ON sb.id_ = sp.subject_id_
         WHERE sp.music_group_id_=#{musicGroupId} AND sp.subject_id_=#{subjectId} FOR UPDATE
     </select>
+    <select id="findSubjectPlan" resultMap="MusicGroupSubjectPlan">
+        SELECT * FROM music_group_subject_plan WHERE music_group_id_ = #{musicGroupId} AND subject_id_ = #{subjectId} LIMIT 1
+    </select>
 </mapper>

+ 9 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderDetailMapper.xml

@@ -103,4 +103,13 @@
     <select id="findApplyOrderGoods" resultMap="StudentPaymentOrderDetail">
         SELECT * FROM student_payment_order_detail WHERE payment_order_id_ = #{orderId}
     </select>
+
+    <!-- 查询用户注册订单详情 -->
+    <select id="findUserApplyOrder" resultMap="StudentPaymentOrderDetail">
+        SELECT spod.* FROM student_payment_order spo
+        LEFT JOIN student_payment_order_detail spod ON spo.id_ = spod.payment_order_id_
+        WHERE spo.user_id_ = #{userId}
+        AND spo.status_=#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND spo.type_ = 'APPLY'
+    </select>
 </mapper>

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

@@ -10,6 +10,7 @@
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
         <result column="name_" property="name"/>
+        <result column="id_card_no_" property="idCardNo"/>
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="current_grade_" property="currentGrade"/>
         <result column="current_class_" property="currentClass"/>
@@ -30,6 +31,7 @@
                 typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="music_group_status_" property="musicGroupStatus"/>
         <result column="class_group_name_" property="classGroupName"/>
+        <result column="temporary_course_fee_" property="temporaryCourseFee" />
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
@@ -97,6 +99,7 @@
             <if test="paymentStatus!=null">payment_status_,</if>
             <if test="classGroupId!=null">class_group_id_,</if>
             <if test="musicGroupStatus!=null">music_group_status_,</if>
+            <if test="temporaryCourseFee != null">temporary_course_fee_,</if>
             <if test="createTime!=null">create_time_,</if>
             <if test="updateTime!=null">update_time_,</if>
         </trim>
@@ -125,12 +128,13 @@
             <if test="musicGroupStatus!=null">
                 #{musicGroupStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>
+            <if test="temporaryCourseFee != null">#{temporaryCourseFee},</if>
             <if test="createTime!=null">#{createTime},</if>
             <if test="updateTime!=null">NOW(),</if>
         </trim>
     </insert>
 
-    <!-- 根据主键查询一条记录 -->
+    <!-- 根据主键更新一条记录 -->
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
         UPDATE student_registration
         <set>
@@ -182,6 +186,9 @@
             <if test="actualSubjectId != null">
                 class_group_id_ = #{classGroupId},
             </if>
+            <if test="temporaryCourseFee != null">
+                temporary_course_fee_ =#{temporaryCourseFee},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>
@@ -326,7 +333,7 @@
     </select>
 
     <select id="queryByUserIdAndMusicGroupId" resultMap="StudentRegistration">
-        select * from student_registration where music_group_id_ = #{musicGroupId} and user_id_ = #{userId}
+        select sr.*,su.id_card_no_ from student_registration sr left join sys_user su on su.id_ =sr.user_id_ where sr.music_group_id_ = #{musicGroupId} and sr.user_id_ = #{userId}
     </select>
 
     <!-- 根据乐团编号和手机号查询注册乐团注册信息-->
@@ -499,4 +506,8 @@
     <select id="findMusicGroupStudentNum" resultType="integer">
         SELECT Count(*) FROM student_registration WHERE music_group_id_ = #{musicGroupId} AND payment_status_ = '2'
     </select>
+
+    <update id="updateUser">
+        UPDATE sys_user SET real_name_ = #{realName},id_card_no_=#{idCardNo} WHERE id_=#{id}
+    </update>
 </mapper>

+ 0 - 21
mec-client-api/src/main/java/com/ym/mec/web/TeacherFeignService.java

@@ -1,21 +0,0 @@
-package com.ym.mec.web;
-
-import com.ym.mec.common.config.FeignConfiguration;
-import com.ym.mec.common.entity.ImUserModel;
-import com.ym.mec.web.fallback.TeacherFeignServiceFallback;
-import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-
-@FeignClient(name = "teacher-server", configuration = FeignConfiguration.class, fallback = TeacherFeignServiceFallback.class)
-public interface TeacherFeignService {
-
-	/**
-	 * 用户注册
-	 * @param userId
-	 * @return
-	 */
-	@PostMapping(value = "code/saveUserCashAccount")
-	void saveUserCashAccount(Integer userId);
-}

+ 0 - 12
mec-client-api/src/main/java/com/ym/mec/web/fallback/TeacherFeignServiceFallback.java

@@ -1,12 +0,0 @@
-package com.ym.mec.web.fallback;
-
-import com.ym.mec.web.TeacherFeignService;
-import org.springframework.stereotype.Component;
-
-@Component
-public class TeacherFeignServiceFallback implements TeacherFeignService {
-    @Override
-    public void saveUserCashAccount(Integer userId) {
-
-    }
-}

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

@@ -97,6 +97,15 @@ public class MusicGroupController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
             @ApiImplicitParam(name = "subjectId", value = "声部编号", required = true, dataType = "Integer")})
     public HttpResponseResult getSubjectGoodsAndInfo(String musicGroupId, Integer subjectId) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser != null && sysUser.getId() > 0) {
+            Integer userId = sysUser.getId();
+            StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
+            if (studentRegistration != null && studentRegistration.getTemporaryCourseFee() != null) {
+                return succeed(musicGroupSubjectPlanService.getStudentGoodsAndInfo(musicGroupId, subjectId, studentRegistration));
+            }
+        }
+
         return succeed(musicGroupSubjectPlanService.getSubjectGoodsAndInfo(musicGroupId, subjectId));
     }
 
@@ -105,11 +114,17 @@ public class MusicGroupController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String"),
             @ApiImplicitParam(name = "userId", value = "用户id", required = true, dataType = "int")
     })
-    public HttpResponseResult getMusicGroupStatus(String musicGroupId,Integer userId) throws Exception {
+    public HttpResponseResult getMusicGroupStatus(String musicGroupId, Integer userId) throws Exception {
         MusicGroup musicGroup = musicGroupService.get(musicGroupId);
         if (musicGroup == null) {
             return failed("乐团不存在");
         }
+
+        if (userId == null) {
+            SysUser sysUser = sysUserFeignService.queryUserInfo();
+            userId = sysUser.getId();
+        }
+
         StudentRegistration studentRegistration = studentRegistrationService.queryByUserIdAndMusicGroupId(userId, musicGroupId);
         if (studentRegistration == null) {
             return failed(HttpStatus.CONTINUE, "乐团报名信息不存在");
@@ -117,7 +132,8 @@ public class MusicGroupController extends BaseController {
         if (studentRegistration.getPaymentStatus() != null && studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.YES)) {
             return failed("您已缴费,请等待乐团开启");
         }
-        if (!musicGroup.getStatus().equals(MusicGroupStatusEnum.PAY) && (studentRegistration.getPaymentStatus() == null || !studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN))) {
+
+        if (!studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.OPEN)) {
             return failed("乐团还未开启缴费,请等待通知");
         }
         return succeed(studentRegistration);
@@ -208,6 +224,9 @@ public class MusicGroupController extends BaseController {
         //获取课程价格
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
+        if(studentRegistration.getTemporaryCourseFee() != null){
+            courseFee = studentRegistration.getTemporaryCourseFee();
+        }
         orderAmount = orderAmount.add(courseFee);
 
 
@@ -296,6 +315,9 @@ public class MusicGroupController extends BaseController {
         //获取课程价格
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
+        if(studentRegistration.getTemporaryCourseFee() != null){
+            courseFee = studentRegistration.getTemporaryCourseFee();
+        }
         orderAmount = orderAmount.add(courseFee);
 
 
@@ -370,9 +392,9 @@ public class MusicGroupController extends BaseController {
         MusicGroup musicGroup = musicGroupService.get(orderByOrderNo.getMusicGroupId());
         List<Goods> goodsList = studentPaymentOrderDetailService.findApplyOrderGoods(orderByOrderNo.getId());
         HashMap<String, Object> orderDetail = new HashMap<>();
-        orderDetail.put("order",orderByOrderNo);
-        orderDetail.put("goods",goodsList);
-        orderDetail.put("course",musicGroup.getCourseForm());
+        orderDetail.put("order", orderByOrderNo);
+        orderDetail.put("goods", goodsList);
+        orderDetail.put("course", musicGroup.getCourseForm());
 
         return succeed(orderDetail);
     }

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

@@ -40,6 +40,10 @@ public class MusicGroupRegisterController extends BaseController {
         if (musicGroup == null) {
             return failed("乐团信息不存在");
         }
+        if(studentRegistration.getId() != null){
+            return  succeed(studentRegistrationService.updateStudent(studentRegistration));
+        }
+
         StudentRegistration hasReg = studentRegistrationService.getByPhoneAndMusicGroupId(studentRegistration.getMusicGroupId(), studentRegistration.getParentsPhone());
         if (hasReg != null) {
             return failed("该乐团您已报名");

+ 2 - 11
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SmsCodeController.java

@@ -3,9 +3,8 @@ package com.ym.mec.teacher.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.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.service.SmsCodeService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.biz.service.TeacherService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.security.SecurityConstants;
 import io.swagger.annotations.Api;
@@ -34,20 +33,12 @@ public class SmsCodeController extends BaseController {
     @Autowired
     private SmsCodeService smsCodeService;
     @Autowired
-    private SysUserCashAccountService sysUserCashAccountService;
+    private TeacherService teacherService;
     @Autowired
     private Producer captchaProducer;
     @Autowired
     private RedisTemplate<String,String> redisTemplate;
 
-    @PostMapping(value = "/saveUserCashAccount")
-    public Object saveUserCashAccount(Integer userId){
-        SysUserCashAccount account = new SysUserCashAccount();
-        account.setUserId(userId);
-        sysUserCashAccountService.insert(account);
-        return succeed();
-    }
-
     @ApiOperation(value = "发送登录短信验证码")
     @ApiImplicitParam(name = "mobile", value = "手机号", required = true, dataType = "String")
     @PostMapping(value = "/sendSms")

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java

@@ -25,7 +25,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 	@Override
 	public void configure(HttpSecurity http) throws Exception {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
-				.authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0").antMatchers("/v2/api-docs").permitAll().anyRequest().authenticated()
+				.authorizeRequests().antMatchers("/task/**").hasIpAddress("0.0.0.0/0").antMatchers("/v2/api-docs","/classGroup/highClassGroups").permitAll().anyRequest().authenticated()
 				.and().httpBasic();
 	}
 

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

@@ -219,7 +219,7 @@ public class ClassGroupController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('classGroup/highClassGroups')")
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
     public HttpResponseResult highClassGroups(String musicGroupId) throws Exception {
-        return succeed(classGroupService.highClassGroupList(musicGroupId));
+        return succeed(classGroupService.findClassGroupByMusicGroupIdAndSubjectId(musicGroupId,null));
     }
 
     @ApiOperation(value = "合奏子班列表(班级调整)")

+ 15 - 0
mec-web/src/main/java/com/ym/mec/web/controller/EmployeeController.java

@@ -1,5 +1,7 @@
 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.Employee;
 import com.ym.mec.biz.dal.enums.EmployeeOperateEnum;
 import com.ym.mec.biz.dal.page.EmployeeQueryInfo;
@@ -7,6 +9,7 @@ import com.ym.mec.biz.service.EmployeeService;
 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.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
@@ -24,11 +27,23 @@ public class EmployeeController extends BaseController {
 
     @Autowired
     private EmployeeService employeeService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
 
     @ApiOperation(value = "根据部门获取下面的员工")
     @GetMapping("/queryEmployByOrganId")
     @PreAuthorize("@pcs.hasPermissions('employee/queryEmployByOrganId')")
     public Object queryEmployByOrganId(EmployeeQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            if(StringUtils.isEmpty(queryInfo.getOrganId())){
+                Employee employee = employeeService.get(sysUser.getId());
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }
+        }
         return succeed(employeeService.queryEmployByOrganId(queryInfo));
     }
 

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupSubjectPlanController.java

@@ -5,6 +5,7 @@ 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.*;
@@ -50,4 +51,14 @@ public class MusicGroupSubjectPlanController extends BaseController {
         return succeed(musicGroupSubjectPlanService.batchUpdateFee(musicGroupSubjectPlans));
     }
 
+    @ApiOperation(value = "根据科目编号和乐团编号获取乐团规划")
+    @PostMapping("/findSubjectPlan")
+    @PreAuthorize("@pcs.hasPermissions('musicGroupSubjectPlan/findSubjectPlan')")
+    public Object findSubjectPlan(String musicGroupId,Integer subjectId) throws Exception {
+        if(StringUtils.isEmpty(musicGroupId) || subjectId == null){
+            throw new Exception("参数校验失败");
+        }
+        return succeed(musicGroupSubjectPlanService.findSubjectPlan(musicGroupId,subjectId));
+    }
+
 }

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

@@ -1,5 +1,6 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dto.StudentAddDto;
 import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -31,8 +32,8 @@ public class StudentRegistrationController extends BaseController {
     @ApiOperation(value = "乐团添加学员")
     @PostMapping("/insertStudent")
     @PreAuthorize("@pcs.hasPermissions('studentRegistration/insertStudent')")
-    public Object add(StudentRegistration studentRegistration) throws Exception {
-        return succeed(studentRegistrationService.insertStudent(studentRegistration));
+    public Object add(StudentAddDto studentAddDto) throws Exception {
+        return succeed(studentRegistrationService.insertStudent(studentAddDto));
     }
 
     @ApiOperation(value = "修改学生报名信息")

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

@@ -6,6 +6,7 @@ import io.swagger.annotations.ApiOperation;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -27,6 +28,7 @@ public class TeacherDefaultMusicGroupSalaryController extends BaseController {
 
     @ApiOperation(value = "批量新增、修改教师乐团课薪酬")
     @PostMapping("/batchUpset")
+    @PreAuthorize("@pcs.hasPermissions('teacherDefaultMusicGroupSalary/batchUpset')")
     public Object batchUpset(@RequestBody List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries) {
         teacherDefaultMusicGroupSalaryService.batchUpset(teacherDefaultMusicGroupSalaries);
         return succeed();
@@ -34,6 +36,7 @@ public class TeacherDefaultMusicGroupSalaryController extends BaseController {
 
     @ApiOperation(value = "分页查询教师薪酬")
     @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('teacherDefaultMusicGroupSalary/queryPage')")
     public Object queryPage(TeacherMusicGroupSalaryQueryInfo queryInfo) {
         return succeed(teacherDefaultMusicGroupSalaryService.queryPage(queryInfo));
     }