Forráskód Böngészése

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 éve
szülő
commit
60c3a7d286
32 módosított fájl, 624 hozzáadás és 180 törlés
  1. 4 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  2. 15 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java
  3. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java
  4. 79 45
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CooperationOrgan.java
  5. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  6. 5 3
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  7. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupStudentFeeService.java
  8. 50 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  9. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherService.java
  10. 5 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  11. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java
  12. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CooperationOrganServiceImpl.java
  13. 73 13
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  14. 50 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupStudentFeeServiceImpl.java
  15. 6 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  16. 49 39
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  17. 6 2
      mec-biz/src/main/resources/config/mybatis/CooperationOrganMapper.xml
  18. 43 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml
  19. 24 11
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  20. 15 0
      mec-client-api/src/main/java/com/ym/mec/task/TaskRemoteService.java
  21. 19 0
      mec-client-api/src/main/java/com/ym/mec/task/fallback/TaskRemoteServiceFallback.java
  22. 1 1
      mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/RedisIdGeneratorService.java
  23. 2 0
      mec-eureka/src/main/resources/application.yml
  24. 67 2
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  25. 1 1
      mec-task/pom.xml
  26. 0 27
      mec-task/src/main/java/com/ym/mec/task/config/WebMvcConfig.java
  27. 6 7
      mec-task/src/main/java/com/ym/mec/task/jobs/RefreshPaymentFeeStatusTask.java
  28. 17 0
      mec-task/src/main/resources/application.yml
  29. 2 1
      mec-web/src/main/java/com/ym/mec/web/config/ResourceServerConfig.java
  30. 11 6
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  31. 24 0
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java
  32. 17 8
      mec-web/src/main/java/com/ym/mec/web/controller/TeacherController.java

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

@@ -101,7 +101,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeachersDto> findClassGroupByMusicGroupId(@Param("musicGroupId") String musicGroupId);
+    List<ClassGroupTeachersDto> findClassGroupByMusicGroupId(@Param("musicGroupId") String musicGroupId, @Param("type") String type);
 
     /**
      * 获取学生所购买课程列表
@@ -179,6 +179,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取当前班级老师id列表
+     *
      * @param id
      * @return
      */
@@ -186,6 +187,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取老师所在班级群组列表
+     *
      * @param userId
      * @param search
      * @return
@@ -194,6 +196,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
 
     /**
      * 获取未分配合奏的单技班列表
+     *
      * @param musicGroupId
      * @return
      */

+ 15 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupStudentFeeDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import java.util.Date;
+import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
 
@@ -31,4 +32,18 @@ public interface MusicGroupStudentFeeDao extends BaseDAO<Long, MusicGroupStudent
 	 * @return
 	 */
 	int updateNextPaymentDate(@Param("musicGroupId") String musicGroupId, @Param("nextPaymentDate") Date nextPaymentDate);
+
+	/**
+	 * 根据可提前缴费的天数查询即将续费的列表
+	 * @param days 可提前缴费天数
+	 * @return
+	 */
+	List<MusicGroupStudentFee> queryWillRenewList(int days);
+
+	/**
+	 * 批量更新对象
+	 * @param updateList
+	 * @return
+	 */
+	int batchUpdate(List<MusicGroupStudentFee> updateList);
 }

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

@@ -17,25 +17,29 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
     /**
      * 根据证件号查询老师
-     * @param certificateNum  证件号
+     *
+     * @param certificateNum 证件号
      * @return Teacher 老师信息
      */
     Teacher findByCertificateNum(@Param("certificateNum") String certificateNum);
 
     /**
      * 修改用户信息
+     *
      * @param user
      */
     void updateUser(SysUser user);
 
     /**
      * 新增sysUser
+     *
      * @param user
      */
     void addSysUser(SysUser user);
 
     /**
      * 获取和当前教师相关的学员列表
+     *
      * @param teacherId
      * @param search
      * @return
@@ -44,8 +48,16 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
 
     /**
      * 根据用户编号列表获取用户名称
+     *
      * @param userIds
      * @return
      */
     List<Map<Integer, String>> queryNameByIds(@Param("userIds") Set<Integer> userIds);
+
+    /**
+     * 查询分部所有老师
+     * @param organId
+     * @return
+     */
+    List<Teacher> findTeachers(@Param("organId") Integer organId);
 }

+ 79 - 45
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CooperationOrgan.java

@@ -1,43 +1,69 @@
 package com.ym.mec.biz.dal.entity;
 
 import io.swagger.annotations.ApiModelProperty;
