Joburgess 5 anos atrás
pai
commit
d50437674b

+ 19 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -55,6 +55,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/10/11
+     * @params [params]
+     * @return java.util.List<com.ym.mec.biz.dal.dto.CourseScheduleDto>
+     * @describe 根据
+     */
+    List<CourseScheduleDto> getCourseSchedulesWithDate(Map<String,Object> params);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/17
      * 根据乐团ID删除排课
      */
@@ -87,6 +96,16 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/10/11
+     * @params [month, organId]
+     * @return java.util.List<java.util.Date>
+     * @describe 获取当月有课的日期
+     */
+    List<Date> getCourseScheduleDate(@Param("month") Date month,
+                                     @Param("organId") Long organId);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/23
      * 统计教师在一天内有时间重复的课数
      */

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java

@@ -1,9 +1,11 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.VipGroupSalaryDto;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import com.ym.mec.common.dal.BaseDAO;
 
 import java.util.List;
+import java.util.Map;
 
 public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseScheduleTeacherSalary> {
 
@@ -15,5 +17,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
      * @describe 批量插入
      */
     int batchInsert(List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries);
+
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/11
+     * @params [params]
+     * @return java.util.List<com.ym.mec.biz.dal.dto.VipGroupSalaryDto>
+     * @describe 获取vip课财务记录
+     */
+    List<VipGroupSalaryDto> findVipGroupSalarys(Map<String,Object> params);
+    int countVipGroupSalarys(Map<String,Object> params);
 	
 }

+ 49 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/VipGroupSalaryDto.java

@@ -0,0 +1,49 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.enums.TeachModeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/11
+ */
+public class VipGroupSalaryDto extends CourseScheduleTeacherSalary {
+
+    @ApiModelProperty(value = "课程编号")
+    private Long courseScheduleId;
+
+    @ApiModelProperty(value = "上课日期")
+    private java.util.Date classDate;
+
+    @ApiModelProperty(value = "教学形式")
+    private TeachModeEnum teachMode;
+
+    @Override
+    public Long getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    @Override
+    public void setCourseScheduleId(Long courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public Date getClassDate() {
+        return classDate;
+    }
+
+    public void setClassDate(Date classDate) {
+        this.classDate = classDate;
+    }
+
+    public TeachModeEnum getTeachMode() {
+        return teachMode;
+    }
+
+    public void setTeachMode(TeachModeEnum teachMode) {
+        this.teachMode = teachMode;
+    }
+}

+ 57 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/VipGroupSalaryQueryInfo.java

@@ -0,0 +1,57 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/11
+ */
+public class VipGroupSalaryQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "vip课编号")
+    private Long vipGroupId;
+
+    @ApiModelProperty(value = "部门编号")
+    private Long organId;
+
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    public Long getVipGroupId() {
+        return vipGroupId;
+    }
+
+    public void setVipGroupId(Long vipGroupId) {
+        this.vipGroupId = vipGroupId;
+    }
+
+    public Long getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(Long organId) {
+        this.organId = organId;
+    }
+
+    public Date getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(Date startTime) {
+        this.startTime = startTime;
+    }
+
+    public Date getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(Date endTime) {
+        this.endTime = endTime;
+    }
+}

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

@@ -79,6 +79,15 @@ public interface CourseScheduleService extends BaseService<Long, CourseSchedule>
 
     /**
      * @Author: Joburgess
+     * @Date: 2019/10/11
+     * @params [month]
+     * @return java.util.List<java.util.Date>
+     * @describe 获取
+     */
+    List<Date> getCourseScheduleDates(Date month);
+
+    /**
+     * @Author: Joburgess
      * @Date: 2019/9/23
      * 课时调整
      */

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

@@ -3,10 +3,7 @@ package com.ym.mec.biz.service;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.StudentApplyRefunds;
 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.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
@@ -149,4 +146,13 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      */
     void applyRefundAudit(StudentApplyRefunds studentApplyRefunds);
 
