浏览代码

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

chengpeng 5 年之前
父节点
当前提交
5d4b44efb6
共有 74 个文件被更改,包括 2177 次插入118 次删除
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleComplaintsDao.java
  2. 13 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentPaymentOrderDao.java
  3. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentRegistrationDao.java
  4. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/StudentVipGroupPaymentDao.java
  5. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysUserContractsDao.java
  6. 17 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultVipGroupSalaryDao.java
  7. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java
  8. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupClassGroupMapperDao.java
  9. 7 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDefaultClassesUnitPriceDao.java
  10. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentCourseHomeworkCommentDto.java
  11. 59 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentInfo.java
  12. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupActivityAddDto.java
  13. 12 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyBaseInfoDto.java
  14. 3 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyDto.java
  15. 43 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupBuyParamsDto.java
  16. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountDto.java
  17. 65 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountParamsDto.java
  18. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementDto.java
  19. 47 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementTypeDto.java
  20. 0 10
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java
  21. 114 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleComplaints.java
  22. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentApplyRefunds.java
  23. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomeworkReply.java
  24. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseScheduleRecordDto.java
  25. 81 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVipGroupPayment.java
  26. 114 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserContracts.java
  27. 92 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultVipGroupSalary.java
  28. 23 2
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  29. 9 8
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java
  30. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/OrderDetailTypeEnum.java
  31. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SalarySettlementTypeEnum.java
  32. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupActivityTypeEnum.java
  33. 38 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupStatusEnum.java
  34. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupActivityQueryInfo.java
  35. 34 6
      mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java
  36. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/CourseScheduleComplaintsService.java
  37. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java
  38. 10 6
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentRegistrationService.java
  39. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/StudentVipGroupPaymentService.java
  40. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysUserContractsService.java
  41. 8 0
      mec-biz/src/main/java/com/ym/mec/biz/service/TeacherDefaultVipGroupSalaryService.java
  42. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupActivityService.java
  43. 15 4
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  44. 212 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  45. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleComplaintsServiceImpl.java
  46. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java
  47. 6 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  48. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentVipGroupPaymentServiceImpl.java
  49. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserContractsServiceImpl.java
  50. 23 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java
  51. 23 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  52. 134 5
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  53. 0 0
      mec-biz/src/main/resources/config/contracts/goods.ftl
  54. 88 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml
  55. 1 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  56. 3 3
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  57. 6 2
      mec-biz/src/main/resources/config/mybatis/StudentApplyRefundsMapper.xml
  58. 8 2
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  59. 4 2
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml
  60. 29 0
      mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml
  61. 32 0
      mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml
  62. 76 0
      mec-biz/src/main/resources/config/mybatis/StudentVipGroupPaymentMapper.xml
  63. 86 0
      mec-biz/src/main/resources/config/mybatis/SysUserContractsMapper.xml
  64. 83 0
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultVipGroupSalaryMapper.xml
  65. 21 4
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  66. 3 0
      mec-biz/src/main/resources/config/mybatis/VipGroupClassGroupMapperMapper.xml
  67. 9 0
      mec-biz/src/main/resources/config/mybatis/VipGroupDefaultClassesUnitPriceMapper.xml
  68. 13 2
      mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml
  69. 6 6
      mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java
  70. 13 20
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java
  71. 7 15
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java
  72. 7 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  73. 1 0
      mec-thirdparty/pom.xml
  74. 58 0
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupActivityController.java

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface CourseScheduleComplaintsDao extends BaseDAO<Long, CourseScheduleComplaints> {
+
+	
+}

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

@@ -1,9 +1,21 @@
 package com.ym.mec.biz.dal.dao;
 
+import java.util.List;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.common.dal.BaseDAO;
 
 public interface StudentPaymentOrderDao extends BaseDAO<Long, StudentPaymentOrder> {
 
-	
+	/**
+	 * 查询商品列表
+	 * @param musicGroupId
+	 * @param type
+	 * @return
+	 */
+	List<Goods> queryApplyGoodsList(@Param("musicGroupId") Integer musicGroupId, @Param("type") OrderDetailTypeEnum type);
 }

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

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dao;
 
 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.entity.StudentRegistration;
 import com.ym.mec.common.dal.BaseDAO;
 
@@ -71,4 +72,11 @@ public interface StudentRegistrationDao extends BaseDAO<Long, StudentRegistratio
      * @return
      */
     Integer updateByUserIdAndMusicGroupId(@Param("studentRegistration") StudentRegistration studentRegistration);
+    
+    /**
+     * 查询学生信息
+     * @param userId
+     * @return
+     */
+    StudentInfo queryStudentInfo(Integer userId);
 }

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.StudentVipGroupPayment;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface StudentVipGroupPaymentDao extends BaseDAO<Long, StudentVipGroupPayment> {
+
+	
+}

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

@@ -0,0 +1,9 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.SysUserContracts;
+import com.ym.mec.common.dal.BaseDAO;
+
+public interface SysUserContractsDao extends BaseDAO<Long, SysUserContracts> {
+
+	
+}

+ 17 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultVipGroupSalaryDao.java

@@ -0,0 +1,17 @@
+package com.ym.mec.biz.dal.dao;
+
+import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
+import com.ym.mec.common.dal.BaseDAO;
+import org.apache.ibatis.annotations.Param;
+
+public interface TeacherDefaultVipGroupSalaryDao extends BaseDAO<Long, TeacherDefaultVipGroupSalary> {
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 根据教师和课程类型获取老师vip课默认薪酬
+     */
+    TeacherDefaultVipGroupSalary findByTeacherAndCategory(@Param("userId") Long userId,
+                                                          @Param("categoryId") Long categoryId);
+
+}

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

@@ -3,7 +3,15 @@ package com.ym.mec.biz.dal.dao;
 import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+
 public interface VipGroupActivityDao extends BaseDAO<Integer, VipGroupActivity> {
 
-	
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 根据课程类型获取vip课 活动方案
+     */
+    List<VipGroupActivity> findByCategory(Long categoryId);
+
 }

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

@@ -5,5 +5,11 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface VipGroupClassGroupMapperDao extends BaseDAO<Long, VipGroupClassGroupMapper> {
 
-	
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 根据vip课获取对应班级
+     */
+	VipGroupClassGroupMapper findByVipGroupId(Long vipGroupId);
+
 }

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

@@ -5,5 +5,11 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface VipGroupDefaultClassesUnitPriceDao extends BaseDAO<Integer, VipGroupDefaultClassesUnitPrice> {
 
-	
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 根据vip课获取课时收费设置
+     */
+    VipGroupDefaultClassesUnitPrice getByVipGroup(Long vipGroupId);
+
 }

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