+
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import com.ym.mec.common.enums.BaseEnum;
+
 /**
  * 对应数据库表(cooperation_organ):
  */
 public class CooperationOrgan {
 
+	public enum OwnershipType implements BaseEnum<String, OwnershipType> {
+
+		OWN("自有"), COOPERATION("合作"), LEASE("租赁"), ;
+
+		private String desc;
+
+		private OwnershipType(String desc) {
+			this.desc = desc;
+		}
+
+		@Override
+		public String getCode() {
+			return name();
+		}
+
+		public String getDesc() {
+			return desc;
+		}
+	}
+
 	/**  */
 	private Integer id;
-	
+
 	/** 单位名称 */
-	@ApiModelProperty(value = "班级编号",required = false)
+	@ApiModelProperty(value = "班级编号", required = false)
 	private String name;
 
 	/** 分部编号 */
-	@ApiModelProperty(value = "分部编号",required = false)
+	@ApiModelProperty(value = "分部编号", required = false)
 	private Integer organId;
-	
+
 	/** 联系人 */
-	@ApiModelProperty(value = "班级编号",required = false)
+	@ApiModelProperty(value = "联系人", required = false)
 	private String linkman;
-	
+
 	/**  */
-	@ApiModelProperty(value = "班级编号",required = false)
+	@ApiModelProperty(value = "职位", required = false)
 	private String job;
-	
+
 	/**  */
-	@ApiModelProperty(value = "班级编号",required = false)
+	@ApiModelProperty(value = "手机号码", required = false)
 	private String mobileNo;
-	
+
 	/**  */
-	@ApiModelProperty(value = "班级编号",required = false)
+	@ApiModelProperty(value = "地址", required = false)
 	private String address;
-	
+
+	@ApiModelProperty(value = "权属类型(OWN('自有'),COOPERATION('合作'),LEASE('租赁'))", required = false)
+	private OwnershipType ownershipType;
+
 	/**  */
 	private java.util.Date createTime;
-	
+
 	/**  */
 	private java.util.Date updateTime;
 
@@ -49,70 +75,78 @@ public class CooperationOrgan {
 		this.organId = organId;
 	}
 
-	public void setId(Integer id){
+	public void setId(Integer id) {
 		this.id = id;
 	}
-	
-	public Integer getId(){
+
+	public Integer getId() {
 		return this.id;
 	}
-			
-	public void setName(String name){
+
+	public void setName(String name) {
 		this.name = name;
 	}
-	
-	public String getName(){
+
+	public String getName() {
 		return this.name;
 	}
-			
-	public void setLinkman(String linkman){
+
+	public void setLinkman(String linkman) {
 		this.linkman = linkman;
 	}
-	
-	public String getLinkman(){
+
+	public String getLinkman() {
 		return this.linkman;
 	}
-			
-	public void setJob(String job){
+
+	public void setJob(String job) {
 		this.job = job;
 	}
-	
-	public String getJob(){
+
+	public String getJob() {
 		return this.job;
 	}
-			
-	public void setMobileNo(String mobileNo){
+
+	public void setMobileNo(String mobileNo) {
 		this.mobileNo = mobileNo;
 	}
-	
-	public String getMobileNo(){
+
+	public String getMobileNo() {
 		return this.mobileNo;
 	}
-			
-	public void setAddress(String address){
+
+	public void setAddress(String address) {
 		this.address = address;
 	}
-	
-	public String getAddress(){
+
+	public String getAddress() {
 		return this.address;
 	}
-			
-	public void setCreateTime(java.util.Date createTime){
+
+	public void setCreateTime(java.util.Date createTime) {
 		this.createTime = createTime;
 	}
-	
-	public java.util.Date getCreateTime(){
+
+	public java.util.Date getCreateTime() {
 		return this.createTime;
 	}
-			
-	public void setUpdateTime(java.util.Date updateTime){
+
+	public void setUpdateTime(java.util.Date updateTime) {
 		this.updateTime = updateTime;
 	}
-	
-	public java.util.Date getUpdateTime(){
+
+	public java.util.Date getUpdateTime() {
 		return this.updateTime;
 	}
-			
+
+	public OwnershipType getOwnershipType() {
+		return ownershipType;
+	}
+
+	public void setOwnershipType(OwnershipType ownershipType) {
+		this.ownershipType = ownershipType;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -123,7 +123,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param musicGroupId
      * @return
      */
-    List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type);
+    List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type) throws Exception;
 
 
     /**

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

@@ -2,8 +2,11 @@ package com.ym.mec.biz.service;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
-import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.dto.BasicUserDto;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.common.page.PageInfo;
@@ -75,10 +78,9 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 *  续费
 	 * @param musicGroupId 乐团编号
 	 * @param userId 用户编号
-	 * @param amount 缴费金额
 	 * @return
 	 */
-	boolean renew(String musicGroupId, Integer userId, double amount);
+	Map renew(String musicGroupId, Integer userId);
 
 	/**
 	 * 获取乐团列表

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

@@ -5,4 +5,10 @@ import com.ym.mec.common.service.BaseService;
 
 public interface MusicGroupStudentFeeService extends BaseService<Long, MusicGroupStudentFee> {
 
+	/**
+	 * 刷新续费状态
+	 * @return
+	 */
+	boolean refreshPaymentFeeStatus();
+
 }

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java

@@ -5,4 +5,54 @@ import com.ym.mec.common.service.BaseService;
 
 public interface SysConfigService extends BaseService<Long, SysConfig> {
 
+	/**
+	 * 缴费状态提前{}天刷新
+	 */
+	public static final String REFRESH_PAYMENT_STATUS_EARLY_DAYS = "refresh_payment_status_early_days";
+
+	/**
+	 * VIP课结束后,用户可申诉时间,为课程结束后的{}天
+	 */
+	public static final String VIP_APPEAL_DAYS_RANGE = "vip_appeal_days_range";
+
+	/**
+	 * VIP课的结算周期,为课程完成后{}天
+	 */
+	public static final String VIP_SETTLEMENT_CYCLE = "vip_settlement_cycle";
+
+	/**
+	 * 课酬结算周期,为每个月的{}日
+	 */
+	public static final String COURSES_SETTLEMENT_CYCLE = "courses_settlement_cycle";
+
+	/**
+	 * 老师正常打卡时间,为课程当天,距离开课时间前{}分钟
+	 */
+	public static final String ADVANCE_SIGN_IN_MINUTES = "advance_sign_in_minutes";
+
+	/**
+	 * 乐团课,签退时间,为课程结束后开始,至结束后的{}小时
+	 */
+	public static final String SIGN_OUT_DELAY_HOURS = "sign_out_delay_hours";
+
+	/**
+	 * 老师可以打卡范围,为教学定位方圆{}米
+	 */
+	public static final String ATTENDANCE_RANGE = "attendance_range";
+
+	/**
+	 * 学生VIP课,允许请假的时间,为开课前{}小时
+	 */
+	public static final String ADVANCE_LEAVE_HOURS = "advance_leave_hours";
+
+	/**
+	 * 移动端「课程调整」调整的课程时间,为开课前{}天
+	 */
+	public static final String ADVANCE_UPDATE_COURSES_DAYS = "advance_update_courses_days";
+
+	/**
+	 * 密码重置后的默认密码为{}
+	 */
+	public static final String DEFAULT_PASSWORD = "default_password";
+	
 }

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

@@ -8,6 +8,7 @@ import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -68,4 +69,12 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @return
      */
     List<BasicUserDto> queryGroupStudents(Integer id, String search);
+
+    /**
+     * 查询分部所有老师
+     * @param organId
+     * @return
+     */
+    List<Teacher> findTeachers(@Param("organId") Integer organId);
+
 }

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

@@ -257,7 +257,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
     @Override
     public List<ClassGroupTeachersDto> getClassGroupAndTeachers(String musicGroupId) {
-        List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId);
+        List<ClassGroupTeachersDto> classGroupAndTeachersList = classGroupDao.findClassGroupByMusicGroupId(musicGroupId,"NORMAL,MIX");
 
         List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupTeacherMapperService.findClassGroupTeachers(classGroupAndTeachersList);
 
@@ -274,7 +274,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type) {
+    public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type) throws Exception {
         //乐团班级及班级老师
         List<ClassGroupTeachersDto> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId);
 
@@ -285,6 +285,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 //获取老师的默认课酬
                 String courseType = classGroupAndTeacher.getType().equals(ClassGroupTypeEnum.NORMAL) ? "SINGLE" : classGroupAndTeacher.getType().getCode();
                 List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type);
+                if (teacherSalaryByUserIdAndType == null) {
+                    throw new Exception("userId:"+classGroupTeacherMapper.getUserId()+"名字:"+classGroupTeacherMapper.getUserName()+" 老师没有设置课酬");
+                }
                 classGroupTeacherMapper.setTeacherDefaultMusicGroupSalaryList(teacherSalaryByUserIdAndType);
             }
 

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

@@ -35,6 +35,8 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
     public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
         for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+            classGroupTeacherMapper.getTeacherDefaultMusicGroupSalaryList();
+
             classGroupTeacherMapperDao.update(classGroupTeacherMapper);
         }
         return true;

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

@@ -1,17 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ym.mec.biz.dal.dao.CooperationOrganDao;
 import com.ym.mec.biz.dal.entity.CooperationOrgan;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.CooperationOrganService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
-import java.util.List;
-
 @Service
 public class CooperationOrganServiceImpl extends BaseServiceImpl<Integer, CooperationOrgan>  implements CooperationOrganService {
 	

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

@@ -1,14 +1,52 @@
 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.Calendar;
+import java.util.Collections;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
+import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
+import com.ym.mec.biz.dal.dao.SchoolDao;
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dto.BasicUserDto;
 import com.ym.mec.biz.dal.dto.MusicCardDto;
-import com.ym.mec.biz.dal.dto.MusicGroupsDto;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentEntities;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.PayService;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
@@ -19,13 +57,6 @@ import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.util.collection.MapUtil;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -65,6 +96,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
 	
+    @Autowired
+    private PayService payService;
+	
 	@Override
 	public BaseDAO<String, MusicGroup> getDAO() {
 		return musicGroupDao;
@@ -277,8 +311,34 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 	}
 
 	@Override
-	public boolean renew(String musicGroupId, Integer userId, double amount) {
-		return true;
+	public Map renew(String musicGroupId, Integer userId) {
+
+		MusicGroup musicGroup = this.get(musicGroupId);
+		if (musicGroup == null) {
+			throw new BizException("乐团不存在");
+		}
+
+		MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
+
+		if (musicGroupStudentFee == null) {
+			throw new BizException("个人信息不存在");
+		}
+		// 判断当前是否是续费状态
+		if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
+			throw new BizException("已缴费");
+		}
+
+		BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
+		if (amount == null || amount.doubleValue() == 0) {
+			amount = musicGroupStudentFee.getCourseFee();
+		}
+
+		try {
+			return payService.getPayMap(amount, idGeneratorService.generatorId("payment") + "", "https://pay.dayaedu.com/api/yqpay/notify",
+					"http://dev.dayaedu.com", "测试订单", "测试订单");
+		} catch (Exception e) {
+			throw new BizException("调用支付接口出错", e);
+		}
 	}
 
 	@Override

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

@@ -1,23 +1,68 @@
 package com.ym.mec.biz.service.impl;
 
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
+import com.ym.mec.biz.dal.dao.SysConfigDao;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.SysConfig;
 import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 @Service
 public class MusicGroupStudentFeeServiceImpl extends BaseServiceImpl<Long, MusicGroupStudentFee> implements MusicGroupStudentFeeService {
-	
+
 	@Autowired
 	private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 
+	@Autowired
+	private SysConfigDao sysConfigDao;
+
 	@Override
 	public BaseDAO<Long, MusicGroupStudentFee> getDAO() {
 		return musicGroupStudentFeeDao;
 	}
-	
+
+	@Override
+	public boolean refreshPaymentFeeStatus() {
+
+		int days = 7;
+
+		SysConfig sysConfig = sysConfigDao.findByParamName(SysConfigService.REFRESH_PAYMENT_STATUS_EARLY_DAYS);
+		if (sysConfig != null) {
+			days = Integer.parseInt(sysConfig.getParanValue());
+		}
+
+		Date date = new Date();
+
+		List<MusicGroupStudentFee> updateList = new ArrayList<MusicGroupStudentFee>();
+
+		List<MusicGroupStudentFee> musicGroupStudentFeeList = musicGroupStudentFeeDao.queryWillRenewList(days);
+
+		for (MusicGroupStudentFee musicGroupStudentFee : musicGroupStudentFeeList) {
+			if (musicGroupStudentFee.getPaymentStatus() == PaymentStatus.PAID_COMPLETED) {
+				musicGroupStudentFee.setPaymentStatus(PaymentStatus.NON_PAYMENT);
+				musicGroupStudentFee.setUpdateTime(date);
+				updateList.add(musicGroupStudentFee);
+			}
+		}
+
+		if (updateList.size() > 0) {
+			musicGroupStudentFeeDao.batchUpdate(updateList);
+		}
+
+		// int i = DateUtil.daysBetween(new Date(), musicGroupStudentFee.getNextPaymentDate());
+		// e.setRenewStatus(i < 8 ? 0 : 1);
+
+		return true;
+	}
+
 }

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

@@ -152,7 +152,12 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 		return teacherDao.queryGroupStudents(teacherId,search);
 	}
 
-	@Override
+    @Override
+    public List<Teacher> findTeachers(Integer organId) {
+		return teacherDao.findTeachers(organId);
+    }
+
+    @Override
 	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
 		return queryPage(queryInfo);
 	}

+ 49 - 39
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -172,7 +172,8 @@
     <!-- 根据乐团id获取单技班信息 -->
     <select id="findAllNormalClassGroupByMusicGroupId" resultMap="ClassGroup">
         SELECT
-        cg.*, (SELECT group_concat(sb.name_) FROM subject sb WHERE FIND_IN_SET(sb.id_,cg.subject_id_list_)) AS subject_name_
+        cg.*, (SELECT group_concat(sb.name_) FROM subject sb WHERE FIND_IN_SET(sb.id_,cg.subject_id_list_)) AS
+        subject_name_
         FROM
         class_group cg
         WHERE cg.music_group_id_=#{musicGroupId} AND cg.type_='NORMAL' AND cg.del_flag_='0'
@@ -259,7 +260,11 @@
     </resultMap>
     <!-- 根据乐团id获取乐团下所有班级 -->
     <select id="findClassGroupByMusicGroupId" resultMap="ClassGroupTeachers">
-        SELECT * FROM class_group WHERE music_group_id_ = #{musicGroupId} AND del_flag_ = 0;
+        SELECT * FROM class_group WHERE music_group_id_ = #{musicGroupId}
+        <if test="type !=null and type !=''">
+        AND FIND_IN_SET(type_,#{type})
+        </if>
+        AND del_flag_ = 0;
     </select>
 
     <resultMap type="com.ym.mec.biz.dal.dto.CourseListDto" id="CourseListDto">
@@ -274,26 +279,28 @@
     </resultMap>
     <select id="queryCoursePage" resultMap="CourseListDto">
         SELECT * FROM (
-            SELECT cg.type_,s.address_,mg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_ music_group_id_,cg.create_time_,cs.teach_mode_
-            FROM student_registration sr
-            LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
-            LEFT JOIN course_schedule cs 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 sr.user_id_ = #{search} AND cg.type_ != 'VIP'
-            UNION ALL
-            SELECT cg.type_,ts.address_,vg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_ music_group_id_,cg.create_time_,cs.teach_mode_
-            FROM class_group_student_mapper cgsm
-            LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-            LEFT JOIN course_schedule cs ON cs.class_group_id_ = cg.id_
-            LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cgsm.class_group_id_
-            LEFT JOIN vip_group vg ON vg.id_ = vgcgm.vip_group_id_
-            LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_
-            WHERE cgsm.user_id_ = #{search} AND cg.type_ = 'VIP') a
-            ORDER BY a.create_time_ DESC
-            <include refid="global.limit"/>
+        SELECT cg.type_,s.address_,mg.name_ music_group_name_,
+        cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_
+        music_group_id_,cg.create_time_,cs.teach_mode_
+        FROM student_registration sr
+        LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
+        LEFT JOIN course_schedule cs 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 sr.user_id_ = #{search} AND cg.type_ != 'VIP'
+        UNION ALL
+        SELECT cg.type_,ts.address_,vg.name_ music_group_name_,
+        cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_
+        music_group_id_,cg.create_time_,cs.teach_mode_
+        FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+        LEFT JOIN course_schedule cs ON cs.class_group_id_ = cg.id_
+        LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cgsm.class_group_id_
+        LEFT JOIN vip_group vg ON vg.id_ = vgcgm.vip_group_id_
+        LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_
+        WHERE cgsm.user_id_ = #{search} AND cg.type_ = 'VIP') a
+        ORDER BY a.create_time_ DESC
+        <include refid="global.limit"/>
     </select>
 
     <resultMap id="imGroupModel" type="com.ym.mec.common.entity.ImGroupModel">
@@ -372,22 +379,24 @@
     </select>
     <select id="countCoursePage" resultType="java.lang.Integer">
         SELECT COUNT(id_) FROM (
-            SELECT cg.type_,s.address_,mg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_ music_group_id_,cg.create_time_,cg.id_
-            FROM student_registration sr
-            LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
-            LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
-            LEFT JOIN school s ON mg.school_id_ = s.id_
-            WHERE sr.user_id_ = #{search} AND cg.type_ != 'VIP'
-            UNION ALL
-            SELECT cg.type_,ts.address_,vg.name_ music_group_name_,
-            cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_ music_group_id_,cg.create_time_,cg.id_
-            FROM class_group_student_mapper cgsm
-            LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
-            LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cgsm.class_group_id_
-            LEFT JOIN vip_group vg ON vg.id_ = vgcgm.vip_group_id_
-            LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_
-            WHERE cgsm.user_id_ = #{search} AND cg.type_ = 'VIP') a
+        SELECT cg.type_,s.address_,mg.name_ music_group_name_,
+        cg.total_class_times_,cg.current_class_times_,'' single_class_minutes_,mg.id_
+        music_group_id_,cg.create_time_,cg.id_
+        FROM student_registration sr
+        LEFT JOIN class_group cg ON cg.id_ = sr.class_group_id_
+        LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
+        LEFT JOIN school s ON mg.school_id_ = s.id_
+        WHERE sr.user_id_ = #{search} AND cg.type_ != 'VIP'
+        UNION ALL
+        SELECT cg.type_,ts.address_,vg.name_ music_group_name_,
+        cg.total_class_times_,cg.current_class_times_,vg.single_class_minutes_,vg.id_
+        music_group_id_,cg.create_time_,cg.id_
+        FROM class_group_student_mapper cgsm
+        LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
+        LEFT JOIN vip_group_class_group_mapper vgcgm ON vgcgm.class_group_id_ = cgsm.class_group_id_
+        LEFT JOIN vip_group vg ON vg.id_ = vgcgm.vip_group_id_
+        LEFT JOIN teacher_school ts ON vg.teacher_school_id_ = ts.id_
+        WHERE cgsm.user_id_ = #{search} AND cg.type_ = 'VIP') a
     </select>
 
     <select id="countClassStudent" resultType="int">
@@ -422,6 +431,7 @@
 
     <!-- 增加实际学生人数 -->
     <update id="addStudentNum" parameterType="com.ym.mec.biz.dal.entity.ClassGroup">
-        UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND student_num_=#{studentNum}
+        UPDATE class_group SET student_num_ = student_num_+1,update_time_=#{updateTime} WHERE id_ = #{id} AND
+        student_num_=#{studentNum}
     </update>
 </mapper>

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

@@ -12,6 +12,7 @@
         <result column="job_" property="job"/>
         <result column="mobile_no_" property="mobileNo"/>
         <result column="address_" property="address"/>
+        <result column="ownership_type_" property="ownershipType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
     </resultMap>
@@ -34,8 +35,8 @@
         <!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval
             AS ID FROM DUAL </selectKey> -->
         INSERT INTO cooperation_organ
-        (id_,name_,linkman_,job_,mobile_no_,address_,organ_id_,create_time_,update_time_)
-        VALUES(#{id},#{name},#{linkman},#{job},#{mobileNo},#{address},#{organId},now(),now())
+        (id_,name_,linkman_,job_,mobile_no_,address_,organ_id_,create_time_,update_time_,ownership_type_)
+        VALUES(#{id},#{name},#{linkman},#{job},#{mobileNo},#{address},#{organId},now(),now(),#{ownershipType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -60,6 +61,9 @@
             <if test="name != null">
                 name_ = #{name},
             </if>
+            <if test="ownershipType != null">
+                ownership_type_ = #{ownershipType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
             <if test="organId != null">
                 organ_id_ = #{organId},
             </if>

+ 43 - 0
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -110,4 +110,47 @@
     <update id="updateNextPaymentDate" parameterType="map">
         update music_group_student_fee_ set next_payment_date_ = #{nextPaymentDate},update_time_ = now() WHERE music_group_id_ = #{musicGroupId}
     </update>
+
+    <select id="queryWillRenewList" resultMap="MusicGroupStudentFee">
+        SELECT * FROM music_group_student_fee_ WHERE payment_status_ = 'PAID_COMPLETED' and date_add(now(), interval #{days} day) >= next_payment_date_
+    </select>
+    
+    <update id="batchUpdate" parameterType="java.util.List">
+    	<foreach collection="list" item="item" index="index" open="" close="" separator=";">
+        UPDATE music_group_student_fee_
+        <set>
+            <if test="item.userId != null">
+                user_id_ = #{item.userId},
+            </if>
+            <if test="item.subjectId != null">
+                subject_id_ = #{item.subjectId},
+            </if>
+            <if test="item.updateTime != null">
+                update_time_ = #{item.updateTime},
+            </if>
+            <if test="item.courseFee != null">
+                course_fee_ = #{item.courseFee},
+            </if>
+            <if test="item.musicGroupId != null">
+                music_group_id_ = #{item.musicGroupId},
+            </if>
+            <if test="item.nextPaymentDate != null">
+                next_payment_date_ = #{item.nextPaymentDate},
+            </if>
+            <if test="item.latestPaidTime != null">
+                latest_paid_time_ = #{item.latestPaidTime},
+            </if>
+            <if test="item.continuousAbsenteeismTimes != null">
+                continuous_absenteeism_times_ = #{item.continuousAbsenteeismTimes},
+            </if>
+            <if test="item.paymentStatus != null">
+                payment_status_ = #{item.paymentStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
+            </if>
+            <if test="item.temporaryCourseFee != null">
+                temporary_course_fee_ = #{item.temporaryCourseFee},
+            </if>
+        </set>
+        WHERE id_ = #{id}
+        </foreach>
+    </update>
 </mapper>

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

@@ -12,7 +12,8 @@
         <result column="organ_name_" property="organName"/>
         <result column="job_type_" property="jobType"/>
         <result column="job_nature_" property="jobNature"/>
-        <result column="is_probation_period_" property="isProbationPeriod" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_probation_period_" property="isProbationPeriod"
+                typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="education_background_" property="educationBackground"/>
         <result column="graduate_school_" property="graduateSchool"/>
         <result column="technical_titles_" property="technicalTitles"/>
@@ -29,6 +30,7 @@
 
         <result column="username_" property="username"/>
         <result column="password_" property="password"/>
+        <result column="real_name_" property="realName"/>
         <result column="salt_" property="salt"/>
         <result column="phone_" property="phone"/>
         <result column="avatar_" property="avatar"/>
@@ -47,19 +49,21 @@
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="Teacher">
-		SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
+        SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
         su.lock_flag_,su.del_flag_,su.wx_openid_,su.qq_openid_,su.user_type_,
         su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN organization o ON t.organ_id_ = o.id_
         WHERE t.id_ = #{userId} AND o.del_flag_ = 0
-	</select>
+    </select>
 
     <!-- 全查询 -->
     <select id="findAll" resultMap="Teacher">
-		SELECT * FROM teacher ORDER BY user_id_
-	</select>
+        SELECT *
+        FROM teacher
+        ORDER BY user_id_
+    </select>
 
     <!-- 向数据库增加一条记录 -->
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Teacher" useGeneratedKeys="true" keyColumn="id"
@@ -135,8 +139,8 @@
 
     <!-- 根据主键删除一条记录 -->
     <update id="delete">
-		DELETE FROM teacher WHERE user_id_ = #{userId}
-	</update>
+        DELETE FROM teacher WHERE user_id_ = #{userId}
+    </update>
 
     <update id="updateUser" parameterType="com.ym.mec.auth.api.entity.SysUser">
         UPDATE sys_user
@@ -197,7 +201,8 @@
     <select id="queryPage" resultMap="Teacher" parameterType="map">
         SELECT t.*,su.username_,su.password_,su.salt_,su.phone_,su.avatar_,
         su.lock_flag_,su.del_flag_,su.wx_openid_,su.qq_openid_,su.user_type_,
-        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_,s.name_ subject_name_
+        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,t.subject_id_,t.organ_id_,o.name_ organ_name_,s.name_
+        subject_name_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         LEFT JOIN organization o ON t.organ_id_ = o.id_
@@ -233,12 +238,12 @@
         LEFT JOIN `subject` s ON t.subject_id_ = s.id_
         LEFT JOIN organization o ON t.organ_id_ = o.id_
         <include refid="queryPageMap"/>
-	</select>
+    </select>
 
     <!-- 根据证件号查询老师 -->
     <select id="findByCertificateNum" resultMap="Teacher">
-		SELECT * FROM teacher WHERE certificate_num_ = #{certificateNum}
-	</select>
+        SELECT * FROM teacher WHERE certificate_num_ = #{certificateNum}
+    </select>
     <select id="queryGroupStudents" resultMap="com.ym.mec.biz.dal.dao.MusicGroupDao.BasicUserDto">
         SELECT su.username_,su.id_ user_id_,su.avatar_ head_url_,su.gender_,s.name_ FROM class_group_teacher_mapper cgtm
         LEFT JOIN class_group_student_mapper cgsm ON cgtm.class_group_id_ = cgsm.class_group_id_
@@ -256,4 +261,12 @@
             #{item}
         </foreach>
     </select>
+
+    <select id="findTeachers" resultMap="Teacher">
+        SELECT su.* FROM teacher t
+        LEFT JOIN sys_user su on t.id_ = su.id_ WHERE 1=1
+        <if test="organId != null and organId !=0">
+            AND t.organ_id_ = #{organId}
+        </if>
+    </select>
 </mapper>

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

@@ -0,0 +1,15 @@
+package com.ym.mec.task;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import com.ym.mec.common.config.FeignConfiguration;
+import com.ym.mec.task.fallback.TaskRemoteServiceFallback;
+
+@FeignClient(name = "web-server", configuration = { FeignConfiguration.class }, fallback = TaskRemoteServiceFallback.class)
+public interface TaskRemoteService {
+
+	@GetMapping(value = "task/refreshPaymentFeeStatus")
+	public void refreshPaymentFeeStatus();
+
+}

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

@@ -0,0 +1,19 @@
+package com.ym.mec.task.fallback;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+
+import com.ym.mec.task.TaskRemoteService;
+
+@Component
+public class TaskRemoteServiceFallback implements TaskRemoteService {
+
+	private final static Logger logger = LoggerFactory.getLogger(TaskRemoteServiceFallback.class);
+
+	@Override
+	public void refreshPaymentFeeStatus() {
+		logger.info("更新学生缴费状态的服务调用失败");
+	}
+
+}

+ 1 - 1
mec-common/common-core/src/main/java/com/ym/mec/common/service/impl/RedisIdGeneratorService.java

@@ -60,7 +60,7 @@ public class RedisIdGeneratorService implements IdGeneratorService {
 		try {
 			ValueOperations<String, Object> valueOper = redisTemplate.opsForValue();
 			Long index = valueOper.increment(key, 1);
-			orderId = prefix.concat(String.format("%1$03d", index)); // 补位操作 保证满足3位
+			orderId = prefix.concat(String.format("%1$05d", index)); // 补位操作 保证满足3位
 		} catch (Exception ex) {
 			log.error("分布式订单号生成失败异常。。。。。", ex);
 		} finally {

+ 2 - 0
mec-eureka/src/main/resources/application.yml

@@ -4,6 +4,8 @@ server:
     contextPath: /eureka
 
 eureka:
+  server:
+    peer-eureka-status-refresh-time-interval-ms: 5000
   client:
     registerWithEureka: false
     fetchRegistry: false

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

@@ -1,7 +1,5 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.biz.dal.entity.*;
-import com.ym.mec.biz.dal.enums.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
@@ -15,6 +13,7 @@ import javax.annotation.Resource;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
+import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,8 +22,22 @@ import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dto.MusicGroupSubjectGoodsAndInfoDto;
 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.MusicGroupStudentFee;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
+import com.ym.mec.biz.dal.enums.GoodsType;
+import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
@@ -34,6 +47,7 @@ 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;
 import com.ym.mec.util.string.IdWorker;
 
 @RequestMapping("musicGroup")
@@ -57,6 +71,9 @@ public class MusicGroupController extends BaseController {
     private StudentPaymentOrderService studentPaymentOrderService;
     @Autowired
     private PayService payService;
+    
+    @Autowired
+    private MusicGroupStudentFeeDao musicGroupStudentFeeDao;
 
     @ApiOperation("获取学生所在乐团列表")
     @GetMapping(value = "/queryUserMusicGroups")
@@ -119,6 +136,54 @@ public class MusicGroupController extends BaseController {
         return succeed(studentRegistration);
     }
 
+    @ApiOperation(value = "查询续费信息")
+    @GetMapping("/queryRenewInfo")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+	public HttpResponseResult queryRenewInfo(String musicGroupId) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+		if (musicGroup == null) {
+			return failed("乐团不存在");
+		}
+		MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, musicGroupId);
+
+		if (musicGroupStudentFee == null) {
+			throw new BizException("个人信息不存在");
+		}
+		if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {
+			throw new BizException("已缴费");
+		}
+
+		BigDecimal amount = musicGroupStudentFee.getTemporaryCourseFee();
+		if (amount == null || amount.doubleValue() == 0) {
+			amount = musicGroupStudentFee.getCourseFee();
+		}
+		ModelMap model = new ModelMap();
+		model.put("musicGroup", musicGroup);
+		model.put("amount", amount);
+
+		return succeed(model);
+	}
+
+    @ApiOperation(value = "续费")
+    @GetMapping("/renew")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+	public HttpResponseResult renew(String musicGroupId) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		return succeed(musicGroupService.renew(musicGroupId, userId));
+	}
+
+    @ApiOperation(value = "退团")
+    @GetMapping("/quitMusicGroup")
+    @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团id", required = true, dataType = "String")})
+	public HttpResponseResult quitMusicGroup(String musicGroupId) throws Exception {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Integer userId = sysUser.getId();
+		return succeed(musicGroupService.quitMusicGroup(musicGroupId, userId));
+	}
+
 
     @ApiOperation(value = "乐团报名支付")
     @PostMapping("/pay")

+ 1 - 1
mec-task/pom.xml

@@ -62,7 +62,7 @@
         
         <dependency>
         	<groupId>com.ym</groupId>
-        	<artifactId>mec-auth-api</artifactId>
+        	<artifactId>mec-client-api</artifactId>
         </dependency>
 		
 	</dependencies>

+ 0 - 27
mec-task/src/main/java/com/ym/mec/task/config/WebMvcConfig.java

@@ -1,44 +1,17 @@
 package com.ym.mec.task.config;
 
-import java.io.IOException;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
-import java.util.Date;
 import java.util.List;
 
 import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
-import org.springframework.context.annotation.Primary;
 import org.springframework.format.FormatterRegistry;
 import org.springframework.http.MediaType;
 import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
 
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.DeserializationFeature;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
-import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
 import com.ym.mec.common.config.EnumConverterFactory;
 import com.ym.mec.common.config.LocalFastJsonHttpMessageConverter;
-import com.ym.mec.common.enums.BaseEnum;
 
 @Configuration
 public class WebMvcConfig implements WebMvcConfigurer {

+ 6 - 7
mec-task/src/main/java/com/ym/mec/task/jobs/TestTask.java → mec-task/src/main/java/com/ym/mec/task/jobs/RefreshPaymentFeeStatusTask.java

@@ -3,23 +3,22 @@ package com.ym.mec.task.jobs;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.task.TaskRemoteService;
 import com.ym.mec.task.core.BaseTask;
 import com.ym.mec.task.core.TaskException;
 
 /**
- * 手动查询订单支付状态
+ * 刷新缴费状态
  */
 @Service
-public class TestTask extends BaseTask {
-	
+public class RefreshPaymentFeeStatusTask extends BaseTask {
+
 	@Autowired
-	private SysUserFeignService sysUserFeignService;
+	private TaskRemoteService taskRemoteService;
 
 	@Override
 	public void execute() throws TaskException {
-		System.out.println("**************** Test  Task ****************");
-		sysUserFeignService.test();
+		taskRemoteService.refreshPaymentFeeStatus();
 	}
 
 }

+ 17 - 0
mec-task/src/main/resources/application.yml

@@ -33,6 +33,23 @@ spring:
     testOnReturn: false
     poolPreparedStatements: true
     maxOpenPreparedStatements: 20
+    
+  redis:
+    host: 47.99.212.176
+    port: 6379
+    password: 
+    database: 0
+    #连接超时时间(毫秒)
+    timeout: 10000
+    pool:
+      #连接池最大连接数(使用负值表示没有限制)
+      max-active: 10
+      #连接池最大阻塞等待时间(使用负值表示没有限制)
+      max-wait: -1
+      #连接池中的最大空闲连接
+      max-idle: 10
+      #连接池中的最小空闲连接
+      min-idle: 0
 
 mybatis:
     mapperLocations: classpath:config/mybatis/*.xml

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

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

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

@@ -109,7 +109,7 @@ public class ClassGroupController extends BaseController {
     }
 
     @ApiOperation(value = "乐团班级老师设置")
-    @GetMapping("/addClassGroupTeacher")
+    @PostMapping("/addClassGroupTeacher")
     public Object addClassGroupTeacher(@ApiParam(value = "乐团班级老师json", required = true) @RequestParam List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
         if (classGroupTeacherMapperList.size() <= 0) {
             return failed("参数不合法");
@@ -128,12 +128,17 @@ public class ClassGroupController extends BaseController {
     @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
             @ApiImplicitParam(name = "type", value = "结算类型(1-基准课酬,4-梯度课酬)", required = true, dataType = "Integer")})
     public Object findMusicGroupClassTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type) {
-        return succeed(classGroupService.getClassGroupAndTeacherSalary(musicGroupId,type));
+        try {
+            return succeed(classGroupService.getClassGroupAndTeacherSalary(musicGroupId, type));
+        } catch (Exception e) {
+            return failed(e.getMessage());
+        }
     }
 
     @ApiOperation(value = "乐团班级老师课酬确认")
-    @GetMapping("/setClassGroupTeacherSalary")
-    public Object setClassGroupTeacherSalary(@ApiParam(value = "乐团班级老师json", required = true) @RequestParam List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
+    @PostMapping("/setClassGroupTeacherSalary")
+    @ApiImplicitParams({@ApiImplicitParam(name = "classGroupTeacherMapperList", value = "乐团班级老师json", required = true, dataType = "String")})
+    public Object setClassGroupTeacherSalary(@RequestParam List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
         if (classGroupTeacherMapperList.size() <= 0) {
             return failed("参数不合法");
         }
@@ -142,8 +147,8 @@ public class ClassGroupController extends BaseController {
 
     @ApiOperation(value = "根据群编号,获取群组所有成员基本信息")
     @GetMapping("/findGroupUsers")
-    public Object findGroupUsers(String groupId){
-        if(StringUtils.isEmpty(groupId)){
+    public Object findGroupUsers(String groupId) {
+        if (StringUtils.isEmpty(groupId)) {
             return failed("参数校验错误");
         }
         return succeed(classGroupService.findGroupUsers(groupId));

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

@@ -0,0 +1,24 @@
+package com.ym.mec.web.controller;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.biz.service.MusicGroupStudentFeeService;
+import com.ym.mec.common.controller.BaseController;
+
+@RequestMapping("task")
+@RestController
+public class TaskController extends BaseController {
+	
+	@Autowired
+	private MusicGroupStudentFeeService musicGroupStudentFeeService;
+
+    @GetMapping("/refreshPaymentFeeStatus")
+    //刷新付费状态
+    public void refreshPaymentFeeStatus() {
+    	musicGroupStudentFeeService.refreshPaymentFeeStatus();
+    }
+
+}

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

@@ -9,6 +9,7 @@ import com.ym.mec.biz.dal.page.VipClassQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.TeacherService;
 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;
@@ -83,34 +84,42 @@ public class TeacherController extends BaseController {
     @ApiOperation(value = "获取老师乐团课程信息列表")
     @GetMapping("/getTeacherMusicClass")
     @ApiParam(value = "教师编号", required = true)
-    public Object getTeacherMusicClass(Integer teacherId){
+    public Object getTeacherMusicClass(Integer teacherId) {
         return succeed(classGroupService.getTeacherMusicClass(teacherId));
     }
 
     @ApiOperation(value = "获取老师VIP课程信息列表")
     @GetMapping("/getTeacherVipClass")
-    public Object getTeacherVipClass(VipClassQueryInfo queryInfo){
+    public Object getTeacherVipClass(VipClassQueryInfo queryInfo) {
         return succeed(classGroupService.getTeacherVipClass(queryInfo));
     }
 
     @ApiOperation(value = "获取教师所有聊天群组")
     @GetMapping("/queryTeacherGroups")
-    public Object queryTeacherGroups(String search){
+    public Object queryTeacherGroups(String search) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             return failed("获取用户信息失败");
         }
-        return succeed(teacherService.queryTeacherGroups(sysUser.getId(),search));
+        return succeed(teacherService.queryTeacherGroups(sysUser.getId(), search));
     }
 
     @ApiOperation(value = "获取和当前教师相关的所有学员聊天列表")
     @GetMapping("/queryGroupStudents")
-    public Object queryGroupStudents(String search){
+    public Object queryGroupStudents(String search) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
+        if (sysUser == null) {
             return failed("获取用户信息失败");
         }
-        return succeed(teacherService.queryGroupStudents(sysUser.getId(),search));
+        return succeed(teacherService.queryGroupStudents(sysUser.getId(), search));
+    }
+
+
+    @ApiOperation(value = "获取分部所有老师")
+    @GetMapping("/findTeachers")
+    public HttpResponseResult findTeachers() {
+        Integer organId = sysUserFeignService.queryUserInfo().getOrganId();
+        return succeed(teacherService.findTeachers(organId));
     }
 
 }