+    /**
+     * @Author: Joburgess
+     * @Date: 2019/10/11
+     * @params [queryInfo]
+     * @return com.ym.mec.common.page.PageInfo
+     * @describe vip财务记录
+     */
+    PageInfo findVipGroupSalarys(VipGroupSalaryQueryInfo queryInfo);
+
 }

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -119,12 +119,24 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	}
 
 	@Override
+	public List<Date> getCourseScheduleDates(Date month) {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if(null==user){
+			throw new BizException("请登录");
+		}
+		return courseScheduleDao.getCourseScheduleDate(month,user.getOrganId().longValue());
+	}
+
+	@Override
 	public Map getStudentCourseSchedulesWithDate(Date classDate) {
 		if(Objects.isNull(classDate)){
 			throw new BizException("请选择上课日期!");
 		}
 
 		SysUser user = sysUserFeignService.queryUserInfo();
+		if(null==user){
+			throw new BizException("请登录");
+		}
 		SysConfig vip_appeal_days_range = sysConfigDao.findByParamName("vip_appeal_days_range");
 		Map<String,Object> result=new HashMap<>();
 		result.put("vipAppealDaysRange",vip_appeal_days_range.getParanValue());
@@ -134,7 +146,13 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 	@Override
 	public List<CourseScheduleDto> getTeacherCourseSchedulesWithDate(Date classDate) {
+		if(Objects.isNull(classDate)){
+			throw new BizException("请选择上课日期!");
+		}
 		SysUser user = sysUserFeignService.queryUserInfo();
+		if(null==user){
+			throw new BizException("请登录");
+		}
 		return courseScheduleDao.getTeacherCourseSchedulesWithDate(classDate,user.getId().longValue());
 	}
 

+ 27 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -7,10 +7,7 @@ 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.*;
-import com.ym.mec.biz.dal.page.StudentVipGroupQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupAttendanceQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.dal.page.VipGroupTeachingRecordQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.dal.BaseDAO;
@@ -95,8 +92,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         //获取活动信息
         VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId().intValue());
 		VipGroupSalarySettlementDto vipGroupSalarySettlementDto = JSON.parseObject(vipGroupActivity.getSalarySettlementJson(), VipGroupSalarySettlementDto.class);
-
-
+		
 		//生成vip课信息
 		VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto=vipGroup.getVipGroupApplyBaseInfo();
 		vipGroupApplyBaseInfoDto.setTotalPrice(countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
@@ -585,4 +581,29 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 				throw new BizException("审核状态错误!");
 		}
 	}
