zouxuan пре 2 година
родитељ
комит
a1e0cb9908

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

@@ -489,5 +489,5 @@ public interface ClassGroupStudentMapperDao extends BaseDAO<Long, ClassGroupStud
     
     List<ClassGroupStudentMapperDto> queryByClassGroupType(@Param("musicGroupId") String musicGroupId,@Param("classGroupType") ClassGroupTypeEnum classGroupType,@Param("teacherRole") TeachTypeEnum teacherRole, @Param("studentIdList") List<Integer> studentIdList);
 
-    List<Integer> findByUserIdsAndClassIds(@Param("studentIds") String studentIds, @Param("oldClassIds") String oldClassIds);
+    Integer countByUserIdsAndClassIds(@Param("studentIds") String studentIds, @Param("oldClassId") Integer oldClassId);
 }

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

@@ -1,10 +1,18 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.CourseConvertLogDto;
 import com.ym.mec.biz.dal.entity.CourseConvertLog;
 import com.ym.mec.common.dal.BaseDAO;
 
+import java.util.List;
+import java.util.Map;
+
 public interface CourseConvertLogDao extends BaseDAO<Integer, CourseConvertLog> {
 
 
     void updateRevoke(Integer courseConvertId);
+
+    int countConvertPage(Map<String, Object> params);
+
+    List<CourseConvertLogDto> queryConvertPage(Map<String, Object> params);
 }

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseConvertLogDto.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.CourseConvertLog;
+import io.swagger.annotations.ApiModelProperty;
+
+public class CourseConvertLogDto extends CourseConvertLog {
+
+    @ApiModelProperty(value = "转换课程数")
+    private Integer convertCourseNum;
+
+    @ApiModelProperty(value = "转换后班级数")
+    private Integer convertAfterClassNum;
+
+    @ApiModelProperty(value = "转换后课程数")
+    private Integer convertAfterCourseNum;
+
+    public Integer getConvertCourseNum() {
+        return convertCourseNum;
+    }
+
+    public void setConvertCourseNum(Integer convertCourseNum) {
+        this.convertCourseNum = convertCourseNum;
+    }
+
+    public Integer getConvertAfterClassNum() {
+        return convertAfterClassNum;
+    }
+
+    public void setConvertAfterClassNum(Integer convertAfterClassNum) {
+        this.convertAfterClassNum = convertAfterClassNum;
+    }
+
+    public Integer getConvertAfterCourseNum() {
+        return convertAfterCourseNum;
+    }
+
+    public void setConvertAfterCourseNum(Integer convertAfterCourseNum) {
+        this.convertAfterCourseNum = convertAfterCourseNum;
+    }
+}

+ 39 - 6
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseConvertLog.java

