Browse Source

Merge branch 'grade_feature' into 20200324

周箭河 4 years ago
parent
commit
09d6e56f25
41 changed files with 706 additions and 207 deletions
  1. 10 0
      mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java
  2. 4 3
      mec-auth/mec-auth-server/src/main/resources/config/mybatis/SysUserMapper.xml
  3. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentDao.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupStudentsDto.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentApplyDetailDto.java
  6. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java
  7. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Organization.java
  8. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Student.java
  9. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentPreRegistration.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRegistration.java
  11. 37 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FivePlusGradeEnum.java
  12. 27 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GradeTypeEnum.java
  13. 37 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SixPlusGradeEnum.java
  14. 22 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java
  15. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRegistrationQueryInfo.java
  16. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java
  17. 14 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java
  18. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemPlanServiceImpl.java
  19. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionItemServiceImpl.java
  20. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/InspectionServiceImpl.java
  21. 20 15
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  22. 26 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java
  23. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentInstrumentServiceImpl.java
  24. 13 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java
  25. 33 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  26. 169 141
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java
  27. 6 2
      mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml
  28. 13 3
      mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml
  29. 16 0
      mec-biz/src/main/resources/config/mybatis/StudentMapper.xml
  30. 5 1
      mec-biz/src/main/resources/config/mybatis/StudentPreRegistrationMapper.xml
  31. 16 3
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  32. 6 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  33. 5 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  34. 1 0
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  35. 14 12
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  36. 1 1
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupRegisterController.java
  37. 15 3
      mec-student/src/main/java/com/ym/mec/student/controller/StudentManageController.java
  38. 19 0
      mec-task/src/main/java/com/ym/mec/task/jobs/UpdateGradeTask.java
  39. 14 4
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  40. 11 0
      mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java
  41. 6 0
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

+ 10 - 0
mec-auth/mec-auth-api/src/main/java/com/ym/mec/auth/api/entity/SysUser.java

@@ -107,6 +107,9 @@ public class SysUser implements Serializable{
 	@ApiModelProperty(value = "年级",required = false)
 	private String currentGrade;
 
+	@ApiModelProperty(value = "年级(数字表示)",required = false)
+	private Integer currentGradeNum;
+
 	@ApiModelProperty(value = "班级",required = false)
 	private String currentClass;
 
@@ -412,4 +415,11 @@ public class SysUser implements Serializable{
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public Integer getCurrentGradeNum() {
+		return currentGradeNum;
+	}
+
+	public void setCurrentGradeNum(Integer currentGradeNum) {
+		this.currentGradeNum = currentGradeNum;
+	}
 }

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

@@ -31,6 +31,7 @@
         <result column="wechat_id_" property="wechatId"/>
         <result column="is_super_admin_" property="isSuperAdmin"/>
         <result column="current_grade_" property="currentGrade"/>
+        <result column="current_grade_num_" property="currentGradeNum"/>
         <result column="current_class_" property="currentClass"/>
         <result column="certificate_type_" property="certificateType"/>
     </resultMap>
@@ -53,9 +54,9 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="SysUser">
-		SELECT su.*,sr.current_class_,sr.current_grade_
-        FROM sys_user su LEFT JOIN student_registration sr ON su.id_ = sr.user_id_
-        WHERE su.id_ = #{id} LIMIT 1
+		SELECT su.*,s.current_class_,s.current_grade_num_
+        FROM sys_user su LEFT JOIN student s ON su.id_ = s.user_id_
+        WHERE su.id_ = #{id}
 	</select>
 
     <!-- 全查询 -->

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

@@ -188,4 +188,10 @@ public interface StudentDao extends com.ym.mec.common.dal.BaseDAO<Integer, Stude
 
     List<Student> queryByIds(Map<String, Object> params);
     int countByIds(Map<String, Object> params);
+
+    /**
+     * 更新学生班级
+     * @return
+     */
+    int updateGrade();
 }

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

