Browse Source

vip课相关调整

Joburgess 5 years ago
parent
commit
9241753b2d
28 changed files with 562 additions and 59 deletions
  1. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultVipGroupSalaryDao.java
  2. 9 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupActivityDao.java
  3. 0 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/VipGroupDefaultClassesUnitPriceDao.java
  4. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/StudentCourseHomeworkCommentDto.java
  5. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupActivityAddDto.java
  6. 42 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountDto.java
  7. 65 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupCostCountParamsDto.java
  8. 34 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementDto.java
  9. 47 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalarySettlementTypeDto.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseHomeworkReply.java
  11. 12 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/StudentCourseScheduleRecordDto.java
  12. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java
  13. 40 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SalarySettlementTypeEnum.java
  14. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupActivityQueryInfo.java
  15. 24 0
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupActivityService.java
  16. 8 4
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  17. 23 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java
  18. 66 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  19. 1 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  20. 3 3
      mec-biz/src/main/resources/config/mybatis/DemoGroupMapper.xml
  21. 6 2
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkMapper.xml
  22. 2 0
      mec-biz/src/main/resources/config/mybatis/StudentCourseHomeworkReplyMapper.xml
  23. 3 0
      mec-biz/src/main/resources/config/mybatis/TeacherDefaultVipGroupSalaryMapper.xml
  24. 21 4
      mec-biz/src/main/resources/config/mybatis/VipGroupActivityMapper.xml
  25. 12 20
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkController.java
  26. 7 15
      mec-student/src/main/java/com/ym/mec/student/controller/StudentCourseHomeworkReplyController.java
  27. 7 0
      mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java
  28. 58 0
      mec-web/src/main/java/com/ym/mec/web/controller/VipGroupActivityController.java

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

@@ -2,8 +2,16 @@ 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);
+
 }

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

@@ -5,5 +5,4 @@ import com.ym.mec.common.dal.BaseDAO;
 
 public interface VipGroupDefaultClassesUnitPriceDao extends BaseDAO<Integer, VipGroupDefaultClassesUnitPrice> {
 
-	
 }

+ 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;
     }

+ 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;
+    }
+}

+ 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;
+    }
+}

+ 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;
     }

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

@@ -69,6 +69,17 @@ public class VipGroup {
 	@ApiModelProperty(value = "所属分部列表",required = false)
 	private String organIdList;
 
+	@ApiModelProperty("活动方案编号")
+	private Long vipGroupActivityId;
+
+	public Long getVipGroupActivityId() {
+		return vipGroupActivityId;
+	}
+
+	public void setVipGroupActivityId(Long vipGroupActivityId) {
+		this.vipGroupActivityId = vipGroupActivityId;
+	}
+
 	public AuditStatusEnum getAuditStatus() {
 		return auditStatus;
 	}

+ 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;
+    }
+}

+ 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;
+    }
+}

+ 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);
+
 }

+ 8 - 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,11 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     StudentVipGroupDetailDto getVipGroupShowDetail(Long vipGroupId);
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/1
+     * vip课程费用计算
+     */
+    VipGroupCostCountDto vipGroupCostCount(VipGroupCostCountParamsDto vipGroupCostCountParamsDto);
+
 }

+ 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);
+	}
 }

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

@@ -1,5 +1,8 @@
 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.*;
@@ -11,15 +14,15 @@ 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.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;
@@ -38,6 +41,14 @@ 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;
 
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
@@ -47,6 +58,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	@Transactional(rollbackFor = Exception.class)
 	@Override
 	public void createVipGroup(VipGroupApplyDto vipGroup) {
+        VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
 		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
 		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
 		ClassGroup classGroup=new ClassGroup();
@@ -65,6 +77,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 +136,52 @@ 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());
+        //vip课总费用
+        BigDecimal onlineVipGroupCharge = vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice().multiply(onlineClassNum);
+        BigDecimal offlineVipGroupCharge = vipGroupDefaultClassesUnitPrice.
+                                            getOfflineClassesUnitPrice().
+                                            multiply(offlineClassNum);
+        BigDecimal vipGroupCharge=onlineVipGroupCharge.add(offlineClassNum);
+
+        //教师课酬
+        BigDecimal teacherOnlineSalary = null,teacherOfflineSalay=null,teacherSalary=null;
+        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:
+                teacherOfflineSalay=teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(offlineClassNum);
+                break;
+            case RATIO_DISCOUNT:
+                teacherOfflineSalay=vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice().multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).multiply(offlineClassNum);
+                break;
+            case FIXED_SALARY:
+                teacherOfflineSalay=vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().multiply(offlineClassNum);
+                break;
+            default:
+                throw new BizException("未指定课酬结算标准!");
+        }
+        teacherSalary=teacherOnlineSalary.add(teacherOfflineSalay);
+        return new VipGroupCostCountDto(vipGroupCharge,teacherSalary);
+    }
 }

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

@@ -43,7 +43,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/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" />
@@ -124,7 +124,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}
@@ -165,6 +165,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">

+ 2 - 0
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>
@@ -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

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

@@ -77,4 +77,7 @@ create_time_ = #{createTime},
 	<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>

+ 12 - 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,7 +34,7 @@ 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);
         studentCourseHomeworkService.update(studentCourseHomework);
@@ -50,13 +42,13 @@ public class StudentCourseHomeworkController extends BaseController {
     }
 
     @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));
+    }
+
 }

+ 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));
+    }
+
+}