Bladeren bron

vip课部分接口

Joburgess 5 jaren geleden
bovenliggende
commit
e214c7eb0b

+ 36 - 0
mec-web/src/main/java/com/ym/mec/web/controller/system/VipGroupManageController.java

@@ -0,0 +1,36 @@
+package com.ym.mec.web.controller.system;
+
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.dto.VipGroupApplyDto;
+import com.ym.mec.web.service.VipGroupService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/21
+ */
+@Api("vip课")
+@RequestMapping("vipGroupManage")
+@RestController
+public class VipGroupManageController extends BaseController {
+
+    @Autowired
+    private VipGroupService vipGroupService;
+
+    @ApiOperation("vip课申请")
+    @PostMapping("/vipGroupApply")
+    public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto){
+        String s=vipGroupService.createVipGroup(vipGroupApplyDto);
+        if(s.isEmpty()){
+            return succeed();
+        }else{
+            return failed(s);
+        }
+    }
+}

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

@@ -0,0 +1,44 @@
+package com.ym.mec.web.controller.teacher;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.web.dal.dto.VipGroupApplyDto;
+import com.ym.mec.web.service.VipGroupService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+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;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/21
+ */
+@Api("vip课-教师端")
+@RequestMapping("teacherVipGroup")
+@RestController
+public class TeacherVipGroupController extends BaseController {
+
+    @Autowired
+    private VipGroupService vipGroupService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+    @ApiOperation("vip课申请")
+    @PostMapping("/vipGroupApply")
+    public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto){
+        SysUser user = sysUserFeignService.queryUserInfo();
+        vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
+        String s=vipGroupService.createVipGroup(vipGroupApplyDto);
+        if(s.isEmpty()){
+            return succeed();
+        }else{
+            return failed(s);
+        }
+    }
+
+}

+ 46 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/VipGroupApplyBaseInfoDto.java

@@ -0,0 +1,46 @@
+package com.ym.mec.web.dal.dto;
+
+import com.ym.mec.web.dal.entity.VipGroup;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.math.BigDecimal;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/21
+ */
+public class VipGroupApplyBaseInfoDto extends VipGroup {
+
+    @ApiModelProperty(value = "教师ID",required = false)
+    private Long teacherId;
+
+    @ApiModelProperty(value = "课酬",required = false)
+    private BigDecimal salary;
+
+    @ApiModelProperty(value = "预计招生人数",hidden = true)
+    private Integer expectStudentNum;
+
+    public Long getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Long teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public Integer getExpectStudentNum() {
+        return expectStudentNum;
+    }
+
+    public void setExpectStudentNum(Integer expectStudentNum) {
+        this.expectStudentNum = expectStudentNum;
+    }
+
+    public BigDecimal getSalary() {
+        return salary;
+    }
+
+    public void setSalary(BigDecimal salary) {
+        this.salary = salary;
+    }
+}

+ 35 - 0
mec-web/src/main/java/com/ym/mec/web/dal/dto/VipGroupApplyDto.java

@@ -0,0 +1,35 @@
+package com.ym.mec.web.dal.dto;
+
+import com.ym.mec.web.dal.entity.CourseSchedule;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.List;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/21
+ */
+public class VipGroupApplyDto {
+
+    @ApiModelProperty(value = "vip课基本信息",required = false)
+    private VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo;
+
+    @ApiModelProperty(value = "课程计划列表",required = false)
+    private List<CourseSchedule> courseSchedules;
+
+    public VipGroupApplyBaseInfoDto getVipGroupApplyBaseInfo() {
+        return vipGroupApplyBaseInfo;
+    }
+
+    public void setVipGroupApplyBaseInfo(VipGroupApplyBaseInfoDto vipGroupApplyBaseInfo) {
+        this.vipGroupApplyBaseInfo = vipGroupApplyBaseInfo;
+    }
+
+    public List<CourseSchedule> getCourseSchedules() {
+        return courseSchedules;
+    }
+
+    public void setCourseSchedules(List<CourseSchedule> courseSchedules) {
+        this.courseSchedules = courseSchedules;
+    }
+}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroup.java

