瀏覽代碼

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 4 年之前
父節點
當前提交
7e31bb35d7

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -64,6 +64,8 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      */
     List<ClassGroupTeacherMapper> findByMusicGroup(String musicGroupId);
 
+    List<ClassGroupTeacherMapper> findAllByMusicGroup(String musicGroupId);
+
     List<ClassGroupTeacherMapper> findByClassGroup(Integer classGroupId);
 
     ClassGroupTeacherMapper findByClassGroupAndTeacher(@Param("classGroupId") Integer classGroupId,

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/IntegerAndIntegerListDto.java

@@ -8,15 +8,15 @@ import java.util.List;
  */
 public class IntegerAndIntegerListDto {
 
-    private Integer id;
+    private Long id;
 
     private List<Integer> ids;
 
-    public Integer getId() {
+    public Long getId() {
         return id;
     }
 
-    public void setId(Integer id) {
+    public void setId(Long id) {
         this.id = id;
     }
 

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -112,12 +112,12 @@ public interface ContractService {
 	 * @param userId
 	 * @return
 	 */
-	boolean transferProduceContract(Integer userId);
+	boolean transferProduceContract(Integer userId,String musicGroupId);
 
 	/**
 	 * 查询产品协议
 	 * @param userId
 	 * @return
 	 */
-	Map<String, Object> queryProductContract(Integer userId);
+	Map<String, Object> queryProductContract(Integer userId,String musicGroupId);
 }

+ 0 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -521,8 +521,6 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
         Date date=new Date();
         for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
-            //课时长度
-            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
             for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
                 //课程与老师薪水表
                 CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();

+ 33 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -5,10 +5,7 @@ import java.io.IOException;
 import java.math.BigDecimal;
 import java.text.DateFormat;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.Map.Entry;
 import java.util.stream.Collectors;
 
@@ -293,7 +290,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferMusicGroupCoursesContract(Integer userId, String musicGroupId) {
 		if(true){
-			return transferProduceContract(userId);
+			return transferProduceContract(userId, musicGroupId);
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -489,7 +486,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferVipGroupCoursesContract(Integer userId, Long vipGroupId) {
 		if(true){
-			return transferProduceContract(userId);
+			return transferProduceContract(userId, null);
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -632,7 +629,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferGoodsContract(Integer userId, String musicGroupId, String goodsIds, KitGroupPurchaseTypeEnum kitGroupPurchaseTypeEnum) {
 		if(true){
-			return transferProduceContract(userId);
+			return transferProduceContract(userId, musicGroupId);
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -867,7 +864,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 	@Override
 	public boolean transferPracticeCoursesContract(Integer userId, int courseSectionNum, Date startDate, Date endDate, BigDecimal fee) {
 		if(true){
-			return transferProduceContract(userId);
+			return transferProduceContract(userId, null);
 		}
 
 		SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
@@ -945,7 +942,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 	@Override
 	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-	public boolean transferProduceContract(Integer userId) {
+	public boolean transferProduceContract(Integer userId,String musicGroupId) {
 		SysUser user = studentDao.lockUserReturnInfo(userId);
 
 		List<SysUserContracts> userContracts = sysUserContractsService.getUserContractWithType(userId, ContractType.PRODUCT);
@@ -983,7 +980,15 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		params.put("isShowVisualSeal", false);
 
-		params.put("ownershipType", OwnershipType.OWN);
+		if(Objects.nonNull(musicGroupId)){
+			params.put("ownershipType", OwnershipType.OWN);
+		}else{
+			MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+			if (musicGroup == null) {
+				throw new BizException("乐团信息没找到");
+			}
+			params.put("ownershipType", musicGroup.getOwnershipType());
+		}
 
 		templateEngine.render(params, "product.ftl", srcFile);
 
@@ -993,7 +998,14 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		} catch (IOException e) {
 			throw new BizException("生成产品协议失败", e);
 		}
-		String organCode = "91440300326364429H";
+
+
+		String organCode = "";
+		if (params.get("ownershipType") == OwnershipType.OWN) {
+			organCode = "91440300326364429H";
+		} else {
+			organCode = "91420106333619290A";
+		}
 		SysUserTsign organTsign = sysUserTsignService.queryByCardNo(organCode);
 		if (organTsign == null) {
 			throw new BizException("甲方未创建签章");
@@ -1023,7 +1035,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 	@Override
 	@Transactional(isolation = Isolation.READ_COMMITTED)
-	public Map<String, Object> queryProductContract(Integer userId) {
+	public Map<String, Object> queryProductContract(Integer userId,String musicGroupId) {
 		// 合成freemarker
 		String srcPdfPath = contractBaseDir + "/product/" + userId + ".pdf";
 
@@ -1042,7 +1054,15 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
 		params.put("studentInfo", studentInfo);
 		params.put("isShowVisualSeal", true);
-		params.put("ownershipType", OwnershipType.OWN);
+		if(Objects.nonNull(musicGroupId)){
+			params.put("ownershipType", OwnershipType.OWN);
+		}else{
+			MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+			if (musicGroup == null) {
+				throw new BizException("乐团信息没找到");
+			}
+			params.put("ownershipType", musicGroup.getOwnershipType().name());
+		}
 		templateEngine.render(params, "product.ftl", srcFile);
 
 		String html = "";

+ 29 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -647,18 +647,37 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<CourseSchedule> courseSchedules = createCourseScheduleDto.getCourseSchedules();
 
         if(!CollectionUtils.isEmpty(courseSchedules)){
-			List<ClassGroupTeacherMapper> byMusicGroup = classGroupTeacherMapperDao.findByMusicGroup(createCourseScheduleDto.getMusicGroupID());
+			List<ClassGroupTeacherMapper> byMusicGroup = classGroupTeacherMapperDao.findAllByMusicGroup(createCourseScheduleDto.getMusicGroupID());
 			Map<Integer, List<ClassGroupTeacherMapper>> teacherByClassGroup = byMusicGroup.stream().collect(Collectors.groupingBy(ClassGroupTeacherMapper::getClassGroupId));
 
 			Map<Integer, List<CourseSchedule>> classGroupCourseSchedules = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassGroupId));
 			for (Map.Entry<Integer, List<CourseSchedule>> classGroupCoursesEntry : classGroupCourseSchedules.entrySet()) {
 				List<ClassGroupTeacherMapper> classGroupTeacherMappers = teacherByClassGroup.get(classGroupCoursesEntry.getKey());
+				Set<Integer> teachingTeacherIds = classGroupTeacherMappers.stream().filter(t -> TeachTypeEnum.TEACHING.equals(t.getTeacherRole())).map(ClassGroupTeacherMapper::getUserId).collect(Collectors.toSet());
+				classGroupCoursesEntry.getValue().sort(Comparator.comparing(CourseSchedule::getStartClassTime));
+				for(int i=0;i<classGroupCoursesEntry.getValue().size();i++){
+					classGroupCoursesEntry.getValue().get(i).setTeachingTeacherIdList(new ArrayList<>(teachingTeacherIds));
+					if(i==0){
+						continue;
+					}
+					CourseSchedule c1=classGroupCoursesEntry.getValue().get(i-1);
+					CourseSchedule c2=classGroupCoursesEntry.getValue().get(i);
+					if(c1.getStartClassTime().compareTo(c2.getEndClassTime())<0
+						&&c1.getEndClassTime().compareTo(c2.getStartClassTime())>0){
+						throw new BizException("排课循环周期时间存在重叠");
+					}
+				}
+//				for (CourseSchedule courseSchedule : classGroupCoursesEntry.getValue()) {
+//					courseSchedule.setTeachingTeacherIdList(new ArrayList<>(teachingTeacherIds));
+//				}
 				//添加课程计划
 				batchAddCourseSchedule(classGroupCoursesEntry.getValue());
 				//创建学生单节课的缴费记录,乐团课的缴费为0
 				courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(classGroupCoursesEntry.getValue());
 				classGroupTeacherMapperService.initCourseScheduleTeacherSalary(classGroupCoursesEntry.getValue(),classGroupTeacherMappers);
 			}
+			List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+			courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             //更新课次
             List<Integer> classGroupIds = courseSchedules.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
             classGroupService.batchUpdateClassCourseTimes(classGroupIds);
@@ -1647,12 +1666,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(existCourseScheduleIds)) {
             courseScheduleTeachingTeacherIdList = courseScheduleDao.findCourseScheduleIdAndUserIdsMap(existCourseScheduleIds, TeachTypeEnum.TEACHING.getCode());
         }
-        Map<Integer, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
+        Map<Long, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         //班级助教关联ID集合
         List<IntegerAndIntegerListDto> classGroupAndUserIdsMap = courseScheduleDao.findClassGroupAndUserIdsMap(newCourseScheduleClassGroupIds, TeachTypeEnum.TEACHING.getCode());
-        Map<Integer, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
+        Map<Long, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         Set<Long> existCourseScheduleIdsSet=new HashSet<>(existCourseScheduleIds);
@@ -1689,9 +1708,9 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                             throw new BizException(courseCheckInfo(preCourseSchedule, backCourseSchedule, existCourseScheduleIds, 1));
                         }
 
-                        if(Objects.isNull(preCourseSchedule.getId())){
-                            continue;
-                        }
+//                        if(Objects.isNull(preCourseSchedule.getId())){
+//                            continue;
+//                        }
 
                         //助教冲突检测
                         if (Objects.isNull(preCourseSchedule.getId())) {
@@ -1829,12 +1848,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(existCourseScheduleIds)) {
             courseScheduleTeachingTeacherIdList = courseScheduleDao.findCourseScheduleIdAndUserIdsMap(existCourseScheduleIds, TeachTypeEnum.TEACHING.getCode());
         }
-        Map<Integer, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
+        Map<Long, IntegerAndIntegerListDto> courseScheduleTeachingTeacherMap = courseScheduleTeachingTeacherIdList.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         //班级助教关联ID集合
         List<IntegerAndIntegerListDto> classGroupAndUserIdsMap = courseScheduleDao.findClassGroupAndUserIdsMap(newCourseScheduleClassGroupIds, TeachTypeEnum.TEACHING.getCode());
-        Map<Integer, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
+        Map<Long, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         Set<Long> existCourseScheduleIdsSet=new HashSet<>(existCourseScheduleIds);
@@ -2016,12 +2035,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(existCourseScheduleIds)) {
             courseScheduleTeachingTeacherIdList = courseScheduleDao.findCourseScheduleIdAndUserIdsMap(existCourseScheduleIds, null);
         }
-        Map<Integer, IntegerAndIntegerListDto> courseScheduleTeacherMap = courseScheduleTeachingTeacherIdList.stream()
+        Map<Long, IntegerAndIntegerListDto> courseScheduleTeacherMap = courseScheduleTeachingTeacherIdList.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         //班级教师关联ID集合
         List<IntegerAndIntegerListDto> classGroupAndUserIdsMap = courseScheduleDao.findClassGroupAndUserIdsMap(newCourseScheduleClassGroupIds, null);
-        Map<Integer, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
+        Map<Long, IntegerAndIntegerListDto> classGroupTeachingTeacherMap = classGroupAndUserIdsMap.stream()
                 .collect(Collectors.toMap(IntegerAndIntegerListDto::getId, integerAndIntegerListDto -> integerAndIntegerListDto));
 
         existCourseSchedules.sort(Comparator.comparing(CourseSchedule::getStartClassTime));

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml

@@ -143,6 +143,14 @@
         AND ct.teacher_role_="BISHOP"
     </select>
 
+    <select id="findAllByMusicGroup" resultMap="ClassGroupTeacherMapper">
+        SELECT u.real_name_, ct.*
+        FROM sys_user u,
+        class_group_teacher_mapper ct
+        WHERE ct.music_group_id_ = #{musicGroupId}
+        AND ct.user_id_=u.id_
+    </select>
+
     <!-- 删除对应班级老师关联关系 -->
     <delete id="delMusicGroupTeacherMapper">
         DELETE FROM class_group_teacher_mapper WHERE class_group_id_ IN

+ 2 - 2
mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -81,11 +81,11 @@ public class ContractsController extends BaseController {
 
 	@ApiOperation("查询产品协议")
 	@GetMapping(value = "queryProduceContract")
-	public Object queryProduceContract() {
+	public Object queryProduceContract(String musicGroupId) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
 		if (sysUser == null) {
 			return failed("获取用户信息失败");
 		}
-		return succeed(contractService.queryProductContract(sysUser.getId()));
+		return succeed(contractService.queryProductContract(sysUser.getId(),musicGroupId));
 	}
 }