Joburgess 5 年之前
父節點
當前提交
9a7715ee02

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

@@ -68,4 +68,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 */
 	int batchUpdateTeacherExpectSalary(@Param("courseScheduleId") Integer courseScheduleId,
 									   @Param("userIds") List<Integer> userIds);
+
+	/**
+	 * @describe 根据班级编号和教师类型获取老师列表
+	 * @author Joburgess
+	 * @date 2019/10/23
+	 * @param courseScheduleIds:
+	 * @param teacherRole:
+	 * @return java.util.List<com.ym.mec.biz.dal.dto.BasicUserDto>
+	 */
+	List<CourseScheduleTeacherSalary> findByCourseScheduleIdsAndTeacherRole(@Param("courseScheduleIds") List<Integer> courseScheduleIds,
+															 @Param("teacherRole") String teacherRole);
 }

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleDto.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.enums.StudentAttendanceStatusEnum;
+import com.ym.mec.biz.dal.enums.TeachTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 /**
@@ -35,6 +36,17 @@ public class CourseScheduleDto extends CourseSchedule {
     @ApiModelProperty(value = "签退状态(1已签到,0未签到)",required = false)
     private Integer signOutStatus;
 
+    @ApiModelProperty(value = "教师角色")
+    private TeachTypeEnum teacherRole;
+
+    public TeachTypeEnum getTeacherRole() {
+        return teacherRole;
+    }
+
+    public void setTeacherRole(TeachTypeEnum teacherRole) {
+        this.teacherRole = teacherRole;
+    }
+
     public String getStudentNames() {
         return studentNames;
     }

+ 34 - 8
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/MusicGroupCourseScheduleDto.java

@@ -1,9 +1,15 @@
 package com.ym.mec.biz.dal.dto;
 
+import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 public class MusicGroupCourseScheduleDto {
 
+    @ApiModelProperty(value = "课程编号")
+    private Integer courseScheduleId;
+
     @ApiModelProperty(value = "上课日期",required = false)
     private String classDate;
 
@@ -34,11 +40,38 @@ public class MusicGroupCourseScheduleDto {
     @ApiModelProperty(value = "签退状态",required = false)
     private String signOutStatus;
 
+    @ApiModelProperty(value = "主教老师编号")
+    private Integer masterTeacherId;
+
     @ApiModelProperty(value = "主教老师",required = false)
     private String masterTeacherName;
 
     @ApiModelProperty(value = "助教老师",required = false)
-    private String subTeacherName;
+    private List<CourseScheduleTeacherSalary> teachingTeachers;
+
+    public List<CourseScheduleTeacherSalary> getTeachingTeachers() {
+        return teachingTeachers;
+    }
+
+    public void setTeachingTeachers(List<CourseScheduleTeacherSalary> teachingTeachers) {
+        this.teachingTeachers = teachingTeachers;
+    }
+
+    public Integer getCourseScheduleId() {
+        return courseScheduleId;
+    }
+
+    public void setCourseScheduleId(Integer courseScheduleId) {
+        this.courseScheduleId = courseScheduleId;
+    }
+
+    public Integer getMasterTeacherId() {
+        return masterTeacherId;
+    }
+
+    public void setMasterTeacherId(Integer masterTeacherId) {
+        this.masterTeacherId = masterTeacherId;
+    }
 
     public String getMixClassGroupName() {
         return mixClassGroupName;
@@ -128,11 +161,4 @@ public class MusicGroupCourseScheduleDto {
         this.masterTeacherName = masterTeacherName;
     }
 
-    public String getSubTeacherName() {
-        return subTeacherName;
-    }
-
-    public void setSubTeacherName(String subTeacherName) {
-        this.subTeacherName = subTeacherName;
-    }
 }

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.entity;
 
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 
 /**
@@ -19,6 +20,9 @@ public class CourseScheduleTeacherSalary {
 	
 	/**  */
 	private Integer userId;
+
+	@ApiModelProperty(value = "用户名称")
+	private String userName;
 	
 	/** 预计薪水 */
 	private java.math.BigDecimal expectSalary;