@@ -60,6 +60,17 @@ public class ClassGroup {
 	@ApiModelProperty(value = "是否删除,1是 0否", required = false)
 	private YesOrNoEnum delFlag;
 
+	@ApiModelProperty(value = "总统课次",required = false)
+	private Integer totalClassTimes;
+
+	public Integer getTotalClassTimes() {
+		return totalClassTimes;
+	}
+
+	public void setTotalClassTimes(Integer totalClassTimes) {
+		this.totalClassTimes = totalClassTimes;
+	}
+
 	public YesOrNoEnum getDelFlag() {
 		return delFlag;
 	}

+ 9 - 8
mec-web/src/main/java/com/ym/mec/web/dal/entity/ClassGroupTeacherMapper.java

@@ -1,5 +1,6 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.TeachTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
@@ -23,7 +24,7 @@ public class ClassGroupTeacherMapper {
 	
 	/** 老师角色(主教、助教) */
 	@ApiModelProperty(value = "老师角色",required = false)
-	private String teacherRole;
+	private TeachTypeEnum teacherRole;
 	
 	/**  */
 	@ApiModelProperty(value = "用户编号",required = false)
@@ -62,15 +63,15 @@ public class ClassGroupTeacherMapper {
 	public Integer getClassGroupId(){
 		return this.classGroupId;
 	}
-			
-	public void setTeacherRole(String teacherRole){
-		this.teacherRole = teacherRole;
+
+	public TeachTypeEnum getTeacherRole() {
+		return teacherRole;
 	}
-	
-	public String getTeacherRole(){
-		return this.teacherRole;
+
+	public void setTeacherRole(TeachTypeEnum teacherRole) {
+		this.teacherRole = teacherRole;
 	}
-			
+
 	public void setUserId(Integer userId){
 		this.userId = userId;
 	}

+ 11 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/CourseSchedule.java

@@ -55,6 +55,17 @@ public class CourseSchedule {
 
 	private boolean complaintStatus;
 
+	@ApiModelProperty(value = "当前课次",required = false)
+	private Integer currentClassTimes;
+
+	public Integer getCurrentClassTimes() {
+		return currentClassTimes;
+	}
+
+	public void setCurrentClassTimes(Integer currentClassTimes) {
+		this.currentClassTimes = currentClassTimes;
+	}
+
 	public void setId(Long id) {
 		this.id = id;
 	}

+ 35 - 0
mec-web/src/main/java/com/ym/mec/web/dal/entity/VipGroup.java

@@ -1,8 +1,10 @@
 package com.ym.mec.web.dal.entity;
 
+import com.ym.mec.web.dal.enums.AuditStatusEnum;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -53,6 +55,39 @@ public class VipGroup {
 	@ApiModelProperty(value = "线下课课时数", required = false)
 	private Integer offlineClassesNum;
 
+	@ApiModelProperty(value = "学生购买价格",required = false)
+	private BigDecimal price;
+
+	@ApiModelProperty(value = "审批状态",required = false)
+	private AuditStatusEnum auditStatus;
+
+	@ApiModelProperty(value = "课程类型ID",required = false)
+	private Long vipGroupCategoryId;
+
+	public AuditStatusEnum getAuditStatus() {
+		return auditStatus;
+	}
+
+	public void setAuditStatus(AuditStatusEnum auditStatus) {
+		this.auditStatus = auditStatus;
+	}
+
+	public Long getVipGroupCategoryId() {
+		return vipGroupCategoryId;
+	}
+
+	public void setVipGroupCategoryId(Long vipGroupCategoryId) {
+		this.vipGroupCategoryId = vipGroupCategoryId;
+	}
+
+	public BigDecimal getPrice() {
+		return price;
+	}
+
+	public void setPrice(BigDecimal price) {
+		this.price = price;
+	}
+
 	public String getName() {
 		return name;
 	}

+ 8 - 0
mec-web/src/main/java/com/ym/mec/web/service/VipGroupService.java

@@ -1,8 +1,16 @@
 package com.ym.mec.web.service;
 
 import com.ym.mec.common.service.BaseService;
+import com.ym.mec.web.dal.dto.VipGroupApplyDto;
 import com.ym.mec.web.dal.entity.VipGroup;
 
 public interface VipGroupService extends BaseService<Long, VipGroup> {
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/9/21
+     * 创建vip课
+     */
+    String createVipGroup(VipGroupApplyDto vipGroup);
+
 }

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

@@ -4,6 +4,7 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
+import com.ym.mec.web.dal.enums.TeachTypeEnum;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -167,7 +168,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             ClassGroupTeacherMapper classGroupTeacherMapper = new ClassGroupTeacherMapper();
             classGroupTeacherMapper.setMusicGroupId(highClassGroup.getUserId());
             classGroupTeacherMapper.setClassGroupId(classGroupId.intValue());
-            classGroupTeacherMapper.setTeacherRole("BISHOP");
+            classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
             classGroupTeacherMapper.setUserId(highClassGroup.getUserId());
             classGroupTeacherMapper.setSalary(teacherSalary.getMainTeacherSalary());
             classGroupTeacherMapper.setCreateTime(date);

+ 1 - 0
mec-web/src/main/java/com/ym/mec/web/service/impl/CourseScheduleServiceImpl.java

@@ -71,6 +71,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	/**
 	 * 判断课程安排中是否存在冲突
+	 * 计算课程课次
 	 * @param courseSchedules
 	 * @return
 	 */

+ 43 - 3
mec-web/src/main/java/com/ym/mec/web/service/impl/VipGroupServiceImpl.java

@@ -2,21 +2,61 @@ package com.ym.mec.web.service.impl;
 
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
-import com.ym.mec.web.dal.dao.VipGroupDao;
-import com.ym.mec.web.dal.entity.VipGroup;
+import com.ym.mec.web.dal.dao.*;
+import com.ym.mec.web.dal.dto.VipGroupApplyBaseInfoDto;
+import com.ym.mec.web.dal.dto.VipGroupApplyDto;
+import com.ym.mec.web.dal.entity.*;
+import com.ym.mec.web.dal.enums.ClassGroupTypeEnum;
+import com.ym.mec.web.dal.enums.TeachTypeEnum;
+import com.ym.mec.web.dal.enums.YesOrNoEnum;
+import com.ym.mec.web.service.CourseScheduleService;
 import com.ym.mec.web.service.VipGroupService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 @Service
 public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> implements VipGroupService {
 	
 	@Autowired
 	private VipGroupDao vipGroupDao;
+	@Autowired
+	private ClassGroupDao classGroupDao;
+	@Autowired
+	private VipGroupClassGroupMapperDao vipGroupClassGroupMapperDao;
+	@Autowired
+	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
+	@Autowired
+	private CourseScheduleService courseScheduleService;
 
 	@Override
 	public BaseDAO<Long, VipGroup> getDAO() {
 		return vipGroupDao;
 	}
-	
+
+	@Transactional(rollbackFor = Exception.class)
+	@Override
+	public String createVipGroup(VipGroupApplyDto vipGroup) {
+		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
+		vipGroupDao.insert(vipGroupApplyBaseInfoDto);
+		ClassGroup classGroup=new ClassGroup();
+		classGroup.setName(vipGroupApplyBaseInfoDto.getName());
+		classGroup.setExpectStudentNum(vipGroupApplyBaseInfoDto.getExpectStudentNum());
+		classGroup.setType(ClassGroupTypeEnum.VIP);
+		classGroup.setDelFlag(YesOrNoEnum.NO);
+		classGroupDao.insert(classGroup);
+		VipGroupClassGroupMapper vipGroupClassGroupMapper=new VipGroupClassGroupMapper();
+		vipGroupClassGroupMapper.setVipGroupId(vipGroupApplyBaseInfoDto.getId());
+		vipGroupClassGroupMapper.setClassGroupId(classGroup.getId());
+		vipGroupClassGroupMapperDao.insert(vipGroupClassGroupMapper);
+		ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
+		classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.TEACHING);
+		classGroupTeacherMapper.setUserId(Integer.parseInt(vipGroupApplyBaseInfoDto.getTeacherId().toString()));
+		classGroupTeacherMapper.setSalary(vipGroupApplyBaseInfoDto.getSalary());
+		classGroupTeacherMapperDao.insert(classGroupTeacherMapper);
+		vipGroup.getCourseSchedules().forEach(courseSchedule -> {
+			courseSchedule.setClassGroupId(classGroup.getId());
+		});
+		return courseScheduleService.batchAddCourseSchedule(vipGroup.getCourseSchedules());
+	}
 }

+ 6 - 0
mec-web/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -16,6 +16,7 @@
         <result column="type_" property="type" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="del_flag_" property="delFlag" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="expect_student_num_" property="expectStudentNum"/>
+        <result column="total_class_times_" property="totalClassTimes"/>
         <!--<association property="musicGroupId" javaType="com.ym.mec.web.dal.entity.MusicGroup" >-->
         <!--<result column="name_" property="name"/>-->
         <!--<result column="status_" property="status" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>-->
@@ -49,6 +50,7 @@
             <if test="updateTime!=null">update_time_,</if>
             <if test="type!=null">type_,</if>
             <if test="expectStudentNum!=null">expect_student_num_,</if>
+            <if test="totalClassTimes!=null">total_class_times_,</if>
         </trim>
         VALUES
         <trim prefix="(" suffix=")" suffixOverrides=",">
@@ -61,6 +63,7 @@
             <if test="updateTime!=null">#{updateTime},</if>
             <if test="type!=null">#{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},</if>
             <if test="expectStudentNum!=null">#{expectStudentNum},</if>
+            <if test="totalClassTimes!=null">#{totalClassTimes},</if>
         </trim>
     </insert>
 
@@ -101,6 +104,9 @@
             <if test="expectStudentNum != null">
                 expect_student_num_ = #{expectStudentNum},
             </if>
+            <if test="totalClassTimes != null">
+                total_class_times_ = #{totalClassTimes},
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 8 - 4
mec-web/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -20,6 +20,7 @@
         <result column="update_time_" property="updateTime"/>
         <result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
         <result column="complaint_status_" property="complaintStatus"/>
+        <result column="current_class_times_" property="currentClassTimes"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.web.dal.dto.CourseScheduleDto" id="courseScheduleDto" extends="CourseSchedule">
@@ -46,16 +47,16 @@
         </selectKey>
         -->
         INSERT INTO course_schedule
-        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_)
-        VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{actualTeacherId},now(),now())
+        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,current_class_times_)
+        VALUES(#{id},#{classGroupId},#{status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{subsidy},#{classDate},#{startClassTime},#{endClassTime},#{teacherId},#{actualTeacherId},now(),now(),#{currentClassTimes})
     </insert>
 
     <insert id="batchAddCourseSchedules" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id_">
         INSERT INTO course_schedule
-        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_)
+        (id_,class_group_id_,status_,subsidy_,class_date_,start_class_time_,end_class_time_,teacher_id_,actual_teacher_id_,create_time_,update_time_,current_class_times_)
         VALUE
         <foreach collection="list" item="course" separator=",">
-            (#{course.id},#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.actualTeacherId},now(),now())
+            (#{course.id},#{course.classGroupId},#{course.status,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{course.subsidy},#{course.classDate},#{course.startClassTime},#{course.endClassTime},#{course.teacherId},#{course.actualTeacherId},now(),now(),#{currentClassTimes})
         </foreach>
     </insert>
 
@@ -90,6 +91,9 @@
             <if test="updateTime != null">
                 update_time_ = #{updateTime},
             </if>
+            <if test="currentClassTimes!=null">
+                current_class_times_=#{currentClassTimes}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>

+ 6 - 2
mec-web/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -18,6 +18,7 @@
         <result column="teacher_school_id_" property="teacherSchoolId"/>
         <result column="online_classes_num_" property="onlineClassesNum"/>
         <result column="offline_classes_num_" property="offlineClassesNum"/>
+        <result column="price_" property="price"/>
     </resultMap>
 
     <resultMap id="studentManageVipGroup" type="com.ym.mec.web.dal.dto.StudentManageVipGroupDto" extends="VipGroup">
@@ -55,8 +56,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_)
-        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime})
+        (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_,price_)
+        VALUES(#{id},#{userId},#{singleClassMinutes},#{paymentExpireDate},#{coursesExpireDate},now(),now(),#{teacherSchoolId},#{onlineClassesNum},#{offlineClassesNum},#{registrationStartTime},#{price})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -90,6 +91,9 @@
             <if test="registrationStartTime != null">
                 registration_start_time_ = #{registrationStartTime},
             </if>
+            <if test="price!=null">
+                price_=#{price}
+            </if>
         </set>
         WHERE id_ = #{id}
     </update>