@@ -12,6 +12,9 @@ public class CourseConvertLog {
 
 	private Integer id;
 	
+	@ApiModelProperty(value = "乐团编号")
+	private String musicGroupId;
+
 	@ApiModelProperty(value = "学员编号列表")
 	private String studentIds;
 
@@ -21,7 +24,11 @@ public class CourseConvertLog {
 	
 	/** 转换前班级编号 */
 	@ApiModelProperty(value = "转换前班级编号")
-	private String oldClassIds;
+	private Integer oldClassId;
+
+	/** 转换前班级编号 */
+	@ApiModelProperty(value = "转换前班级")
+	private String oldClassName;
 	
 	@ApiModelProperty(value = "转换前课表")
 	private String oldCourseJson;
@@ -44,10 +51,12 @@ public class CourseConvertLog {
 	@ApiModelProperty(value = "转换后的班级编号")
 	private String newClassIds;
 
-	/** 转换后的班级编号 */
 	@ApiModelProperty(value = "操作人")
 	private Integer operator;
 
+	@ApiModelProperty(value = "操作人")
+	private String operatorName;
+
 	@ApiModelProperty(value = "是否还原")
 	private Boolean revokeFlag = false;
 	
@@ -57,6 +66,30 @@ public class CourseConvertLog {
 	/**  */
 	private java.util.Date updateTime;
 
+	public String getOldClassName() {
+		return oldClassName;
+	}
+
+	public void setOldClassName(String oldClassName) {
+		this.oldClassName = oldClassName;
+	}
+
+	public String getOperatorName() {
+		return operatorName;
+	}
+
+	public void setOperatorName(String operatorName) {
+		this.operatorName = operatorName;
+	}
+
+	public String getMusicGroupId() {
+		return musicGroupId;
+	}
+
+	public void setMusicGroupId(String musicGroupId) {
+		this.musicGroupId = musicGroupId;
+	}
+
 	public String getStudentIds() {
 		return studentIds;
 	}
@@ -81,12 +114,12 @@ public class CourseConvertLog {
 		this.oldCourseIds = oldCourseIds;
 	}
 
-	public String getOldClassIds() {
-		return oldClassIds;
+	public Integer getOldClassId() {
+		return oldClassId;
 	}
 
-	public void setOldClassIds(String oldClassIds) {
-		this.oldClassIds = oldClassIds;
+	public void setOldClassId(Integer oldClassId) {
+		this.oldClassId = oldClassId;
 	}
 
 	public String getOldCourseJson() {

+ 36 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ConvertLogQueryInfo.java

@@ -0,0 +1,36 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+public class ConvertLogQueryInfo extends QueryInfo {
+
+    private String operator;
+
+    private String operatorDate;
+
+    private String musicGroupId;
+
+    public String getOperator() {
+        return operator;
+    }
+
+    public void setOperator(String operator) {
+        this.operator = operator;
+    }
+
+    public String getOperatorDate() {
+        return operatorDate;
+    }
+
+    public void setOperatorDate(String operatorDate) {
+        this.operatorDate = operatorDate;
+    }
+
+    public String getMusicGroupId() {
+        return musicGroupId;
+    }
+
+    public void setMusicGroupId(String musicGroupId) {
+        this.musicGroupId = musicGroupId;
+    }
+}

+ 4 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/CourseConvertLogService.java

@@ -1,9 +1,12 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dao.CourseConvertLogDao;
+import com.ym.mec.biz.dal.dto.CourseConvertLogDto;
 import com.ym.mec.biz.dal.entity.CourseConvertLog;
 import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
 import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary;
+import com.ym.mec.biz.dal.page.ConvertLogQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.List;
@@ -15,4 +18,5 @@ public interface CourseConvertLogService extends  BaseService<Integer, CourseCon
               List<CourseScheduleTeacherSalary> teacherSalaries,
               List<CourseScheduleStudentPayment> studentPayments);
 
+    PageInfo<CourseConvertLogDto> queryConvertPage(ConvertLogQueryInfo queryInfo);
 }

+ 40 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseConvertLogServiceImpl.java

@@ -1,19 +1,23 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
+import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
+import com.ym.mec.biz.dal.dto.CourseConvertLogDto;
 import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.page.ConvertLogQueryInfo;
 import com.ym.mec.biz.service.CourseConvertLogService;
 import com.ym.mec.biz.service.SysUserService;
 import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.util.collection.MapUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.Arrays;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 
 @Service
@@ -31,6 +35,8 @@ public class CourseConvertLogServiceImpl extends BaseServiceImpl<Integer, Course
 	private TeacherAttendanceDao teacherAttendanceDao;
 	@Autowired
 	private SysUserService sysUserService;
+	@Autowired
+	private ClassGroupDao classGroupDao;
 
 	@Override
 	public BaseDAO<Integer, CourseConvertLog> getDAO() {
@@ -47,9 +53,10 @@ public class CourseConvertLogServiceImpl extends BaseServiceImpl<Integer, Course
     public CourseConvertLog save(String oldCourseIds, List<Integer> newClassGroupIds, List<Long> courseIdList,
 					 List<CourseScheduleTeacherSalary> teacherSalaries,
 					 List<CourseScheduleStudentPayment> studentPayments) {
-		Integer userId = sysUserService.getUserId();
+		SysUser user = sysUserService.getUser();
 		CourseConvertLog courseConvertLog = new CourseConvertLog();
-		courseConvertLog.setOperator(userId);
+		courseConvertLog.setOperatorName(user.getRealName());
+		courseConvertLog.setOperator(user.getId());
 		courseConvertLog.setOldCourseIds(oldCourseIds);
 		String userIds = studentPayments.stream().map(e -> e.getUserId().toString()).distinct().collect(Collectors.joining(","));
 		courseConvertLog.setStudentIds(userIds);
@@ -67,7 +74,10 @@ public class CourseConvertLogServiceImpl extends BaseServiceImpl<Integer, Course
 
 		//获取课程列表
 		List<CourseSchedule> courseSchedules = courseScheduleDao.findByCourseScheduleIds(oldCourseIdList);
-		courseConvertLog.setOldClassIds(courseSchedules.stream().map(e->e.getClassGroupId().toString()).distinct().collect(Collectors.joining(",")));
+		Integer oldClassId = courseSchedules.stream().map(e -> e.getClassGroupId()).findFirst().get();
+		ClassGroup classGroup = classGroupDao.get(oldClassId);
+		courseConvertLog.setOldClassId(oldClassId);
+		courseConvertLog.setOldClassName(classGroup.getName());
 		courseConvertLog.setOldCourseJson(JSONObject.toJSONString(courseSchedules));
 		//删除课程
 		courseScheduleDao.batchDeleteCourseSchedulesWithoutCheck(oldCourseIdList);
@@ -83,4 +93,29 @@ public class CourseConvertLogServiceImpl extends BaseServiceImpl<Integer, Course
 		courseConvertLogDao.insert(courseConvertLog);
 		return courseConvertLog;
 	}
+
+	@Override
+	public PageInfo<CourseConvertLogDto> queryConvertPage(ConvertLogQueryInfo queryInfo) {
+		PageInfo<CourseConvertLogDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+
+		List<CourseConvertLogDto> dataList = null;
+		int count = courseConvertLogDao.countConvertPage(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = courseConvertLogDao.queryConvertPage(params);
+			for (CourseConvertLogDto dto : dataList) {
+				dto.setConvertCourseNum(dto.getOldCourseIds().split(",").length);
+				dto.setConvertAfterClassNum(dto.getNewClassIds().split(",").length);
+				dto.setConvertAfterCourseNum(dto.getNewCourseIds().split(",").length);
+			}
+		}
+		if (count == 0) {
+			dataList = new ArrayList<>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
 }

+ 7 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleConvertServiceImpl.java

@@ -1,7 +1,6 @@
 package com.ym.mec.biz.service.impl;
 
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.biz.dal.dao.CourseScheduleConvertDao;
 import com.ym.mec.biz.dal.dao.StudentDao;
 import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
@@ -16,15 +15,11 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.util.collection.MapUtil;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.jdbc.support.lob.LobCreator;
 import org.springframework.stereotype.Service;
-import org.springframework.transaction.TransactionStatus;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
 import org.springframework.util.CollectionUtils;
 
-import java.math.BigDecimal;
-import java.math.RoundingMode;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -203,15 +198,15 @@ public class CourseScheduleConvertServiceImpl implements CourseScheduleConvertSe
             throw new BizException("课程转换记录已还原");
         }
         //原班级是否改动
-        String oldClassIds = courseConvertLog.getOldClassIds();
-        List<Integer> oldClassIdList = Arrays.stream(oldClassIds.split(",")).map(e -> Integer.parseInt(e)).collect(Collectors.toList());
-        List<ClassGroup> classGroupList = classGroupService.getDao().findByClassGroupIds(oldClassIdList, null);
-        if(CollectionUtils.isEmpty(classGroupList) || classGroupList.size() < oldClassIdList.size()){
-            throw new BizException("操作失败:原班级信息有改动");
+        Integer oldClassId = courseConvertLog.getOldClassId();
+        ClassGroup classGroup = classGroupService.getDao().get(oldClassId);
+        if(Objects.isNull(classGroup)){
+            throw new BizException("操作失败:原班级信息不存在");
         }
+        String studentIds = courseConvertLog.getStudentIds();
         //学员是否还在班级
-        List<Integer> classGroupIds = classGroupStudentMapperService.getDao().findByUserIdsAndClassIds(courseConvertLog.getStudentIds(),oldClassIds);
-        if(CollectionUtils.isEmpty(classGroupIds) || classGroupIds.size() < oldClassIdList.size()){
+        Integer num = classGroupStudentMapperService.getDao().countByUserIdsAndClassIds(studentIds,oldClassId);
+        if(Objects.isNull(num) || num < studentIds.split(",").length){
             throw new BizException("操作失败:部分学员已退班");
         }
         //课程是否有消耗

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

@@ -701,8 +701,8 @@
                 </foreach>
         group by cgsm.user_id_
     </select>
-    <select id="findByUserIdsAndClassIds" resultType="java.lang.Integer">
-        select distinct class_group_id_ from class_group_student_mapper cgsm
-        where FIND_IN_SET(cgsm.user_id_,#{studentIds}) AND FIND_IN_SET(cgsm.user_id_,#{oldClassIds})
+    <select id="countByUserIdsAndClassIds" resultType="java.lang.Integer">
+        select COUNT(cgsm.id_) from class_group_student_mapper cgsm
+        where FIND_IN_SET(cgsm.user_id_,#{studentIds}) AND cgsm.class_group_id_ = #{oldClassId}
     </select>
 </mapper>

+ 33 - 10
mec-biz/src/main/resources/config/mybatis/CourseConvertLogMapper.xml

@@ -8,8 +8,11 @@
 	
 	<resultMap type="com.ym.mec.biz.dal.entity.CourseConvertLog" id="CourseConvertLog">
 		<result column="id_" property="id" />
+		<result column="old_class_name_" property="oldClassName" />
+		<result column="operator_name_" property="operatorName" />
+		<result column="music_group_id_" property="musicGroupId" />
 		<result column="old_course_ids_" property="oldCourseIds" />
-		<result column="old_class_ids_" property="oldClassIds" />
+		<result column="old_class_id_" property="oldClassId" />
 		<result column="old_course_json_" property="oldCourseJson" />
 		<result column="old_course_teacher_salary_json_" property="oldCourseTeacherSalaryJson" />
 		<result column="old_course_student_mapper_json_" property="oldCourseStudentMapperJson" />
@@ -25,7 +28,6 @@
 		update course_convert_log set revoke_flag_ = 1,update_time_ = NOW() where id_ = #{courseConvertId}
 	</update>
 
-
 	<!-- 全查询 -->
 	<select id="findAll" resultMap="CourseConvertLog">
 		SELECT * FROM course_convert_log
@@ -33,20 +35,41 @@
 	
 	<!-- 向数据库增加一条记录 -->
 	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.CourseConvertLog" useGeneratedKeys="true" keyColumn="id" keyProperty="id">
-		INSERT INTO course_convert_log (old_course_ids_,old_class_ids_,old_course_json_,old_course_teacher_salary_json_,
+		INSERT INTO course_convert_log (old_course_ids_,old_class_id_,old_course_json_,old_course_teacher_salary_json_,
 		                                old_course_student_mapper_json_,old_teacher_attendance_json_,new_course_ids_,
-		                                new_class_ids_,operator_,revoke_flag_,create_time_,update_time_)
-		VALUES(#{oldCourseIds},#{oldClassIds},#{oldCourseJson},#{oldCourseTeacherSalaryJson},#{oldCourseStudentMapperJson},
-		       #{oldTeacherAttendanceJson},#{newCourseIds},#{newClassIds},#{operator},#{revokeFlag},NOW(),NOW())
+		                                new_class_ids_,operator_,revoke_flag_,create_time_,update_time_,music_group_id_,old_class_name_,operator_name_)
+		VALUES(#{oldCourseIds},#{oldClassId},#{oldCourseJson},#{oldCourseTeacherSalaryJson},#{oldCourseStudentMapperJson},
+		       #{oldTeacherAttendanceJson},#{newCourseIds},#{newClassIds},#{operator},#{revokeFlag},NOW(),NOW(),#{musicGroupId},#{oldClassName},#{operatorName})
 	</insert>
 
+	<resultMap id="CourseConvertLogDto" type="com.ym.mec.biz.dal.dto.CourseConvertLogDto" extends="CourseConvertLog">
+	</resultMap>
 	<!-- 分页查询 -->
-	<select id="queryPage" resultMap="CourseConvertLog" parameterType="map">
-		SELECT * FROM course_convert_log <include refid="global.limit"/>
+	<select id="queryConvertPage" resultMap="CourseConvertLogDto" parameterType="map">
+		SELECT ccl.* FROM course_convert_log ccl
+		<include refid="queryPageSql"/>
+		<include refid="global.limit"/>
 	</select>
+	<sql id="queryPageSql">
+		<where>
+			<if test="className != null and className != ''">
+				AND ccl.old_class_name_ = #{className}
+			</if>
+			<if test="musicGroupId != null and musicGroupId != ''">
+				AND ccl.music_group_id_ = #{musicGroupId}
+			</if>
+			<if test="operatorName != null and operatorName != ''">
+				AND operator_name_ LIKE CONCAT('%',#{operatorName},'%')
+			</if>
+			<if test="operatorDate != null and operatorDate != ''">
+				AND DATE_FORMAT(ccl.create_time_,'%Y-%m-%d') = #{operatorDate}
+			</if>
+		</where>
+	</sql>
 	
 	<!-- 查询当前表的总记录数 -->
-	<select id="queryCount" resultType="int">
-		SELECT COUNT(*) FROM course_convert_log
+	<select id="countConvertPage" resultType="int">
+		SELECT COUNT(ccl.id_) FROM course_convert_log ccl
+		<include refid="queryPageSql"/>
 	</select>
 </mapper>

+ 15 - 6
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleConvertController.java

@@ -1,16 +1,16 @@
 package com.ym.mec.web.controller;
 
-import com.ym.mec.biz.dal.dto.BasicUserDto;
-import com.ym.mec.biz.dal.dto.CourseConvertDto;
-import com.ym.mec.biz.dal.dto.SimpleUserDto;
+import com.ym.mec.biz.dal.dao.CourseConvertLogDao;
+import com.ym.mec.biz.dal.dto.CourseConvertLogDto;
 import com.ym.mec.biz.dal.entity.ClassGroupDto;
-import com.ym.mec.biz.dal.entity.CourseSchedule;
-import com.ym.mec.biz.dal.page.UserBasicQueryInfo;
+import com.ym.mec.biz.dal.entity.CourseConvertLog;
+import com.ym.mec.biz.dal.page.ConvertLogQueryInfo;
+import com.ym.mec.biz.service.CourseConvertLogService;
 import com.ym.mec.biz.service.CourseScheduleConvertService;
-import com.ym.mec.biz.service.CourseScheduleService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
@@ -32,6 +32,15 @@ public class CourseScheduleConvertController extends BaseController {
 
     @Autowired
     private CourseScheduleConvertService courseScheduleConvertService;
+    @Autowired
+    private CourseConvertLogService courseConvertLogService;
+
+    @ApiOperation(value = "获取需要转换的学员列表")
+    @PostMapping("/queryPage")
+    @PreAuthorize("@pcs.hasPermissions('courseScheduleConvert/queryPage')")
+    public HttpResponseResult<PageInfo<CourseConvertLogDto>> queryPage(@RequestBody ConvertLogQueryInfo queryInfo){
+        return succeed(courseConvertLogService.queryConvertPage(queryInfo));
+    }
 
     @ApiOperation(value = "获取需要转换的学员列表")
     @GetMapping("/queryStudent")