@@ -39,7 +43,15 @@ public class CourseScheduleTeacherSalary {
 	private java.util.Date settlementTime;
 	
 	private Integer classGroupId;
-	
+
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
 	public void setId(Long id){
 		this.id = id;
 	}

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

@@ -894,19 +894,34 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             //获取当前合奏班班级编号列表
             Set<Integer> mixClassGroupIds = dataList.stream().map(e -> e.getMixClassGroupId()).collect(Collectors.toSet());
             String mixClassGroupIdsStr = StringUtils.join(mixClassGroupIds, ",");
-            //获取当前班级编号列表
-            Set<Integer> classGroupIds = dataList.stream().map(e -> e.getClassGroupId()).collect(Collectors.toSet());
-            String classGroupIdsStr = StringUtils.join(classGroupIds, ",");
+            //所有课程编号的列表
+            List<Integer> couseScheduleIds = dataList.stream().map(MusicGroupCourseScheduleDto::getCourseScheduleId).distinct().collect(Collectors.toList());
             //获取合奏班名称
             Map<Integer,String> classGroupNames = MapUtil.convertMybatisMap(classGroupDao.findNameById(mixClassGroupIdsStr));
-            //获取主教老师
-            Map<Integer,String> masterTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(classGroupIdsStr, "BISHOP"));
-            //获取助教老师
-            Map<Integer,String> subTeachers = MapUtil.convertMybatisMap(classGroupDao.countStudentNum(classGroupIdsStr, "TEACHING"));
+
+            //主教老师
+            List<CourseScheduleTeacherSalary> bishopTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "BISHOP");
+            Map<Long, CourseScheduleTeacherSalary> courseScheduleBishopTeacherMaps = bishopTeachers.stream().collect(Collectors.toMap(CourseScheduleTeacherSalary::getCourseScheduleId, courseScheduleTeacherSalary -> courseScheduleTeacherSalary));
+
+            //助教老师
+            List<CourseScheduleTeacherSalary> teachingTeachers = courseScheduleTeacherSalaryDao.findByCourseScheduleIdsAndTeacherRole(couseScheduleIds, "TEACHING");
+            Map<Long, List<CourseScheduleTeacherSalary>> courseScheduleTeachingTeacherMaps=teachingTeachers.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getCourseScheduleId));
+
             dataList.forEach(e->{
                 e.setMixClassGroupName(classGroupNames.get(e.getMixClassGroupId()));
-                e.setMasterTeacherName(masterTeachers.get(e.getClassGroupId()));
-                e.setSubTeacherName(subTeachers.get(e.getClassGroupId()));
+                CourseScheduleTeacherSalary currentBishopTeacher = courseScheduleBishopTeacherMaps.get(e.getCourseScheduleId().longValue());
+                if(!Objects.isNull(currentBishopTeacher)){
+                    e.setMasterTeacherId(currentBishopTeacher.getUserId());
+                    e.setMasterTeacherName(currentBishopTeacher.getUserName());
+                }
+
+                List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
+                if(CollectionUtils.isEmpty(currentCourseTeachingTeachers)){
+                    e.setTeachingTeachers(new ArrayList<>());
+                }else{
+                    e.setTeachingTeachers(currentCourseTeachingTeachers);
+                }
+
             });
         }
         if (count == 0) {

+ 5 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -6,18 +6,16 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.TeacherAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherPersonalAttendanceDto;
 import com.ym.mec.biz.dal.dto.TeacherSignOutDto;
-import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.CourseHomework;
+import com.ym.mec.biz.dal.entity.StudentCourseHomework;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.entity.TeacherAttendance;
 import com.ym.mec.biz.dal.enums.MessageSendMode;
 import com.ym.mec.biz.dal.enums.ParamEnum;
 import com.ym.mec.biz.dal.enums.SignStatusEnum;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.biz.dal.page.TeacherAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.TeacherCloseQueryInfo;
-import com.ym.mec.biz.service.CourseHomeworkService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.SysConfigService;
-import com.ym.mec.biz.service.SysMessageService;
-import com.ym.mec.biz.service.TeacherAttendanceService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.page.PageInfo;
@@ -25,7 +23,6 @@ import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext.MessageSender;
 import com.ym.mec.util.collection.MapUtil;
 import com.ym.mec.util.date.DateUtil;
-
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -148,11 +145,6 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			}
 		}
 		if(teacherSignOutDto.getTeacherAttendanceInfo().getStatus().equals(SignStatusEnum.SIGN_OUT.getCode())){
-			//更新课次
-			ClassGroup classGroup=new ClassGroup();
-			classGroup.setId(currentCourseDetail.getClassId().intValue());
-			classGroup.setCurrentClassTimes(teacherAttendanceDao.countClassTime(currentCourseDetail.getClassId()));
-			classGroupDao.update(classGroup);
 			//新增课堂作业
 			CourseHomework courseHomework=teacherSignOutDto.getCourseHomeworkInfo();
 			courseHomework.setCourseScheduleId(teacherAttendance.getCourseScheduleId());

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

@@ -595,6 +595,7 @@
         </where>
     </sql>
     <resultMap id="MusicGroupCourseScheduleDto" type="com.ym.mec.biz.dal.dto.MusicGroupCourseScheduleDto">
+        <result property="courseScheduleId" column="course_schedule_id_"/>
         <result property="classDate" column="class_date_"/>
         <result property="startClassTime" column="start_class_time_"/>
         <result property="classGroupId" column="class_group_id_"/>
@@ -605,7 +606,7 @@
         <result property="signOutStatus" column="sign_out_status_"/>
     </resultMap>
     <select id="queryMusicGroupCourseSchedule" resultMap="MusicGroupCourseScheduleDto">
-        SELECT cs.class_date_,cs.start_class_time_,cs.class_group_id_,
+        SELECT cs.id_ course_schedule_id_,cs.class_date_,cs.start_class_time_,cs.class_group_id_,
         cs.type_ course_schedule_type_,cs.status_ course_schedule_status_,
         IF(cgr.class_group_id_ IS NULL,cs.class_group_id_,cgr.class_group_id_) mix_class_group_id_,
         IF(ISNULL(ta.sign_in_status_),3,ta.sign_in_status_) sign_in_status_,

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

@@ -35,6 +35,7 @@
         <result column="sign_out_status_" property="signOutStatus"/>
         <result column="seal_class_id_" property="sealClassId"/>
         <result column="total_student_num_" property="totalStudentNum"/>
+        <result column="teacher_role_" property="teacherRole" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
 
     <resultMap type="com.ym.mec.biz.dal.entity.StudentCourseScheduleRecordDto" id="studentCourseScheduleRecord">
@@ -402,20 +403,22 @@
         CONCAT(cs.class_date_,' ',cs.start_class_time_) start_class_time_,
         CONCAT(cs.class_date_,' ',cs.end_class_time_) end_class_time_,
         cs.status_,
+        csts.teacher_role_,
         s.name_ school_name_,
         if(ta.sign_in_status_ IS NULL,0,1) sign_in_status_,
         if(ta.sign_out_status_ IS NULL,0,1) sign_out_status_,
         cs.teach_mode_
         FROM
-        course_schedule cs
-        LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
+        course_schedule_teacher_salary csts
+        LEFT JOIN course_schedule cs ON csts.course_schedule_id_=cs.id_
+        LEFT JOIN sys_user su ON csts.user_id_ = su.id_
         LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
-        LEFT JOIN music_group mg ON cg.music_group_id_=mg.id_
-        LEFT JOIN school s ON mg.school_id_=s.id_
+        LEFT JOIN music_group mg ON cg.music_group_id_ = mg.id_
+        LEFT JOIN school s ON mg.school_id_ = s.id_
         LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=#{teacherId}
         WHERE
         cs.class_date_ = DATE_FORMAT(#{classDate},'%Y%m%d')
-        AND cs.actual_teacher_id_ = #{teacherId}
+        AND csts.user_id_ = #{teacherId}
     </select>
 
     <select id="getCourseScheduleDateByMonth" resultType="java.util.Date">

+ 17 - 2
mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml

@@ -11,6 +11,7 @@
 		<result column="course_schedule_id_" property="courseScheduleId" />
 		<result column="teacher_role_" property="teacherRole" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="user_id_" property="userId" />
+		<result column="username_" property="userName"/>
 		<result column="expect_salary_" property="expectSalary" />
 		<result column="create_time_" property="createTime" />
 		<result column="update_time_" property="updateTime" />
@@ -157,8 +158,22 @@
     <select id="queryByCourseScheduleIdAndUserId" resultMap="CourseScheduleTeacherSalary" parameterType="map">
 		SELECT * FROM course_schedule_teacher_salary where user_id_ = #{teacherId} and course_schedule_id_ = #{courseScheduleId}
     </select>
-    
-    <update id="batchUpdateWages" parameterType="map">
+
+	<select id="findByCourseScheduleIdsAndTeacherRole" resultMap="CourseScheduleTeacherSalary">
+		SELECT
+			csts.*,
+			su.username_
+		FROM
+			course_schedule_teacher_salary csts
+			LEFT JOIN sys_user su ON csts.user_id_=su.id_
+		WHERE csts.course_schedule_id_ IN
+		<foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+			#{courseScheduleId}
+		</foreach>
+		AND csts.teacher_role_=#{teacherRole}
+	</select>
+
+	<update id="batchUpdateWages" parameterType="map">
 		UPDATE course_schedule_teacher_salary set
 			subsidy_ = #{subsidy},
 			expect_salary_ = #{salary},

+ 7 - 1
mec-teacher/pom.xml

@@ -50,7 +50,13 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-biz</artifactId>
 		</dependency>
-	</dependencies>
+        <dependency>
+            <groupId>com.ym</groupId>
+            <artifactId>mec-education</artifactId>
+            <version>1.0</version>
+            <scope>compile</scope>
+        </dependency>
+    </dependencies>
 	<build>
 		<plugins>
 			<plugin>

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

@@ -43,6 +43,7 @@ public class TeacherVipGroupController extends BaseController {
 		}
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(user.getId()));
 		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(user.getOrganId().toString());
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(user.getOrganId());
 		vipGroupService.createVipGroup(vipGroupApplyDto);
 		return succeed();
 	}