@@ -21,6 +21,9 @@ public class StudentCourseHomeworkCommentDto {
     @ApiModelProperty(value = "留言人姓名",required = false)
     private String userName;
 
+    @ApiModelProperty(value = "头像")
+    private String avatar;
+
     /** 留言内容 */
     @ApiModelProperty(value = "留言内容",required = true)
     private String content;
@@ -31,6 +34,14 @@ public class StudentCourseHomeworkCommentDto {
     @ApiModelProperty(value = "回复",required = false)
     private List<StudentCourseHomeworkCommentDto> replys;
 
+    public String getAvatar() {
+        return avatar;
+    }
+
+    public void setAvatar(String avatar) {
+        this.avatar = avatar;
+    }
+
     public Long getReplyId() {
         return replyId;
     }

+ 59 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentInfo.java

@@ -0,0 +1,59 @@
+package com.ym.mec.biz.dal.dto;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.Subject;
+
+public class StudentInfo extends SysUser {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = 9052387644105786621L;
+
+	private String name;
+	
+	private String grade;
+	
+	private String clazz;
+	
+	private Subject subject = new Subject();
+
+	public String getName() {
+		return name;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getGrade() {
+		return grade;
+	}
+
+	public void setGrade(String grade) {
+		this.grade = grade;
+	}
+
+	public String getClazz() {
+		return clazz;
+	}
+
+	public void setClazz(String clazz) {
+		this.clazz = clazz;
+	}
+
+	public Subject getSubject() {
+		return subject;
+	}
+
+	public void setSubject(Subject subject) {
+		this.subject = subject;
+	}
+	
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupActivityAddDto.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.VipGroupActivity;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public class VipGroupActivityAddDto extends VipGroupActivity {
+
+    private VipGroupSalarySettlementDto vipGroupSalarySettlement;
+
+    public VipGroupSalarySettlementDto getVipGroupSalarySettlement() {
+        return vipGroupSalarySettlement;
+    }
+
+    public void setVipGroupSalarySettlement(VipGroupSalarySettlementDto vipGroupSalarySettlement) {
+        this.vipGroupSalarySettlement = vipGroupSalarySettlement;
+    }
+}

+ 12 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyBaseInfoDto.java

@@ -1,17 +1,19 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.VipGroup;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.math.BigDecimal;
 
-import com.ym.mec.biz.dal.entity.VipGroup;
-
 /**
  * @Author Joburgess
  * @Date 2019/9/21
  */
 public class VipGroupApplyBaseInfoDto extends VipGroup {
 
+    @ApiModelProperty(value = "课时总数")
+    private Integer allCourseNum;
+
     @ApiModelProperty(value = "教师ID",required = false)
     private Long teacherId;
 
@@ -21,6 +23,14 @@ public class VipGroupApplyBaseInfoDto extends VipGroup {
     @ApiModelProperty(value = "预计招生人数",hidden = true)
     private Integer expectStudentNum;
 
+    public Integer getAllCourseNum() {
+        return allCourseNum;
+    }
+
+    public void setAllCourseNum(Integer allCourseNum) {
+        this.allCourseNum = allCourseNum;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupApplyDto.java

@@ -1,11 +1,10 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.CourseSchedule;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
 
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-
 /**
  * @Author Joburgess
  * @Date 2019/9/21
@@ -18,6 +17,8 @@ public class VipGroupApplyDto {
     @ApiModelProperty(value = "课程计划列表",required = false)
     private List<CourseSchedule> courseSchedules;
 
+
+
     public VipGroupApplyBaseInfoDto getVipGroupApplyBaseInfo() {
         return vipGroupApplyBaseInfo;
     }

+ 43 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupBuyParamsDto.java

@@ -0,0 +1,43 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/2
+ */
+public class VipGroupBuyParamsDto {
+
+    @ApiModelProperty(value = "vip课程ID")
+    private Long vipGroupId;
+
+    @ApiModelProperty(value = "付款渠道")
+    private String paymentChannel;
+
+    @ApiModelProperty(value = "业务渠道")
+    private String paymentBusinessChannel;
+
+    public Long getVipGroupId() {
+        return vipGroupId;
+    }
+
+    public void setVipGroupId(Long vipGroupId) {
+        this.vipGroupId = vipGroupId;
+    }
+
+    public String getPaymentChannel() {
+        return paymentChannel;
+    }
+
+    public void setPaymentChannel(String paymentChannel) {
+        this.paymentChannel = paymentChannel;
+    }
+
+    public String getPaymentBusinessChannel() {
+        return paymentBusinessChannel;
+    }
+
+    public void setPaymentBusinessChannel(String paymentBusinessChannel) {
+        this.paymentBusinessChannel = paymentBusinessChannel;
+    }
+}

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountDto.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/2
+ */
+public class VipGroupCostCountDto {
+
+    @ApiModelProperty(value = "课程总费用")
+    private BigDecimal vipGroupCharge;
+
+    @ApiModelProperty(value = "老师总课酬")
+    private BigDecimal teacherSalary;
+
+    public VipGroupCostCountDto() {
+    }
+
+    public VipGroupCostCountDto(BigDecimal vipGroupCharge, BigDecimal teacherSalary) {
+        this.vipGroupCharge = vipGroupCharge;
+        this.teacherSalary = teacherSalary;
+    }
+
+    public BigDecimal getVipGroupCharge() {
+        return vipGroupCharge;
+    }
+
+    public void setVipGroupCharge(BigDecimal vipGroupCharge) {
+        this.vipGroupCharge = vipGroupCharge;
+    }
+
+    public BigDecimal getTeacherSalary() {
+        return teacherSalary;
+    }
+
+    public void setTeacherSalary(BigDecimal teacherSalary) {
+        this.teacherSalary = teacherSalary;
+    }
+}

+ 65 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountParamsDto.java

@@ -0,0 +1,65 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public class VipGroupCostCountParamsDto {
+
+    @ApiModelProperty("vip课程类型编号")
+    private Long vipGroupCategoryId;
+
+    @ApiModelProperty("vip课默认课程单价编号")
+    private Long vipGroupDefaultClassesUnitPriceId;
+
+    @ApiModelProperty("VIP课活动方案编号")
+    private Long vipGroupActivityId;
+
+    @ApiModelProperty(value = "线上课课时数", required = false)
+    private Integer onlineClassesNum;
+
+    @ApiModelProperty(value = "线下课课时数", required = false)
+    private Integer offlineClassesNum;
+
+    public Long getVipGroupCategoryId() {
+        return vipGroupCategoryId;
+    }
+
+    public void setVipGroupCategoryId(Long vipGroupCategoryId) {
+        this.vipGroupCategoryId = vipGroupCategoryId;
+    }
+
+    public Long getVipGroupDefaultClassesUnitPriceId() {
+        return vipGroupDefaultClassesUnitPriceId;
+    }
+
+    public void setVipGroupDefaultClassesUnitPriceId(Long vipGroupDefaultClassesUnitPriceId) {
+        this.vipGroupDefaultClassesUnitPriceId = vipGroupDefaultClassesUnitPriceId;
+    }
+
+    public Long getVipGroupActivityId() {
+        return vipGroupActivityId;
+    }
+
+    public void setVipGroupActivityId(Long vipGroupActivityId) {
+        this.vipGroupActivityId = vipGroupActivityId;
+    }
+
+    public Integer getOnlineClassesNum() {
+        return onlineClassesNum;
+    }
+
+    public void setOnlineClassesNum(Integer onlineClassesNum) {
+        this.onlineClassesNum = onlineClassesNum;
+    }
+
+    public Integer getOfflineClassesNum() {
+        return offlineClassesNum;
+    }
+
+    public void setOfflineClassesNum(Integer offlineClassesNum) {
+        this.offlineClassesNum = offlineClassesNum;
+    }
+}

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementDto.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public class VipGroupSalarySettlementDto implements Serializable {
+
+    @ApiModelProperty("先上课收费标准")
+    private VipGroupSalarySettlementTypeDto onlineSalarySettlement;
+
+    @ApiModelProperty("线下课收费标准")
+    private VipGroupSalarySettlementTypeDto offlineSalarySettlement;
+
+    public VipGroupSalarySettlementTypeDto getOnlineSalarySettlement() {
+        return onlineSalarySettlement;
+    }
+
+    public void setOnlineSalarySettlement(VipGroupSalarySettlementTypeDto onlineSalarySettlement) {
+        this.onlineSalarySettlement = onlineSalarySettlement;
+    }
+
+    public VipGroupSalarySettlementTypeDto getOfflineSalarySettlement() {
+        return offlineSalarySettlement;
+    }
+
+    public void setOfflineSalarySettlement(VipGroupSalarySettlementTypeDto offlineSalarySettlement) {
+        this.offlineSalarySettlement = offlineSalarySettlement;
+    }
+}

+ 47 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementTypeDto.java

@@ -0,0 +1,47 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public class VipGroupSalarySettlementTypeDto {
+
+    @ApiModelProperty(value = "课程形式")
+    private TeachModeEnum teachMode;
+
+    @ApiModelProperty(value = "课酬结算方式")
+    private SalarySettlementTypeEnum salarySettlementType;
+
+    @ApiModelProperty(value = "课酬结算参数值")
+    private BigDecimal settlementValue;
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
+    public SalarySettlementTypeEnum getSalarySettlementType() {
+        return salarySettlementType;
+    }
+
+    public void setSalarySettlementType(SalarySettlementTypeEnum salarySettlementType) {
+        this.salarySettlementType = salarySettlementType;
+    }
+
+    public BigDecimal getSettlementValue() {
+        return settlementValue;
+    }
+
+    public void setSettlementValue(BigDecimal settlementValue) {
+        this.settlementValue = settlementValue;
+    }
+}

+ 0 - 10
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseSchedule.java

@@ -82,8 +82,6 @@ public class CourseSchedule {
 
 	private TeachModeEnum teachMode;
 
-	private boolean complaintStatus;
-	
 	private CourseScheduleType type;
 	
 	private String name;
@@ -184,14 +182,6 @@ public class CourseSchedule {
 		this.teachMode = teachMode;
 	}
 
-	public boolean isComplaintStatus() {
-		return complaintStatus;
-	}
-
-	public void setComplaintStatus(boolean complaintStatus) {
-		this.complaintStatus = complaintStatus;
-	}
-
 	public CourseScheduleType getType() {
 		return type;
 	}

+ 114 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleComplaints.java

@@ -0,0 +1,114 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(course_schedule_complaints):
+ */
+public class CourseScheduleComplaints {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Integer userId;
+	
+	/**  */
+	private Long courseScheduleId;
+	
+	/**  */
+	private String reason;
+	
+	/**  */
+	private String status;
+	
+	/**  */
+	private String wfProcessId;
+	
+	/**  */
+	private String wfOrderId;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setCourseScheduleId(Long courseScheduleId){
+		this.courseScheduleId = courseScheduleId;
+	}
+	
+	public Long getCourseScheduleId(){
+		return this.courseScheduleId;
+	}
+			
+	public void setReason(String reason){
+		this.reason = reason;
+	}
+	
+	public String getReason(){
+		return this.reason;
+	}
+			
+	public void setStatus(String status){
+		this.status = status;
+	}
+	
+	public String getStatus(){
+		return this.status;
+	}
+			
+	public void setWfProcessId(String wfProcessId){
+		this.wfProcessId = wfProcessId;
+	}
+	
+	public String getWfProcessId(){
+		return this.wfProcessId;
+	}
+			
+	public void setWfOrderId(String wfOrderId){
+		this.wfOrderId = wfOrderId;
+	}
+	
+	public String getWfOrderId(){
+		return this.wfOrderId;
+	}
+			
+	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;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentApplyRefunds.java

@@ -42,6 +42,8 @@ public class StudentApplyRefunds {
 	/**  */
 	private java.util.Date updateTime;
 	
+	private String remark;
+	
 	/** 原订单编号 */
 	@ApiModelProperty(value = "原订单编号",required = true)
 	private Long origPaymentOrderId;
@@ -118,6 +120,14 @@ public class StudentApplyRefunds {
 		return this.origPaymentOrderId;
 	}
 			
+	public String getRemark() {
+		return remark;
+	}
+
+	public void setRemark(String remark) {
+		this.remark = remark;
+	}
+
 	@Override
 	public String toString() {
 		return ToStringBuilder.reflectionToString(this);

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomeworkReply.java

@@ -29,7 +29,7 @@ public class StudentCourseHomeworkReply {
 	/** 父级编号 */
 	@ApiModelProperty(value = "父级编号",required = true)
 	private Long parentId;
-	
+
 	public void setId(Long id){
 		this.id = id;
 	}

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
@@ -48,6 +49,17 @@ public class StudentCourseScheduleRecordDto {
     @ApiModelProperty(value = "剩余课次",required = false)
     private Integer restOfClass;
 
+    @ApiModelProperty(value = "教学形式")
+    private TeachModeEnum teachMode;
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+
     public Long getTeacherId() {
         return teacherId;
     }

+ 81 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentVipGroupPayment.java

@@ -0,0 +1,81 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(student_vip_group_payment):
+ */
+public class StudentVipGroupPayment {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Integer userId;
+	
+	/**  */
+	private Long vipGroupId;
+	
+	/**  */
+	private Integer classGroupId;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private Long studentPaymentOrderId;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setVipGroupId(Long vipGroupId){
+		this.vipGroupId = vipGroupId;
+	}
+	
+	public Long getVipGroupId(){
+		return this.vipGroupId;
+	}
+			
+	public void setClassGroupId(Integer classGroupId){
+		this.classGroupId = classGroupId;
+	}
+	
+	public Integer getClassGroupId(){
+		return this.classGroupId;
+	}
+			
+	public void setCreateTime(java.util.Date createTime){
+		this.createTime = createTime;
+	}
+	
+	public java.util.Date getCreateTime(){
+		return this.createTime;
+	}
+			
+	public void setStudentPaymentOrderId(Long studentPaymentOrderId){
+		this.studentPaymentOrderId = studentPaymentOrderId;
+	}
+	
+	public Long getStudentPaymentOrderId(){
+		return this.studentPaymentOrderId;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 114 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/SysUserContracts.java

@@ -0,0 +1,114 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * 对应数据库表(sys_user_contracts):
+ */
+public class SysUserContracts {
+
+	public enum ContractType implements BaseEnum<String, ContractType> {
+
+		REGISTER("注册"), INSTRUMENT("乐器借用"), COURSES("课程购买");
+
+		private String desc;
+
+		private ContractType(String desc) {
+			this.desc = desc;
+		}
+
+		@Override
+		public String getCode() {
+			return name();
+		}
+
+		public String getDesc() {
+			return desc;
+		}
+	}
+
+	/**  */
+	private Long id;
+
+	/**  */
+	private Integer userId;
+
+	/** 合同号 */
+	private String contractNo;
+
+	/** 协议类型 */
+	private ContractType type;
+
+	/** 协议地址 */
+	private String url;
+
+	/** 备注 */
+	private String memo;
+
+	/** 创建时间 */
+	private java.util.Date createTime;
+
+	public void setId(Long id) {
+		this.id = id;
+	}
+
+	public Long getId() {
+		return this.id;
+	}
+
+	public void setUserId(Integer userId) {
+		this.userId = userId;
+	}
+
+	public Integer getUserId() {
+		return this.userId;
+	}
+
+	public void setContractNo(String contractNo) {
+		this.contractNo = contractNo;
+	}
+
+	public String getContractNo() {
+		return this.contractNo;
+	}
+
+	public void setType(ContractType type) {
+		this.type = type;
+	}
+
+	public ContractType getType() {
+		return this.type;
+	}
+
+	public void setUrl(String url) {
+		this.url = url;
+	}
+
+	public String getUrl() {
+		return this.url;
+	}
+
+	public void setMemo(String memo) {
+		this.memo = memo;
+	}
+
+	public String getMemo() {
+		return this.memo;
+	}
+
+	public void setCreateTime(java.util.Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public java.util.Date getCreateTime() {
+		return this.createTime;
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 92 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TeacherDefaultVipGroupSalary.java

@@ -0,0 +1,92 @@
+package com.ym.mec.biz.dal.entity;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(teacher_default_vip_group_salary):
+ */
+public class TeacherDefaultVipGroupSalary {
+
+	/**  */
+	private Long id;
+	
+	/**  */
+	private Integer userId;
+	
+	/** 课程类型 */
+	private String vipGroupCategoryId;
+	
+	/** 线上课薪酬 */
+	private java.math.BigDecimal onlineClassesSalary;
+	
+	/** 线下课薪酬 */
+	private java.math.BigDecimal offlineClassesSalary;
+	
+	/**  */
+	private java.util.Date createTime;
+	
+	/**  */
+	private java.util.Date updateTime;
+	
+	public void setId(Long id){
+		this.id = id;
+	}
+	
+	public Long getId(){
+		return this.id;
+	}
+			
+	public void setUserId(Integer userId){
+		this.userId = userId;
+	}
+	
+	public Integer getUserId(){
+		return this.userId;
+	}
+			
+	public void setVipGroupCategoryId(String vipGroupCategoryId){
+		this.vipGroupCategoryId = vipGroupCategoryId;
+	}
+	
+	public String getVipGroupCategoryId(){
+		return this.vipGroupCategoryId;
+	}
+			
+	public void setOnlineClassesSalary(java.math.BigDecimal onlineClassesSalary){
+		this.onlineClassesSalary = onlineClassesSalary;
+	}
+	
+	public java.math.BigDecimal getOnlineClassesSalary(){
+		return this.onlineClassesSalary;
+	}
+			
+	public void setOfflineClassesSalary(java.math.BigDecimal offlineClassesSalary){
+		this.offlineClassesSalary = offlineClassesSalary;
+	}
+	
+	public java.math.BigDecimal getOfflineClassesSalary(){
+		return this.offlineClassesSalary;
+	}
+			
+	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;
+	}
+			
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 23 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -1,9 +1,8 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
-
+import com.ym.mec.biz.dal.enums.VipGroupStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
-
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.math.BigDecimal;
@@ -69,6 +68,28 @@ public class VipGroup {
 	@ApiModelProperty(value = "所属分部列表",required = false)
 	private String organIdList;
 
+	@ApiModelProperty("活动方案编号")
+	private Long vipGroupActivityId;
+
+	@ApiModelProperty(value = "课程状态")
+	private VipGroupStatusEnum status;
+
+	public VipGroupStatusEnum getStatus() {
+		return status;
+	}
+
+	public void setStatus(VipGroupStatusEnum status) {
+		this.status = status;
+	}
+
+	public Long getVipGroupActivityId() {
+		return vipGroupActivityId;
+	}
+
+	public void setVipGroupActivityId(Long vipGroupActivityId) {
+		this.vipGroupActivityId = vipGroupActivityId;
+	}
+
 	public AuditStatusEnum getAuditStatus() {
 		return auditStatus;
 	}

+ 9 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroupActivity.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.entity;
 
+import com.ym.mec.biz.dal.enums.VipGroupActivityTypeEnum;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -35,7 +36,7 @@ public class VipGroupActivity {
 	private java.util.Date coursesEndTime;
 	
 	/** 活动类型(基础活动、折扣、赠送课时) */
-	private String type;
+	private VipGroupActivityTypeEnum type;
 	
 	/**  */
 	private String attribute1;
@@ -132,15 +133,15 @@ public class VipGroupActivity {
 	public java.util.Date getCoursesEndTime(){
 		return this.coursesEndTime;
 	}
-			
-	public void setType(String type){
-		this.type = type;
+
+	public VipGroupActivityTypeEnum getType() {
+		return type;
 	}
-	
-	public String getType(){
-		return this.type;
+
+	public void setType(VipGroupActivityTypeEnum type) {
+		this.type = type;
 	}
-			
+
 	public void setAttribute1(String attribute1){
 		this.attribute1 = attribute1;
 	}

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

@@ -8,7 +8,7 @@ import com.ym.mec.common.enums.BaseEnum;
 public enum OrderDetailTypeEnum implements BaseEnum<String, OrderDetailTypeEnum> {
 	MUSICAL("MUSICAL", "乐器"),
 	TEACHING("TEACHING", "教辅"),
-	ELSE("ELSE", "其他"),
+	OTHER("OTHER", "其他"),
 	COURSE("COURSE", "课程");
 
 	private String code;

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SalarySettlementTypeEnum.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public enum SalarySettlementTypeEnum implements BaseEnum<Integer,SalarySettlementTypeEnum> {
+
+    TEACHER_DEFAULT(1,"老师默认课酬"),
+    RATIO_DISCOUNT(2,"课程单价比例折扣"),
+    FIXED_SALARY(3,"固定课酬");
+
+    private Integer code;
+
+    private String msg;
+
+    SalarySettlementTypeEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return this.code;
+    }
+}

+ 42 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupActivityTypeEnum.java

@@ -0,0 +1,42 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/2
+ **/
+public enum VipGroupActivityTypeEnum implements BaseEnum<String, VipGroupActivityTypeEnum> {
+
+    BASE_ACTIVITY("BASE_ACTIVITY","基础活动"),
+    DISCOUNT("DISCOUNT","折扣"),
+    GIVE_CLASS("GIVE_CLASS","赠送课时");
+
+    private String code;
+
+    private String description;
+
+    VipGroupActivityTypeEnum(String code, String description) {
+        this.code = code;
+        this.description = description;
+    }
+
+    @Override
+    public String getCode() {
+        return code;
+    }
+
+    public void setCode(String code) {
+        this.code = code;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+
+}

+ 38 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/VipGroupStatusEnum.java

@@ -0,0 +1,38 @@
+package com.ym.mec.biz.dal.enums;
+
+import com.ym.mec.common.enums.BaseEnum;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/2
+ */
+public enum  VipGroupStatusEnum implements BaseEnum<Integer, VipGroupStatusEnum> {
+
+    NOT_START(0, "未开始"), APPLYING(1, "报名中"), FINISH(2, "报名已结束"), CANCEL(3, "取消");
+
+    private Integer code;
+
+    private String msg;
+
+    VipGroupStatusEnum(Integer code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public void setCode(Integer code) {
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    @Override
+    public Integer getCode() {
+        return this.code;
+    }
+}

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupActivityQueryInfo.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+public class VipGroupActivityQueryInfo extends QueryInfo {
+
+    private Long organId;
+
+    public Long getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Long organId) {
+        this.organId = organId;
+    }
+}

+ 34 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -1,7 +1,5 @@
 package com.ym.mec.biz.service;
 
-import java.util.Map;
-
 public interface ContractService {
 
 	/**
@@ -14,16 +12,46 @@ public interface ContractService {
 	/**
 	 * 传递注册协议至第三方公证平台
 	 * @param userId
-	 * @param params
 	 * @return
 	 */
-	boolean transferRegisterContract(Integer userId, Map<String, Object> params);
+	boolean transferRegisterContract(Integer userId);
 
 	/**
 	 * 查询注册协议内容
 	 * @param userId
-	 * @param params
 	 * @return
 	 */
-	String queryRegisterContract(Integer userId, Map<String, Object> params);
+	String queryRegisterContract(Integer userId);
+
+	/**
+	 * 传递课程协议
+	 * @param userId
+	 * @param musicGroupId
+	 * @return
+	 */
+	boolean transferMusicGroupCoursesContract(Integer userId, Integer musicGroupId);
+
+	/**
+	 * 查询课程协议
+	 * @param userId
+	 * @param musicGroupId
+	 * @return
+	 */
+	String queryMusicGroupCoursesContract(Integer userId, Integer musicGroupId);
+
+	/**
+	 * 传递商品协议
+	 * @param userId
+	 * @param musicGroupId
+	 * @return
+	 */
+	boolean transferGoodsContract(Integer userId, Integer musicGroupId);
+
+	/**
+	 * 查询商品协议
+	 * @param userId
+	 * @param musicGroupId
+	 * @return
+	 */
+	String queryGoodsContract(Integer userId, Integer musicGroupId);
 }

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.common.service.BaseService;
+
+public interface CourseScheduleComplaintsService extends BaseService<Long, CourseScheduleComplaints> {
+
+}

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/StudentPaymentOrderService.java

@@ -1,8 +1,19 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.common.service.BaseService;
 
 public interface StudentPaymentOrderService extends BaseService<Long, StudentPaymentOrder> {
 
+	/**
+	 * 查询商品列表
+	 * @param musicGroupId
+	 * @param type
+	 * @return
+	 */
+	List<Goods> queryApplyGoodsList(Integer musicGroupId, OrderDetailTypeEnum type);
 }

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

@@ -1,18 +1,15 @@
 package com.ym.mec.biz.service;
 
+import java.util.List;
+
 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.entity.StudentRegistration;
-import com.ym.mec.biz.dal.page.StudentApplyDetailQueryInfo;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
-import org.apache.ibatis.annotations.Param;
-
-import java.util.HashMap;
-import java.util.List;
-
 public interface StudentRegistrationService extends BaseService<Long, StudentRegistration> {
 
     /**
@@ -74,5 +71,12 @@ public interface StudentRegistrationService extends BaseService<Long, StudentReg
      * @return
      */
     StudentRegistration addStudent(StudentRegistration studentRegistration);
+    
+    /**
+     * 查询学生信息
+     * @param userId
+     * @return
+     */
+    StudentInfo queryStudentInfo(Integer userId);
 
 }

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.StudentVipGroupPayment;
+import com.ym.mec.common.service.BaseService;
+
+public interface StudentVipGroupPaymentService extends BaseService<Long, StudentVipGroupPayment> {
+
+}

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.SysUserContracts;
+import com.ym.mec.common.service.BaseService;
+
+public interface SysUserContractsService extends BaseService<Long, SysUserContracts> {
+
+}

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

@@ -0,0 +1,8 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
+import com.ym.mec.common.service.BaseService;
+
+public interface TeacherDefaultVipGroupSalaryService extends BaseService<Long, TeacherDefaultVipGroupSalary> {
+
+}

+ 24 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupActivityService.java

@@ -1,8 +1,32 @@
 package com.ym.mec.biz.service;
 
+import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
 import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.common.service.BaseService;
 
+import java.util.List;
+
 public interface VipGroupActivityService extends BaseService<Integer, VipGroupActivity> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/1
+     * 新增vip课活动方案
+     */
+    void addVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/1
+     * 修改vip课活动方案
+     */
+    void updateVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 根据课程类型获取VIP课相关活动方案
+     */
+    List<VipGroupActivity> findByVipGroupCategory(Long categoryId);
+
 }

+ 15 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -1,13 +1,10 @@
 package com.ym.mec.biz.service;
 
-import com.ym.mec.biz.dal.dto.StudentVipGroupDetailDto;
-import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
-import com.ym.mec.biz.dal.dto.VipGroupManageDetailDto;
+import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.VipGroup;
 import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.common.page.PageInfo;
-import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
 
 public interface VipGroupService extends BaseService<Long, VipGroup> {
@@ -47,4 +44,18 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     StudentVipGroupDetailDto getVipGroupShowDetail(Long vipGroupId);
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/1
+     * vip课程费用计算
+     */
+    VipGroupCostCountDto vipGroupCostCount(VipGroupCostCountParamsDto vipGroupCostCountParamsDto);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 购买vip课程
+     */
+    void buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams);
+
 }

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

@@ -5,6 +5,8 @@ import java.io.IOException;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.commons.io.FileUtils;
@@ -15,8 +17,16 @@ import org.springframework.stereotype.Service;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.StudentInfo;
+import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.SysUserContracts;
+import com.ym.mec.biz.dal.entity.SysUserContracts.ContractType;
 import com.ym.mec.biz.dal.entity.SysUserTsign;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.SysUserContractsService;
 import com.ym.mec.biz.service.SysUserTsignService;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.thirdparty.eseal.ESealPlugin;
@@ -34,6 +44,15 @@ public class ContractServiceImpl implements ContractService {
 	private SysUserFeignService sysUserFeignService;
 
 	@Autowired
+	private SysUserContractsService sysUserContractsService;
+	
+	@Autowired
+	private StudentRegistrationService studentRegistrationService;
+	
+	@Autowired
+	private StudentPaymentOrderService studentPaymentOrderService;
+
+	@Autowired
 	private ESealPlugin eSealPlugin;
 
 	@Autowired
@@ -76,7 +95,7 @@ public class ContractServiceImpl implements ContractService {
 	}
 
 	@Override
-	public boolean transferRegisterContract(Integer userId, Map<String, Object> params) {
+	public boolean transferRegisterContract(Integer userId) {
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
 
@@ -85,7 +104,7 @@ public class ContractServiceImpl implements ContractService {
 		}
 
 		// 合成freemarker
-		String srcPdfPath = contractBaseDir + "/" + userId + ".pdf";
+		String srcPdfPath = contractBaseDir + "/register/" + userId + ".pdf";
 		File debtFile = new File(contractBaseDir);
 		if (!debtFile.exists()) {
 			debtFile.mkdirs();
@@ -94,6 +113,8 @@ public class ContractServiceImpl implements ContractService {
 		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
 		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
 
+		Map<String, Object> params = new HashMap<String, Object>();
+
 		templateEngine.render(params, "register.ftl", new File(srcPdfPath));
 
 		// 生成借款协议PDF
@@ -101,7 +122,7 @@ public class ContractServiceImpl implements ContractService {
 			PDFUtil.renderToPDFByData(ContractServiceImpl.class.getResource("/").getFile(), FileUtils.readFileToString(new File(srcPdfPath)), srcPdfPath,
 					"config/fonts/simsun.ttc");
 		} catch (IOException e) {
-			throw new BizException("生pdf协议失败", e);
+			throw new BizException("生pdf协议失败", e);
 		}
 
 		eSealPlugin.userSign(sysUserTsign.getAccountId(), sysUserTsign.getSealData(), srcPdfPath, srcPdfPath);
@@ -111,16 +132,24 @@ public class ContractServiceImpl implements ContractService {
 		String dateStrOss = dateFormatOss.format(date);
 		String pdfFilePath = storagePlugin.uploadFile(dateStrOss, new File(srcPdfPath));
 
+		SysUserContracts sysUserContracts = new SysUserContracts();
+		sysUserContracts.setCreateTime(date);
+		sysUserContracts.setType(ContractType.REGISTER);
+		sysUserContracts.setUrl(pdfFilePath);
+		sysUserContracts.setUserId(userId);
+
+		sysUserContractsService.insert(sysUserContracts);
+
 		FileUtils.deleteQuietly(new File(srcPdfPath));
 
 		return true;
 	}
 
 	@Override
-	public String queryRegisterContract(Integer userId, Map<String, Object> params) {
+	public String queryRegisterContract(Integer userId) {
 
 		// 合成freemarker
-		String srcPdfPath = contractBaseDir + "/" + userId + ".pdf";
+		String srcPdfPath = contractBaseDir + "/register/" + userId + ".pdf";
 		File debtFile = new File(contractBaseDir);
 		if (!debtFile.exists()) {
 			debtFile.mkdirs();
@@ -129,6 +158,8 @@ public class ContractServiceImpl implements ContractService {
 		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
 		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
 
+		Map<String, Object> params = new HashMap<String, Object>();
+
 		templateEngine.render(params, "register.ftl", new File(srcPdfPath));
 
 		String result = "";
@@ -142,4 +173,180 @@ public class ContractServiceImpl implements ContractService {
 		return result;
 	}
 
+	@Override
+	public boolean transferMusicGroupCoursesContract(Integer userId, Integer musicGroupId) {
+		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
+
+		if (sysUserTsign == null) {
+			return false;
+		}
+
+		// 合成freemarker
+		String srcPdfPath = contractBaseDir + "/courses/" + userId + ".pdf";
+		File debtFile = new File(contractBaseDir);
+		if (!debtFile.exists()) {
+			debtFile.mkdirs();
+		}
+
+		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
+		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
+
+		Map<String, Object> params = new HashMap<String, Object>();
+		
+		//查询参数信息
+		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		params.put("studentInfo", studentInfo);
+
+		templateEngine.render(params, "courses.ftl", new File(srcPdfPath));
+
+		// 生成借款协议PDF
+		try {
+			PDFUtil.renderToPDFByData(ContractServiceImpl.class.getResource("/").getFile(), FileUtils.readFileToString(new File(srcPdfPath)), srcPdfPath,
+					"config/fonts/simsun.ttc");
+		} catch (IOException e) {
+			throw new BizException("生成pdf协议失败", e);
+		}
+
+		eSealPlugin.userSign(sysUserTsign.getAccountId(), sysUserTsign.getSealData(), srcPdfPath, srcPdfPath);
+
+		Date date = new Date();
+		// 上传到oss
+		String dateStrOss = dateFormatOss.format(date);
+		String pdfFilePath = storagePlugin.uploadFile(dateStrOss, new File(srcPdfPath));
+
+		SysUserContracts sysUserContracts = new SysUserContracts();
+		sysUserContracts.setCreateTime(date);
+		sysUserContracts.setType(ContractType.REGISTER);
+		sysUserContracts.setUrl(pdfFilePath);
+		sysUserContracts.setUserId(userId);
+
+		sysUserContractsService.insert(sysUserContracts);
+
+		FileUtils.deleteQuietly(new File(srcPdfPath));
+
+		return true;
+	}
+
+	@Override
+	public String queryMusicGroupCoursesContract(Integer userId, Integer musicGroupId) {
+
+		// 合成freemarker
+		String srcPdfPath = contractBaseDir + "/courses/" + userId + ".pdf";
+		File debtFile = new File(contractBaseDir);
+		if (!debtFile.exists()) {
+			debtFile.mkdirs();
+		}
+
+		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
+		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
+
+		Map<String, Object> params = new HashMap<String, Object>();
+		
+		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		params.put("studentInfo", studentInfo);
+
+		templateEngine.render(params, "courses.ftl", new File(srcPdfPath));
+
+		String result = "";
+		try {
+			result = FileUtils.readFileToString(new File(srcPdfPath));
+		} catch (IOException e) {
+			throw new BizException("读取课程协议出错", e);
+		}
+		FileUtils.deleteQuietly(new File(srcPdfPath));
+
+		return result;
+	}
+
+	@Override
+	public boolean transferGoodsContract(Integer userId, Integer musicGroupId) {
+		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
+
+		if (sysUserTsign == null) {
+			return false;
+		}
+
+		// 合成freemarker
+		String srcPdfPath = contractBaseDir + "/goods/" + userId + ".pdf";
+		File debtFile = new File(contractBaseDir);
+		if (!debtFile.exists()) {
+			debtFile.mkdirs();
+		}
+
+		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
+		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
+
+		Map<String, Object> params = new HashMap<String, Object>();
+		
+		//查询参数信息
+		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		params.put("studentInfo", studentInfo);
+		
+		List<Goods> goodsList = studentPaymentOrderService.queryApplyGoodsList(musicGroupId, OrderDetailTypeEnum.MUSICAL);
+		params.put("goodsList", goodsList);
+
+		templateEngine.render(params, "goods.ftl", new File(srcPdfPath));
+
+		// 生成借款协议PDF
+		try {
+			PDFUtil.renderToPDFByData(ContractServiceImpl.class.getResource("/").getFile(), FileUtils.readFileToString(new File(srcPdfPath)), srcPdfPath,
+					"config/fonts/simsun.ttc");
+		} catch (IOException e) {
+			throw new BizException("生成pdf协议失败", e);
+		}
+
+		eSealPlugin.userSign(sysUserTsign.getAccountId(), sysUserTsign.getSealData(), srcPdfPath, srcPdfPath);
+
+		Date date = new Date();
+		// 上传到oss
+		String dateStrOss = dateFormatOss.format(date);
+		String pdfFilePath = storagePlugin.uploadFile(dateStrOss, new File(srcPdfPath));
+
+		SysUserContracts sysUserContracts = new SysUserContracts();
+		sysUserContracts.setCreateTime(date);
+		sysUserContracts.setType(ContractType.REGISTER);
+		sysUserContracts.setUrl(pdfFilePath);
+		sysUserContracts.setUserId(userId);
+
+		sysUserContractsService.insert(sysUserContracts);
+
+		FileUtils.deleteQuietly(new File(srcPdfPath));
+
+		return true;
+	}
+
+	@Override
+	public String queryGoodsContract(Integer userId, Integer musicGroupId) {
+
+		// 合成freemarker
+		String srcPdfPath = contractBaseDir + "/goods/" + userId + ".pdf";
+		File debtFile = new File(contractBaseDir);
+		if (!debtFile.exists()) {
+			debtFile.mkdirs();
+		}
+
+		FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
+		templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
+
+		Map<String, Object> params = new HashMap<String, Object>();
+
+		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		params.put("studentInfo", studentInfo);
+		
+		List<Goods> goodsList = studentPaymentOrderService.queryApplyGoodsList(musicGroupId, OrderDetailTypeEnum.MUSICAL);
+		params.put("goodsList", goodsList);
+
+		templateEngine.render(params, "goods.ftl", new File(srcPdfPath));
+
+		String result = "";
+		try {
+			result = FileUtils.readFileToString(new File(srcPdfPath));
+		} catch (IOException e) {
+			throw new BizException("读取商品协议出错", e);
+		}
+		FileUtils.deleteQuietly(new File(srcPdfPath));
+
+		return result;
+	}
+
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleComplaintsServiceImpl.java

@@ -0,0 +1,23 @@
+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.CourseScheduleComplaintsDao;
+import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
+import com.ym.mec.biz.service.CourseScheduleComplaintsService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class CourseScheduleComplaintsServiceImpl extends BaseServiceImpl<Long, CourseScheduleComplaints>  implements CourseScheduleComplaintsService {
+	
+	@Autowired
+	private CourseScheduleComplaintsDao courseScheduleComplaintsDao;
+
+	@Override
+	public BaseDAO<Long, CourseScheduleComplaints> getDAO() {
+		return courseScheduleComplaintsDao;
+	}
+	
+}

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

@@ -1,10 +1,14 @@
 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.StudentPaymentOrderDao;
+import com.ym.mec.biz.dal.entity.Goods;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
+import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
@@ -19,5 +23,10 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 	public BaseDAO<Long, StudentPaymentOrder> getDAO() {
 		return studentPaymentOrderDao;
 	}
+
+	@Override
+	public List<Goods> queryApplyGoodsList(Integer musicGroupId, OrderDetailTypeEnum type) {
+		return studentPaymentOrderDao.queryApplyGoodsList(musicGroupId, type);
+	}
 	
 }

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

@@ -19,6 +19,7 @@ import com.ym.mec.auth.api.enums.UserLockFlag;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 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.entity.StudentRegistration;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
@@ -121,4 +122,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         studentRegistrationDao.insert(studentRegistration);
         return studentRegistration;
     }
+
+	@Override
+	public StudentInfo queryStudentInfo(Integer userId) {
+		return studentRegistrationDao.queryStudentInfo(userId);
+	}
 }

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentVipGroupPaymentServiceImpl.java

@@ -0,0 +1,23 @@
+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.StudentVipGroupPaymentDao;
+import com.ym.mec.biz.dal.entity.StudentVipGroupPayment;
+import com.ym.mec.biz.service.StudentVipGroupPaymentService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class StudentVipGroupPaymentServiceImpl extends BaseServiceImpl<Long, StudentVipGroupPayment>  implements StudentVipGroupPaymentService {
+	
+	@Autowired
+	private StudentVipGroupPaymentDao studentVipGroupPaymentDao;
+
+	@Override
+	public BaseDAO<Long, StudentVipGroupPayment> getDAO() {
+		return studentVipGroupPaymentDao;
+	}
+	
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserContractsServiceImpl.java

@@ -0,0 +1,23 @@
+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.SysUserContractsDao;
+import com.ym.mec.biz.dal.entity.SysUserContracts;
+import com.ym.mec.biz.service.SysUserContractsService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class SysUserContractsServiceImpl extends BaseServiceImpl<Long, SysUserContracts>  implements SysUserContractsService {
+	
+	@Autowired
+	private SysUserContractsDao sysUserContractsDao;
+
+	@Override
+	public BaseDAO<Long, SysUserContracts> getDAO() {
+		return sysUserContractsDao;
+	}
+	
+}

+ 23 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultVipGroupSalaryServiceImpl.java

@@ -0,0 +1,23 @@
+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.TeacherDefaultVipGroupSalaryDao;
+import com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary;
+import com.ym.mec.biz.service.TeacherDefaultVipGroupSalaryService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+
+@Service
+public class TeacherDefaultVipGroupSalaryServiceImpl extends BaseServiceImpl<Long, TeacherDefaultVipGroupSalary>  implements TeacherDefaultVipGroupSalaryService {
+	
+	@Autowired
+	private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
+
+	@Override
+	public BaseDAO<Long, TeacherDefaultVipGroupSalary> getDAO() {
+		return teacherDefaultVipGroupSalaryDao;
+	}
+	
+}

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

@@ -1,13 +1,16 @@
 package com.ym.mec.biz.service.impl;
 
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
+import com.alibaba.fastjson.JSON;
 import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
+import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
 import com.ym.mec.biz.dal.entity.VipGroupActivity;
 import com.ym.mec.biz.service.VipGroupActivityService;
 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;
 
 @Service
 public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGroupActivity>  implements VipGroupActivityService {
@@ -19,5 +22,21 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 	public BaseDAO<Integer, VipGroupActivity> getDAO() {
 		return vipGroupActivityDao;
 	}
-	
+
+	@Override
+	public void addVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto) {
+		vipGroupActivityAddDto.setSalarySettlementJson(JSON.toJSONString(vipGroupActivityAddDto.getVipGroupSalarySettlement()));
+		super.insert(vipGroupActivityAddDto);
+	}
+
+	@Override
+	public void updateVipGroupActivity(VipGroupActivityAddDto vipGroupActivityAddDto) {
+		vipGroupActivityAddDto.setSalarySettlementJson(JSON.toJSONString(vipGroupActivityAddDto.getVipGroupSalarySettlement()));
+		super.update(vipGroupActivityAddDto);
+	}
+
+	@Override
+	public List<VipGroupActivity> findByVipGroupCategory(Long categoryId) {
+		return vipGroupActivityDao.findByCategory(categoryId);
+	}
 }

+ 134 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1,29 +1,32 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSON;
+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.enums.ClassGroupTypeEnum;
-import com.ym.mec.biz.dal.enums.TeachTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.biz.dal.enums.*;
 import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
+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.impl.BaseServiceImpl;
-
 import com.ym.mec.util.collection.MapUtil;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 @Service
 public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
@@ -38,6 +41,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
 	@Autowired
 	private CourseScheduleService courseScheduleService;
+	@Autowired
+	private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
+	@Autowired
+	private VipGroupActivityDao vipGroupActivityDao;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private TeacherDefaultVipGroupSalaryDao teacherDefaultVipGroupSalaryDao;
+    @Autowired
+    private StudentPaymentOrderDao studentPaymentOrderDao;
+    @Autowired
+    private StudentVipGroupPaymentDao studentVipGroupPaymentDao;
 
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
@@ -47,6 +62,20 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void createVipGroup(VipGroupApplyDto vipGroup) {
+
+	    if(vipGroup.getCourseSchedules().size()!=vipGroup.getVipGroupApplyBaseInfo().getAllCourseNum()){
+	        throw new BizException("课时总数不匹配!");
+        }
+
+        Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroup = vipGroup.getCourseSchedules().stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
+	    if(courseScheduleGroup.get(TeachModeEnum.OFFLINE).size()<vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()){
+	        throw new BizException("线下课课时数量安排有误!");
+        }
+        if(courseScheduleGroup.get(TeachModeEnum.ONLINE).size()<vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()){
+            throw new BizException("线上课课时数量安排有误!");
+        }
+
+        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
 		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
 		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 		ClassGroup classGroup=new ClassGroup();
@@ -65,6 +94,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupTeacherMapper.setSalary(vipGroupApplyBaseInfoDto.getSalary());
 		classGroupTeacherMapperDao.insert(classGroupTeacherMapper);
 		vipGroup.getCourseSchedules().forEach(courseSchedule -> {
+		    if(courseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
+                &&courseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())){
+		        throw new BizException("课时安排时间超出范围!");
+            }
 			courseSchedule.setClassGroupId(classGroup.getId());
 		});
 		courseScheduleService.batchAddCourseSchedule(vipGroup.getCourseSchedules());
@@ -120,4 +153,100 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	public StudentVipGroupDetailDto getVipGroupShowDetail(Long vipGroupId) {
 		return vipGroupDao.getVipGroupDetail(vipGroupId);
 	}
+
+	@Override
+	public VipGroupCostCountDto vipGroupCostCount(VipGroupCostCountParamsDto vipGroupCostCountParamsDto) {
+        SysUser user = sysUserFeignService.queryUserInfo();
+        TeacherDefaultVipGroupSalary teacherDefaultVipGroupSalary = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(user.getId().longValue(), vipGroupCostCountParamsDto.getVipGroupCategoryId());
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.get(vipGroupCostCountParamsDto.getVipGroupDefaultClassesUnitPriceId().intValue());
+		VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroupCostCountParamsDto.getVipGroupActivityId().intValue());
+        VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
+        BigDecimal offlineClassNum=new BigDecimal(vipGroupCostCountParamsDto.getOfflineClassesNum());
+        BigDecimal onlineClassNum=new BigDecimal(vipGroupCostCountParamsDto.getOnlineClassesNum());
+
+
+        //教师课酬
+        BigDecimal teacherOnlineSalary,teacherOfflineSalary,teacherSalary;
+        switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
+            case TEACHER_DEFAULT:
+                teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary().multiply(onlineClassNum);
+                break;
+            case RATIO_DISCOUNT:
+                teacherOnlineSalary=vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice().multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()).multiply(onlineClassNum);
+                break;
+            case FIXED_SALARY:
+                teacherOnlineSalary=vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().multiply(onlineClassNum);
+                break;
+             default:
+                 throw new BizException("未指定课酬结算标准!");
+        }
+        switch (vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSalarySettlementType()){
+            case TEACHER_DEFAULT:
+                teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(offlineClassNum);
+                break;
+            case RATIO_DISCOUNT:
+                teacherOfflineSalary=vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice().multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).multiply(offlineClassNum);
+                break;
+            case FIXED_SALARY:
+                teacherOfflineSalary=vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().multiply(offlineClassNum);
+                break;
+            default:
+                throw new BizException("未指定课酬结算标准!");
+        }
+        teacherSalary=teacherOnlineSalary.add(teacherOfflineSalary);
+        return new VipGroupCostCountDto(null,teacherSalary);
+    }
+
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public void buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams) {
+	    SysUser user = sysUserFeignService.queryUserInfo();
+        VipGroup vipGroup = vipGroupDao.get(vipGroupBuyParams.getVipGroupId());
+
+        if(vipGroup.getStatus()!=VipGroupStatusEnum.APPLYING){
+            throw new BizException("该课程已结束报名!");
+        }
+
+
+        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId().intValue());
+        StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
+        studentPaymentOrder.setUserId(user.getId());
+        String orderNo=StringUtils.join(new String[]{user.getId().toString(),String.valueOf(System.currentTimeMillis())});
+        studentPaymentOrder.setOrderNo(orderNo);
+        studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY);
+        studentPaymentOrder.setExpectAmount(countVipGroupPredictFee(vipGroup));
+        if(vipGroupActivity.getType()==VipGroupActivityTypeEnum.DISCOUNT){
+            studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount().multiply(new BigDecimal(vipGroupActivity.getAttribute1())));
+        }else{
+            studentPaymentOrder.setActualAmount(studentPaymentOrder.getExpectAmount());
+        }
+        VipGroupClassGroupMapper vipGroupClassGroupMapper = vipGroupClassGroupMapperDao.findByVipGroupId(vipGroup.getId());
+        studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
+        studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
+        studentPaymentOrderDao.insert(studentPaymentOrder);
+
+        StudentVipGroupPayment studentVipGroupPayment=new StudentVipGroupPayment();
+        studentVipGroupPayment.setUserId(user.getId());
+        studentPaymentOrder.setMusicGroupId(vipGroup.getId().toString());
+        studentPaymentOrder.setClassGroupId(vipGroupClassGroupMapper.getClassGroupId());
+        studentVipGroupPayment.setStudentPaymentOrderId(studentPaymentOrder.getId());
+        studentVipGroupPaymentDao.insert(studentVipGroupPayment);
+    }
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/2
+     * 计算VIP课程预计收费
+     */
+    private BigDecimal countVipGroupPredictFee(VipGroup vipGroup){
+        VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroup(vipGroup.getId());
+        BigDecimal offlineClassNum=new BigDecimal(vipGroup.getOfflineClassesNum());
+        BigDecimal onlineClassNum=new BigDecimal(vipGroup.getOnlineClassesNum());
+        BigDecimal onlineVipGroupCharge = vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice().multiply(onlineClassNum);
+        BigDecimal offlineVipGroupCharge = vipGroupDefaultClassesUnitPrice.
+                getOfflineClassesUnitPrice().
+                multiply(offlineClassNum);
+        return onlineVipGroupCharge.add(offlineVipGroupCharge);
+    }
+
 }

+ 0 - 0
mec-biz/src/main/resources/config/contracts/Instrument.html → mec-biz/src/main/resources/config/contracts/goods.ftl


+ 88 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleComplaintsMapper.xml

@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.CourseScheduleComplaintsDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.CourseScheduleComplaints" id="CourseScheduleComplaints">
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<result column="course_schedule_id_" property="courseScheduleId" />
+		<result column="reason_" property="reason" />
+		<result column="status_" property="status" />
+		<result column="wf_process_id_" property="wfProcessId" />
+		<result column="wf_order_id_" property="wfOrderId" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="CourseScheduleComplaints" >
+		SELECT * FROM course_schedule_complaints WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="CourseScheduleComplaints">
+		SELECT * FROM course_schedule_complaints ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleComplaints" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO course_schedule_complaints (id_,user_id_,course_schedule_id_,reason_,status_,wf_process_id_,wf_order_id_,create_time_,update_time_) VALUES(#{id},#{userId},#{courseScheduleId},#{reason},#{status},#{wfProcessId},#{wfOrderId},#{createTime},#{updateTime})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.CourseScheduleComplaints">
+		UPDATE course_schedule_complaints <set>
+<if test="status != null">
+status_ = #{status},
+</if>
+<if test="wfOrderId != null">
+wf_order_id_ = #{wfOrderId},
+</if>
+<if test="userId != null">
+user_id_ = #{userId},
+</if>
+<if test="wfProcessId != null">
+wf_process_id_ = #{wfProcessId},
+</if>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="courseScheduleId != null">
+course_schedule_id_ = #{courseScheduleId},
+</if>
+<if test="reason != null">
+reason_ = #{reason},
+</if>
+<if test="updateTime != null">
+update_time_ = #{updateTime},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM course_schedule_complaints WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="CourseScheduleComplaints" parameterType="map">
+		SELECT * FROM course_schedule_complaints ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM course_schedule_complaints
+	</select>
+</mapper>

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

@@ -20,7 +20,6 @@
         <result column="update_time_" property="updateTime"/>
         <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="complaint_status_" property="complaintStatus"/>
         <result column="name_" property="name"/>
     </resultMap>
 
@@ -43,7 +42,7 @@
         <result column="end_class_time_" property="endClassTime"/>
         <result column="teacher_id_" property="teacherId"/>
         <result column="teacher_name_" property="teacherName"/>
-        <result column="teach_mode_" property="teachMode" />
+        <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="rest_of_class_" property="restOfClass"/>
     </resultMap>

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

@@ -156,10 +156,10 @@ create_time_ = #{createTime},
 				AND FIND_IN_SET(dg.subject_id_,#{subjectIds})
 			</if>
 			<if test="startTime!=null and endTime==null">
-				AND dgcp.courses_start_time_=#{startTime}
+				AND dgcp.start_time_=#{startTime}
 			</if>
 			<if test="startTime!=null and endTime!=null">
-				AND dgcp.courses_start_time_&gt;=#{startTime} AND dgcp.courses_start_time_ &lt;= #{endTime}
+				AND dgcp.start_time_&gt;=#{startTime} AND dgcp.start_time_ &lt;= #{endTime}
 			</if>
 		</where>
 	</sql>
@@ -182,7 +182,7 @@ create_time_ = #{createTime},
 		LEFT JOIN demo_group_class_group_mapper dgcgm ON dg.id_=dgcgm.demo_group_id_
 		<include refid="demoGroupQueryCondition"/>
 		GROUP BY dgcp.id_,dg.id_
-		ORDER BY dgcp.courses_start_time_
+		ORDER BY dgcp.start_time_
 		<include refid="global.limit"/>
 	</select>
 	<select id="countDemoGroupList" resultType="java.lang.Integer">

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

@@ -16,6 +16,7 @@
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
         <result column="orig_payment_order_id_" property="origPaymentOrderId"/>
+        <result column="remark_" property="remark"/>
     </resultMap>
 
     <!-- 根据主键查询一条记录 -->
@@ -37,8 +38,8 @@
         </selectKey>
         -->
         INSERT INTO student_apply_refunds
-        (id_,user_id_,order_no_,status_,expect_amount_,actual_amount_,create_time_,update_time_,orig_payment_order_id_)
-        VALUES(#{id},#{userId},#{orderNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},now(),now(),#{origPaymentOrderId})
+        (id_,user_id_,order_no_,status_,expect_amount_,actual_amount_,create_time_,update_time_,orig_payment_order_id_,remark_)
+        VALUES(#{id},#{userId},#{orderNo},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{expectAmount},#{actualAmount},now(),now(),#{origPaymentOrderId},#{remark})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -66,6 +67,9 @@
             <if test="actualAmount != null">
                 actual_amount_ = #{actualAmount},
             </if>
+            <if test="remark != null">
+                remark_ = #{remark},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

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

@@ -22,7 +22,7 @@
 	<resultMap type="com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto" id="CourseHomeworkStudentDetailDto">
 		<result column="musicGroupName" property="musicGroupName" />
 		<result column="classGroupName" property="classGroupName"/>
-		<result column="id_" property="courseHomeworkId" />
+		<result column="courseHomeworkId" property="courseHomeworkId" />
 		<result column="content_" property="content" />
 		<result column="expiry_date_" property="expiryDate" />
 		<result column="completed_num_" property="completedNum" />
@@ -106,6 +106,7 @@
 		<result column="content_" property="content" />
 		<result column="create_time_" property="createTime" />
 		<result column="start_class_time_" property="startClassTime" />
+		<result column="expiry_date_" property="expiryDate"/>
 		<result column="music_group_id_" property="musicGroupId" />
 		<result column="music_group_name_" property="musicGroupName" />
 		<result column="class_group_id_" property="classGroupId" />
@@ -124,7 +125,7 @@
 				DATE_FORMAT(ch.create_time_,"%Y%m%d") = DATE_FORMAT(#{createTime},"%Y%m%d")
 			</if>
 			<if test="musicGroupId != null">
-				and ch.music_group_id_ = #{musicGroupId}
+				and cg.music_group_id_ = #{musicGroupId}
 			</if>
 			<if test="classGroupId != null">
 				and ch.class_group_id_ = #{classGroupId}
@@ -138,6 +139,7 @@
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="CourseHomeworkDto" parameterType="map">
 		SELECT
+		sch.id_,
 		ch.*,
 		mg.name_ music_group_name_,
 		cg.name_ class_group_name_,
@@ -165,6 +167,10 @@
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_course_homework sch
+		LEFT JOIN course_homework ch ON sch.course_homework_id_=ch.id_
+		LEFT JOIN course_schedule cs ON ch.course_schedule_id_=cs.id_
+		LEFT JOIN music_group mg ON ch.music_group_id_=mg.id_
+		LEFT JOIN class_group cg ON ch.class_group_id_=cg.id_
 		<include refid="queryCondition"/>
 	</select>
 	<select id="findCourseHomeworkStudentDetail" resultMap="CourseHomeworkStudentDetailDto">

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

@@ -19,6 +19,7 @@
         <result property="replyId" column="comment_id_"></result>
         <result property="userId" column="comment_user_id_"></result>
         <result property="userName" column="comment_user_name_"></result>
+        <result property="avatar" column="avatar_"/>
         <result property="content" column="comment_content_"></result>
         <result property="createTime" column="comment_time"></result>
     </resultMap>
@@ -76,10 +77,10 @@
     <sql id="queryCondition">
         <where>
             <if test="parentID!=null">
-                schr.parent_id_ = #{parentID}
+                AND schr.parent_id_ = #{parentID}
             </if>
             <if test="parentID==null">
-                schr.parent_id_ IS NULL
+               AND schr.parent_id_ IS NULL
             </if>
             <if test="studentCourseHomeworkId != null">
                AND schr.student_course_homework_id_=#{studentCourseHomeworkId}
@@ -93,6 +94,7 @@
             schr.id_ comment_id_,
             schr.user_id_ comment_user_id_,
             suc.username_ comment_user_name_,
+            suc.avatar_,
             schr.content_ comment_content_,
             schr.create_time_ comment_time
         FROM

+ 29 - 0
mec-biz/src/main/resources/config/mybatis/StudentPaymentOrderMapper.xml

@@ -24,6 +24,31 @@
         <result column="music_group_id_" property="musicGroupId"/>
         <result column="class_group_id_" property="classGroupId"/>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.entity.Goods" id="Goods">
+        <result column="id_" property="id"/>
+        <result column="goods_category_id_" property="goodsCategoryId"/>
+        <result column="sn_" property="sn"/>
+        <result column="name_" property="name"/>
+        <result column="brand_" property="brand"/>
+        <result column="specification_" property="specification"/>
+        <result column="image_" property="image"/>
+        <result column="stock_count_" property="stockCount"/>
+        <result column="sell_count_" property="sellCount"/>
+        <result column="market_price_" property="marketPrice"/>
+        <result column="discount_price_" property="discountPrice"/>
+        <result column="group_purchase_price_" property="groupPurchasePrice"/>
+        <result column="brief_" property="brief"/>
+        <result column="desc_" property="desc"/>
+        <result column="is_new_" property="isNew" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="is_top_" property="isTop" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="memo_" property="memo"/>
+        <result column="publish_time_" property="publishTime"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="complement_goods_id_list_" property="complementGoodsIdList"/>
+    </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentPaymentOrder">
@@ -113,4 +138,8 @@
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM student_payment_order
 	</select>
+	
+    <select id="queryApplyGoodsList" resultMap="Goods" parameterType="map">
+		select g.* from goods g where g.id_ in (SELECT spod.goods_id_list_ FROM student_payment_order spo left join student_payment_order_detail spod on spo.id_ = spod.payment_order_id_ where spo.music_group_id_ = #{musicGroupId} and spo.type_ = 'APPLY' and spod.type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler})
+	</select>
 </mapper>

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

@@ -31,6 +31,34 @@
         <result column="last_payment_date_" property="lastPaymentDate"/>
         <result column="next_payment_date_" property="nextPaymentDate"/>
     </resultMap>
+    
+    <resultMap type="com.ym.mec.biz.dal.dto.StudentInfo" id="StudentInfo">
+        <result column="id_" property="id"/>
+        <result column="username_" property="username"/>
+        <result column="password_" property="password"/>
+        <result column="salt_" property="salt"/>
+        <result column="phone_" property="phone"/>
+        <result column="avatar_" property="avatar"/>
+        <result column="organ_id_" property="organId"/>
+        <result column="create_time_" property="createTime"/>
+        <result column="update_time_" property="updateTime"/>
+        <result column="lock_flag_" property="lockFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="wx_openid_" property="wxOpenid"/>
+        <result column="qq_openid_" property="qqOpenid"/>
+        <result column="user_type_" property="userType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result column="gender_" property="gender"/>
+        <result column="nation_" property="nation"/>
+        <result column="birthdate_" property="birthdate"/>
+        <result column="email_" property="email"/>
+        <result column="im_token_" property="imToken"/>
+        <result column="id_card_no_" property="idCardNo"/>
+        <result column="wechat_id_" property="wechatId"/>
+        <result column="name_" property="name"/>
+        <result column="current_grade_" property="grade"/>
+        <result column="current_class_" property="clazz"/>
+        <result column="actual_subject_id_" property="subject.id"/>
+    </resultMap>
 
     <!-- 根据主键查询一条记录 -->
     <select id="get" resultMap="StudentRegistration">
@@ -220,4 +248,8 @@
     <update id="updateByUserIdAndMusicGroupId" parameterType="com.ym.mec.biz.dal.entity.StudentRegistration">
         UPDATE student_registration SET class_group_id_ = #{classGroupId} WHERE user_id_ = #{userId} AND music_group_id_ = #{musicGroupId}
     </update>
+    
+    <select id="queryStudentInfo" resultMap="StudentInfo">
+        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join student_registration  sr on u.id_ = sr.user_id_ where u.id_ = #{userId}
+    </select>
 </mapper>

+ 76 - 0
mec-biz/src/main/resources/config/mybatis/StudentVipGroupPaymentMapper.xml

@@ -0,0 +1,76 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.StudentVipGroupPaymentDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.StudentVipGroupPayment" id="StudentVipGroupPayment">
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<result column="vip_group_id_" property="vipGroupId" />
+		<result column="class_group_id_" property="classGroupId" />
+		<result column="create_time_" property="createTime" />
+		<result column="student_payment_order_id_" property="studentPaymentOrderId" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="StudentVipGroupPayment" >
+		SELECT * FROM student_vip_group_payment WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="StudentVipGroupPayment">
+		SELECT * FROM student_vip_group_payment ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.StudentVipGroupPayment" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO student_vip_group_payment (id_,user_id_,vip_group_id_,class_group_id_,create_time_,student_payment_order_id_) VALUES(#{id},#{userId},#{vipGroupId},#{classGroupId},#{createTime},#{studentPaymentOrderId})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.StudentVipGroupPayment">
+		UPDATE student_vip_group_payment <set>
+<if test="userId != null">
+user_id_ = #{userId},
+</if>
+<if test="vipGroupId != null">
+vip_group_id_ = #{vipGroupId},
+</if>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="classGroupId != null">
+class_group_id_ = #{classGroupId},
+</if>
+<if test="studentPaymentOrderId != null">
+student_payment_order_id_ = #{studentPaymentOrderId},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM student_vip_group_payment WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="StudentVipGroupPayment" parameterType="map">
+		SELECT * FROM student_vip_group_payment ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM student_vip_group_payment
+	</select>
+</mapper>

+ 86 - 0
mec-biz/src/main/resources/config/mybatis/SysUserContractsMapper.xml

@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!-- 这个文件是自动生成的。 不要修改此文件。所有改动将在下次重新自动生成时丢失。 -->
+<mapper namespace="com.ym.mec.biz.dal.dao.SysUserContractsDao">
+
+	<resultMap type="com.ym.mec.biz.dal.entity.SysUserContracts"
+		id="SysUserContracts">
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<result column="contract_no_" property="contractNo" />
+		<result column="type_" property="type" />
+		<result column="url_" property="url" />
+		<result column="memo_" property="memo" />
+		<result column="create_time_" property="createTime" />
+	</resultMap>
+
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="SysUserContracts">
+		SELECT * FROM
+		sys_user_contracts WHERE id_ = #{id}
+	</select>
+
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="SysUserContracts">
+		SELECT * FROM sys_user_contracts
+		ORDER BY id_
+	</select>
+
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.SysUserContracts"
+		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
+			AS ID FROM DUAL </selectKey> -->
+		INSERT INTO sys_user_contracts
+		(id_,user_id_,contract_no_,type_,url_,memo_,create_time_)
+		VALUES(#{id},#{userId},#{contractNo},#{type},#{url},#{memo},#{createTime})
+	</insert>
+
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.SysUserContracts">
+		UPDATE sys_user_contracts
+		<set>
+			<if test="userId != null">
+				user_id_ = #{userId},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="url != null">
+				url_ = #{url},
+			</if>
+			<if test="memo != null">
+				memo_ = #{memo},
+			</if>
+			<if test="contractNo != null">
+				contract_no_ = #{contractNo},
+			</if>
+			<if test="type != null">
+				type_ = #{type},
+			</if>
+			<if test="createTime != null">
+				create_time_ = #{createTime},
+			</if>
+		</set>
+		WHERE id_ = #{id}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete">
+		DELETE FROM sys_user_contracts WHERE id_ =
+		#{id}
+	</delete>
+
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="SysUserContracts"
+		parameterType="map">
+		SELECT * FROM sys_user_contracts ORDER BY id_
+		<include refid="global.limit" />
+	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM
+		sys_user_contracts
+	</select>
+</mapper>

+ 83 - 0
mec-biz/src/main/resources/config/mybatis/TeacherDefaultVipGroupSalaryMapper.xml

@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!--
+这个文件是自动生成的。
+不要修改此文件。所有改动将在下次重新自动生成时丢失。
+-->
+<mapper namespace="com.ym.mec.biz.dal.dao.TeacherDefaultVipGroupSalaryDao">
+	
+	<resultMap type="com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary" id="TeacherDefaultVipGroupSalary">
+		<result column="id_" property="id" />
+		<result column="user_id_" property="userId" />
+		<result column="vip_group_category_id_" property="vipGroupCategoryId" />
+		<result column="online_classes_salary_" property="onlineClassesSalary" />
+		<result column="offline_classes_salary_" property="offlineClassesSalary" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+	</resultMap>
+	
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="TeacherDefaultVipGroupSalary" >
+		SELECT * FROM teacher_default_vip_group_salary WHERE id_ = #{id} 
+	</select>
+	
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="TeacherDefaultVipGroupSalary">
+		SELECT * FROM teacher_default_vip_group_salary ORDER BY id_
+	</select>
+	
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!--
+		<selectKey resultClass="int" keyProperty="id" > 
+		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
+		</selectKey>
+		-->
+		INSERT INTO teacher_default_vip_group_salary (id_,user_id_,vip_group_category_id_,online_classes_salary_,offline_classes_salary_,create_time_,update_time_) VALUES(#{id},#{userId},#{vipGroupCategoryId},#{onlineClassesSalary},#{offlineClassesSalary},#{createTime},#{updateTime})
+	</insert>
+	
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.TeacherDefaultVipGroupSalary">
+		UPDATE teacher_default_vip_group_salary <set>
+<if test="userId != null">
+user_id_ = #{userId},
+</if>
+<if test="id != null">
+id_ = #{id},
+</if>
+<if test="onlineClassesSalary != null">
+online_classes_salary_ = #{onlineClassesSalary},
+</if>
+<if test="updateTime != null">
+update_time_ = #{updateTime},
+</if>
+<if test="offlineClassesSalary != null">
+offline_classes_salary_ = #{offlineClassesSalary},
+</if>
+<if test="vipGroupCategoryId != null">
+vip_group_category_id_ = #{vipGroupCategoryId},
+</if>
+<if test="createTime != null">
+create_time_ = #{createTime},
+</if>
+</set> WHERE id_ = #{id} 
+	</update>
+	
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete" >
+		DELETE FROM teacher_default_vip_group_salary WHERE id_ = #{id} 
+	</delete>
+	
+	<!-- 分页查询 -->
+	<select id="queryPage" resultMap="TeacherDefaultVipGroupSalary" parameterType="map">
+		SELECT * FROM teacher_default_vip_group_salary ORDER BY id_ <include refid="global.limit"/>
+	</select>
+	
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(*) FROM teacher_default_vip_group_salary
+	</select>
+	<select id="findByTeacherAndCategory" resultMap="TeacherDefaultVipGroupSalary">
+		select * from teacher_default_vip_group_salary where user_id_=#{userId} and vip_group_category_id_=#{categoryId}
+	</select>
+</mapper>

+ 21 - 4
mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml

@@ -44,7 +44,7 @@
 		SELECT SEQ_WSDEFINITION_ID.nextval AS ID FROM DUAL 
 		</selectKey>
 		-->
-		INSERT INTO vip_group_activity (id_,name_,description_,vip_group_category_id_list_,start_time_,end_time_,organ_id_,courses_start_time_,courses_end_time_,type_,attribute1_,attribute2_,attribute3_,salary_readonly_flag_,give_class_pay_salary_flag_,create_time_,update_time_,salary_settlement_json_) VALUES(#{id},#{name},#{description},#{vipGroupCategoryIdList},#{startTime},#{endTime},#{organId},#{coursesStartTime},#{coursesEndTime},#{type},#{attribute1},#{attribute2},#{attribute3},#{salaryReadonlyFlag},#{giveClassPaySalaryFlag},#{createTime},#{updateTime},#{salarySettlementJson})
+		INSERT INTO vip_group_activity (id_,name_,description_,vip_group_category_id_list_,start_time_,end_time_,organ_id_,courses_start_time_,courses_end_time_,type_,attribute1_,attribute2_,attribute3_,salary_readonly_flag_,give_class_pay_salary_flag_,create_time_,update_time_,salary_settlement_json_) VALUES(#{id},#{name},#{description},#{vipGroupCategoryIdList},#{startTime},#{endTime},#{organId},#{coursesStartTime},#{coursesEndTime},#{type},#{attribute1},#{attribute2},#{attribute3},#{salaryReadonlyFlag},#{giveClassPaySalaryFlag},now(),now(),#{salarySettlementJson})
 	</insert>
 	
 	<!-- 根据主键查询一条记录 -->
@@ -109,16 +109,33 @@ type_ = #{type},
 	
 	<!-- 根据主键删除一条记录 -->
 	<delete id="delete" >
-		DELETE FROM vip_group_activity WHERE id_ = #{id} 
+		DELETE FROM vip_group_activity WHERE id_ = #{id}
 	</delete>
-	
+
+	<sql id="queryCondition">
+		<where>
+			organ_id_=#{organId}
+		</where>
+	</sql>
+
 	<!-- 分页查询 -->
 	<select id="queryPage" resultMap="VipGroupActivity" parameterType="map">
-		SELECT * FROM vip_group_activity ORDER BY id_ <include refid="global.limit"/>
+		SELECT * FROM vip_group_activity
+		<include refid="queryCondition"/>
+		ORDER BY id_ <include refid="global.limit"/>
 	</select>
 	
 	<!-- 查询当前表的总记录数 -->
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM vip_group_activity
+		<include refid="queryCondition"/>
+	</select>
+    <select id="findByCategory" resultMap="VipGroupActivity">
+		SELECT
+			*
+		FROM
+			vip_group_activity
+		WHERE
+			FIND_IN_SET( #{categoryId}, vip_group_category_id_list_ )
 	</select>
 </mapper>

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

@@ -67,4 +67,7 @@
     <select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM vip_group_class_group_mapper
 	</select>
+    <select id="findByVipGroupId" resultMap="VipGroupClassGroupMapper">
+        SELECT * FROM vip_group_class_group_mapper WHERE vip_group_id_=#{vipGroupId}
+    </select>
 </mapper>

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

@@ -77,4 +77,13 @@ create_time_ = #{createTime},
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM vip_group_default_classes_unit_price_
 	</select>
+    <select id="getByVipGroup" resultMap="VipGroupDefaultClassesUnitPrice">
+		SELECT
+			vgdcup.*
+		FROM
+			vip_group vg
+			LEFT JOIN teacher t ON vg.user_id_=t.id_
+			LEFT JOIN vip_group_default_classes_unit_price_ vgdcup ON vg.vip_group_category_id_=vgdcup.vip_group_category_id_ AND t.organ_id_=vgdcup.organ_id_
+			WHERE vg.id_=#{vipGroupId}
+	</select>
 </mapper>

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

@@ -21,6 +21,8 @@
         <result column="audit_status_" property="auditStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="unit_price_" property="unitPrice"/>
         <result column="organ_id_list_" property="organIdList"/>
+        <result column="vip_group_activity_id_" property="vipGroupActivityId"/>
+        <result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <resultMap id="studentManageVipGroup" type="com.ym.mec.biz.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
@@ -86,8 +88,8 @@
         </selectKey>
         -->
         INSERT INTO vip_group
-        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,unit_price_,organ_id_list_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{unitPrice},#{organIdList})
+        (id_,user_id_,single_class_minutes_,payment_expire_date_,courses_expire_date_,create_time_,update_time_,teacher_school_id_,online_classes_num_,offline_classes_num_,registration_start_time_,unit_price_,organ_id_list_,vip_group_activity_id_,status_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{unitPrice},#{organIdList},#{vipGroupActivityId},#{status,typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -130,6 +132,15 @@
             <if test="auditStatus != null">
                 audit_status_ = #{auditStatus,typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"},
             </if>
+            <if test="organIdList != null">
+                organ_id_list_ = #{organIdList},
+            </if>
+            <if test="vipGroupActivityId != null">
+                vip_group_activity_id_ = #{vipGroupActivityId},
+            </if>
+            <if test="status_ != null">
+                status_ = #{status,typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 6 - 6
mec-student/src/main/java/com/ym/mec/student/controller/RegisterController.java → mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -13,10 +13,10 @@ import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.common.controller.BaseController;
 
-@RequestMapping("register")
-@Api(tags = "注册服务")
+@RequestMapping("contracts")
+@Api(tags = "协议服务")
 @RestController
-public class RegisterController extends BaseController {
+public class ContractsController extends BaseController {
 
 	@Autowired
 	private SysUserFeignService sysUserFeignService;
@@ -25,13 +25,13 @@ public class RegisterController extends BaseController {
 	private ContractService contractService;
 
 	@ApiOperation("查询注册协议")
-	@GetMapping(value = "queryContract")
-	public Object queryCoursePage() {
+	@GetMapping(value = "queryRegisterContract")
+	public Object queryRegisterContract() {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed("获取用户信息失败");
 		}
-		return succeed(contractService.queryRegisterContract(sysUser.getId(), null));
+		return succeed(contractService.queryRegisterContract(sysUser.getId()));
 	}
 
 }

+ 13 - 20
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkController.java → mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java

@@ -1,25 +1,17 @@
-package com.ym.mec.web.controller.student;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-
-import java.io.IOException;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-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.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+package com.ym.mec.student.controller;
 
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
 import com.ym.mec.biz.service.StudentCourseHomeworkService;
 import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.*;
+
+import java.io.IOException;
 
 /**
  * @Author Joburgess
@@ -42,21 +34,22 @@ public class StudentCourseHomeworkController extends BaseController {
     }
 
     @ApiOperation(value = "重新提交")
-    @PutMapping(value = "/update",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+    @PostMapping(value = "/update",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
     public Object update(@RequestBody StudentCourseHomework studentCourseHomework){
         studentCourseHomework.setStatus(YesOrNoEnum.YES);
+        studentCourseHomework.setId(studentCourseHomework.getCourseHomeworkId());
         studentCourseHomeworkService.update(studentCourseHomework);
         return succeed();
     }
 
     @ApiOperation(value = "获取学生作业界面详细信息")
-    @GetMapping(value = "/findCourseHomeworkStudentDetail/{courseScheduleID}")
-    public Object findCourseHomeworkStudentDetail(@PathVariable("courseScheduleID") Long courseScheduleID) throws IOException {
+    @GetMapping(value = "/findCourseHomeworkStudentDetail")
+    public Object findCourseHomeworkStudentDetail(Long courseScheduleID) throws IOException {
         return succeed(studentCourseHomeworkService.findCourseHomeworkStudentDetail(courseScheduleID));
     }
 
     @ApiOperation(value = "分页查询作业列表")
-    @GetMapping(value = "/queryPage")
+    @PostMapping(value = "/queryPage")
     public Object queryPage(@RequestBody(required = false) CourseHomeworkQueryInfo queryInfo){
         if(queryInfo == null){
             queryInfo = new CourseHomeworkQueryInfo();

+ 7 - 15
mec-web/src/main/java/com/ym/mec/web/controller/student/StudentCourseHomeworkReplyController.java → mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java

@@ -1,22 +1,14 @@
-package com.ym.mec.web.controller.student;
-
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.DeleteMapping;
-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.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+package com.ym.mec.student.controller;
 
 import com.ym.mec.biz.dal.entity.StudentCourseHomeworkReply;
 import com.ym.mec.biz.dal.page.StudentCourseHomeworkReplyQueryInfo;
 import com.ym.mec.biz.service.StudentCourseHomeworkReplyService;
 import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
 
 /**
  * @Author Joburgess
@@ -39,7 +31,7 @@ public class StudentCourseHomeworkReplyController extends BaseController {
     }
 
     @ApiOperation(value = "回复查询")
-    @GetMapping("/queryPage")
+    @PostMapping("/queryPage")
     public Object queryPage(@RequestBody StudentCourseHomeworkReplyQueryInfo queryInfo){
         return succeed(studentCourseHomeworkReplyService.queryPage(queryInfo));
     }

+ 7 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -1,5 +1,6 @@
 package com.ym.mec.teacher.controller;
 
+import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
@@ -39,4 +40,10 @@ public class TeacherVipGroupController extends BaseController {
         return succeed();
     }
 
+    @ApiOperation("获取vip课课程和课酬总费用")
+    @PostMapping("/getVipGroupCostCount")
+    public Object getVipGroupCostCount(VipGroupCostCountParamsDto vipGroupCostCountParamsDto){
+        return succeed(vipGroupService.vipGroupCostCount(vipGroupCostCountParamsDto));
+    }
+
 }

+ 1 - 0
mec-thirdparty/pom.xml

@@ -58,6 +58,7 @@
 			<scope>system</scope>
 			<systemPath>${project.basedir}/libs/utils-3.0.6.jar</systemPath>
 		</dependency>
+
 		<dependency>
 			<groupId>cfca.sadk</groupId>
 			<artifactId>cfca.sadk</artifactId>

+ 58 - 0
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupActivityController.java

@@ -0,0 +1,58 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
+import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
+import com.ym.mec.biz.service.VipGroupActivityService;
+import com.ym.mec.common.controller.BaseController;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/1
+ */
+
+@Api(tags = "vip课活动")
+@RequestMapping("vipGroupActivity")
+@RestController
+public class VipGroupActivityController extends BaseController {
+
+    @Autowired
+    private VipGroupActivityService vipGroupActivityService;
+
+    @ApiOperation(value = "新增vip课活动方案")
+    @PostMapping("/addVipGroupActivity")
+    public Object addVipGroupActivity(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
+        vipGroupActivityService.addVipGroupActivity(vipGroupActivityAddDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "分页查询活动方案")
+    @GetMapping("/queryPage")
+    public Object queryPage(VipGroupActivityQueryInfo queryInfo){
+        return succeed(vipGroupActivityService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "修改活动方案")
+    @PostMapping("/update")
+    public Object update(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
+        vipGroupActivityService.updateVipGroupActivity(vipGroupActivityAddDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "删除活动方案")
+    @PostMapping("/delete")
+    public Object delete(Long id){
+        vipGroupActivityService.delete(id.intValue());
+        return succeed();
+    }
+
+    @ApiOperation(value = "根据课程类型获取对应课程活动方案")
+    @GetMapping("/findByVipGroupCategory")
+    public Object findByVipGroupCategory(Long categoryId){
+        return succeed(vipGroupActivityService.findByVipGroupCategory(categoryId));
+    }
+
+}