Bladeren bron

Merge remote-tracking branch 'origin/master'

周箭河 5 jaren geleden
bovenliggende
commit
0f9c31744a

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

@@ -165,4 +165,15 @@ public interface CourseScheduleStudentPaymentDao extends BaseDAO<Long, CourseSch
      * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
     List<Map<Integer, Integer>> countCourseStudentNum(@Param("courseIds") List<Long> courseIds);
+
+    /**
+     * @describe 检测学生是否存在指定课程的缴费记录
+     * @author Joburgess
+     * @date 2020/1/10
+     * @param courseScheduleId:
+     * @param userId:
+     * @return int
+     */
+    int checkStudentHaveCourse(@Param("courseScheduleId") Long courseScheduleId,
+                               @Param("userId") Integer userId);
 }

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

@@ -28,5 +28,5 @@ public interface SysUserCashAccountDetailDao extends BaseDAO<Long, SysUserCashAc
      * @param currentMonth
      * @return
      */
-    Integer countByTypeAndTime(@Param("currentMonth") String currentMonth,@Param("teacherId")Integer teacherId);
+    Integer countByTypeAndTime(@Param("currentMonth") String currentMonth,@Param("teacherId")Integer teacherId,@Param("activeId")Integer activeId);
 }

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

@@ -28,9 +28,10 @@ public interface SysUserCashAccountDetailService extends BaseService<Long, SysUs
 	 * @param transType 交易渠道
 	 * @param status 交易状态
 	 * @param comment 备注
+	 * @param comment 描述
 	 * @return
 	 */
 	boolean addCashAccountDetail(Integer userId, BigDecimal amount, String origOrderId, String transNo, PlatformCashAccountDetailTypeEnum type,
-			TransTypeEnum transType, DealStatusEnum status, String comment);
+			TransTypeEnum transType, DealStatusEnum status, String comment,String description);
 
 }

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

@@ -1367,6 +1367,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
         //需要生成课程课酬的课程计划
         List<CourseSchedule> needCreateCourseScheduleTeacherSalaryCourse = new ArrayList<>();
+        //需要重新学生缴费记录的课
+        List<CourseSchedule> needCreateStudentPaymentCourses = new ArrayList<>();
 
         //课程对应助教集合
         List<CourseScheduleTeacherSalary> teachingTeacherSalarys = courseScheduleDao.findTeachingTeachers(newCourseScheduleIds);
@@ -1389,6 +1391,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
                 teacherAttendanceDao.cleanCourseTeacherSignInfo(newCourseSchedule.getId());
             }
 
+            if (oldCourseSchedule.getEndClassTime().before(now)&&newCourseSchedule.getStartClassTime().after(now)){
+                needCreateStudentPaymentCourses.add(oldCourseSchedule);
+            }
+
             boolean courseTimeIsChange = false;
             int newCourseTime = DateUtil.minutesBetween(newCourseSchedule.getStartClassTime(), newCourseSchedule.getEndClassTime());
             int oldCourseTime = DateUtil.minutesBetween(oldCourseSchedule.getStartClassTime(), oldCourseSchedule.getEndClassTime());
@@ -1528,6 +1534,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         if (!CollectionUtils.isEmpty(needCreateCourseScheduleTeacherSalaryCourse)) {
             classGroupTeacherMapperService.createCourseScheduleTeacherSalary(needCreateCourseScheduleTeacherSalaryCourse, oldCourseSchedules);
         }
+        courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(needCreateStudentPaymentCourses);
 
         try {
             //推送课时调整

+ 18 - 10
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleStudentPaymentServiceImpl.java

@@ -165,16 +165,24 @@ public class CourseScheduleStudentPaymentServiceImpl extends BaseServiceImpl<Lon
 				return;
 			}
 			studentsWithClassGroup.forEach(classGroupStudent->{
-				courseSchedulesByClassGroup.forEach(courseSchedule -> {
-					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
-							courseSchedule.getId(),
-							classGroupStudent.getUserId(),
-							zeroPrice,
-							courseSchedule.getClassGroupId());
-					courseScheduleStudentPayment.setGroupType(classGroupStudent.getGroupType());
-					courseScheduleStudentPayment.setMusicGroupId(classGroupStudent.getMusicGroupId());
-					courseScheduleStudentPayments.add(courseScheduleStudentPayment);
-				});
+				for (CourseSchedule courseSchedule : courseSchedulesByClassGroup) {
+					int i = courseScheduleStudentPaymentDao.checkStudentHaveCourse(courseSchedule.getId(), classGroupStudent.getUserId());
+					if(i>0){
+						continue;
+					}
+					if(courseSchedule.getType().equals(CourseSchedule.CourseScheduleType.VIP)){
+
+					}else{
+						CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment(
+								courseSchedule.getId(),
+								classGroupStudent.getUserId(),
+								zeroPrice,
+								courseSchedule.getClassGroupId());
+						courseScheduleStudentPayment.setGroupType(classGroupStudent.getGroupType());
+						courseScheduleStudentPayment.setMusicGroupId(classGroupStudent.getMusicGroupId());
+						courseScheduleStudentPayments.add(courseScheduleStudentPayment);
+					}
+				}
 			});
 		});
 		courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1066,7 +1066,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             sysUserCashAccountService.updateBalance(order.getUserId(), order.getActualAmount());
             // 增加交易流水
             sysUserCashAccountDetailService.addCashAccountDetail(order.getUserId(), order.getActualAmount(), SysUserCashAccountDetailService.MUSIC_GROUP
-                    + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "取消乐团");
+                    + musicGroupId, "", PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "取消乐团",null);
         }
         //获取当前乐团所有已报名学员
         if(musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN){
@@ -1321,7 +1321,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             if (amount.doubleValue() > 0) {
                 // 增加交易流水
                 sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
-                        PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+                        PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团",null);
             }
         }
         return true;
