Przeglądaj źródła

Merge remote-tracking branch 'origin/master'

zouxuan 4 lat temu
rodzic
commit
33ddef72ee
19 zmienionych plików z 203 dodań i 32 usunięć
  1. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleTeacherSalaryDao.java
  3. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleTeacherSalary.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseSalaryQueryInfo4Web.java
  5. 11 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPaymentRouteOrderQueryInfo.java
  6. 2 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  7. 41 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  8. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExtracurricularExercisesServiceImpl.java
  9. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  10. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentRouteOrderServiceImpl.java
  11. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  12. 12 9
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java
  13. 4 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java
  14. 16 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  15. 24 2
      mec-biz/src/main/resources/config/mybatis/CourseScheduleTeacherSalaryMapper.xml
  16. 1 0
      mec-biz/src/main/resources/config/mybatis/MusicGroupPaymentCalenderMapper.xml
  17. 16 12
      mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml
  18. 22 6
      mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java
  19. 3 0
      mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

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

@@ -841,6 +841,16 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<CourseSchedule> findCourseScheduleWithDate(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
     /**
+     * @describe 统计指定时间段内已结算的课程组类型数量
+     * @author Joburgess
+     * @date 2020/12/29 0029
+     * @param startDate:
+     * @param endDate:
+     * @return int
+     */
+    int countIsSalaryGroupTypes(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
+    /**
      * @param classGroupId: 班级编号
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>
      * @describe 根据班级获取课程计划

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

@@ -506,4 +506,15 @@ public interface CourseScheduleTeacherSalaryDao extends BaseDAO<Long, CourseSche
 	 * @return
 	 */
 	List<Map<Long, String>> queryTeacherIdMap(@Param("courseScheduleIds") List<Long> courseScheduleIds, @Param("teacherRole") String teacherRole);
+
+	/**
+	 * @describe 获取指定时间段内已结算的教师课酬记录
+	 * @author Joburgess
+	 * @date 2020/12/29 0029
+	 * @param startDate:
+	 * @param endDate:
+	 * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
+	 */
+	List<CourseScheduleTeacherSalary> getIsSalaryWithDate(@Param("startDate") String startDate, @Param("endDate") String endDate);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/CourseScheduleTeacherSalary.java

@@ -67,6 +67,16 @@ public class CourseScheduleTeacherSalary {
 
 	private String deductionReason;
 
+	private Boolean belongToDaya;
+
+	public Boolean getBelongToDaya() {
+		return belongToDaya;
+	}
+
+	public void setBelongToDaya(Boolean belongToDaya) {
+		this.belongToDaya = belongToDaya;
+	}
+
 	public BigDecimal getTeacherActualSalary() {
 		return teacherActualSalary;
 	}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/CourseSalaryQueryInfo4Web.java

@@ -27,6 +27,16 @@ public class CourseSalaryQueryInfo4Web extends QueryInfo {
 
     private Integer confirmStatus;
 
+    private Integer belongDaya;
+
+    public Integer getBelongDaya() {
+        return belongDaya;
+    }
+
+    public void setBelongDaya(Integer belongDaya) {
+        this.belongDaya = belongDaya;
+    }
+
     public Integer getTeacherId() {
         return teacherId;
     }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/StudentPaymentRouteOrderQueryInfo.java

@@ -13,6 +13,9 @@ public class StudentPaymentRouteOrderQueryInfo extends QueryInfo {
 	
 	private String type;//SERVICE、SELL
 
+	//不包含淘气
+	private Integer noneTqType;//TQ
+
 	public String getTransNo() {
 		return transNo;
 	}
@@ -44,4 +47,12 @@ public class StudentPaymentRouteOrderQueryInfo extends QueryInfo {
 	public void setType(String type) {
 		this.type = type;
 	}
+
+	public Integer getNoneTqType() {
+		return noneTqType;
+	}
+
+	public void setNoneTqType(Integer noneTqType) {
+		this.noneTqType = noneTqType;
+	}
 }

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

@@ -209,6 +209,8 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
 
     String VIP_SPECIAL_ACTIVITY_IDS = "vip_special_activity_ids";
 
+    String DAYA_BASE_SALARY_AMOUNT = "daya_base_salary_amount";
+
     /**
      * @return com.ym.mec.biz.dal.entity.SysConfig
      * @params paramName

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -1354,8 +1354,49 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void salaryMark() {
+        Date now = new Date();
+        Date date = DateUtil.addMonths(now, -1);
+        String startDate = DateUtil.format(DateUtil.getFirstDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+        String endDate = DateUtil.format(DateUtil.getLastDayOfMonth(date),DateUtil.DEFAULT_PATTERN);
+
+        int isSalaryGroupTypes = courseScheduleDao.countIsSalaryGroupTypes(startDate, endDate);
+        if(isSalaryGroupTypes<3){
+            return;
+        }
+        List<CourseScheduleTeacherSalary> salaries = courseScheduleTeacherSalaryDao.getIsSalaryWithDate(startDate, endDate);
+        if(CollectionUtils.isEmpty(salaries)){
+            return;
+        }
+        SysConfig dayaBaseSalaryAmountConfig = sysConfigService.findByParamName(SysConfigService.DAYA_BASE_SALARY_AMOUNT);
+        BigDecimal dayaBaseSalaryAmount = new BigDecimal(4000);
+        if(Objects.nonNull(dayaBaseSalaryAmountConfig)&&StringUtils.isNotBlank(dayaBaseSalaryAmountConfig.getParanValue())){
+            dayaBaseSalaryAmount = new BigDecimal(dayaBaseSalaryAmountConfig.getParanValue());
+        }
 
+        Map<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMap = salaries.stream().collect(Collectors.groupingBy(CourseScheduleTeacherSalary::getUserId));
+        List<CourseScheduleTeacherSalary> updateRecords = new ArrayList<>();
+        for (Map.Entry<Integer, List<CourseScheduleTeacherSalary>> teacherSalariesMapEntry : teacherSalariesMap.entrySet()) {
+            List<CourseScheduleTeacherSalary> teacherSalaries = teacherSalariesMapEntry.getValue();
+            List<BigDecimal> amounts = teacherSalaries.stream().map(CourseScheduleTeacherSalary::getActualSalary).collect(Collectors.toList());
+            List<BigDecimal> resultAmounts = salaryComposition(amounts, dayaBaseSalaryAmount);
+            for (BigDecimal resultAmount : resultAmounts) {
+                Iterator<CourseScheduleTeacherSalary> iterator = teacherSalaries.iterator();
+                while (iterator.hasNext()){
+                    CourseScheduleTeacherSalary teacherSalary = iterator.next();
+                    if(teacherSalary.getActualSalary().compareTo(resultAmount)==0){
+                        CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                        courseScheduleTeacherSalary.setId(teacherSalary.getId());
+                        courseScheduleTeacherSalary.setBelongToDaya(true);
+                        updateRecords.add(courseScheduleTeacherSalary);
+                        iterator.remove();
+                        break;
+                    }
+                }
+            }
+        }
+        courseScheduleTeacherSalaryDao.batchUpdate(updateRecords);
     }
 
     @Override

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

@@ -13,6 +13,7 @@ import com.ym.mec.biz.dal.enums.ImSendTypeEnum;
 import com.ym.mec.biz.dal.enums.MessageTypeEnum;
 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo;
 import com.ym.mec.biz.service.ExtracurricularExercisesService;
+import com.ym.mec.biz.service.StudentServeService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
@@ -47,6 +48,8 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 	private SysMessageService sysMessageService;
 	@Autowired
 	private TeacherDao teacherDao;
+	@Autowired
+	private StudentServeService studentServeService;
 
 	@Override
 	public BaseDAO<Long, ExtracurricularExercises> getDAO() {
@@ -111,6 +114,7 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E
 					userMap, null, 0, 3+notifyUrl, "STUDENT",
 					teacher.getRealName(),exercises.getTitle(), dateStr);
 		}
+		studentServeService.updateExercisesSituation(new Date(), studentIds, exercises.getTeacherId());
 	}
 
 	@Override

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

@@ -155,7 +155,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
             if (date.before(courseSchedule.getStartClassTime()) && courseStartTime > beforeAttendanceTimeRange.getParanValue(Integer.class)) {
                 throw new BizException("VIP课开课前{}分钟禁止点名", beforeAttendanceTimeRange.getParanValue(Integer.class));
             }
-            attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP);
+            attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_BEFOR_COURSE_START_TIME_RANGE_VIP);
 
             int courseEndTime = DateUtil.minutesBetween(courseSchedule.getEndClassTime(), date);
             if (date.after(courseSchedule.getEndClassTime()) && courseEndTime > attendanceTimeRange.getParanValue(Integer.class)) {
@@ -265,6 +265,7 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
         TeacherAttendance teacherAttendance = teacherAttendanceDao.findByTeacherAttendanceInfo(sysUser.getId().longValue(), courseSchedule.getId());
 
         teacherAttendance.setSignInLongitudeLatitude(studentAttendanceInfos.getSignInLongitudeLatitude());
+        teacherAttendance.setSignOutLongitudeLatitude(studentAttendanceInfos.getSignInLongitudeLatitude());
 
         if (Objects.isNull(teacherAttendance)) {
             teacherAttendance = new TeacherAttendance();

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

@@ -262,7 +262,7 @@ public class StudentPaymentRouteOrderServiceImpl extends BaseServiceImpl<Long, S
 
                     BigDecimal hasRouteSellOrderActualAmount = BigDecimal.ZERO;
                     for (SellOrder sellOrder : sellOrderList) {
-                        if (Integer.valueOf(goodsMap.getKey()).equals(sellOrder.getParentGoodsId()) && !Integer.valueOf(goodsMap.getKey()).equals(sellOrder.getGoodsId())) {
+                        if (!Integer.valueOf(goodsMap.getKey()).equals(sellOrder.getParentGoodsId()) && !Integer.valueOf(goodsMap.getKey()).equals(sellOrder.getGoodsId())) {
                             continue;
                         }
                         BigDecimal sellOrderActualAmount = BigDecimal.ZERO;

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

@@ -1122,6 +1122,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupRegCalender.getId());
         BigDecimal courseTotalPrice = courseSettings.stream().filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
 
+        BigDecimal optionalCourseFee = courseSettings.stream().filter(MusicGroupPaymentCalenderCourseSettings::getIsStudentOptional).filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
+
         List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
 
         for (MusicGroupPaymentCalender musicGroupPaymentCalender : musicGroupPaymentCalenderList) {
@@ -1133,7 +1135,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             if (currentPaymentCalenderId.longValue() == musicGroupPaymentCalender.getId()) {
                 musicGroupPaymentCalenderDetail.setExpectAmount(courseTotalPrice);
                 if (studentPaymentOrder.getCourseRemitFee() != null && (studentPaymentOrder.getCourseRemitFee().compareTo(BigDecimal.ZERO) > 0)) {
-                    musicGroupPaymentCalenderDetail.setActualAmount(BigDecimal.ZERO);
+                    musicGroupPaymentCalenderDetail.setActualAmount(optionalCourseFee);
                 } else {
                     musicGroupPaymentCalenderDetail.setActualAmount(courseTotalPrice);
                 }

+ 12 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -354,13 +354,12 @@ public class StudentServeServiceImpl implements StudentServeService {
                     results.add(studentExtracurricularExercisesSituation);
                 }else{
                     Map<Integer, List<StudentServeCourseDto>> teacherCourseMap = weekCourseInfo.stream().collect(Collectors.groupingBy(StudentServeCourseDto::getActualTeacherId));
-                    Map<Integer, Set<Long>> teacherServiceCourseIdMap = new HashMap<>();
                     for (Map.Entry<Integer, List<StudentServeCourseDto>> teacherCourseMapEntry : teacherCourseMap.entrySet()) {
                         StudentServeCourseDto courseInfo = teacherCourseMapEntry.getValue().stream().min(Comparator.comparing(StudentServeCourseDto::getCourseStartTime)).get();
                         StudentExtracurricularExercisesSituation studentExtracurricularExercisesSituation;
                         if(TeachModeEnum.OFFLINE.equals(courseInfo.getTeachMode())){
                             studentExtracurricularExercisesSituation=new StudentExtracurricularExercisesSituation(studentCourseMapEntry.getKey(),
-                                    futureCourseInfo.get(0).getActualTeacherId(),nowDate.get(DateUtil.weekFields.weekOfYear()),
+                                    teacherCourseMapEntry.getKey(),nowDate.get(DateUtil.weekFields.weekOfYear()),
                                     DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"), DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"),
                                     "EXERCISE", null);
                         }else{
@@ -445,15 +444,19 @@ public class StudentServeServiceImpl implements StudentServeService {
         for (StudentExtracurricularExercisesSituation result : results) {
             if(codeServeMap.containsKey(result.getStuAndTeaCode())){
                 StudentExtracurricularExercisesSituation s = codeServeMap.get(result.getStuAndTeaCode());
-                List<Long> courseIds = new ArrayList<>();
+                Set<Long> courseIds = new HashSet<>();
                 if(StringUtils.isNotBlank(s.getCourseIds())&&s.getActualExercisesNum()>0){
-                    courseIds = Arrays.stream(s.getCourseIds().split(",")).map(id->Long.valueOf(id)).collect(Collectors.toList());
+                    courseIds = Arrays.stream(s.getCourseIds().split(",")).map(id->Long.valueOf(id)).collect(Collectors.toSet());
                 }
                 if(StringUtils.isNotBlank(result.getCourseIds())){
-                    courseIds.addAll(Arrays.stream(result.getCourseIds().split(",")).map(id->Long.valueOf(id)).collect(Collectors.toList()));
+                    courseIds.addAll(Arrays.stream(result.getCourseIds().split(",")).map(id->Long.valueOf(id)).collect(Collectors.toSet()));
                 }
                 s.setServeType(result.getServeType());
-                s.setCourseIds(StringUtils.join(courseIds, ","));
+                if(s.getServeType().equals("HOMEWORK")){
+                    s.setCourseIds(StringUtils.join(courseIds, ","));
+                }else{
+                    s.setCourseIds("");
+                }
                 if(StringUtils.isBlank(s.getCourseIds())){
                     s.setExpectExercisesNum(1);
                 }else{
@@ -518,13 +521,13 @@ public class StudentServeServiceImpl implements StudentServeService {
         }
 
         List<StudentExtracurricularExercisesSituation> weekServiceWithStudents = studentExtracurricularExercisesSituationDao.findWeekServiceWithStudents(monDayDate.toString(), teacherId, studentIds);
-        if(!CollectionUtils.isEmpty(weekServiceWithStudents)){
+        if(CollectionUtils.isEmpty(weekServiceWithStudents)){
             return;
         }
 
         for (StudentExtracurricularExercisesSituation weekServiceWithStudent : weekServiceWithStudents) {
             List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(weekServiceWithStudent.getStudentId());
-            if(!CollectionUtils.isEmpty(studentHomeworks)){
+            if(!CollectionUtils.isEmpty(studentHomeworks)&&weekServiceWithStudent.getServeType().equals("HOMEWORK")){
                 weekServiceWithStudent.setActualExercisesNum(1);
                 long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
                 weekServiceWithStudent.setExercisesReplyNum(replyNum>0?1:0);
@@ -552,7 +555,7 @@ public class StudentServeServiceImpl implements StudentServeService {
             }
 
             List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(weekServiceWithStudent.getStudentId());
-            if(!CollectionUtils.isEmpty(studentExercises)){
+            if(!CollectionUtils.isEmpty(studentExercises)&&weekServiceWithStudent.getServeType().equals("EXERCISE")){
                 weekServiceWithStudent.setActualExercisesNum(1);
                 long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
                 if(weekServiceWithStudent.getExercisesReplyNum()<=0){

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

@@ -234,6 +234,10 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 				}
 			}
 
+			if(Objects.isNull(teacherAttendance.getSignInTime())){
+				throw new BizException("未签到不可点名和签退");
+			}
+
 			//正常签退范围(结束后1小时内)
 			teacherAttendance.setSignOutTime(date);
 			teacherAttendance.setSignOutAttachments(teacherSignOutDto.getCourseHomeworkInfo().getAttachments());

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

@@ -1700,6 +1700,7 @@
         </foreach>
         )
         AND (cs.del_flag_ IS NULL OR cs.del_flag_=0)
+        AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
     </select>
 
     <select id="findByClassDateWithoutMusicGroup" resultMap="CourseSchedule">
@@ -1828,6 +1829,21 @@
           AND cs.group_type_ = 'MUSIC'
           AND (cs.del_flag_ IS NULL OR cs.del_flag_ = 0)
     </select>
+
+    <select id="countIsSalaryGroupTypes" resultType="int">
+        SELECT
+            COUNT(DISTINCT csts.group_type_)
+        FROM
+            course_schedule_teacher_salary csts
+                LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
+        WHERE
+            cs.class_date_ BETWEEN #{startDate} AND #{endDate}
+          AND ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
+          AND csts.settlement_time_ IS NOT NULL
+        GROUP BY
+            csts.group_type_
+    </select>
+
     <select id="findByClassGroup" resultMap="CourseSchedule">
         select cs.id_,
                cs.class_group_id_,

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

@@ -31,6 +31,7 @@
 		<result column="reduce_salary" property="reduceSalary" />
 		<result column="confirm_status_" property="confirmStatus" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
 		<result column="memo_" property="memo" />
+		<result column="is_belong_to_daya_" property="belongToDaya" />
 	</resultMap>
 	
 	<resultMap type="com.ym.mec.biz.dal.dto.TeacherVipSalaryDto" id="teacherVipSalaryDto" extends="CourseScheduleTeacherSalary">
@@ -120,6 +121,9 @@
 			<if test="deductionReason != null">
 				deduction_reason_ = #{deductionReason},
 			</if>
+			<if test="belongToDaya != null">
+				is_belong_to_daya_ = #{belongToDaya},
+			</if>
 		</set> WHERE id_ = #{id} 
 	</update>
 
@@ -136,12 +140,15 @@
         <foreach collection="courseScheduleTeacherSalaries" item="courseScheduleTeacherSalary" separator=";">
             UPDATE course_schedule_teacher_salary
             <set>
-                <if test="courseScheduleTeacherSalary.expectSalary">
+                <if test="courseScheduleTeacherSalary.expectSalary!=null">
                     expect_salary_ = #{courseScheduleTeacherSalary.expectSalary},
                 </if>
-                <if test="courseScheduleTeacherSalary.userId">
+                <if test="courseScheduleTeacherSalary.userId!=null">
                     user_id_ = #{courseScheduleTeacherSalary.userId},
                 </if>
+				<if test="courseScheduleTeacherSalary.belongToDaya!=null">
+					is_belong_to_daya_ = #{courseScheduleTeacherSalary.belongToDaya},
+				</if>
                 update_time_ = NOW()
             </set>
             WHERE
@@ -839,6 +846,9 @@
 			<if test="search!=null">
 				AND (csts.course_schedule_id_=#{search} OR cs.name_ LIKE CONCAT('%', #{search}, '%'))
 			</if>
+			<if test="belongDaya!=null">
+				AND csts.is_belong_to_daya_ = #{belongDaya}
+			</if>
 		</where>
 	</sql>
 
@@ -1014,4 +1024,16 @@
 		</if>
 		GROUP BY course_schedule_id_
 	</select>
+
+	<select id="getIsSalaryWithDate" resultMap="CourseScheduleTeacherSalary">
+		SELECT
+			csts.*
+		FROM
+			course_schedule_teacher_salary csts
+			LEFT JOIN course_schedule cs ON csts.course_schedule_id_ = cs.id_
+		WHERE
+			cs.class_date_ BETWEEN #{startDate} AND #{endDate}
+		  AND ( cs.del_flag_ IS NULL OR cs.del_flag_ = 0 )
+		  AND csts.settlement_time_ IS NOT NULL
+	</select>
 </mapper>

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

@@ -320,6 +320,7 @@
         WHERE music_group_id_ = #{musicGroupId}
         AND (payment_valid_end_date_ IS NULL OR payment_valid_start_date_ BETWEEN #{paymentValidStartDate} AND #{paymentValidEndDate}
         OR payment_valid_end_date_ BETWEEN #{paymentValidStartDate} AND #{paymentValidEndDate}) AND payment_valid_start_date_ IS NOT NULL
+        AND mgpc.payment_type_ != 'ADD_STUDENT' AND mgpc.batch_no_ IS NOT NULL
         <if test="payUserType != null">
         	and pay_user_type_ = #{payUserType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         </if>

+ 16 - 12
mec-biz/src/main/resources/config/mybatis/StudentPaymentRouteOrderMapper.xml

@@ -338,15 +338,17 @@
         	<if test="auditStatus != null">
         		and spro.audit_status_ = #{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         	</if>
-        	<if test="type != null and type != ''">
-        		and
-        		<if test="type == 'SERVICE'">
-        			(spro.service_amount_ is not null and spro.service_amount_ &gt; 0)
-        		</if>
-        		<if test="type == 'SELL'">
-        			(spro.sale_amount_ is not null and spro.sale_amount_ &gt; 0)
-        		</if>
-        	</if>
+            <if test="type != null and type != ''">
+                <if test="type == 'SERVICE'">
+                    and (spro.service_amount_ is not null and spro.service_amount_ &gt; 0)
+                </if>
+                <if test="type == 'SELL'">
+                    and (spro.sale_amount_ is not null and spro.sale_amount_ &gt; 0)
+                </if>
+            </if>
+            <if test="noneTqType != null">
+                and spro.mer_no_ != '淘气微信'
+            </if>
         </where>
 		order by spro.id_ desc
 	</select>
@@ -368,14 +370,16 @@
         		and spro.audit_status_ = #{auditStatus,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
         	</if>
         	<if test="type != null and type != ''">
-        		and
         		<if test="type == 'SERVICE'">
-        			(spro.service_amount_ is not null and spro.service_amount_ &gt; 0)
+                    and (spro.service_amount_ is not null and spro.service_amount_ &gt; 0)
         		</if>
         		<if test="type == 'SELL'">
-        			(spro.sale_amount_ is not null and spro.sale_amount_ &gt; 0)
+                    and (spro.sale_amount_ is not null and spro.sale_amount_ &gt; 0)
         		</if>
         	</if>
+            <if test="noneTqType != null">
+                and spro.mer_no_ != '淘气微信'
+            </if>
         </where>
 		order by spro.id_ desc
 		<include refid="global.limit" />

+ 22 - 6
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -186,22 +186,22 @@ public class MusicGroupController extends BaseController {
                 return failed(HttpStatus.CONTINUE, "您有待支付的订单");
             }
         }
-        MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(calenderId,userId);
+        MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(calenderId, userId);
         if (calenderDetail == null) {
             throw new BizException("缴费项不存在该学员,请联系教务老师");
         }
-        if(calenderDetail.getPaymentStatus() == PaymentStatus.PAID_COMPLETED){
+        if (calenderDetail.getPaymentStatus() == PaymentStatus.PAID_COMPLETED) {
             throw new BizException("您已缴费,请勿重复提交");
-        }else if(calenderDetail.getPaymentStatus() == PaymentStatus.PROCESSING){
+        } else if (calenderDetail.getPaymentStatus() == PaymentStatus.PROCESSING) {
             throw new BizException("存在待处理的订单,请稍候尝试");
         }
         //缴费项目已开启或者单独开启
         Map renew;
-        if(calender.getStatus() == PaymentCalenderStatusEnum.OPEN || calenderDetail.getOpen() == 1){
+        if (calender.getStatus() == PaymentCalenderStatusEnum.OPEN || calenderDetail.getOpen() == 1) {
             renew = musicGroupService.renew(calenderId, userId, isUseBalancePayment);
-        }else if(calender.getStatus() == PaymentCalenderStatusEnum.OVER){
+        } else if (calender.getStatus() == PaymentCalenderStatusEnum.OVER) {
             throw new BizException("缴费已截止,如有问题请联系指导老师");
-        }else {
+        } else {
             throw new BizException("缴费暂未开始,如有问题请联系指导老师");
         }
         if (renew.containsKey("tradeState")) {
@@ -217,6 +217,22 @@ public class MusicGroupController extends BaseController {
         return succeed(musicGroupService.applyQuitMusicGroup(musicGroupId));
     }
 
+    @ApiOperation(value = "查询是否有待支付的报名订单")
+    @GetMapping("/checkWaitPayApplyOrder")
+    @ApiImplicitParams({@ApiImplicitParam(name = "registerId", value = "注册id", required = true, dataType = "int")})
+    public HttpResponseResult<StudentPaymentOrder> checkWaitPayApplyOrder(Long registerId) throws Exception {
+
+        StudentRegistration studentRegistration = studentRegistrationService.get(registerId);
+        if (studentRegistration == null) {
+            return failed("报名信息有误,请核查");
+        }
+        Integer userId = studentRegistration.getUserId();
+
+        //判断用户是否已存在订单
+        StudentPaymentOrder applyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.ING);
+        return succeed(applyOrder);
+    }
+
     @ApiOperation(value = "乐团报名支付")
     @PostMapping("/pay")
     @ApiImplicitParams({@ApiImplicitParam(name = "registerPayDto", value = "支付信息", required = true, dataType = "RegisterPayDto")})

+ 3 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TaskController.java

@@ -126,18 +126,21 @@ public class TaskController extends BaseController {
 	// vip课课酬结算
 	public void vipGroupTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.teacherSalarySettlement();
+		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	@GetMapping("/practiceTeacherSalarySettlement")
 	// 陪练课课酬结算
 	public void practiceTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.practiceTeacherSalarySettlement();
+		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	// 乐团课课酬结算
 	@GetMapping("/musicGroupTeacherSalarySettlement")
 	public void musicGroupTeacherSalarySettlement() {
 		courseScheduleTeacherSalaryService.musicGroupTeacherSalarySettlement();
+		courseScheduleTeacherSalaryService.salaryMark();
 	}
 
 	@GetMapping("/updateCourseScheduleToOverStatus")