@@ -52,6 +52,9 @@ public class MusicGroupStudentsDto{
     @ApiModelProperty(value = "是否新增学员(1是0否)",required = false)
     private Integer isNewStudent;
 
+    @ApiModelProperty(value = "入团时间",required = false)
+    private Date registerTime;
+
     private Boolean isActive = false;
 
     private Boolean hasCourse;
@@ -303,4 +306,12 @@ public class MusicGroupStudentsDto{
     public void setCurrentGradeDate(Date currentGradeDate) {
         this.currentGradeDate = currentGradeDate;
     }
+
+    public Date getRegisterTime() {
+        return registerTime;
+    }
+
+    public void setRegisterTime(Date registerTime) {
+        this.registerTime = registerTime;
+    }
 }

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

@@ -65,6 +65,9 @@ public class StudentApplyDetailDto{
     @ApiModelProperty(value = "备注",required = false)
     private String remark;
 
+    @ApiModelProperty(value = "注册时间",required = false)
+    private Date createTime;
+
     @ApiModelProperty(value = "声部更换详情",required = false)
     private SubjectChange subjectChange;
 
@@ -203,4 +206,12 @@ public class StudentApplyDetailDto{
     public void setCurrentGradeDate(Date currentGradeDate) {
         this.currentGradeDate = currentGradeDate;
     }
+
+    public Date getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentManageListDto.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.common.enums.UserGenderEnum;
 import io.swagger.annotations.ApiModelProperty;
@@ -42,6 +43,9 @@ public class StudentManageListDto {
     @ApiModelProperty(value = "年级",required = false)
     private String currentGrade;
 
+    @ApiModelProperty(value = "年级(数字表示)",required = false)
+    private Integer currentGradeNum;
+
     @ApiModelProperty(value = "课程余额")
     private BigDecimal courseBalance;
 
@@ -91,6 +95,9 @@ public class StudentManageListDto {
     @ApiModelProperty(value = "加油包:0:默认不可用;1:可用;2:已使用;")
     private Integer comeOnPackage;
 
+    @ApiModelProperty(value = "0 - 6+3年制    1 - 5+4年制")
+    private GradeTypeEnum gradeType;
+
     public String getContractVersions() {
         return contractVersions;
     }
@@ -346,4 +353,20 @@ public class StudentManageListDto {
 	public void setIsSignedContract(boolean isSignedContract) {
 		this.isSignedContract = isSignedContract;
 	}
+
+    public Integer getCurrentGradeNum() {
+        return currentGradeNum;
+    }
+
+    public void setCurrentGradeNum(Integer currentGradeNum) {
+        this.currentGradeNum = currentGradeNum;
+    }
+
+    public GradeTypeEnum getGradeType() {
+        return gradeType;
+    }
+
+    public void setGradeType(GradeTypeEnum gradeType) {
+        this.gradeType = gradeType;
+    }
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Organization.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 
 import io.swagger.annotations.ApiModelProperty;
@@ -51,6 +52,9 @@ public class Organization {
 	@ApiModelProperty(value = "地址",required = false)
 	private String address;
 
+	@ApiModelProperty(value = "学年制",required = false)
+	private GradeTypeEnum gradeType;
+
 	@ApiModelProperty(value = "子节点列表",required = false)
 	private List<Organization> organizations;
 
@@ -155,4 +159,11 @@ public class Organization {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public GradeTypeEnum getGradeType() {
+		return gradeType;
+	}
+
+	public void setGradeType(GradeTypeEnum gradeType) {
+		this.gradeType = gradeType;
+	}
 }

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

@@ -48,6 +48,12 @@ public class Student extends SysUser {
 	@ApiModelProperty(value = "加油包:0:默认不可用;1:可用;2:已使用;")
 	private Integer comeOnPackage;
 
+	@ApiModelProperty(value = "年级 1-13")
+	private Integer currentGradeNum;
+
+	@ApiModelProperty(value = "班级")
+	private String currentClass;
+
 	public Student(Integer userId, String subjectIdList) {
 		this.userId = userId;
 		this.subjectIdList = subjectIdList;
@@ -169,4 +175,22 @@ public class Student extends SysUser {
 	public void setTeacherName(String teacherName) {
 		this.teacherName = teacherName;
 	}
+
+	public Integer getCurrentGradeNum() {
+		return currentGradeNum;
+	}
+
+	public void setCurrentGradeNum(Integer currentGradeNum) {
+		this.currentGradeNum = currentGradeNum;
+	}
+
+	@Override
+	public String getCurrentClass() {
+		return currentClass;
+	}
+
+	@Override
+	public void setCurrentClass(String currentClass) {
+		this.currentClass = currentClass;
+	}
 }

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

@@ -23,10 +23,13 @@ public class StudentPreRegistration {
 	
 	/** 性别 */
 	private boolean gender;
-	
+
 	/** 年级 */
 	private String currentGrade;
-	
+
+	/** 年级编号 */
+	private Integer currentGradeNum;
+
 	/** 班级 */
 	private String currentClass;
 	
@@ -154,4 +157,11 @@ public class StudentPreRegistration {
 		return ToStringBuilder.reflectionToString(this);
 	}
 
+	public Integer getCurrentGradeNum() {
+		return currentGradeNum;
+	}
+
+	public void setCurrentGradeNum(Integer currentGradeNum) {
+		this.currentGradeNum = currentGradeNum;
+	}
 }

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

@@ -43,6 +43,9 @@ public class StudentRegistration {
     @ApiModelProperty(value = "当前所在年级", required = false)
     private String currentGrade;
 
+    @ApiModelProperty(value = "年级(数字表示)", required = false)
+    private Integer currentGradeNum;
+
     @ApiModelProperty(value = "年级年份", required = false)
     private Date currentGradeDate;
 
@@ -434,4 +437,12 @@ public class StudentRegistration {
     public void setIsMerge(Integer isMerge) {
         this.isMerge = isMerge;
     }
+
+    public Integer getCurrentGradeNum() {
+        return currentGradeNum;
+    }
+
+    public void setCurrentGradeNum(Integer currentGradeNum) {
+        this.currentGradeNum = currentGradeNum;
+    }
 }

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/FivePlusGradeEnum.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum FivePlusGradeEnum implements BaseEnum<Integer, FivePlusGradeEnum> {
+	GRADE1(1, "一年级"),
+	GRADE2(2, "二年级"),
+	GRADE3(3, "三年级"),
+	GRADE4(4, "四年级"),
+	GRADE5(5, "五年级"),
+	GRADE6(6, "六年级/初一"),
+	GRADE7(7, "七年级/初二"),
+	GRADE8(8, "八年级/初三"),
+	GRADE9(9, "九年级/初四"),
+	GRADE10(10, "高一"),
+	GRADE11(11, "高二"),
+	GRADE12(12, "高三");
+
+	private Integer code;
+
+	private String desc;
+
+	private FivePlusGradeEnum(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	@Override
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 27 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GradeTypeEnum.java

@@ -0,0 +1,27 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum GradeTypeEnum implements BaseEnum<Integer, GradeTypeEnum> {
+	SIX_PLUS(0, "6+3学制"),
+	FIVE_PLUS(1, "5+4学制");
+
+	private Integer code;
+
+	private String desc;
+
+	private GradeTypeEnum(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	@Override
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SixPlusGradeEnum.java

@@ -0,0 +1,37 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum SixPlusGradeEnum implements BaseEnum<Integer, SixPlusGradeEnum> {
+	GRADE1(1, "一年级"),
+	GRADE2(2, "二年级"),
+	GRADE3(3, "三年级"),
+	GRADE4(4, "四年级"),
+	GRADE5(5, "五年级"),
+	GRADE6(6, "六年级"),
+	GRADE7(7, "七年级/初一"),
+	GRADE8(8, "八年级/初二"),
+	GRADE9(9, "九年级/初三"),
+	GRADE10(10, "高一"),
+	GRADE11(11, "高二"),
+	GRADE12(12, "高三");
+
+	private Integer code;
+
+	private String desc;
+
+	private SixPlusGradeEnum(Integer code, String desc) {
+		this.code = code;
+		this.desc = desc;
+	}
+
+	@Override
+	public Integer getCode() {
+		return code;
+	}
+
+	public String getDesc() {
+		return desc;
+	}
+
+}

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupStudentQueryInfo.java

@@ -41,6 +41,12 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
   @ApiModelProperty(value = "加油包:0:默认不可用;1:可用;2:已使用;")
   private Integer comeOnPackage;
 
+  @ApiModelProperty(value = "年级",required = false)
+  private String currentGrade;
+
+  @ApiModelProperty(value = "入学年份",required = false)
+  private String createYear;
+
   private boolean isExport = false;
 
   public Boolean getOweFlag() {
@@ -146,4 +152,20 @@ public class MusicGroupStudentQueryInfo extends QueryInfo {
   public void setPaymentStatus(String paymentStatus) {
     this.paymentStatus = paymentStatus;
   }
+
+  public String getCurrentGrade() {
+    return currentGrade;
+  }
+
+  public void setCurrentGrade(String currentGrade) {
+    this.currentGrade = currentGrade;
+  }
+
+  public String getCreateYear() {
+    return createYear;
+  }
+
+  public void setCreateYear(String createYear) {
+    this.createYear = createYear;
+  }
 }

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentRegistrationQueryInfo.java

@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.common.page.QueryInfo;
 
+import javax.xml.crypto.Data;
+
 public class StudentRegistrationQueryInfo extends QueryInfo {
 
     @ApiModelProperty(value = "乐团编号",required = false)
@@ -25,6 +27,12 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "用户名或手机号",required = false)
     private String name;
 
+    @ApiModelProperty(value = "年级",required = false)
+    private String currentGrade;
+
+    @ApiModelProperty(value = "入学年份",required = false)
+    private String createYear;
+
     private boolean isExport = false;
 
     public boolean getIsExport() {
@@ -82,4 +90,20 @@ public class StudentRegistrationQueryInfo extends QueryInfo {
     public void setPaymentStatus(String paymentStatus) {
         this.paymentStatus = paymentStatus;
     }
+
+    public String getCreateYear() {
+        return createYear;
+    }
+
+    public void setCreateYear(String createYear) {
+        this.createYear = createYear;
+    }
+
+    public String getCurrentGrade() {
+        return currentGrade;
+    }
+
+    public void setCurrentGrade(String currentGrade) {
+        this.currentGrade = currentGrade;
+    }
 }

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

@@ -1,11 +1,13 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
+import java.util.Map;
 
 public interface OrganizationService extends BaseService<Integer, Organization> {
 
@@ -27,4 +29,10 @@ public interface OrganizationService extends BaseService<Integer, Organization>
      * @return
      */
     String getOrganName(String organId);
+
+    /**
+     * 获取分部学年制的年级列表
+     * @param id
+     */
+    Map<Integer, String> getGradeList(Integer id);
 }

+ 14 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentService.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.service;
 
 import java.text.ParseException;
 
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import org.springframework.http.ResponseEntity;
 
 import com.ym.mec.biz.dal.entity.Student;
@@ -35,4 +36,17 @@ public interface StudentService extends BaseService<Integer, Student> {
      * @param teacherId
      */
     void batchUpdateAdviser(Integer teacherId,String studentIds);
+
+    /**
+     * 升级学生的年级
+     */
+    Integer updateGrade();
+
+    /**
+     * 根据学制和年级数字获取年级
+     * @param gradeType
+     * @param gradeNum
+     * @return
+     */
+    String getStudentGrade(GradeTypeEnum gradeType,Integer gradeNum);
 }

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

@@ -50,7 +50,7 @@ public class InspectionItemPlanServiceImpl extends BaseServiceImpl<Long, Inspect
     @Override
     public PageInfo<InspectionItemPlan> getPageList(InspectionItemPlanQueryInfo queryInfo) {
         PageInfo<InspectionItemPlan> pageInfo = this.queryPage(queryInfo);
-        if (pageInfo.getTotal() > 0) {
+        if (pageInfo.getRows().size() > 0) {
             Integer attendanceRange = Integer.valueOf(sysConfigDao.findConfigValue(SysConfigService.ATTENDANCE_RANGE));
             List<Long> planIds = pageInfo.getRows().stream().map(InspectionItemPlan::getId).collect(Collectors.toList());
             List<CheckItemDto> lastCheckItems = inspectionItemPlanConclusionDao.getLastCheckItem(planIds);

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

@@ -45,7 +45,7 @@ public class InspectionItemServiceImpl extends BaseServiceImpl<Long, InspectionI
             queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getEndTime())));
         }
         PageInfo<InspectionItem> pageInfo = this.queryPage(queryInfo);
-        if (pageInfo.getTotal() <= 0) {
+        if (pageInfo.getRows().size() <= 0) {
             return pageInfo;
         }
         List<InspectionItem> rows = pageInfo.getRows();

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

@@ -41,7 +41,7 @@ public class InspectionServiceImpl extends BaseServiceImpl<Long, Inspection> imp
             queryInfo.setEndTime(DateUtil.getLastTimeWithDay(DateUtil.getLastDayOfMonth(queryInfo.getMonth())));
         }
         PageInfo<Inspection> pageInfo = this.queryPage(queryInfo);
-        if (pageInfo.getTotal() > 0) {
+        if (pageInfo.getRows().size() > 0) {
             List<Inspection> rows = pageInfo.getRows();
             List<Long> inspectionIds = rows.stream().map(Inspection::getId).collect(Collectors.toList());
             List<InspectionItem> itemCountAndTimes = inspectionItemDao.getItemCountAndTimes(inspectionIds);

+ 20 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -18,6 +18,7 @@ import java.util.Set;
 import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.event.source.GroupEventSource;
 import com.ym.mec.biz.service.*;
 import org.apache.commons.lang3.StringUtils;
@@ -77,21 +78,6 @@ import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SubjectChange;
 import com.ym.mec.biz.dal.entity.SysUserCashAccount;
 import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.CourseStatusEnum;
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
-import com.ym.mec.biz.dal.enums.GoodsType;
-import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
-import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
-import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -426,6 +412,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             student.setCreateTime(date);
             student.setUpdateTime(date);
             student.setIsNewUser(true);
+            student.setCurrentGradeNum(studentPreRegistration.getCurrentGradeNum());
+            student.setCurrentClass(studentPreRegistration.getCurrentClass());
             studentDao.insert(student);
             sysUserCashAccountDao.insert(new SysUserCashAccount(userId, "CNY"));
         }
@@ -433,6 +421,23 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         studentPreRegistration.setCreateTime(date);
         studentPreRegistration.setUserId(user.getId());
 
+        Organization organization = organizationDao.get(musicGroup.getOrganId());
+        if(organization.getGradeType().equals(GradeTypeEnum.SIX_PLUS)){
+            for (SixPlusGradeEnum value : SixPlusGradeEnum.values()) {
+                if(value.getCode().equals(studentPreRegistration.getCurrentGradeNum())){
+                    studentPreRegistration.setCurrentGrade(value.getDesc());
+                    break;
+                }
+            }
+        }else {
+            for (FivePlusGradeEnum value : FivePlusGradeEnum.values()) {
+                if(value.getCode().equals(studentPreRegistration.getCurrentGradeNum())){
+                    studentPreRegistration.setCurrentGrade(value.getDesc());
+                    break;
+                }
+            }
+        }
+
         studentPreRegistrationDao.insert(studentPreRegistration);
 
         // 添加成员

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

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.service.impl;
 
-import java.util.List;
+import java.util.*;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
+import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
 import com.ym.mec.common.exception.BizException;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -18,7 +21,7 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
-	
+
 	@Autowired
 	private OrganizationDao organizationDao;
 	@Autowired
@@ -54,7 +57,7 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	}
 
 
-	private Organization getTree(Organization org){
+    private Organization getTree(Organization org){
 		//得到根节点对象
 		//获取子节点list
 		List<Organization> byParentId = organizationDao.findByParentId(org.getId(), null);
@@ -69,4 +72,24 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		}
 			return org;
 	}
+
+	@Override
+	public Map<Integer, String> getGradeList(Integer id) {
+		Organization organization = organizationDao.get(id);
+		Map<Integer, String> gradeMap = new HashMap<>();
+
+		if(organization.getGradeType().equals(GradeTypeEnum.FIVE_PLUS)){
+			FivePlusGradeEnum[] fivePlusGradeEnums = FivePlusGradeEnum.values();
+			for (FivePlusGradeEnum fivePlusGradeEnum : fivePlusGradeEnums) {
+				gradeMap.put(fivePlusGradeEnum.getCode(),fivePlusGradeEnum.getDesc());
+			}
+		}
+		if(organization.getGradeType().equals(GradeTypeEnum.SIX_PLUS)){
+			SixPlusGradeEnum[] sixPlusGradeEnums = SixPlusGradeEnum.values();
+			for (SixPlusGradeEnum sixPlusGradeEnum : sixPlusGradeEnums) {
+				gradeMap.put(sixPlusGradeEnum.getCode(),sixPlusGradeEnum.getDesc());
+			}
+		}
+		return gradeMap;
+	}
 }

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

@@ -312,8 +312,8 @@ public class StudentInstrumentServiceImpl extends BaseServiceImpl<Long, StudentI
 
     @Override
     public Boolean pushNotice() {
-        Date endTime = DateUtil.addDays(DateUtil.getLastTimeWithDay(new Date()), -6);
-        Date startTime = DateUtil.trunc(endTime);
+        Date startTime = DateUtil.trunc(new Date());
+        Date endTime = DateUtil.addDays(DateUtil.getLastTimeWithDay(startTime), +6);
         List<StudentInstrument> studentInstruments = studentInstrumentDao.getListByEndTime(startTime, endTime);
         if (studentInstruments.size() <= 0) {
             return false;

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentManageServiceImpl.java

@@ -182,6 +182,8 @@ public class StudentManageServiceImpl implements StudentManageService {
 //                if(!subject.getId().equals(dto.getUserId())) continue;
 //                dto.setSubjectName(subject.getName());
 //            }
+            //年级
+            dto.setCurrentGrade(studentService.getStudentGrade(dto.getGradeType(),dto.getCurrentGradeNum()));
         }
 
         if (queryInfo.getIsExport()) {
@@ -563,11 +565,17 @@ public class StudentManageServiceImpl implements StudentManageService {
     @Transactional(rollbackFor = Exception.class)
     public void updateUser(SysUser sysUser) {
         studentManageDao.updateUser(sysUser);
-        StudentRegistration studentRegistration = new StudentRegistration();
-        studentRegistration.setUserId(sysUser.getId());
-        studentRegistration.setCurrentClass(sysUser.getCurrentClass());
-        studentRegistration.setCurrentGrade(sysUser.getCurrentGrade());
-        studentRegistrationDao.updateCurrentClass(studentRegistration);
+        Student student = studentDao.get(sysUser.getId());
+        if(student != null) {
+            student.setCurrentGradeNum(sysUser.getCurrentGradeNum());
+            student.setCurrentClass(sysUser.getCurrentClass());
+            studentDao.update(student);
+        }
+//        StudentRegistration studentRegistration = new StudentRegistration();
+//        studentRegistration.setUserId(sysUser.getId());
+//        studentRegistration.setCurrentClass(sysUser.getCurrentClass());
+//        studentRegistration.setCurrentGrade(sysUser.getCurrentGrade());
+//        studentRegistrationDao.updateCurrentClass(studentRegistration);
     }
 
     @Override

+ 33 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -154,9 +154,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private StudentInstrumentService studentInstrumentService;
     @Autowired
+    private OrganizationDao organizationDao;
+
+    @Autowired
     private GroupEventSource groupEventSource;
     @Autowired
     private WebFeignService webFeignService;
+    @Autowired
+    private StudentService studentService;
 
     @Override
     public BaseDAO<Long, StudentRegistration> getDAO() {
@@ -336,13 +341,22 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistration.setUpdateTime(date);
         studentRegistration.setUserId(sysUser.getId());
         studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
-        if (hasReg != null) {
+
+        Organization organization = organizationDao.get(studentRegistration.getOrganId());
+        String studentGrade = studentService.getStudentGrade(organization.getGradeType(), studentRegistration.getCurrentGradeNum());
+        studentRegistration.setCurrentGrade(studentGrade);
+
+        if(hasReg != null){
             studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
             studentRegistration.setId(hasReg.getId());
             studentRegistrationDao.update(studentRegistration);
         } else {
             studentRegistrationDao.insert(studentRegistration);
         }
+        //更新年级信息
+        student.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
+        student.setCurrentClass(studentRegistration.getCurrentClass());
+        studentDao.update(student);
 
         webFeignService.updateNickName(sysUser.getId(),studentRegistration.getName(),"STUDENT");
         // 增加报名学生数
@@ -691,6 +705,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             if (studentFeeDaoByUser != null) {
                 throw new BizException("该学员已存在");
             }
+            Organization organization = organizationDao.get(musicGroup.getOrganId());
+            String studentGrade = studentService.getStudentGrade(organization.getGradeType(), studentRegistration.getCurrentGradeNum());
+            studentRegistration.setCurrentGrade(studentGrade);
             studentRegistration.setActualSubjectId(studentRegistration.getSubjectId());
             studentRegistration.setUserId(userId);
             studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
@@ -754,7 +771,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             } else {
                 studentRegistrationDao.insertBasic(studentRegistration);
             }
-            studentRegistrationDao.updateCurrentClass(studentRegistration);
+            Student student = studentDao.get(userId);
+            student.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
+            student.setCurrentClass(studentRegistration.getCurrentClass());
+            studentDao.update(student);
+            //studentRegistrationDao.updateCurrentClass(studentRegistration);
 
             return userId;
         }
@@ -1359,7 +1380,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     }
 
     @Override
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public StudentRegistration updateStudent(StudentRegistration studentRegistration) {
         if (StringUtils.isBlank(studentRegistration.getCertificateType())) {
             studentRegistration.setCertificateType(CertificateTypeEnum.IDENTITY.getCode());
@@ -1372,8 +1393,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         student.setParentsName(studentRegistration.getParentsName());
         student.setIdCardNo(studentRegistration.getIdCardNo());
         student.setGender(studentRegistration.getGender());
+        Organization organization = organizationDao.get(studentRegistration.getOrganId());
+        String studentGrade = studentService.getStudentGrade(organization.getGradeType(), studentRegistration.getCurrentGradeNum());
+        studentRegistration.setCurrentGrade(studentGrade);
         update(studentRegistration);
-        studentRegistrationDao.updateUser(student.getUserId(), student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(), studentRegistration.getCertificateType());
+        studentRegistrationDao.updateUser(student.getUserId(),student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(),studentRegistration.getCertificateType());
+        //更新年级信息
+        Student studentInfo = studentDao.get(student.getUserId());
+        studentInfo.setCurrentGradeNum(studentRegistration.getCurrentGradeNum());
+        studentInfo.setCurrentClass(studentRegistration.getCurrentClass());
+        studentDao.update(studentInfo);
         // 添加用户电子签章账户
         if (CertificateTypeEnum.IDENTITY.getCode().equals(studentRegistration.getCertificateType())) {
             contractService.register(student.getUserId(), student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());

+ 169 - 141
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServiceImpl.java

@@ -9,6 +9,10 @@ import java.util.Map;
 import java.util.stream.Collectors;
 
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
+import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
+import com.ym.mec.common.page.QueryInfo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
@@ -31,145 +35,169 @@ import com.ym.mec.util.collection.MapUtil;
 @Service
 public class StudentServiceImpl extends BaseServiceImpl<Integer, Student> implements StudentService {
 
-	@Autowired
-	private StudentDao studentDao;
-	@Autowired
-	private CourseScheduleDao courseScheduleDao;
-	
-	@Autowired
-	private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
-
-	@Override
-	public BaseDAO<Integer, Student> getDAO() {
-		return studentDao;
-	}
-
-	@Override
-	public PageInfo findStudentVipGroupList(StudentQueryInfo queryInfo) {
-		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-		Map<String, Object> params = new HashMap<String, Object>();
-		MapUtil.populateMap(params, queryInfo);
-
-		List dataList = null;
-		int count = studentDao.countStudents(params);
-		if (count > 0) {
-			pageInfo.setTotal(count);
-			params.put("offset", pageInfo.getOffset());
-			dataList = studentDao.findStudents(params);
-		}
-		if (count == 0) {
-			dataList = new ArrayList<>();
-		}
-		pageInfo.setRows(dataList);
-		return pageInfo;
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public Long upSet(Student student) {
-		if(studentDao.get(student.getUserId()) == null){
-			return studentDao.insert(student);
-		}else {
-			student.setUpdateTime(new Date());
-			studentDao.update(student);
-			return student.getUserId().longValue();
-		}
-	}
-
-	@Override
-	public boolean updateOperatingTempTag() {
-		List<StudentCourseTimesDto> studentCourseTimesDtoList = courseScheduleStudentPaymentDao.queryStudentNotStartCourseTimesOfOnline();
-		Map<Integer,StudentCourseTimesDto> map = studentCourseTimesDtoList.stream().collect(Collectors.toMap(StudentCourseTimesDto::getUserId, s -> s));
-		//查询服务指标为0的用户
-		List<Student> unlabeledStudentList = studentDao.queryByOperatingTempTag(0);
-		
-		List<Student> updateStudentList = new ArrayList<Student>();
-		StudentCourseTimesDto dto = null;
-		for(Student s : unlabeledStudentList){
-			if(s.getOperatingTag() == 1){
-				continue;
-			}
-			dto = map.get(s.getUserId());
-			if(dto != null){
-				if(dto.getTotalCourseTimes() > 0 && dto.getTotalCourseTimes() != dto.getFreePracticeCourseTimes()){
-					s.setOperatingTempTag(1);
-					s.setOperatingTag(1);
-					updateStudentList.add(s);
-				}
-			}
-		}
-
-		List<Student> labeledStudentList = studentDao.queryByOperatingTempTag(1);
-		for(Student s : labeledStudentList){
-			dto = map.get(s.getUserId());
-			if (dto == null || dto.getTotalCourseTimes() == dto.getFreePracticeCourseTimes()) {
-				s.setOperatingTempTag(0);
-				s.setOperatingTag(0);
-				updateStudentList.add(s);
-			}
-		}
-		
-		if(updateStudentList.size() > 0){
-			studentDao.batchUpdate(updateStudentList);
-		}
-		
-		return true;
-	}
-
-	@Override
-	public void initTeacherId() {
-		List<StudentTeacherCourseDto> allStudentCourseInfo = courseScheduleStudentPaymentDao.findAllStudentCourseInfo();
-		Map<Integer, List<StudentTeacherCourseDto>> studentCoursesMap = allStudentCourseInfo.stream().collect(Collectors.groupingBy(StudentTeacherCourseDto::getStudentId));
-		List<Student> students=new ArrayList<>();
-		for (Map.Entry<Integer, List<StudentTeacherCourseDto>> studentCoursesEntry : studentCoursesMap.entrySet()) {
-			Map<CourseSchedule.CourseScheduleType, List<StudentTeacherCourseDto>> courseTypeCourseMap = studentCoursesEntry.getValue().stream().collect(Collectors.groupingBy(StudentTeacherCourseDto::getCourseScheduleType));
-			List<StudentTeacherCourseDto> practiceCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.PRACTICE);
-			if (!CollectionUtils.isEmpty(practiceCourses)) {
-				practiceCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
-				Student student=new Student(studentCoursesEntry.getKey());
-				student.setTeacherId(practiceCourses.get(0).getTeacherId());
-				students.add(student);
-				continue;
-			}
-
-			List<StudentTeacherCourseDto> vipCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.VIP);
-			if (!CollectionUtils.isEmpty(vipCourses)) {
-				Student student=new Student(studentCoursesEntry.getKey());
-				vipCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
-				student.setTeacherId(vipCourses.get(0).getTeacherId());
-				students.add(student);
-				continue;
-			}
-
-			List<StudentTeacherCourseDto> singleCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.SINGLE);
-			if (!CollectionUtils.isEmpty(singleCourses)) {
-				Student student=new Student(studentCoursesEntry.getKey());
-				singleCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
-				student.setTeacherId(singleCourses.get(0).getTeacherId());
-				students.add(student);
-				continue;
-			}
-
-			List<StudentTeacherCourseDto> mixCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.MIX);
-			if (!CollectionUtils.isEmpty(mixCourses)) {
-				Student student=new Student(studentCoursesEntry.getKey());
-				mixCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
-				student.setTeacherId(mixCourses.get(0).getTeacherId());
-				students.add(student);
-				continue;
-			}
-		}
-		if(!CollectionUtils.isEmpty(students)){
-			studentDao.batchUpdate(students);
-		}
-		students=null;
-		studentCoursesMap=null;
-		allStudentCourseInfo=null;
-	}
-
-	@Override
-	public void batchUpdateAdviser(Integer teacherId,String studentIds) {
-		studentDao.batchUpdateAdviser(teacherId,studentIds);
-	}
-
+    @Autowired
+    private StudentDao studentDao;
+    @Autowired
+    private CourseScheduleDao courseScheduleDao;
+
+    @Autowired
+    private CourseScheduleStudentPaymentDao courseScheduleStudentPaymentDao;
+
+    @Override
+    public BaseDAO<Integer, Student> getDAO() {
+        return studentDao;
+    }
+
+    @Override
+    public PageInfo findStudentVipGroupList(StudentQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List dataList = null;
+        int count = studentDao.countStudents(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = studentDao.findStudents(params);
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Long upSet(Student student) {
+        if (studentDao.get(student.getUserId()) == null) {
+            return studentDao.insert(student);
+        } else {
+            student.setUpdateTime(new Date());
+            studentDao.update(student);
+            return student.getUserId().longValue();
+        }
+    }
+
+    @Override
+    public boolean updateOperatingTempTag() {
+        List<StudentCourseTimesDto> studentCourseTimesDtoList = courseScheduleStudentPaymentDao.queryStudentNotStartCourseTimesOfOnline();
+        Map<Integer, StudentCourseTimesDto> map = studentCourseTimesDtoList.stream().collect(Collectors.toMap(StudentCourseTimesDto::getUserId, s -> s));
+        //查询服务指标为0的用户
+        List<Student> unlabeledStudentList = studentDao.queryByOperatingTempTag(0);
+
+        List<Student> updateStudentList = new ArrayList<Student>();
+        StudentCourseTimesDto dto = null;
+        for (Student s : unlabeledStudentList) {
+            if (s.getOperatingTag() == 1) {
+                continue;
+            }
+            dto = map.get(s.getUserId());
+            if (dto != null) {
+                if (dto.getTotalCourseTimes() > 0 && dto.getTotalCourseTimes() != dto.getFreePracticeCourseTimes()) {
+                    s.setOperatingTempTag(1);
+                    s.setOperatingTag(1);
+                    updateStudentList.add(s);
+                }
+            }
+        }
+
+        List<Student> labeledStudentList = studentDao.queryByOperatingTempTag(1);
+        for (Student s : labeledStudentList) {
+            dto = map.get(s.getUserId());
+            if (dto == null || dto.getTotalCourseTimes() == dto.getFreePracticeCourseTimes()) {
+                s.setOperatingTempTag(0);
+                s.setOperatingTag(0);
+                updateStudentList.add(s);
+            }
+        }
+
+        if (updateStudentList.size() > 0) {
+            studentDao.batchUpdate(updateStudentList);
+        }
+
+        return true;
+    }
+
+    @Override
+    public void initTeacherId() {
+        List<StudentTeacherCourseDto> allStudentCourseInfo = courseScheduleStudentPaymentDao.findAllStudentCourseInfo();
+        Map<Integer, List<StudentTeacherCourseDto>> studentCoursesMap = allStudentCourseInfo.stream().collect(Collectors.groupingBy(StudentTeacherCourseDto::getStudentId));
+        List<Student> students = new ArrayList<>();
+        for (Map.Entry<Integer, List<StudentTeacherCourseDto>> studentCoursesEntry : studentCoursesMap.entrySet()) {
+            Map<CourseSchedule.CourseScheduleType, List<StudentTeacherCourseDto>> courseTypeCourseMap = studentCoursesEntry.getValue().stream().collect(Collectors.groupingBy(StudentTeacherCourseDto::getCourseScheduleType));
+            List<StudentTeacherCourseDto> practiceCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.PRACTICE);
+            if (!CollectionUtils.isEmpty(practiceCourses)) {
+                practiceCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
+                Student student = new Student(studentCoursesEntry.getKey());
+                student.setTeacherId(practiceCourses.get(0).getTeacherId());
+                students.add(student);
+                continue;
+            }
+
+            List<StudentTeacherCourseDto> vipCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.VIP);
+            if (!CollectionUtils.isEmpty(vipCourses)) {
+                Student student = new Student(studentCoursesEntry.getKey());
+                vipCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
+                student.setTeacherId(vipCourses.get(0).getTeacherId());
+                students.add(student);
+                continue;
+            }
+
+            List<StudentTeacherCourseDto> singleCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.SINGLE);
+            if (!CollectionUtils.isEmpty(singleCourses)) {
+                Student student = new Student(studentCoursesEntry.getKey());
+                singleCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
+                student.setTeacherId(singleCourses.get(0).getTeacherId());
+                students.add(student);
+                continue;
+            }
+
+            List<StudentTeacherCourseDto> mixCourses = courseTypeCourseMap.get(CourseSchedule.CourseScheduleType.MIX);
+            if (!CollectionUtils.isEmpty(mixCourses)) {
+                Student student = new Student(studentCoursesEntry.getKey());
+                mixCourses.sort(Comparator.comparing(StudentTeacherCourseDto::getClassesStartTime).reversed());
+                student.setTeacherId(mixCourses.get(0).getTeacherId());
+                students.add(student);
+                continue;
+            }
+        }
+        if (!CollectionUtils.isEmpty(students)) {
+            studentDao.batchUpdate(students);
+        }
+        students = null;
+        studentCoursesMap = null;
+        allStudentCourseInfo = null;
+    }
+
+    @Override
+    public void batchUpdateAdviser(Integer teacherId, String studentIds) {
+        studentDao.batchUpdateAdviser(teacherId, studentIds);
+    }
+
+    @Override
+    public Integer updateGrade() {
+        return studentDao.updateGrade();
+    }
+
+    @Override
+    public String getStudentGrade(GradeTypeEnum gradeType, Integer gradeNum) {
+        String grade = "";
+        if (GradeTypeEnum.FIVE_PLUS.equals(gradeType)) {
+            FivePlusGradeEnum[] fivePlusGradeEnums = FivePlusGradeEnum.values();
+            for (FivePlusGradeEnum fivePlusGradeEnum : fivePlusGradeEnums) {
+                if (!fivePlusGradeEnum.getCode().equals(gradeNum)) continue;
+                grade = fivePlusGradeEnum.getDesc();
+            }
+        }
+        if (GradeTypeEnum.SIX_PLUS.equals(gradeType)) {
+            SixPlusGradeEnum[] sixPlusGradeEnums = SixPlusGradeEnum.values();
+            for (SixPlusGradeEnum sixPlusGradeEnum : sixPlusGradeEnums) {
+                if (!sixPlusGradeEnum.getCode().equals(gradeNum)) continue;
+                grade = sixPlusGradeEnum.getDesc();
+            }
+        }
+        return grade;
+    }
 }

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

@@ -18,6 +18,7 @@
         <result column="linkman_" property="linkman"/>
         <result column="mobile_" property="mobile"/>
         <result column="address_" property="address"/>
+        <result column="grade_type_" property="gradeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -33,8 +34,8 @@
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Organization" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
-        INSERT INTO organization (id_,name_,area_id_,create_time_,update_time_,register_date_,linkman_,mobile_,address_)
-        VALUES(#{id},#{name},#{areaId},now(),now(),#{registerDate},#{linkman},#{mobile},#{address})
+        INSERT INTO organization (id_,name_,area_id_,create_time_,update_time_,register_date_,linkman_,mobile_,address_,grade_type_)
+        VALUES(#{id},#{name},#{areaId},now(),now(),#{registerDate},#{linkman},#{mobile},#{address},#{gradeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -65,6 +66,9 @@
             <if test="address != null">
                 address_ = #{address},
             </if>
+            <if test="gradeType != null">
+                grade_type_ = #{gradeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

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

@@ -44,6 +44,7 @@
         <result property="username" column="username_"/>
         <result property="birthdate" column="birthdate_"/>
         <result property="currentGrade" column="current_grade_"/>
+        <result property="currentGradeNum" column="current_grade_num_"/>
         <result property="currentClass" column="current_class_"/>
         <result property="isActive" column="isActive_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result property="hasCourse" column="hasCourse_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
@@ -66,6 +67,7 @@
         <result property="isSignedContract" column="is_signed_contract_"/>
         <result column="care_package_" property="carePackage"/>
         <result column="come_on_package_" property="comeOnPackage"/>
+        <result column="grade_type_" property="gradeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <sql id="queryCondition">
@@ -152,9 +154,10 @@
     </update>
 
     <select id="findStudentsByOrganId" resultMap="studentManageListDto">
-        SELECT o.`name_` organ_name_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
+        SELECT o.`name_` organ_name_,o.grade_type_,s.`user_id_` ,su.`username_` ,su.`phone_` parents_phone_,su.`real_name_` ,su.`gender_` , su.organ_id_,
 		tu.`real_name_` teacher_name_,CASE s.service_tag_ WHEN 2 THEN 0 ELSE s.service_tag_ END service_tag_ ,s.`operating_tag_` , s.care_package_, s.come_on_package_, suca.`course_balance_` ,
-		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,case when su.password_ is null then false else true end isActive_,s.is_new_user_,case when sut.user_id_ is null then 0 else 1 end is_signed_contract_
+		sub.`name_` music_group_subject_ ,su.birthdate_,s.subject_id_list_,s.teacher_id_,s.current_grade_num_,s.current_class_,
+        case when su.password_ is null then false else true end isActive_,s.is_new_user_,case when sut.user_id_ is null then 0 else 1 end is_signed_contract_
 		FROM `student` s LEFT JOIN `sys_user` su on s.`user_id_` = su.`id_`
 		LEFT JOIN `organization` o on o.`id_` = su.`organ_id_`
 		LEFT JOIN `sys_user` tu on tu.`id_` = s.`teacher_id_` 
@@ -474,6 +477,12 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="currentGrade != null">
+                AND sr.current_grade_ LIKE CONCAT('%',#{currentGrade},'%')
+            </if>
+            <if test="createYear != null">
+                AND DATE_FORMAT(sr.create_time_,'%Y') =  #{createYear}
+            </if>
         </where>
     </sql>
     <resultMap id="MusicGroupStudentsDto" type="com.ym.mec.biz.dal.dto.MusicGroupStudentsDto">
@@ -496,13 +505,14 @@
         <result property="paymentPeriodList" column="payment_period_list_"/>
         <result column="care_package_" property="carePackage"/>
         <result column="come_on_package_" property="comeOnPackage"/>
+        <result column="registerTime" property="registerTime"/>
     </resultMap>
     <select id="queryMusicGroupStudent" resultMap="MusicGroupStudentsDto">
         SELECT sr.user_id_,su.username_ real_name_,su.gender_,su.phone_ parents_phone_,sr.current_grade_,sr.current_grade_date_,
         sr.current_class_,sr.music_group_status_ student_status_,CASE WHEN sr.payment_status_ = 2 THEN 1 ELSE 0 END payment_status_,
         s.name_ subject_name_,sr.music_group_id_,CASE WHEN su.password_ IS NULL THEN 0 ELSE 1 END isActive_,
         IF(DATE_FORMAT(sr.create_time_,'%Y-%m-%d') > DATE_FORMAT(mg.payment_expire_date_,'%Y-%m-%d'),1,0) is_new_student_,
-        stu.care_package_,stu.come_on_package_
+        stu.care_package_,stu.come_on_package_,sr.create_time_ registerTime
         FROM student_registration sr
         LEFT JOIN sys_user su ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_

+ 16 - 0
mec-biz/src/main/resources/config/mybatis/StudentMapper.xml

@@ -19,6 +19,8 @@
         <result column="update_time_" property="updateTime"/>
         <result column="care_package_" property="carePackage"/>
         <result column="come_on_package_" property="comeOnPackage"/>
+        <result column="current_grade_num" property="currentGradeNum"/>
+        <result column="current_class_" property="currentClass"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -103,6 +105,12 @@
             <if test="comeOnPackage != null">
                 come_on_package_=#{comeOnPackage},
             </if>
+            <if test="currentGradeNum != null">
+                current_grade_num_=#{currentGradeNum},
+            </if>
+            <if test="currentClass != null">
+                current_class_=#{currentClass},
+            </if>
                 update_time_ = NOW()
         </set>
         WHERE user_id_ = #{userId}
@@ -663,4 +671,12 @@
             #{studentId}
         </foreach>
     </select>
+
+    <update id="updateGrade"><![CDATA[
+        UPDATE student SET current_grade_num_=current_grade_num_+1
+        WHERE current_grade_num_>=1
+          AND current_grade_num_<= 11
+        ]]>
+    </update>
+
 </mapper>

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

@@ -14,6 +14,7 @@
 		<result column="user_name_" property="userName" />
 		<result column="gender_" property="gender" />
 		<result column="current_grade_" property="currentGrade" />
+		<result column="current_grade_num_" property="currentGradeNum" />
 		<result column="current_class_" property="currentClass" />
 		<result column="subject_first_" property="subjectFirst" />
 		<result column="subject_second_" property="subjectSecond" />
@@ -51,7 +52,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO student_pre_registration (id_,music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_class_,subject_first_,subject_second_,is_allow_adjust_,kit_purchase_method_,create_time_) VALUES(#{id},#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentClass},#{subjectFirst},#{subjectSecond},#{isAllowAdjust},#{kitPurchaseMethod},#{createTime})
+		INSERT INTO student_pre_registration (id_,music_group_id_,user_id_,phone_,user_name_,gender_,current_grade_,current_grade_num_,current_class_,subject_first_,subject_second_,is_allow_adjust_,kit_purchase_method_,create_time_) VALUES(#{id},#{musicGroupId},#{userId},#{phone},#{userName},#{gender},#{currentGrade},#{currentGradeNum},#{currentClass},#{subjectFirst},#{subjectSecond},#{isAllowAdjust},#{kitPurchaseMethod},#{createTime})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -72,6 +73,9 @@
 		<if test="currentGrade != null">
 		current_grade_ = #{currentGrade},
 		</if>
+		<if test="currentGradeNum != null">
+			current_grade_num_ = #{currentGradeNum},
+		</if>
 		<if test="gender != null">
 		gender_ = #{gender},
 		</if>

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

@@ -15,6 +15,7 @@
         <result column="current_grade_" property="currentGrade"/>
         <result column="current_grade_date_" property="currentGradeDate"/>
         <result column="current_grade_" property="currentGrade"/>
+        <result column="current_grade_num_" property="currentGradeNum"/>
         <result column="current_class_" property="currentClass"/>
         <result column="subject_id_" property="subjectId"/>
         <result column="actual_subject_id_" property="actualSubjectId"/>
@@ -117,6 +118,7 @@
             <if test="name!=null">name_,</if>
             <if test="musicGroupId!=null">music_group_id_,</if>
             <if test="currentGrade!=null">current_grade_,</if>
+            <if test="currentGradeNum!=null">current_grade_num_,</if>
             <if test="currentGradeDate!=null">current_grade_date_,</if>
             <if test="currentClass!=null">current_class_,</if>
             <if test="subjectId!=null">subject_id_,</if>
@@ -141,6 +143,7 @@
             <if test="name!=null">#{name},</if>
             <if test="musicGroupId!=null">#{musicGroupId},</if>
             <if test="currentGrade!=null">#{currentGrade},</if>
+            <if test="currentGradeNum!=null">#{currentGradeNum},</if>
             <if test="currentGradeDate!=null">#{currentGradeDate},</if>
             <if test="currentClass!=null">#{currentClass},</if>
             <if test="subjectId!=null">#{subjectId},</if>
@@ -180,6 +183,9 @@
             <if test="currentGrade != null">
                 current_grade_ = #{currentGrade},
             </if>
+            <if test="currentGradeNum != null">
+                current_grade_num_ = #{currentGradeNum},
+            </if>
             <if test="currentGradeDate != null">
                 current_grade_date_ = #{currentGradeDate},
             </if>
@@ -285,6 +291,12 @@
             <if test="name != null">
                 AND (sr.name_ LIKE CONCAT('%',#{name},'%') OR sr.parents_phone_ LIKE CONCAT('%',#{name},'%'))
             </if>
+            <if test="currentGrade != null">
+                AND sr.current_grade_ LIKE CONCAT('%',#{currentGrade},'%')
+            </if>
+            <if test="createYear != null">
+                AND DATE_FORMAT(sr.create_time_,'%Y') =  #{createYear}
+            </if>
         </where>
     </sql>
 
@@ -304,9 +316,10 @@
         <result column="user_id_" property="studentId"/>
         <result column="id_" property="id"/>
         <result column="remark_" property="remark"/>
+        <result column="create_time_" property="createTime"/>
     </resultMap>
     <select id="queryStudentDetailPage" resultMap="studentApplyDetail">
-        SELECT sr.id_, sr.user_id_,su.username_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,sr.current_grade_date_,
+        SELECT sr.id_,sr.create_time_, sr.user_id_,su.username_ username_,sr.parents_name_,sr.current_class_,sr.current_grade_,sr.current_grade_date_,
         su.gender_,sr.is_allow_adjust_, s.name_ subject_name_,ss.name_
         actual_subject_name_,su.phone_ parents_phone_,sr.payment_status_,sr.remark_,sr.actual_subject_id_
         FROM student_registration sr
@@ -580,11 +593,11 @@
         GROUP BY sr.music_group_id_
     </select>
     <select id="queryUserByPhone" resultMap="StudentRegistration">
-        SELECT su.id_,su.real_name_ parents_name_,su.phone_,sr.current_grade_,
+        SELECT su.id_,su.real_name_ parents_name_,su.phone_,sr.current_grade_,sr.current_grade_num_,
         sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
         FROM sys_user su
         LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
-        WHERE su.phone_ = #{mobile}
+        WHERE su.phone_ = #{mobile} ORDER BY sr.id_ DESC
         LIMIT 1
     </select>
     <select id="queryPurchaseTypeMap" resultType="java.util.Map">

+ 6 - 0
mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java

@@ -163,4 +163,10 @@ public interface TaskRemoteService {
 	//乐保到期提醒
 	@GetMapping("task/maintenanceNotice")
 	void maintenanceNotice();
+
+	/**
+	 * 更新学生年级
+	 */
+	@GetMapping("task/updateGrade")
+	void updateGrade();
 }

+ 5 - 0
mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java

@@ -201,6 +201,11 @@ public class TaskRemoteServiceFallback implements TaskRemoteService {
 		logger.info("学员服务指标关闭失败");
 	}
 
+	@Override
+	public void updateGrade() {
+		logger.info("学生年级更新失败");
+	}
+
     @Override
     public void maintenanceNotice() {
 		logger.info("乐保到期提醒推送失败");

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

@@ -44,6 +44,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
                 "/contracts/queryProduceContract",
                 "/repair/studentPaymentGoodsOrder",
                 "/studentCompetition/getWinnerList",
+                "/musicGroup/getGradeList",
                 "/studentCompetition/get","/musicGroup/preRegister").permitAll().anyRequest().authenticated().and().httpBasic();
     }
 

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

@@ -1,5 +1,8 @@
 package com.ym.mec.student.controller;
 
+import com.ym.mec.biz.dal.dao.OrganizationDao;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.biz.dal.dao.CourseScheduleDao;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -25,25 +28,13 @@ import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
 import com.ym.mec.biz.dal.dao.StudentPreRegistrationDao;
 import com.ym.mec.biz.dal.dto.RegisterPayDto;
-import com.ym.mec.biz.dal.entity.Goods;
-import com.ym.mec.biz.dal.entity.MusicGroup;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
-import com.ym.mec.biz.dal.entity.StudentPreRegistration;
-import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
-import com.ym.mec.biz.service.StudentPaymentOrderService;
-import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
@@ -76,6 +67,9 @@ public class MusicGroupController extends BaseController {
     @Autowired
     private CourseScheduleDao courseScheduleDao;
 
+    @Autowired
+    private OrganizationService organizationService;
+
     @ApiOperation("预报名")
     @PostMapping(value = "/preRegister")
     public Object preRegister(@RequestBody StudentPreRegistration studentPreRegistration) {
@@ -356,4 +350,12 @@ public class MusicGroupController extends BaseController {
 
         return succeed(orderDetail);
     }
+
+    @ApiOperation(value = "获取乐团的年级列表")
+    @GetMapping("/getGradeList")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
+    public HttpResponseResult<Map<Integer,String>> getGradeList(String musicGroupId) {
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+        return succeed(organizationService.getGradeList(musicGroup.getOrganId()));
+    }
 }

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

@@ -72,6 +72,7 @@ public class MusicGroupRegisterController extends BaseController {
             return failed("乐团已截止报名");
         }
 
+        studentRegistration.setOrganId(musicGroup.getOrganId());
         if (studentRegistration.getId() != null) {
             return succeed(studentRegistrationService.updateStudent(studentRegistration));
         }
@@ -101,7 +102,6 @@ public class MusicGroupRegisterController extends BaseController {
             studentRegistration.setUserId(sysUser.getId());
         }
 
-        studentRegistration.setOrganId(musicGroup.getOrganId());
         return succeed(studentRegistrationService.addStudent(studentRegistration));
     }
 

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

@@ -1,11 +1,11 @@
 package com.ym.mec.student.controller;
 
 import com.ym.mec.biz.service.*;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import com.ym.mec.common.entity.HttpResponseResult;
+import io.swagger.annotations.*;
 
 import java.util.Date;
+import java.util.Map;
 
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
@@ -54,6 +54,8 @@ public class StudentManageController extends BaseController {
     private SubjectService subjectService;
     @Autowired
     private StudentService studentService;
+    @Autowired
+    private OrganizationService organizationService;
 
     private final static Logger LOGGER = LoggerFactory.getLogger(StudentManageController.class);
 
@@ -216,4 +218,14 @@ public class StudentManageController extends BaseController {
         return succeed(subjectService.findSubSubjects(tenantId));
     }
 
+    @ApiOperation(value = "获取用户所在分部的年级列表)")
+    @GetMapping("studentManage/getGradeList")
+    public HttpResponseResult<Map<Integer,String>> getGradeList() {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("请重新登录");
+        }
+        return succeed(organizationService.getGradeList(sysUser.getOrganId()));
+    }
+
 }

+ 19 - 0
mec-task/src/main/java/com/ym/mec/task/jobs/UpdateGradeTask.java

@@ -0,0 +1,19 @@
+package com.ym.mec.task.jobs;
+
+import com.ym.mec.task.TaskRemoteService;
+import com.ym.mec.task.core.BaseTask;
+import com.ym.mec.task.core.TaskException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class UpdateGradeTask extends BaseTask {
+
+	@Autowired
+	private TaskRemoteService taskRemoteService;
+
+	@Override
+	public void execute() throws TaskException {
+		taskRemoteService.updateGrade();
+	}
+}

+ 14 - 4
mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java

@@ -2,7 +2,9 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
 import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
+import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.entity.HttpResponseResult;
 
 import io.swagger.annotations.Api;
@@ -10,10 +12,7 @@ import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 
-import java.util.Arrays;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
+import java.util.*;
 
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -48,6 +47,8 @@ public class MusicGroupController extends BaseController {
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private EmployeeDao employeeDao;
+	@Autowired
+	private OrganizationService organizationService;
 
 	@ApiOperation(value = "修改乐团基本信息")
 	@PostMapping("/update")
@@ -321,4 +322,13 @@ public class MusicGroupController extends BaseController {
 		return musicGroupService.sendParentMeetingNotice(sysUser.getId(), musicGroupId, meetingDate, address) ? succeed() : failed();
 	}
 
+	@ApiOperation(value = "获取乐团的年级列表")
+	@GetMapping("/getGradeList")
+	@PreAuthorize("@pcs.hasPermissions('musicGroup/getGradeList')")
+	@ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
+	public HttpResponseResult<Map<Integer,String>> getGradeList(String musicGroupId) {
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		return succeed(organizationService.getGradeList(musicGroup.getOrganId()));
+	}
+
 }

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

@@ -6,6 +6,7 @@ import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.page.OrganizationQueryInfo;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -14,6 +15,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.Date;
+import java.util.Map;
 
 @RequestMapping("organization")
 @Api(tags = "分部服务")
@@ -72,4 +74,13 @@ public class OrganizationController extends BaseController {
     public Object get( @PathVariable("id") Integer id){
         return succeed(organizationService.get(id));
     }
+
+
+    @ApiOperation(value = "获取用户所在分部的年级列表)")
+    @GetMapping("organization/getGradeList")
+    @PreAuthorize("@pcs.hasPermissions('organization/getGradeList')")
+    @ApiParam(value = "分部编号", required = true)
+    public HttpResponseResult<Map<Integer,String>> getGradeList(Integer id) {
+        return succeed(organizationService.getGradeList(id));
+    }
 }

+ 6 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -348,4 +348,10 @@ public class TaskController extends BaseController {
 	public void maintenanceNotice(){
 		studentInstrumentService.pushNotice();
 	}
+
+	//每年9.1升级学员的班级
+	@GetMapping("/updateGrade")
+	public void updateGrade(){
+		studentService.updateGrade();
+	}
 }