Jelajahi Sumber

Merge remote-tracking branch 'origin/master'

周箭河 5 tahun lalu
induk
melakukan
dbdcdb12b3
41 mengubah file dengan 769 tambahan dan 332 penghapusan
  1. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/MusicGroupDao.java
  2. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRechargeDao.java
  3. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageConfigDao.java
  4. 60 49
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Goods.java
  5. 13 3
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentRecharge.java
  6. 6 32
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessageConfig.java
  7. 128 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/MessageTypeEnum.java
  8. 62 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupQueryInfo.java
  9. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/service/GoodsService.java
  10. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupService.java
  11. 7 0
      mec-biz/src/main/java/com/ym/mec/biz/service/MusicGroupSubjectPlanService.java
  12. 0 15
      mec-biz/src/main/java/com/ym/mec/biz/service/SmsCodeService.java
  13. 19 7
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRechargeService.java
  14. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageConfigService.java
  15. 8 8
      mec-biz/src/main/java/com/ym/mec/biz/service/SysMessageService.java
  16. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  17. 2 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/GoodsServiceImpl.java
  18. 73 26
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  19. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupSubjectPlanServiceImpl.java
  20. 11 39
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java
  21. 99 30
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java
  22. 19 23
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  23. 3 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageConfigServiceImpl.java
  24. 9 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMessageServiceImpl.java
  25. 2 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  26. 23 3
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  27. 11 3
      mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml
  28. 1 3
      mec-biz/src/main/resources/config/mybatis/SysMessageConfigMapper.xml
  29. 1 2
      mec-biz/src/main/resources/config/mybatis/SysMessageMapper.xml
  30. 3 2
      mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml
  31. 5 0
      mec-education/pom.xml
  32. 28 0
      mec-education/src/main/java/com/ym/mec/education/config/ImageVerifyCodeConfig.java
  33. 1 1
      mec-education/src/main/java/com/ym/mec/education/config/ResourceServerConfig.java
  34. 112 0
      mec-education/src/main/java/com/ym/mec/education/controller/SmsCodeController.java
  35. 1 0
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  36. 28 40
      mec-student/src/main/java/com/ym/mec/student/controller/RechargeController.java
  37. 4 5
      mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java
  38. 2 3
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java
  39. 2 7
      mec-web/src/main/java/com/ym/mec/web/controller/GoodsController.java
  40. 2 1
      mec-web/src/main/java/com/ym/mec/web/controller/MusicGroupController.java
  41. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCashAccountDetailController.java

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

@@ -27,10 +27,10 @@ public interface MusicGroupDao extends BaseDAO<String, MusicGroup> {
 
     /**
      * 获取个人中心乐团数据
-     * @param id
+     * @param userId
      * @return
      */
-    MusicCardDto queryPersonalMusicGroups(Integer id);
+    MusicCardDto queryPersonalMusicGroups(@Param("userId") Integer userId);
 
     /**
      * 获取用户有效的乐团数

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

@@ -6,6 +6,7 @@ import com.ym.mec.common.dal.BaseDAO;
 public interface StudentRechargeDao extends BaseDAO<String, StudentRecharge> {
 
 
-    StudentRecharge selectByTransNo(String transNo);
+    StudentRecharge queryByTransNo(String transNo);
 	
+    StudentRecharge queryByOrderNo(String orderNo);
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMessageConfigDao.java

@@ -1,15 +1,15 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
 import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
 
 public interface SysMessageConfigDao extends BaseDAO<Integer, SysMessageConfig> {
 
 	/**
 	 * 根据消息类型查询对象
-	 * @param type
+	 * @param messageType
 	 * @return
 	 */
-	public SysMessageConfig queryByType(MessageType type);
+	SysMessageConfig queryByType(@Param("messageType") String messageType);
 }

+ 60 - 49
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Goods.java