+
+	@Override
+	public PageInfo findVipGroupSalarys(VipGroupSalaryQueryInfo queryInfo) {
+
+    	if(Objects.isNull(queryInfo.getVipGroupId())){
+    		throw new BizException("请指定vip课程!");
+		}
+
+		PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List dataList = null;
+		int count = courseScheduleTeacherSalaryDao.countVipGroupSalarys(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = courseScheduleTeacherSalaryDao.findVipGroupSalarys(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

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

@@ -417,6 +417,26 @@
         GROUP BY
         cs.class_date_
     </select>
+
+    <select id="getCourseScheduleDate" resultType="java.util.Date">
+        SELECT
+            cs.class_date_
+        FROM
+            music_group mg
+            LEFT JOIN class_group cg ON mg.id_ = cg.music_group_id_
+            LEFT JOIN course_schedule cs ON cg.id_ = cs.class_group_id_
+        WHERE
+            mg.organ_id_ = 1 AND cs.id_ IS NOT NULL
+            <if test="month==null">
+                AND DATE_FORMAT( NOW(), '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+            <if test="month!=null">
+                AND DATE_FORMAT( #{month}, '%Y%m' ) = DATE_FORMAT( cs.class_date_, '%Y%m' )
+            </if>
+        GROUP BY
+            cs.class_date_
+    </select>
+
     <select id="findClassSubjects" resultType="string">
         SELECT
             CONCAT(cg.id_,'-',IF(GROUP_CONCAT(s.name_) IS NULL,'',GROUP_CONCAT(s.name_)))

+ 40 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -96,4 +96,44 @@ create_time_ = #{createTime},
 	<select id="queryCount" resultType="int">
 		SELECT COUNT(*) FROM course_schedule_teacher_salary
 	</select>
+
+	<resultMap id="VipGroupSalaryDto" type="com.ym.mec.biz.dal.dto.VipGroupSalaryDto" extends="CourseScheduleTeacherSalary">
+		<result column="course_schedule_id_" property="courseScheduleId" />
+		<result column="class_date_" property="classDate" />
+		<result column="teach_mode_" property="teachMode" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler" />
+	</resultMap>
+
+	<sql id="vipGroupSalaryQueryCondition">
+		<where>
+			vg.id=#{vipGroupId} AND FIND_IN_SET(#{organId},vg.organ_id_list_)
+			<if test="startTime!=null and endTime!=null">
+				AND (cs.class_date BETWEEN #{startTime} AND #{endTime})
+			</if>
+		</where>
+	</sql>
+
+	<select id="findVipGroupSalarys" resultMap="VipGroupSalaryDto">
+		SELECT
+			cs.id_ course_schedule_id_,
+			CONCAT(cs.class_date_," ",cs.start_class_time_) class_date_,
+			cs.teach_mode_,
+			csts.*
+		FROM
+			vip_group vg
+			LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
+			LEFT JOIN course_schedule cs ON vgcgm.class_group_id_ = cs.class_group_id_
+			LEFT JOIN course_schedule_teacher_salary csts ON cs.id_ = csts.course_schedule_id_
+			<include refid="vipGroupSalaryQueryCondition"/>
+		ORDER BY id_
+		<include refid="global.limit"/>
+	</select>
+	<select id="countVipGroupSalarys" resultType="int">
+		SELECT
+			COUNT(*)
+		FROM
+			vip_group vg
+			LEFT JOIN vip_group_class_group_mapper vgcgm ON vg.id_ = vgcgm.vip_group_id_
+			LEFT JOIN course_schedule cs ON vgcgm.class_group_id_ = cs.class_group_id_
+		<include refid="vipGroupSalaryQueryCondition"/>
+	</select>
 </mapper>

+ 27 - 5
mec-education/src/main/java/com/ym/mec/education/controller/CourseScheduleController.java

@@ -1,8 +1,9 @@
 package com.ym.mec.education.controller;
 
+import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.education.base.BaseResponse;
 import com.ym.mec.education.base.PageResponse;
-import com.ym.mec.education.entity.CourseSchedule;
 import com.ym.mec.education.req.ClassGroupReq;
 import com.ym.mec.education.req.CourseScheduleReq;
 import com.ym.mec.education.resp.CourseScheduleResp;
@@ -12,10 +13,9 @@ import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
-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;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Objects;
 
 /**
  * @program: mec
@@ -31,6 +31,8 @@ public class CourseScheduleController {
 
     @Autowired
     private ICourseScheduleService courseScheduleService;
+    @Autowired
+    private CourseScheduleService scheduleService;
 
     @PostMapping("/list")
     @ApiOperation("课表列表")
@@ -57,4 +59,24 @@ public class CourseScheduleController {
         return courseScheduleService.courseInfo(courseScheduleReq);
     }
 
+    @ApiOperation(value = "课时调整")
+    @PostMapping(value = "/classStartDateAdjust")
+    public Object classStartDateAdjust(ClassDateAdjustDto classDateAdjustDto){
+        if(Objects.isNull(classDateAdjustDto.getId())){
+            return BaseResponse.errorParam();
+        }
+        scheduleService.classStartDateAdjust(classDateAdjustDto);
+        return BaseResponse.success(null);
+    }
+
+    @ApiOperation(value = "课时交换")
+    @GetMapping(value = "/courseSwap")
+    public Object courseSwap(Long courseScheduleId1,Long courseScheduleId2){
+        if(Objects.isNull(courseScheduleId1)||Objects.isNull(courseScheduleId2)){
+            return BaseResponse.errorParam();
+        }
+        scheduleService.courseSwap(courseScheduleId1,courseScheduleId2);
+        return BaseResponse.success(null);
+    }
+
 }