+ 56 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupActivityController.java

@@ -0,0 +1,56 @@
+package com.ym.mec.teacher.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.security.access.prepost.PreAuthorize;
+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")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/addVipGroupActivity')")
+    public Object addVipGroupActivity(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
+        vipGroupActivityService.addVipGroupActivity(vipGroupActivityAddDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "分页查询活动方案")
+    @GetMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/queryPage')")
+    public Object queryPage(VipGroupActivityQueryInfo queryInfo){
+        return succeed(vipGroupActivityService.queryPage(queryInfo));
+    }
+
+    @ApiOperation(value = "修改活动方案")
+    @PostMapping("/update")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/update')")
+    public Object update(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
+        vipGroupActivityService.updateVipGroupActivity(vipGroupActivityAddDto);
+        return succeed();
+    }
+
+    @ApiOperation(value = "根据课程类型获取对应课程活动方案")
+    @GetMapping("/findByVipGroupCategory")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupActivity/findByVipGroupCategory')")
+    public Object findByVipGroupCategory(Long categoryId){
+        return succeed(vipGroupActivityService.findByVipGroupCategory(categoryId));
+    }
+
+}

+ 84 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java

@@ -0,0 +1,84 @@
+package com.ym.mec.teacher.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.entity.VipGroupCategory;
+import com.ym.mec.biz.service.VipGroupCategoryService;
+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.HttpStatus;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Date;
+import java.util.Objects;
+
+@Api(tags = "vip课类别")
+@RequestMapping("vipGroupCategory")
+@RestController
+public class VipGroupCategoryController extends BaseController {
+
+	@Autowired
+	private VipGroupCategoryService vipGroupCategoryService;
+
+	@Autowired
+	private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("单查询")
+	@GetMapping(value = "/query")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/query')")
+	public Object query(int id) {
+		return succeed(vipGroupCategoryService.get(id));
+	}
+
+	@ApiOperation("全查询")
+	@GetMapping(value = "/queryAll")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/queryAll')")
+	public Object queryAll() {
+		SysUser user = sysUserFeignService.queryUserInfo();
+		if (Objects.isNull(user)) {
+			return failed(HttpStatus.FORBIDDEN, "请登录");
+		}
+		return succeed(vipGroupCategoryService.findAllByOrgan(user.getOrganId().longValue()));
+	}
+
+	@ApiOperation("新增")
+	@PostMapping(value = "/add")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/add')")
+	public Object add(VipGroupCategory vipGroupCategory) {
+		Date date = new Date();
+		vipGroupCategory.setCreateTime(date);
+		vipGroupCategory.setUpdateTime(date);
+		vipGroupCategory.setDelFlag("0");
+		vipGroupCategoryService.insert(vipGroupCategory);
+		return succeed();
+	}
+
+	@ApiOperation("修改")
+	@PostMapping(value = "/update")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/update')")
+	public Object update(VipGroupCategory vipGroupCategory) {
+		Date date = new Date();
+		vipGroupCategory.setUpdateTime(date);
+		vipGroupCategoryService.update(vipGroupCategory);
+		return succeed();
+	}
+
+	@ApiOperation("删除")
+	@PostMapping(value = "/delete")
+    @PreAuthorize("@pcs.hasPermissions('vipGroupCategory/delete')")
+	public Object delete(int id) {
+		VipGroupCategory vipGroupCategory = vipGroupCategoryService.get(id);
+		Date date = new Date();
+		vipGroupCategory.setUpdateTime(date);
+		vipGroupCategory.setDelFlag("1");
+		vipGroupCategoryService.update(vipGroupCategory);
+		return succeed();
+	}
+
+}