@@ -18,7 +18,7 @@ public class Goods {
 	/** 商品编号 */
 	@ApiModelProperty(value = "商品编号",required = false)
 	private Integer id;
-	
+
 	/** 产品分类 */
 	@ApiModelProperty(value = "产品分类",required = false)
 	private Integer goodsCategoryId;
@@ -26,71 +26,71 @@ public class Goods {
 	/** 产品分类 */
 	@ApiModelProperty(value = "产品分类名称",required = false)
 	private String goodsCategoryName;
-	
+
 	/** 商品货号 */
 	@ApiModelProperty(value = "商品货号",required = false)
 	private String sn;
-	
+
 	/** 商品名称 */
 	@ApiModelProperty(value = "商品名称",required = false)
 	private String name;
-	
+
 	/** 品牌 */
 	@ApiModelProperty(value = "品牌",required = false)
 	private String brand;
-	
+
 	/** 规格 */
 	@ApiModelProperty(value = "规格",required = false)
 	private String specification;
-	
+
 	/** 展示图片的地址 */
 	@ApiModelProperty(value = "展示图片的地址",required = false)
 	private String image;
-	
+
 	/** 库存数量 */
 	@ApiModelProperty(value = "库存数量",required = false)
 	private Integer stockCount;
-	
+
 	/** 总销量数 */
 	@ApiModelProperty(value = "总销量数",required = false)
 	private Integer sellCount;
-	
+
 	/** 市场销售价 */
 	@ApiModelProperty(value = "市场销售价",required = false)
 	private BigDecimal marketPrice;
-	
+
 	/** 折扣价 */
 	@ApiModelProperty(value = "折扣价",required = false)
 	private BigDecimal discountPrice;
-	
+
 	/** 团购价 */
 	@ApiModelProperty(value = "团购价",required = false)
 	private BigDecimal groupPurchasePrice;
-	
+
 	/** 页面简介 */
 	@ApiModelProperty(value = "页面简介",required = false)
 	private String brief;
-	
+
 	/** 商品的详细描述 */
 	@ApiModelProperty(value = "商品的详细描述",required = false)
 	private String desc;
-	
+
 	/** 是否是新品(1,是  0,否) */
 	@ApiModelProperty(value = "是否是新品(1,是  0,否)",required = false)
 	private YesOrNoEnum isNew;
-	
+
 	/** 是否置顶(1,置顶   0,不置顶) */
 	@ApiModelProperty(value = "是否置顶(1,置顶   0,不置顶)",required = false)
 	private YesOrNoEnum isTop;
-	
+
 	/** 状态(1,上架  0,下架) */
 	@ApiModelProperty(value = "状态(1,上架  0,下架)",required = false)
 	private YesOrNoEnum status;
-	
+
 	/** 备注 */
 	@ApiModelProperty(value = "备注",required = false)
 	private String memo;
-	
+
 	/** 发布时间 */
 	@ApiModelProperty(value = "发布时间",required = false)
 	private java.util.Date publishTime;
@@ -101,17 +101,28 @@ public class Goods {
 
 	/** 辅件列表 */
 	private List<Goods> goodsList;
-	
+
+	/** 声部列表编号 */
+	private String subjectIds;
+
 	/** 创建时间 */
 	private java.util.Date createTime;
-	
+
 	/** 修改时间 */
 	private java.util.Date updateTime;
 
 	@ApiModelProperty(value = "商品类型", required = false)
 	private GoodsType type;
 
-	public String getGoodsCategoryName() {
+    public String getSubjectIds() {
+        return subjectIds;
+    }
+
+    public void setSubjectIds(String subjectIds) {
+        this.subjectIds = subjectIds;
+    }
+
+    public String getGoodsCategoryName() {
 		return goodsCategoryName;
 	}
 
@@ -138,71 +149,71 @@ public class Goods {
 	public void setId(Integer id){
 		this.id = id;
 	}
-	
+
 	public Integer getId(){
 		return this.id;
 	}
-			
+
 	public void setGoodsCategoryId(Integer goodsCategoryId){
 		this.goodsCategoryId = goodsCategoryId;
 	}
-	
+
 	public Integer getGoodsCategoryId(){
 		return this.goodsCategoryId;
 	}
-			
+
 	public void setSn(String sn){
 		this.sn = sn;
 	}
-	
+
 	public String getSn(){
 		return this.sn;
 	}
-			
+
 	public void setName(String name){
 		this.name = name;
 	}
-	
+
 	public String getName(){
 		return this.name;
 	}
-			
+
 	public void setBrand(String brand){
 		this.brand = brand;
 	}
-	
+
 	public String getBrand(){
 		return this.brand;
 	}
-			
+
 	public void setSpecification(String specification){
 		this.specification = specification;
 	}
-	
+
 	public String getSpecification(){
 		return this.specification;
 	}
-			
+
 	public void setImage(String image){
 		this.image = image;
 	}
-	
+
 	public String getImage(){
 		return this.image;
 	}
-			
+
 	public void setStockCount(Integer stockCount){
 		this.stockCount = stockCount;
 	}
-	
+
 	public Integer getStockCount(){
 		return this.stockCount;
 	}
-			
+
 	public void setSellCount(Integer sellCount){
 		this.sellCount = sellCount;
 	}
-	
+
 	public Integer getSellCount(){
 		return this.sellCount;
 	}
@@ -234,15 +245,15 @@ public class Goods {
 	public void setBrief(String brief){
 		this.brief = brief;
 	}
-	
+
 	public String getBrief(){
 		return this.brief;
 	}
-			
+
 	public void setDesc(String desc){
 		this.desc = desc;
 	}
-	
+
 	public String getDesc(){
 		return this.desc;
 	}
@@ -274,31 +285,31 @@ public class Goods {
 	public void setMemo(String memo){
 		this.memo = memo;
 	}
-	
+
 	public String getMemo(){
 		return this.memo;
 	}
-			
+
 	public void setPublishTime(java.util.Date publishTime){
 		this.publishTime = publishTime;
 	}
-	
+
 	public java.util.Date getPublishTime(){
 		return this.publishTime;
 	}
-			
+
 	public void setCreateTime(java.util.Date createTime){
 		this.createTime = createTime;
 	}
-	
+
 	public java.util.Date getCreateTime(){
 		return this.createTime;
 	}
-			
+
 	public void setUpdateTime(java.util.Date updateTime){
 		this.updateTime = updateTime;
 	}
-	
+
 	public java.util.Date getUpdateTime(){
 		return this.updateTime;
 	}
@@ -310,7 +321,7 @@ public class Goods {
 	public void setGoodsList(List<Goods> goodsList) {
 		this.goodsList = goodsList;
 	}
-			
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

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

@@ -19,12 +19,14 @@ public class StudentRecharge {
 	
 	/** 用户编号 */
 	@ApiModelProperty(value = "用户编号",required = false)
-	private Long userId;
+	private Integer userId;
 	
 	/** 交易流水号,第三方支付机构返回的 */
 	@ApiModelProperty(value = "交易流水号",required = false)
 	private String transNo;
 	
+	private String orderNo;
+	
 	/** 1,交易中;2,成功交易;3,交易失败;4,交易关闭 */
 	@ApiModelProperty(value = "交易状态",required = false)
 	private DealStatusEnum status;
@@ -67,11 +69,11 @@ public class StudentRecharge {
 		return this.id;
 	}
 			
-	public void setUserId(Long userId){
+	public void setUserId(Integer userId){
 		this.userId = userId;
 	}
 	
-	public Long getUserId(){
+	public Integer getUserId(){
 		return this.userId;
 	}
 			
@@ -83,6 +85,14 @@ public class StudentRecharge {
 		return this.transNo;
 	}
 
+	public String getOrderNo() {
+		return orderNo;
+	}
+
+	public void setOrderNo(String orderNo) {
+		this.orderNo = orderNo;
+	}
+
 	public DealStatusEnum getStatus() {
 		return status;
 	}

+ 6 - 32
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysMessageConfig.java

@@ -1,44 +1,18 @@
 package com.ym.mec.biz.dal.entity;
 
-import org.apache.commons.lang.StringUtils;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
-import com.ym.mec.common.enums.BaseEnum;
-
 /**
  * 对应数据库表(sys_message_config):
  */
 public class SysMessageConfig {
 
-	public enum MessageType implements BaseEnum<String, MessageType> {
-		USER_REGISTER("用户注册"),
-		PUSH("推送"),
-		SMS("短信");
-
-		private MessageType(String code) {
-		}
-
-		@Override
-		public String getCode() {
-			return name();
-		}
-
-		public static MessageType getMessageType(String name) {
-			for (MessageType type : MessageType.values()) {
-				if (StringUtils.equals(type.name(), name)) {
-					return type;
-				}
-			}
-			return null;
-		}
-
-	}
-
 	/**  */
 	private Integer id;
 
 	/** 消息类型 */
-	private MessageType messageType;
+	private MessageTypeEnum messageType;
 
 	/** 消息内容 */
 	private String content;
@@ -62,12 +36,12 @@ public class SysMessageConfig {
 		return this.id;
 	}
 
-	public void setMessageType(MessageType messageType) {
-		this.messageType = messageType;
+	public MessageTypeEnum getMessageType() {
+		return messageType;
 	}
 
-	public MessageType getMessageType() {
-		return this.messageType;
+	public void setMessageType(MessageTypeEnum messageType) {
+		this.messageType = messageType;
 	}
 
 	public void setContent(String content) {

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

@@ -0,0 +1,128 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+public enum MessageTypeEnum implements BaseEnum<String, MessageTypeEnum> {
+    SMS_APPLY_MESSAGE("SMS_APPLY_MESSAGE", "报名通知"),
+    SMS_VERIFY_CODE_LOGIN("SMS_VERIFY_CODE_LOGIN", "验证码登录"),
+    SMS_PAYMENT_MESSAGE("SMS_PAYMENT_MESSAGE", "缴费通知"),
+    SMS_PAYMENT_SUCCESS("SMS_PAYMENT_SUCCESS", "缴费成功"),
+    SMS_RENEW_SUCCESS("SMS_RENEW_SUCCESS", "续费成功"),
+    SMS_BALANCE_PAY("SMS_BALANCE_PAY", "余额充值"),
+    SMS_BASICS_SKILL_APPLY_MESSAGE("SMS_BASICS_SKILL_APPLY_MESSAGE", "基础技能训练报名通知"),
+    SMS_VIP_COURSE_BUY_SUCCESS("SMS_VIP_COURSE_BUY_SUCCESS", "VIP课购买成功"),
+    SMS_VIP_COURSE_SIGN("SMS_VIP_COURSE_SIGN", "VIP课签到"),
+    SMS_QUIT_COURSE_SUCCESS("SMS_QUIT_COURSE_SUCCESS", "退课成功"),
+    SMS_WITHDRAW_SUCCESS("SMS_WITHDRAW_SUCCESS", "提现成功"),
+    SMS_MUSIC_GROUP_CLOSE("SMS_MUSIC_GROUP_CLOSE", "乐团关闭(关闭后)"),
+
+    STUDENT_SMS_PAYMENT_RESULT("STUDENT_SMS_PAYMENT_RESULT", "缴费结果"),
+    STUDENT_PUSH_PAYMENT_RESULT("STUDENT_PUSH_PAYMENT_RESULT", "缴费结果"),
+    STUDENT_PUSH_MUSIC_GROUP_CLOSE("STUDENT_PUSH_MUSIC_GROUP_CLOSE", "乐团关闭(确认后)"),
+    STUDENT_PUSH_BASICS_SKILL_APPLY_MESSAGE("STUDENT_PUSH_BASICS_SKILL_APPLY_MESSAGE", "基础技能训练报名通知"),
+    STUDENT_SMS_WAIT_RENEW_MESSAGE("STUDENT_SMS_WAIT_RENEW_MESSAGE", "待续费通知"),
+    STUDENT_PUSH_WAIT_RENEW_MESSAGE("STUDENT_PUSH_WAIT_RENEW_MESSAGE", "待续费通知"),
+    STUDENT_SMS_MUSIC_GROUP_RENEW_RESULT("STUDENT_SMS_MUSIC_GROUP_RENEW_RESULT", "乐团续费结果"),
+    STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT("STUDENT_PUSH_MUSIC_GROUP_RENEW_RESULT", "乐团续费结果"),
+    STUDENT_SMS_BALANCE_CONSUME("STUDENT_SMS_BALANCE_CONSUME", "余额消费"),
+    STUDENT_PUSH_BALANCE_CONSUME("STUDENT_PUSH_BALANCE_CONSUME", "余额消费"),
+    STUDENT_PUSH_VIP_BUY("STUDENT_PUSH_VIP_BUY", "VIP课购买"),
+    STUDENT_PUSH_HAVE_COURSE_MESSAGE("STUDENT_PUSH_HAVE_COURSE_MESSAGE", "有课提醒"),
+    STUDENT_PUSH_ATTEND_COURSE_MESSAGE("STUDENT_PUSH_ATTEND_COURSE_MESSAGE", "上课提醒"),
+    STUDENT_PUSH_ONLINE_COURSE_ACTION("STUDENT_PUSH_ONLINE_COURSE_ACTION", "线上课开始"),
+    STUDENT_PUSH_NAMES_ACHIEVE("STUDENT_PUSH_NAMES_ACHIEVE", "点名完成"),
+    SCHEDULE_CHANGE("SCHEDULE_CHANGE", "课表变动"),
+    STUDENT_SMS_TEACHING_SCHOOL_CHANGE("STUDENT_SMS_TEACHING_SCHOOL_CHANGE", "教学点变动"),
+    STUDENT_PUSH_TEACHING_SCHOOL_CHANGE("STUDENT_PUSH_TEACHING_SCHOOL_CHANGE", "教学点变动"),
+    STUDENT_PUSH_JOB_MESSAGE("STUDENT_PUSH_JOB_MESSAGE", "作业提醒"),
+    STUDENT_PUSH_CLASS_MESSAGE("STUDENT_PUSH_CLASS_MESSAGE", "班级消息"),
+
+    TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN("TEACHER_PUSH_MUSIC_GROUP_COURSE_ADD_PLAN", "乐团课新增安排"),
+    TEACHER_SMS_VIP_COURSE_APPLY_RESULT("TEACHER_SMS_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),
+    TEACHER_PUSH_VIP_COURSE_APPLY_RESULT("TEACHER_PUSH_VIP_COURSE_APPLY_RESULT", "VIP课申请结果"),
+    TEACHER_SMS_VIP_COURSE_ADD("TEACHER_SMS_VIP_COURSE_ADD", "VIP课新增"),
+    TEACHER_PUSH_VIP_COURSE_ADD("TEACHER_PUSH_VIP_COURSE_ADD", "VIP课新增"),
+    TEACHER_PUSH_VIP_COURSE_STOP("TEACHER_PUSH_VIP_COURSE_STOP", "VIP课停止"),
+    TEACHER_PUSH_ACTION_COURSE_MESSAGE("TEACHER_PUSH_ACTION_COURSE_MESSAGE", "开课提醒"),
+    TEACHER_PUSH_HAVE_COURSE_MESSAGE("TEACHER_PUSH_HAVE_COURSE_MESSAGE", "有课提醒"),
+    TEACHER_PUSH_ATTEND_CLASS_MESSAGE("TEACHER_PUSH_ATTEND_CLASS_MESSAGE", "上课提醒"),
+    TEACHER_PUSH_SIGN_IN_MESSAGE("TEACHER_PUSH_SIGN_IN_MESSAGE", "签到提醒"),
+    TEACHER_PUSH_NAMES_MESSAGE("TEACHER_PUSH_NAMES_MESSAGE", "点名提醒"),
+    TEACHER_PUSH_SIGN_OUT_MESSAGE("TEACHER_PUSH_SIGN_OUT_MESSAGE", "签退提醒"),
+    TEACHER_PUSH_JOB_WAIT_REPLY("TEACHER_PUSH_JOB_WAIT_REPLY", "作业待回复"),
+    TEACHER_PUSH_SUBSTITUTE_PLAN("TEACHER_PUSH_SUBSTITUTE_PLAN", "代课安排"),
+    TEACHER_PUSH_LEAVE_RESULT("TEACHER_PUSH_LEAVE_RESULT", "请假结果"),
+    TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT("TEACHER_PUSH_COURSE_SCHEDULE_CHANGE_RESULT", "课时调整结果"),
+    TEACHER_PUSH_STUDENT_LEAVE("TEACHER_PUSH_STUDENT_LEAVE", "学员请假"),
+    TEACHER_PUSH_CLASS_MESSAGE("TEACHER_PUSH_CLASS_MESSAGE", "班级消息"),
+
+    EDUCATION_PUSH_MUSIC_GROUP_FOUND("EDUCATION_PUSH_MUSIC_GROUP_FOUND", "乐团成立"),
+    EDUCATION_PUSH_MUSIC_GROUP_CLOSE("EDUCATION_PUSH_MUSIC_GROUP_CLOSE", "乐团关闭"),
+    EDUCATION_PUSH_COURSE_CHANGE("EDUCATION_PUSH_COURSE_CHANGE", "课程调整"),
+    EDUCATION_PUSH_TOMORROW_COURSE_PLAN("EDUCATION_PUSH_TOMORROW_COURSE_PLAN", "明日课程安排"),
+    EDUCATION_PUSH_TEACHER_NO_SIGN_IN("EDUCATION_PUSH_TEACHER_NO_SIGN_IN", "老师未签到"),
+    EDUCATION_PUSH_TEACHER_EXCEPTION_SING_IN("EDUCATION_PUSH_TEACHER_EXCEPTION_SING_IN", "老师异常签到"),
+    EDUCATION_PUSH_TEACHER_NO_SIGN_OUT("EDUCATION_PUSH_TEACHER_NO_SIGN_OUT", "老师未签退"),
+    EDUCATION_PUSH_STUDENT_LEAVE("EDUCATION_PUSH_STUDENT_LEAVE", "学员请假"),
+    EDUCATION_PUSH_STUDENT_CONTINUE_NO_ARRIVAL("EDUCATION_PUSH_STUDENT_CONTINUE_NO_ARRIVAL", "学员连续未到"),
+    EDUCATION_PUSH_STUDENT_NO_PAYMENT("EDUCATION_PUSH_STUDENT_NO_PAYMENT", "学员未交费"),
+    EDUCATION_PUSH_VIP_COURSE_APPLY("EDUCATION_PUSH_VIP_COURSE_APPLY", "VIP课申请"),
+    EDUCATION_PUSH_TEACHER_LEAVE_APPLY("EDUCATION_PUSH_TEACHER_LEAVE_APPLY", "老师请假申请"),
+    EDUCATION_PUSH_STUDENT_QUIT_MUSIC_GROUP_APPLY("EDUCATION_PUSH_STUDENT_QUIT_MUSIC_GROUP_APPLY", "学员退团申请"),
+    EDUCATION_PUSH_STUDENT_QUIT_COURSE_APPLY("EDUCATION_PUSH_STUDENT_QUIT_COURSE_APPLY", "学员退课申请"),
+    EDUCATION_PUSH_STUDENT_WITHDRAW_APPLY("EDUCATION_PUSH_STUDENT_WITHDRAW_APPLY", "学员提现申请"),
+    EDUCATION_PUSH_STUDENT_APPEAL("EDUCATION_PUSH_STUDENT_APPEAL", "学员申诉"),
+
+    BACKSTAGE_CREATE_MUSIC_GROUP_APPLY("BACKSTAGE_CREATE_MUSIC_GROUP_APPLY", "建团申请"),
+    BACKSTAGE_ACTION_APPLY("BACKSTAGE_ACTION_APPLY", "开启报名"),
+    BACKSTAGE_ACTION_PAYMENT("BACKSTAGE_ACTION_PAYMENT", "开启缴费"),
+    BACKSTAGE_LENGTHEN_PAYMENT("BACKSTAGE_LENGTHEN_PAYMENT", "延长缴费"),
+    BACKSTAGE_ACTION_GROUP("BACKSTAGE_ACTION_GROUP", "开团"),
+    BACKSTAGE_STUDENT_SUBJECT_CHANGE("BACKSTAGE_STUDENT_SUBJECT_CHANGE", "学员声部调整"),
+    BACKSTAGE_MUSIC_GROUP_MARKING("BACKSTAGE_MUSIC_GROUP_MARKING", "乐团筹备中"),
+    BACKSTAGE_MARK_OK("BACKSTAGE_MARK_OK", "筹备完成"),
+    BACKSTAGE_MARK_QUIT("BACKSTAGE_MARK_QUIT", "筹备中,退回"),
+    BACKSTAGE_MUSIC_GROUP_ADD_STUDENT("BACKSTAGE_MUSIC_GROUP_ADD_STUDENT", "乐团添加学员"),
+    BACKSTAGE_TEACHER_AMOUNT_CHANGE("BACKSTAGE_TEACHER_AMOUNT_CHANGE", "老师课酬调整"),
+    BACKSTAGE_COURSE_CHANGE("BACKSTAGE_COURSE_CHANGE", "课时、课程调整"),
+    BACKSTAGE_MUSIC_GROUP_IN_CHANGE("BACKSTAGE_MUSIC_GROUP_IN_CHANGE", "乐团内调整"),
+    BACKSTAGE_SPAN_GROUP_CHANGE("BACKSTAGE_SPAN_GROUP_CHANGE", "跨越团调整"),
+    BACKSTAGE_MUSIC_GROUP_STOP("BACKSTAGE_MUSIC_GROUP_STOP", "乐团暂停"),
+    BACKSTAGE_MUSIC_GROUP_CLOSE("BACKSTAGE_MUSIC_GROUP_CLOSE", "乐团结束"),
+    BACKSTAGE_VIP_COURSE_APPLY("BACKSTAGE_VIP_COURSE_APPLY", "VIP课申请"),
+    BACKSTAGE_VIP_COURSE_STOP("BACKSTAGE_VIP_COURSE_STOP", "VIP课停止"),
+    BACKSTAGE_TEACHER_FREEZE("BACKSTAGE_TEACHER_FREEZE", "老师冻结"),
+    BACKSTAGE_TEACHER_POSITIVE("BACKSTAGE_TEACHER_POSITIVE", "老师转正"),
+    BACKSTAGE_STUDENT_OK_QUIT_GROUP("BACKSTAGE_STUDENT_OK_QUIT_GROUP", "学员确认退团"),
+    BACKSTAGE_STUDENT_OK_QUIT_COURSE("BACKSTAGE_STUDENT_OK_QUIT_COURSE", "学员确认退课"),
+    BACKSTAGE_STUDENT_APPEAL("BACKSTAGE_STUDENT_APPEAL", "学员申述"),
+    BACKSTAGE_STUDENT_APPLY_QUIT_GROUP("BACKSTAGE_STUDENT_APPLY_QUIT_GROUP", "学员申请退团"),
+    BACKSTAGE_STUDENT_APPLY_QUIT_COURSE("BACKSTAGE_STUDENT_APPLY_QUIT_COURSE", "学员申请退课"),
+    BACKSTAGE_STUDENT_APPLY_WITHDRAW("BACKSTAGE_STUDNET_APPLY_WITHDRAW", "学员申请提现");
+
+    MessageTypeEnum(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    private String code;
+
+    private String msg;
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public String getCode() {
+        return code;
+    }
+}

+ 62 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/MusicGroupQueryInfo.java

@@ -0,0 +1,62 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+public class MusicGroupQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "所属分部编号",required = false)
+    private Integer organId;
+
+    @ApiModelProperty(value = "乐团编号",required = false)
+    private String musicGroupId;
+
+    @ApiModelProperty(value = "乐团名称",required = false)
+    private String musicGroupName;
+
+    @ApiModelProperty(value = "收费类型编号",required = false)
+    private Integer chargeTypeId;
+
+    @ApiModelProperty(value = "乐团状态",required = false)
+    private String musicGroupStatus;
+
+    public Integer getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Integer organId) {
+        this.organId = organId;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+
+    public String getMusicGroupName() {
+        return musicGroupName;
+    }
+
+    public void setMusicGroupName(String musicGroupName) {
+        this.musicGroupName = musicGroupName;
+    }
+
+    public Integer getChargeTypeId() {
+        return chargeTypeId;
+    }
+
+    public void setChargeTypeId(Integer chargeTypeId) {
+        this.chargeTypeId = chargeTypeId;
+    }
+
+    public String getMusicGroupStatus() {
+        return musicGroupStatus;
+    }
+
+    public void setMusicGroupStatus(String musicGroupStatus) {
+        this.musicGroupStatus = musicGroupStatus;
+    }
+}

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

@@ -31,5 +31,4 @@ public interface GoodsService extends BaseService<Integer, Goods> {
      * @return
      */
     List<Goods> findGoodsByIds(String ids);
-
 }

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

@@ -15,10 +15,10 @@ import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
 import com.ym.mec.biz.dal.entity.ApprovalStatus;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 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;
 
 public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	/**
@@ -131,7 +131,7 @@ public interface MusicGroupService extends BaseService<String, MusicGroup> {
 	 * @param queryInfo
 	 * @return
 	 */
-	PageInfo<MusicGroup> queryMusicGroupPage(QueryInfo queryInfo);
+	PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo);
 
 	/**
 	 * 修改乐团基本信息

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

@@ -41,4 +41,11 @@ public interface MusicGroupSubjectPlanService extends BaseService<Integer, Music
      * @return
      */
     MusicGroupRegRespDto getMusicGroupRegInfo(String musicGroupId);
+
+    /**
+     * 报名人数加一
+     * @param musicGroupId
+     * @param subjectId
+     */
+    void addApplyStudentNum(String musicGroupId, Integer subjectId);
 }

+ 0 - 15
mec-biz/src/main/java/com/ym/mec/biz/service/SmsCodeService.java

@@ -15,19 +15,4 @@ public interface SmsCodeService {
 	 * @return
 	 */
 	boolean sendValidCode(String mobile) throws Exception;
-
-	/**
-	 * 获取验证码
-	 *
-	 * @param mobile 手机号
-	 * @return 验证码
-	 */
-	Object getValidCode(String mobile);
-
-	/**
-	 * 删除验证码
-	 *
-	 * @param mobile
-	 */
-	void removeValidCode(String mobile);
 }

+ 19 - 7
mec-biz/src/main/java/com/ym/mec/biz/service/StudentRechargeService.java

@@ -1,16 +1,28 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.RechargeDto;
+import java.math.BigDecimal;
+import java.util.Map;
+
 import com.ym.mec.biz.dal.entity.StudentRecharge;
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.thirdparty.union.NotifyMsg;
 
 public interface StudentRechargeService extends BaseService<String, StudentRecharge> {
 
-    /**
-     * 账户充值
-     * @param rechargeDto
-     */
-    Boolean recharge(RechargeDto rechargeDto);
+	/**
+	 * 账户充值
+	 * @param userId
+	 * @param bankCardNo
+	 * @param amount
+	 */
+	Map<?,?> recharge(Integer userId, String bankCardNo, BigDecimal amount);
+	
+	/**
+	 * 充值回调
+	 * @param notifyMsg
+	 * @return
+	 */
+	boolean rechargeCallback(NotifyMsg notifyMsg);
 
-    StudentRecharge selectByTransNo(String transNo);
+	StudentRecharge queryByTransNo(String transNo);
 }

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

@@ -1,7 +1,7 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.common.service.BaseService;
 
 public interface SysMessageConfigService extends BaseService<Integer, SysMessageConfig> {
@@ -11,5 +11,5 @@ public interface SysMessageConfigService extends BaseService<Integer, SysMessage
 	 * @param type
 	 * @return
 	 */
-	public SysMessageConfig queryByType(MessageType type);
+	SysMessageConfig queryByType(MessageTypeEnum type);
 }

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

@@ -1,14 +1,14 @@
 package com.ym.mec.biz.service;
 
-import java.util.Date;
-
 import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
-import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
+import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.common.service.BaseService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 
+import java.util.Date;
+
 public interface SysMessageService extends BaseService<Long, SysMessage> {
 
 	/**
@@ -62,7 +62,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param args 参数
 	 * @return
 	 */
-	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receivers, Date triggerTime,
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageTypeEnum messageType, String receivers, Date triggerTime,
 			Integer readStatus, String url, Object... args);
 
 	/**
@@ -90,7 +90,7 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param receiver 消息接受者
 	 * @return
 	 */
-	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receiver);
+	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageTypeEnum messageType, String receiver);
 
 	/**
 	 * 获取已经发送的验证码
@@ -98,14 +98,14 @@ public interface SysMessageService extends BaseService<Long, SysMessage> {
 	 * @param mobileNOOrEmailAddr
 	 * @return
 	 */
-	public String getSendedVerificationCode(MessageType type, String mobileNOOrEmailAddr);
+	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr);
 
 	/**
 	 * 删除已有的key
 	 * @param type
 	 * @param mobileNOOrEmailAddr
 	 */
-	public void delSendedVerificationCode(MessageType type, String mobileNOOrEmailAddr);
+	public void delSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr);
 
 	/**
 	 * 查询消息未读条数

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

@@ -1386,15 +1386,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (!Objects.isNull(currentBishopTeacher)) {
                     e.setMasterTeacherId(currentBishopTeacher.getUserId());
                     e.setMasterTeacherName(currentBishopTeacher.getUserName());
-                    e.setTeacherNum(1);
                 }
 
                 List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
                 if (CollectionUtils.isEmpty(currentCourseTeachingTeachers)) {
+                    e.setTeacherNum(0);
                     e.setTeachingTeachers(new ArrayList<>());
                 } else {
                     e.setTeachingTeachers(currentCourseTeachingTeachers);
-                    e.setTeacherNum(e.getTeacherNum() == null ? 0 : e.getTeacherNum() + currentCourseTeachingTeachers.size());
+                    e.setTeacherNum(currentCourseTeachingTeachers.size());
                 }
 
             });

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

@@ -1,13 +1,12 @@
 package com.ym.mec.biz.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.biz.dal.dao.GoodsDao;
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.service.GoodsService;
 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;
 
 import java.util.List;
 

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

@@ -1,38 +1,85 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.*;
-import com.ym.mec.biz.dal.dto.*;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.dao.ChargeTypeDao;
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
+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.MusicGroupQuitDao;
+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.OrganizationDao;
+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.CourseScheduleTeachersDto;
+import com.ym.mec.biz.dal.dto.MusicCardDto;
+import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.dto.SubjectRegisterDto;
+import com.ym.mec.biz.dal.entity.ApprovalStatus;
+import com.ym.mec.biz.dal.entity.ChargeType;
+import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.entity.MusicGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
+import com.ym.mec.biz.dal.entity.MusicGroupQuit;
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
-import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
+import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.biz.dal.entity.School;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
+import com.ym.mec.biz.dal.entity.StudentRegistration;
+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.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.page.MusicGroupQueryInfo;
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.PayService;
+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.biz.service.SysUserCashAccountDetailService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 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 com.ym.mec.util.date.DateUtil;
-import org.apache.commons.lang3.LocaleUtils;
-import org.apache.commons.lang3.StringUtils;
-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.math.BigDecimal;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.time.LocalDate;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @Service
 public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
@@ -195,12 +242,12 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public MusicCardDto queryPersonalMusicGroups(Integer id) {
-        MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(id);
+    public MusicCardDto queryPersonalMusicGroups(Integer userId) {
+        MusicCardDto musicCardDto = musicGroupDao.queryPersonalMusicGroups(userId);
         if(musicCardDto != null){
-            musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(id));
-            musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(id, ClassGroupTypeEnum.VIP));
-            return musicGroupDao.queryPersonalMusicGroups(id);
+            musicCardDto.setMusicGroupNum(musicGroupDao.countUserMusicGroups(userId));
+            musicCardDto.setVipClassNum(musicGroupDao.countCourseByType(userId, ClassGroupTypeEnum.VIP));
+            return musicGroupDao.queryPersonalMusicGroups(userId);
         }
         return new MusicCardDto();
     }
@@ -541,7 +588,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
     }
 
     @Override
-    public PageInfo<MusicGroup> queryMusicGroupPage(QueryInfo queryInfo) {
+    public PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo) {
         PageInfo<MusicGroup> musicGroupPageInfo = queryPage(queryInfo);
         List<MusicGroup> musicGroupList = musicGroupPageInfo.getRows();
         // 获取学校编号列表

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

@@ -14,6 +14,7 @@ import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -103,4 +104,13 @@ public class MusicGroupSubjectPlanServiceImpl extends BaseServiceImpl<Integer, M
 
         return musicGroupRegResp;
     }
+
+    @Override
+    public void addApplyStudentNum(String musicGroupId, Integer subjectId) {
+        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, subjectId);
+        int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
+        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + 1);
+        musicOneSubjectClassPlan.setUpdateTime(new Date());
+        musicGroupSubjectPlanDao.update(musicOneSubjectClassPlan);
+    }
 }

+ 11 - 39
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SmsCodeServiceImpl.java

@@ -2,44 +2,27 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.SysMessageConfigDao;
-import com.ym.mec.biz.dal.dao.SysMessageDao;
-import com.ym.mec.biz.dal.dao.TeacherDao;
-import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.dal.entity.SysMessageConfig;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.SmsCodeService;
-import com.ym.mec.biz.service.SysMessageConfigService;
-import com.ym.mec.common.redis.service.RedisCache;
+import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
-import org.apache.commons.lang3.RandomStringUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 @Service
 public class SmsCodeServiceImpl implements SmsCodeService {
-	
-	@Autowired
-	private RedisCache<String,Object> redisCache;
-	
-	private final String loginVerifyCodeKey = "loginVerifyCode:";
-	
-	private int expireTime = 60 * 10;
-
-	@Autowired
-	private MessageSenderPluginContext messageSenderPluginContext;
 
 	@Autowired
-	private SysMessageConfigDao sysMessageConfigDao;
-	@Autowired
-	private SysMessageDao sysMessageDao;
+	private SysMessageService sysMessageService;
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
 
 	@Override
 	public boolean verifyValidCode(String mobile, String authCode) {
-		String verifyCode = (String) redisCache.get(loginVerifyCodeKey + mobile);
+//		String verifyCode = (String) redisCache.get(loginVerifyCodeKey + mobile);
+		String verifyCode = sysMessageService.getSendedVerificationCode(MessageTypeEnum.SMS_VERIFY_CODE_LOGIN, mobile);
 		if(StringUtils.isNoneEmpty(verifyCode) && StringUtils.equalsIgnoreCase(verifyCode,authCode)){
 			return true;
 		}
@@ -51,30 +34,19 @@ public class SmsCodeServiceImpl implements SmsCodeService {
 //		String code = RandomStringUtils.randomNumeric(6);
 		String code = "123456";
 		// 发送验证码
-		SysMessageConfig messageConfig = sysMessageConfigDao.get(1);
-		String content = String.format(messageConfig.getContent(), code);
-		messageSenderPluginContext.send(MessageSenderPluginContext.MessageSender.YIMEI,"",content,mobile,"");
+//		SysMessageConfig messageConfig = sysMessageConfigDao.get(1);
+//		String content = String.format(messageConfig.getContent(), code);
+//		messageSenderPluginContext.send(MessageSenderPluginContext.MessageSender.YIMEI,"",content,mobile,"");
 		//保存发送记录
 		SysUser sysUser = sysUserFeignService.queryUserByMobile(mobile);
 		Integer userId = null;
 		if(sysUser != null){
 			userId = sysUser.getId();
 		}
-		sysMessageDao.insert(new SysMessage("",content, MessageSendMode.SMS,mobile,userId,""));
-		redisCache.put(loginVerifyCodeKey + mobile, code, expireTime);
+		sysMessageService.sendSecurityCode(MessageSenderPluginContext.MessageSender.YIMEI,userId,MessageSendMode.SMS, MessageTypeEnum.SMS_VERIFY_CODE_LOGIN,mobile);
+//		sysMessageService.insert(new SysMessage("",content, MessageSendMode.SMS,mobile,userId,""));
+//		redisCache.put(loginVerifyCodeKey + mobile, code, expireTime);
 		return true;
 	}
 
-	@Override
-	public String getValidCode(String mobile) {
-		return (String) redisCache.get(loginVerifyCodeKey + mobile);
-	}
-
-	@Override
-	public void removeValidCode(String mobile) {
-		if (redisCache.exists(loginVerifyCodeKey + mobile)) {
-			redisCache.delete(loginVerifyCodeKey + mobile);
-		}
-	}
-
 }

+ 99 - 30
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java

@@ -1,73 +1,142 @@
 package com.ym.mec.biz.service.impl;
 
+import java.math.BigDecimal;
 import java.util.Date;
+import java.util.Map;
 
 import javax.annotation.Resource;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import com.ym.mec.biz.dal.dao.StudentRechargeDao;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.SysUserCashAccountDetailDao;
-import com.ym.mec.biz.dal.dto.RechargeDto;
 import com.ym.mec.biz.dal.entity.StudentRecharge;
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
+import com.ym.mec.biz.dal.entity.SysUserCashAccount;
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
+import com.ym.mec.biz.dal.enums.PlatformCashAccountStatusEnum;
+import com.ym.mec.biz.dal.enums.TransTypeEnum;
+import com.ym.mec.biz.service.PayService;
 import com.ym.mec.biz.service.StudentRechargeService;
+import com.ym.mec.biz.service.SysUserCashAccountDetailService;
 import com.ym.mec.biz.service.SysUserCashAccountService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.service.IdGeneratorService;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.thirdparty.union.NotifyMsg;
 
 @Service
-public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentRecharge>  implements StudentRechargeService {
-	
+public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentRecharge> implements StudentRechargeService {
+
 	@Resource
 	private StudentRechargeDao studentRechargeDao;
-    @Autowired
-    private StudentRegistrationDao studentRegistrationDao;
-	
+	@Autowired
+	private StudentRegistrationDao studentRegistrationDao;
+
 	@Autowired
 	private SysUserCashAccountService sysUserCashAccountService;
 
 	@Resource
-	private SysUserCashAccountDetailDao sysUserCashAccountDetailDao;
+	private SysUserCashAccountDetailService sysUserCashAccountDetailService;
+
+	@Autowired
+	private PayService payService;
+
+	@Autowired
+	private IdGeneratorService idGeneratorService;
+
 	@Override
 	public BaseDAO<String, StudentRecharge> getDAO() {
 		return studentRechargeDao;
 	}
 
 	@Override
-	public Boolean recharge(RechargeDto rechargeDto) {
+	@Transactional(rollbackFor = Exception.class)
+	public Map<?, ?> recharge(Integer userId, String bankCardNo, BigDecimal amount) {
 
-		//TODO ���õ�����֧��
-		Date now  = new Date();
+		Date now = new Date();
 
-		//��ֵ��¼
-        StudentRecharge studentRecharge = new StudentRecharge();
-        studentRecharge.setAmount(rechargeDto.getRechargeAmount());
+		SysUserCashAccount userCashAccount = sysUserCashAccountService.get(userId);
+		if (userCashAccount == null) {
+			throw new BizException("账户不存在");
+		}
+
+		if (userCashAccount.getStatus() != PlatformCashAccountStatusEnum.NORMAL) {
+			throw new BizException("账户不可用");
+		}
+
+		StudentRecharge studentRecharge = new StudentRecharge();
+		studentRecharge.setAmount(amount);
 		studentRecharge.setCreateTime(now);
-		studentRecharge.setUserId(rechargeDto.getUserId().longValue());
+		studentRecharge.setUserId(userId);
+		studentRecharge.setStatus(DealStatusEnum.ING);
 		studentRecharge.setTransNo(null);
+		studentRecharge.setOrderNo(idGeneratorService.generatorId("recharge") + "");
 		studentRechargeDao.insert(studentRecharge);
-		//�˻��ʽ���ˮ
-		SysUserCashAccountDetail cashAccount = new SysUserCashAccountDetail();
-		cashAccount.setAmount(rechargeDto.getRechargeAmount());
-		cashAccount.setBalance(null);
-		cashAccount.setTransNo(null);
-		cashAccount.setType(PlatformCashAccountDetailTypeEnum.RECHARGE);
-		cashAccount.setUserId(rechargeDto.getUserId());
-		cashAccount.setCreateTime(now);
-		sysUserCashAccountDetailDao.insert(cashAccount);
-
-		//�ۼ��˻�
-		sysUserCashAccountService.updateBalance(rechargeDto.getUserId(),rechargeDto.getRechargeAmount());
+
+		try {
+			return payService.getPayMap(amount, studentRecharge.getOrderNo(), "https://pay.dayaedu.com/api/yqpay/notify", "http://dev.dayaedu.com", "测试订单",
+					"测试订单");
+		} catch (Exception e) {
+			throw new BizException("调用支付接口出错", e);
+		}
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public boolean rechargeCallback(NotifyMsg notifyMsg) {
+
+		if (notifyMsg.getStatus().equals("TRADE_SUCCESS") || notifyMsg.getStatus().equals("TRADE_CLOSED")) {
+
+			String orderNo = notifyMsg.getMerOrderId();
+
+			StudentRecharge studentRecharge = studentRechargeDao.queryByOrderNo(orderNo);
+
+			if (studentRecharge == null) {
+				throw new BizException("充值记录不存在");
+			}
+
+			DealStatusEnum status = notifyMsg.getStatus().equals("TRADE_SUCCESS") ? DealStatusEnum.SUCCESS : DealStatusEnum.FAilED;
+
+			String transNo = notifyMsg.getSeqId();
+
+			String paymentChannel = notifyMsg.getTargetSys();
+
+			Date paymentDate = notifyMsg.getPayTime();
+
+			studentRecharge.setPayPlatform(paymentChannel);
+			studentRecharge.setStatus(status);
+			studentRecharge.setTransNo(transNo);
+			studentRecharge.setModifyTime(paymentDate);
+
+			studentRechargeDao.update(studentRecharge);
+
+			if (status == DealStatusEnum.SUCCESS) {
+
+				TransTypeEnum transType = TransTypeEnum.FAST_PAYMENT;
+
+				if ("WXPay".equals(paymentChannel)) {
+					transType = TransTypeEnum.WECHAT;
+				} else if ("Alipay 2.0".equals(paymentChannel)) {
+					transType = TransTypeEnum.ALIPAY;
+				}
+
+				// 更新账户余额
+				// 新增交易流水
+				sysUserCashAccountDetailService.addCashAccountDetail(studentRecharge.getUserId(), studentRecharge.getAmount(), orderNo, transNo,
+						PlatformCashAccountDetailTypeEnum.RECHARGE, transType, status, "");
+			}
+
+		}
 
 		return true;
 	}
 
 	@Override
-	public StudentRecharge selectByTransNo(String transNo) {
-		return studentRechargeDao.selectByTransNo(transNo);
+	public StudentRecharge queryByTransNo(String transNo) {
+		return studentRechargeDao.queryByTransNo(transNo);
 	}
 }

+ 19 - 23
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -1,37 +1,32 @@
 package com.ym.mec.biz.service.impl;
 
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import javax.annotation.Resource;
-
-import com.ym.mec.auth.api.entity.SysMenu;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.auth.api.enums.SysUserType;
+import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
 import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
+import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.biz.service.*;
+import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImResult;
 import com.ym.mec.common.entity.ImUserModel;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
+import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.auth.api.enums.SysUserType;
-import com.ym.mec.auth.api.enums.UserLockFlag;
-import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
-import com.ym.mec.biz.dal.dto.StudentFeeDto;
-import com.ym.mec.biz.dal.dto.StudentInfo;
-import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
-import com.ym.mec.common.dal.BaseDAO;
-import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.util.collection.MapUtil;
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
@@ -152,7 +147,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             sysUser.setUserType(SysUserType.STUDENT);
             sysUser.setGender(studentRegistration.getGender());
             sysUser.setOrganId(studentRegistration.getOrganId());
-            sysUser.setRealName(studentRegistration.getName());
+            sysUser.setRealName(studentRegistration.getParentsName());
+            sysUser.setUsername(studentRegistration.getName());
             sysUser.setIdCardNo(studentRegistration.getIdCardNo());
             teacherDao.addSysUser(sysUser);
             userId = sysUser.getId();
@@ -168,9 +164,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistration.setUserId(sysUser.getId());
         studentRegistrationDao.insert(studentRegistration);
         //增加报名学生数
-        MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
-        int applyNum = musicOneSubjectClassPlan.getApplyStudentNum() == null ? 0 : musicOneSubjectClassPlan.getApplyStudentNum();
-        musicOneSubjectClassPlan.setApplyStudentNum(applyNum + 1);
+        musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         return studentRegistration;
     }
 
@@ -388,6 +382,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             studentRegistration.setUserId(userId);
             //学生报名表
             studentRegistrationDao.insert(studentRegistration);
+            //增加报名学生数
+            musicGroupSubjectPlanService.addApplyStudentNum(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
             if (studentRegistration.getClassGroupId() != null) {
                 ClassGroup classGroup = classGroupDao.get(studentRegistration.getClassGroupId());
                 if (classGroup != null) {

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

@@ -2,7 +2,7 @@ package com.ym.mec.biz.service.impl;
 
 import com.ym.mec.biz.dal.dao.SysMessageConfigDao;
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -21,8 +21,8 @@ public class SysMessageConfigServiceImpl extends BaseServiceImpl<Integer, SysMes
 	}
 
 	@Override
-	public SysMessageConfig queryByType(MessageType type) {
-		return sysMessageConfigDao.queryByType(type);
+	public SysMessageConfig queryByType(MessageTypeEnum type) {
+		return sysMessageConfigDao.queryByType(type.getCode());
 	}
 	
 }

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

@@ -5,8 +5,8 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.SysMessageDao;
 import com.ym.mec.biz.dal.entity.SysMessage;
 import com.ym.mec.biz.dal.entity.SysMessageConfig;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.enums.SendStatusEnum;
 import com.ym.mec.biz.service.SysMessageConfigService;
 import com.ym.mec.biz.service.SysMessageService;
@@ -151,8 +151,8 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 
 	@Override
 	@Async
-	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType type, String receivers, Date triggerTime,
-			Integer readStatus, String url, Object... args) {
+	public void sendMessage(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageTypeEnum type, String receivers, Date triggerTime,
+							Integer readStatus, String url, Object... args) {
 
 		if (StringUtils.isBlank(receivers)) {
 			throw new BizException("接收地址不能为空");
@@ -215,7 +215,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageType messageType, String receiver) {
+	public boolean sendSecurityCode(MessageSender messageSender, Integer userId, MessageSendMode mode, MessageTypeEnum messageType, String receiver) {
 		String key1 = getVerificationCode1CacheKey(messageType, receiver);
 		if (redisCache.get(key1) != null) {
 			throw new BizException("请勿频繁操作,获取验证码间隔时间为60秒");
@@ -233,7 +233,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public String getSendedVerificationCode(MessageType type, String mobileNOOrEmailAddr) {
+	public String getSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
 		if (debugMode == true) {
 			return DEFAULT_CODE + "";
 		}
@@ -243,7 +243,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 	}
 
 	@Override
-	public void delSendedVerificationCode(MessageType type, String mobileNOOrEmailAddr) {
+	public void delSendedVerificationCode(MessageTypeEnum type, String mobileNOOrEmailAddr) {
 		String key = getVerificationCodeCacheKey(type, mobileNOOrEmailAddr);
 		if (StringUtils.isNotBlank(key)) {
 			redisCache.delete(key);
@@ -259,7 +259,7 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		this.debugMode = debugMode;
 	}
 
-	private int getRandomCode(MessageType type, String mobileNo) {
+	private int getRandomCode(MessageTypeEnum type, String mobileNo) {
 		int min = 100000;
 		int max = 999999;
 		Random random = new Random();
@@ -267,11 +267,11 @@ public class SysMessageServiceImpl extends BaseServiceImpl<Long, SysMessage> imp
 		return random.nextInt(max) % (max - min + 1) + min;
 	}
 
-	private static String getVerificationCodeCacheKey(MessageType type, String mobileNOOrEmailAddr) {
+	private static String getVerificationCodeCacheKey(MessageTypeEnum type, String mobileNOOrEmailAddr) {
 		return "verificationCode" + type.name() + mobileNOOrEmailAddr;
 	}
 
-	private static String getVerificationCode1CacheKey(MessageType type, String mobileNOOrEmailAddr) {
+	private static String getVerificationCode1CacheKey(MessageTypeEnum type, String mobileNOOrEmailAddr) {
 		return "verificationCode" + mobileNOOrEmailAddr;
 	}
 

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

@@ -540,6 +540,7 @@
     </sql>
     <resultMap id="MusicGroupCourseScheduleDto" type="com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto">
         <result property="courseScheduleId" column="course_schedule_id_"/>
+        <result property="classGroupName" column="course_schedule_name_"/>
         <result property="classDate" column="class_date_"/>
         <result property="startClassTime" column="start_class_time_"/>
         <result property="startClassTimeStr" column="start_class_time_"/>
@@ -554,7 +555,7 @@
     </resultMap>
     <select id="queryMusicGroupCourseSchedule" resultMap="MusicGroupCourseScheduleDto">
         SELECT cs.id_ course_schedule_id_,cs.class_date_,cs.start_class_time_,cs.end_class_time_,cs.class_group_id_,
-        cs.type_ course_schedule_type_,cs.status_ course_schedule_status_,
+        cs.type_ course_schedule_type_,cs.status_ course_schedule_status_,cs.name_ course_schedule_name_,
         IF(cgr.class_group_id_ IS NULL,cs.class_group_id_,cgr.class_group_id_) mix_class_group_id_,
         IF(ISNULL(ta.sign_in_status_),3,ta.sign_in_status_) sign_in_status_,
         IF(ISNULL(ta.sign_out_status_),3,ta.sign_out_status_) sign_out_status_

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

@@ -133,14 +133,33 @@
 	</delete>
 
 	<select id="queryPage" resultMap="MusicGroup" parameterType="map">
-		SELECT * FROM music_group ORDER BY update_time_ DESC
+		SELECT * FROM music_group
+		<include refid="musicGroupQueryPageSql"/>
+		ORDER BY update_time_ DESC
 		<include refid="global.limit" />
 	</select>
 
+	<sql id="musicGroupQueryPageSql">
+		<where>
+			<if test="organId != null">
+				AND organ_id_ = #{organId}
+			</if>
+			<if test="musicGroupName != null and musicGroupName != ''">
+				AND name_ LIKE CONCAT('%',#{musicGroupName},'%')
+			</if>
+			<if test="chargeTypeId != null">
+				AND charge_type_id_ = #{chargeTypeId}
+			</if>
+			<if test="musicGroupStatus != null">
+				AND status_ = #{musicGroupStatus}
+			</if>
+		</where>
+	</sql>
+
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM
-		music_group
+		SELECT COUNT(*) FROM music_group
+		<include refid="musicGroupQueryPageSql"/>
 	</select>
 
 	<resultMap type="com.ym.mec.biz.dal.dto.MusicCardDto" id="queryUserMusicGroupsMap">
@@ -172,6 +191,7 @@
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
 		WHERE sr.user_id_ = #{userId}
+		ORDER BY mg.update_time_ DESC LIMIT 1
 	</select>
 
 	<select id="countUserMusicGroups" resultType="int">

+ 11 - 3
mec-biz/src/main/resources/config/mybatis/StudentRechargeMapper.xml

@@ -10,6 +10,7 @@
         <result column="id_" property="id"/>
         <result column="user_id_" property="userId"/>
         <result column="trans_no_" property="transNo"/>
+        <result column="order_no_" property="orderNo"/>
         <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="amount_" property="amount"/>
         <result column="fee_user_" property="feeUser"/>
@@ -40,8 +41,8 @@
         </selectKey>
         -->
         INSERT INTO student_recharge
-        (id_,user_id_,trans_no_,status_,amount_,fee_user_,fee_platform_,pay_platform_,description_,comment_,create_time_,modify_time_)
-        VALUES(#{id},#{userId},#{transNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{feeUser},#{feePlatform},#{payPlatform},#{description},#{comment},now(),now())
+        (id_,user_id_,trans_no_,order_no_,status_,amount_,fee_user_,fee_platform_,pay_platform_,description_,comment_,create_time_,modify_time_)
+        VALUES(#{id},#{userId},#{transNo},#{orderNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{amount},#{feeUser},#{feePlatform},#{payPlatform},#{description},#{comment},now(),now())
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -75,6 +76,9 @@
             <if test="transNo != null">
                 trans_no_ = #{transNo},
             </if>
+            <if test="orderNo != null">
+                order_no_ = #{orderNo},
+            </if>
             <if test="payPlatform != null">
                 pay_platform_ = #{payPlatform},
             </if>
@@ -98,7 +102,11 @@
 		SELECT COUNT(*) FROM student_recharge
 	</select>
 
-    <select id="selectByTransNo" resultMap="StudentRecharge">
+    <select id="queryByTransNo" resultMap="StudentRecharge">
 		SELECT * FROM student_recharge WHERE  trans_no_ = #{transNo}
 	</select>
+
+    <select id="queryByOrderNo" resultMap="StudentRecharge">
+		SELECT * FROM student_recharge WHERE  order_no_ = #{orderNo}
+	</select>
 </mapper>

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

@@ -104,9 +104,7 @@
 		select count(*) from sys_message_config
 		<include refid="queryCondition" />
 	</select>
-
 	<select id="queryByType" resultMap="SysMessageConfig">
-		select * from sys_message_config
-		where message_type_ = #{messageType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		SELECT * FROM sys_message_config WHERE message_type_ = #{messageType}
 	</select>
 </mapper>

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

@@ -163,7 +163,6 @@
 	</select>
 
 	<select id="queryCountOfUnread" resultType="int">
-		select count(*) from sys_message
-		where user_id_ = #{userId} and read_status_ = 0
+		SELECT COUNT(*) FROM sys_message WHERE user_id_ = #{userId} AND read_status_ = 0 AND type_ = 3
 	</select>
 </mapper>

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

@@ -51,7 +51,7 @@
     <select id="get" resultMap="Teacher">
         SELECT t.*,su.real_name_,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_
+        su.gender_,su.nation_,su.birthdate_,su.email_,su.im_token_,su.username_
         FROM teacher t
         LEFT JOIN sys_user su ON t.id_ = su.id_
         WHERE t.id_ = #{id} AND su.del_flag_ = 0
@@ -244,10 +244,11 @@
         LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
         LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
         LEFT JOIN `subject` s ON s.id_ = sr.actual_subject_id_
-        WHERE cgtm.user_id_ = #{teacherId}
+        WHERE cgtm.user_id_ = #{teacherId} AND su.id_ IS NOT NULL
         <if test="search != null">
             AND su.username_ LIKE CONCAT('%',#{search},'%')
         </if>
+        GROUP BY su.id_,s.id_
     </select>
     <select id="queryNameByIds" resultType="java.util.Map" parameterType="list">
         select id_ `key`,real_name_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds})

+ 5 - 0
mec-education/pom.xml

@@ -24,6 +24,11 @@
 			<groupId>org.springframework.cloud</groupId>
 			<artifactId>spring-cloud-starter-security</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>com.github.penggle</groupId>
+			<artifactId>kaptcha</artifactId>
+			<version>2.3.2</version>
+		</dependency>
 
 		<dependency>
 			<groupId>org.springframework.cloud</groupId>

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

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

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

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

+ 112 - 0
mec-education/src/main/java/com/ym/mec/education/controller/SmsCodeController.java

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

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

@@ -17,6 +17,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;

+ 28 - 40
mec-student/src/main/java/com/ym/mec/student/controller/RechargeController.java

@@ -1,55 +1,43 @@
 package com.ym.mec.student.controller;
 
-import com.ym.mec.auth.api.client.SysUserFeignService;
-import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dto.RechargeDto;
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
-import com.ym.mec.biz.service.StudentRechargeService;
-import com.ym.mec.biz.service.SysUserCashAccountService;
-import com.ym.mec.common.controller.BaseController;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+
+import java.math.BigDecimal;
+
+import javax.annotation.Resource;
+
 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 javax.annotation.Resource;
-
-/**
- * @version V1.0
- * @Description: 充值
- * @date Date : 2019年09月23日 16:56
- */
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.service.StudentRechargeService;
+import com.ym.mec.biz.service.SysUserCashAccountService;
+import com.ym.mec.common.controller.BaseController;
 
 @RequestMapping("recharge")
 @Api(tags = "账户充值")
 @RestController
 public class RechargeController extends BaseController {
-    @Resource
-    private SysUserFeignService sysUserFeignService;
-    @Autowired
-    private StudentRechargeService rechargeService;
-
-    @Autowired
-    private SysUserCashAccountService sysUserCashAccountService;
-
-    @ApiOperation("充值")
-    @GetMapping(value = "/recharge")
-    public Object recharge(RechargeDto rechargeDto){
-        SysUser sysUser = sysUserFeignService.queryUserInfo();
-        if(sysUser == null){
-            return failed("获取用户信息失败");
-        }
-        SysUserCashAccount userCashAccount = sysUserCashAccountService.get(sysUser.getId());
-        if(userCashAccount == null || !userCashAccount.getStatus().equals(1)){
-            return failed("账户不存在");
-        }
-
-        if(!userCashAccount.getStatus().equals(1)){
-            return failed("账户已冻结");
-        }
-
-        return succeed(rechargeService.recharge(rechargeDto));
-    }
+	@Resource
+	private SysUserFeignService sysUserFeignService;
+	@Autowired
+	private StudentRechargeService rechargeService;
+
+	@Autowired
+	private SysUserCashAccountService sysUserCashAccountService;
+
+	@ApiOperation("充值")
+	@GetMapping(value = "/recharge")
+	public Object recharge(String bankCardNo, BigDecimal amount) {
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("获取用户信息失败");
+		}
+
+		return succeed(rechargeService.recharge(sysUser.getId(), bankCardNo, amount));
+	}
 }

+ 4 - 5
mec-student/src/main/java/com/ym/mec/student/controller/SysMessageController.java

@@ -3,7 +3,6 @@ package com.ym.mec.student.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
@@ -80,7 +79,7 @@ public class SysMessageController extends BaseController {
 		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
 	}
 
-	@ApiOperation(value = "发送短信验证码")
+	/*@ApiOperation(value = "发送短信验证码")
 	@PostMapping("/sendSmsCode")
 	public Object sendSmsCode(String sendCodeType, String mobileNo) {
 
@@ -107,9 +106,9 @@ public class SysMessageController extends BaseController {
 		}
 		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
 		return succeed();
-	}
+	}*/
 
-	@ApiOperation(value = "发送短信验证码")
+	/*@ApiOperation(value = "发送短信验证码")
 	@PostMapping("/noAuth/sendSmsCode")
 	public Object noAuthSendSmsCode(String sendCodeType, String mobileNo) {
 		MessageType messageType = MessageType.getMessageType(sendCodeType);
@@ -121,7 +120,7 @@ public class SysMessageController extends BaseController {
 		}
 //		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
 		return succeed();
-	}
+	}*/
 
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")

+ 2 - 3
mec-teacher/src/main/java/com/ym/mec/teacher/controller/SysMessageController.java

@@ -3,7 +3,6 @@ package com.ym.mec.teacher.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.entity.SysMessage;
-import com.ym.mec.biz.dal.entity.SysMessageConfig.MessageType;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.page.SysMessageQueryInfo;
 import com.ym.mec.biz.service.SysMessageService;
@@ -79,7 +78,7 @@ public class SysMessageController extends BaseController {
 		}
 		return succeed(sysMessageService.queryCountOfUnread(sysUser.getId()));
 	}
-
+/*
 	@ApiOperation(value = "发送短信验证码")
 	@PostMapping("/sendSmsCode")
 	public Object sendSmsCode(String sendCodeType, String mobileNo) {
@@ -121,7 +120,7 @@ public class SysMessageController extends BaseController {
 		}
 //		sysMessageService.sendSecurityCode(MessageSender.YIMEI, userId, MessageSendMode.SMS, messageType, mobileNo);
 		return succeed();
-	}
+	}*/
 
 	@ApiOperation(value = "发送消息")
 	@PostMapping("/sendMessage")

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

@@ -10,11 +10,7 @@ import java.util.Date;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.page.GoodsQueryInfo;
@@ -33,8 +29,7 @@ public class GoodsController extends BaseController {
     @PostMapping("/add")
     @PreAuthorize("@pcs.hasPermissions('goods/add')")
     public Object add(Goods goods){
-        goodsService.insert(goods);
-        return succeed();
+        return succeed(goodsService.insert(goods));
     }
 
     @ApiOperation(value = "删除商品(教材、辅件)")

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

@@ -3,6 +3,7 @@ package com.ym.mec.web.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.page.QueryInfo;
@@ -56,7 +57,7 @@ public class MusicGroupController extends BaseController {
     @ApiOperation(value = "分页查询乐团列表")
     @GetMapping("/queryPage")
     @PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
-    public Object queryPage(QueryInfo queryInfo){
+    public Object queryPage(MusicGroupQueryInfo queryInfo){
         return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
     }
 

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

@@ -56,7 +56,7 @@ public class StudentCashAccountDetailController extends BaseController {
         }
 
         //
-        StudentRecharge studentRecharge = studentRechargeService.selectByTransNo(transNo);
+        StudentRecharge studentRecharge = studentRechargeService.queryByTransNo(transNo);
         if(studentRecharge == null){
             return failed("交易不存在");
         }