@@ -1429,7 +1429,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         if (amount.doubleValue() > 0) {
             // 增加交易流水
             sysUserCashAccountDetailService.addCashAccountDetail(userId, amount, SysUserCashAccountDetailService.MUSIC_GROUP + musicGroupId, "",
-                    PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团");
+                    PlatformCashAccountDetailTypeEnum.REFUNDS, null, DealStatusEnum.SUCCESS, "退出乐团",null);
         }
 
         return true;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRechargeServiceImpl.java

@@ -124,7 +124,7 @@ public class StudentRechargeServiceImpl extends BaseServiceImpl<String, StudentR
 				// 更新账户余额
 				// 新增交易流水
 				sysUserCashAccountDetailService.addCashAccountDetail(studentRecharge.getUserId(), studentRecharge.getAmount(), orderNo, transNo,
-						PlatformCashAccountDetailTypeEnum.RECHARGE, transType, status, "");
+						PlatformCashAccountDetailTypeEnum.RECHARGE, transType, status, "",null);
 			}
 
 		}

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysUserCashAccountDetailServiceImpl.java

@@ -46,7 +46,7 @@ public class SysUserCashAccountDetailServiceImpl extends BaseServiceImpl<Long, S
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
 	public boolean addCashAccountDetail(Integer userId, BigDecimal amount, String origOrderId, String transNo, PlatformCashAccountDetailTypeEnum type,
-			TransTypeEnum transType, DealStatusEnum status, String comment) {
+			TransTypeEnum transType, DealStatusEnum status, String comment,String description) {
 
 		SysUserCashAccountDetail sysUserCashAccountDetail = new SysUserCashAccountDetail();
 		sysUserCashAccountDetail.setUserId(userId);
@@ -55,6 +55,7 @@ public class SysUserCashAccountDetailServiceImpl extends BaseServiceImpl<Long, S
 		sysUserCashAccountDetail.setAmount(amount);
 		sysUserCashAccountDetail.setAttribute(origOrderId);
 		sysUserCashAccountDetail.setComment(comment);
+		sysUserCashAccountDetail.setDescription(description);
 		sysUserCashAccountDetail.setTransNo(transNo);
 		sysUserCashAccountDetail.setTransType(transType);
 		sysUserCashAccountDetail.setCreateTime(new Date());

+ 1 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -308,11 +308,9 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		//签退
 		if(SignStatusEnum.SIGN_OUT.equals(signStatus)){
 			//正常签退范围(课程结束前10分钟,1小时内)
-			if(DateUtil.minutesBetween(classEndDateCut10Minutes,date) > 0 && DateUtil.minutesBetween(date,classEndDateAdd60Minutes) > 0){
+			if(DateUtil.minutesBetween(classEndDateCut10Minutes,date) >= 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.YES);
 				//异常签退时间段,并且没有签退状态
-			}else if(DateUtil.minutesBetween(classEndDateAdd60Minutes,date) > 0 && teacherAttendance.getSignOutStatus() == null){
-				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
 			}else if(DateUtil.minutesBetween(classStartDateTime,date) > 0 && DateUtil.minutesBetween(date,classEndDateCut10Minutes) > 0){
 				teacherAttendance.setSignOutStatus(YesOrNoEnum.NO);
 			}else {

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

@@ -1925,7 +1925,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			String currentMonth = DateUtil.format(new Date(),DateUtil.ISO_YEAR_MONTH_FORMAT);
 			rewardsRulesDtos.forEach(e->{
 				//当前用户是否已经发放过上月奖励
-				Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth,e.getTeacherId());
+				Integer num = sysUserCashAccountDetailDao.countByTypeAndTime(currentMonth,e.getTeacherId(),e.getActiveId());
 				if(num == null || num == 0) {
 					CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
 					List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
@@ -1963,7 +1963,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					}
 					if (money.doubleValue() > 0) {
 						sysUserCashAccountDetailService.addCashAccountDetail(e.getTeacherId(), money, "", SysUserCashAccountDetailService.ORGAN,
-								PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励");
+								PlatformCashAccountDetailTypeEnum.REWARDS, null, DealStatusEnum.SUCCESS, "分部奖励", e.getActiveId().toString());
 					}
 				}
 			});

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

@@ -226,6 +226,9 @@
 		GROUP BY
 			course_schedule_id_
 	</select>
+    <select id="checkStudentHaveCourse" resultType="int">
+		SELECT COUNT(id_) FROM course_schedule_student_payment WHERE course_schedule_id_=#{courseScheduleId} AND user_id_=#{userId}
+	</select>
 
     <delete id="deleteStudentCourseSchedule">
 		DELETE FROM course_schedule_student_payment WHERE user_id_ = #{userId} AND course_schedule_id_ IN

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

@@ -236,7 +236,7 @@
 	<select id="findByCourseScheduleIdsAndTeacherRole" resultMap="CourseScheduleTeacherSalary">
 		SELECT
 			csts.*,
-			su.username_
+			su.real_name_ username_
 		FROM
 			course_schedule_teacher_salary csts
 			LEFT JOIN sys_user su ON csts.user_id_=su.id_

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

@@ -202,6 +202,6 @@
     <select id="countByTypeAndTime" resultType="java.lang.Integer">
       SELECT COUNT(s.id_) FROM sys_user_cash_account_detail s
       WHERE s.type_ = 'REWARDS' AND DATE_FORMAT(s.create_time_,'%Y-%m') = #{currentMonth}
-      AND s.user_id_ = #{teacherId}
+      AND s.user_id_ = #{teacherId} AND s.description_ = #{activeId}
     </select>
 </mapper>