Browse Source

Merge branch 'online1' into grade_feature

周箭河 4 years ago
parent
commit
4b1447345a

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

@@ -3357,6 +3357,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						ts.setExpectSalary(teacherSalary);
 
 					} else if (newCourseSchedule.getGroupType() == PRACTICE) {
+						PracticeGroup practiceGroup = practiceGroupDao.get(Long.valueOf(newCourseSchedule.getMusicGroupId()));
+						if(Objects.isNull(practiceGroup)){
+							throw new BizException("课程组信息错误");
+						}
 						List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao
 								.queryByUserId(teacherId);
 						if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
@@ -3364,6 +3368,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 						} else {
 							throw new BizException("请设置老师 的网管课课酬");
 						}
+						if(Objects.nonNull(practiceGroup)&& !PracticeGroupType.CHARGE.equals(practiceGroup.getType()) && !PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroup.getType())){
+							SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+							ts.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+						}
 					}
 					if(ts.getExpectSalary() == null){
 						throw new BizException("请设置老师的课酬");

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

@@ -710,7 +710,10 @@ public class EduPracticeGroupServiceImpl implements EduPracticeGroupService{
         courseScheduleDao.batchAddCourseSchedules(practiceCourses);
         TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroupBuyParams.getUserId(),practiceCourseMinutes);
         BigDecimal teacherDefaultSalary=null;
-        if(Objects.nonNull(teacherDefaultPracticeGroupSalary)&&PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupBuyParams.getType())){
+        if(PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroupBuyParams.getType())){
+            if(Objects.isNull(teacherDefaultPracticeGroupSalary)){
+                throw new BizException("请设置老师课酬");
+            }
             teacherDefaultSalary=teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
         }else{
             teacherDefaultSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());

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

@@ -59,7 +59,7 @@ public class StudentVisitServiceImpl extends BaseServiceImpl<Integer, StudentVis
                 throw new BizException("学员课程信息不存在");
             }
             StudentAttendance studentAttendance = studentAttendanceDao.findByStatusAndCourseScheduleId(courseScheduleStudentPayment.getUserId(), courseScheduleStudentPayment.getCourseScheduleId().intValue());
-            if (studentAttendance == null) {
+            if (studentAttendance == null && "考勤申诉".equals(studentVisit.getPurpose())) {
                 studentAttendance = new StudentAttendance();
                 studentAttendance.setClassGroupId(courseScheduleStudentPayment.getClassGroupId());
                 studentAttendance.setCourseScheduleId(courseScheduleStudentPayment.getCourseScheduleId());

+ 31 - 6
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherDefaultPracticeGroupSalaryServiceImpl.java

@@ -1,10 +1,14 @@
 package com.ym.mec.biz.service.impl;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
+import com.ym.mec.biz.dal.dao.PracticeGroupDao;
+import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.SysConfig;
+import com.ym.mec.biz.dal.enums.PracticeGroupType;
+import com.ym.mec.biz.service.SysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Propagation;
@@ -18,6 +22,7 @@ import com.ym.mec.biz.dal.entity.TeacherDefaultPracticeGroupSalary;
 import com.ym.mec.biz.service.TeacherDefaultPracticeGroupSalaryService;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
+import org.springframework.util.CollectionUtils;
 
 @Service
 public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImpl<Long, TeacherDefaultPracticeGroupSalary>  implements TeacherDefaultPracticeGroupSalaryService {
@@ -28,6 +33,12 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 	@Autowired
 	private CourseScheduleTeacherSalaryDao courseScheduleTeacherSalaryDao;
 
+	@Autowired
+	private PracticeGroupDao practiceGroupDao;
+
+	@Autowired
+	private SysConfigService sysConfigService;
+
 	@Override
 	public BaseDAO<Long, TeacherDefaultPracticeGroupSalary> getDAO() {
 		return teacherDefaultPracticeGroupSalaryDao;
@@ -67,7 +78,16 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 						userId, typeList, startDate);
 				
 				if (updateTeacherSalaryList != null && updateTeacherSalaryList.size() > 0) {
-					
+
+					Set<Long> groupIds = updateTeacherSalaryList.stream().map(c -> Long.valueOf(c.getMusicGroupId())).collect(Collectors.toSet());
+					List<PracticeGroup> practiceGroups = practiceGroupDao.getWithIds(new ArrayList<>(groupIds));
+					Map<Long, PracticeGroup> idGroupMap = new HashMap<>();
+					if(!CollectionUtils.isEmpty(practiceGroups)){
+						idGroupMap = practiceGroups.stream().collect(Collectors.toMap(PracticeGroup::getId, p->p, (p1, p2)->p1));
+					}
+
+					SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+
 					Date date = new Date();
 
 					List<CourseScheduleTeacherSalary> list = new ArrayList<CourseScheduleTeacherSalary>();
@@ -75,7 +95,12 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 					for (CourseScheduleTeacherSalary ts : updateTeacherSalaryList) {
 						if (origSalary != null && origSalary.getMainTeacherSalary().compareTo(ts.getExpectSalary()) == 0
 								&& origSalary.getMainTeacherSalary().compareTo(salary) != 0) {
-							ts.setExpectSalary(salary);
+							PracticeGroup practiceGroup = idGroupMap.get(Long.valueOf(ts.getMusicGroupId()));
+							if(Objects.nonNull(practiceGroup)&& !PracticeGroupType.CHARGE.equals(practiceGroup.getType()) && !PracticeGroupType.COME_ON_PACKAGE.equals(practiceGroup.getType())){
+								ts.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+							}else{
+								ts.setExpectSalary(salary);
+							}
 							ts.setUpdateTime(date);
 							list.add(ts);
 						}
@@ -92,4 +117,4 @@ public class TeacherDefaultPracticeGroupSalaryServiceImpl extends BaseServiceImp
 		return false;
 	}
 	
-}
+}

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

@@ -2493,7 +2493,8 @@
         <if test="searchType == 'ERR_ATTENDANCE'">
             AND ta.teacher_id_ = cs.actual_teacher_id_
             AND cs.status_ = 'OVER'
-            AND (ta.sign_in_status_ != 1 OR ta.sign_out_status_ != 1 OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0)) AND ta.dispose_content_ IS NULL
+            AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL
+            AND (ta.sign_in_status_ = 0 OR ta.sign_out_status_ = 0 OR (sa.id_ IS NULL OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0))) AND ta.dispose_content_ IS NULL
             AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
         </if>
         <if test="searchType == 'NO_ATTENDANCE'">

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

@@ -591,7 +591,8 @@
 		LEFT JOIN student_attendance sa ON sa.course_schedule_id_ = cs.id_
 		WHERE ta.teacher_id_ = cs.actual_teacher_id_
 		AND cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND cs.class_date_ >= '2021-02-01'
-		AND (ta.sign_in_status_ != 1 OR ta.sign_out_status_ != 1 OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0)) AND ta.dispose_content_ IS NULL
+		AND ta.sign_in_status_ IS NOT NULL AND ta.sign_out_status_ IS NOT NULL
+		AND (ta.sign_in_status_ = 0 OR ta.sign_out_status_ = 0 OR (sa.id_ IS NULL OR (sa.status_ != 'NORMAL' AND sa.visit_flag_ = 0))) AND ta.dispose_content_ IS NULL
 		AND (cs.new_course_id_ IS NULL OR cs.new_course_id_=cs.id_)
 		<if test="organIds != null and organIds != ''">
 			AND FIND_IN_SET(cs.organ_id_,#{organIds})

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

@@ -496,13 +496,12 @@
                CASE WHEN sa.status_ IS NULL THEN 'TRUANT' ELSE sa.status_ END status_,
         su.username_,su.phone_,su.avatar_,cs.teach_mode_,cs.type_ course_type_,o.name_ organ_name_,tu.real_name_ teacher_name_,cs.name_ course_schedule_name_,cs.status_ course_status_,
         cs.actual_teacher_id_ teacher_id_,cs.class_date_ ,cs.start_class_time_,cs.end_class_time_ ,cs.new_course_id_,
-        CASE WHEN MAX(sv.id_) IS NULL THEN 0 ELSE 1 END visitFlag
+        CASE WHEN sa.visit_flag_ IS NULL THEN 0 ELSE sa.visit_flag_ END visitFlag
         FROM course_schedule_student_payment cssp left join course_schedule cs on cs.id_ = cssp.course_schedule_id_
         left join student_attendance sa on cssp.course_schedule_id_ = sa.course_schedule_id_ and cssp.user_id_ = sa.user_id_
         LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
         left join sys_user tu on tu.id_ = cs.actual_teacher_id_
         left join organization o on o.id_ = cs.organ_id_
-        LEFT JOIN student_visit sv ON cssp.id_ = sv.object_id_
         <include refid="findStudentAttendanceSql"/>
         GROUP BY cssp.id_
         ORDER BY CONCAT(cs.class_date_, ' ', cs.start_class_time_) ASC
@@ -513,10 +512,10 @@
             cs.status_ = 'OVER' AND cs.del_flag_ = 0 AND (cs.new_course_id_ IS NULL OR cs.new_course_id_ = cs.id_)
             <if test="visitFlag != null">
                 <if test="visitFlag == 1">
-                    AND sv.id_ IS NOT NULL
+                    AND sa.visit_flag_ = 1
                 </if>
                 <if test="visitFlag == 0">
-                    AND sv.id_ IS NULL
+                    AND (sa.visit_flag_ = 0 OR sa.visit_flag_ IS NULL)
                 </if>
             </if>
             <if test="courseScheduleId != null">
@@ -570,7 +569,6 @@
         FROM course_schedule_student_payment cssp
         left join course_schedule cs on cs.id_ = cssp.course_schedule_id_
         left join student_attendance sa on cssp.course_schedule_id_ = sa.course_schedule_id_ and cssp.user_id_ = sa.user_id_
-        LEFT JOIN student_visit sv ON cssp.id_ = sv.object_id_
         <include refid="findStudentAttendanceSql"/>
     </select>
     <select id="findByCourseId" resultMap="StudentAttendance">

+ 1 - 1
mec-student/src/main/resources/bootstrap-test.properties

@@ -3,7 +3,7 @@
 #\u670d\u52a1\u5668\u5730\u5740
 spring.cloud.nacos.config.server-addr=47.114.1.200:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=02105743-16b8-46ab-87df-2aca0f3dbca3
+spring.cloud.nacos.config.namespace=f753d9d9-4bb2-4df6-a483-da9e169617c4
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}

+ 2 - 2
mec-web/src/main/resources/bootstrap-test.properties

@@ -1,9 +1,9 @@
 #\u6307\u5b9a\u5f00\u53d1\u73af\u5883
 #spring.profiles.active=dev
 #\u670d\u52a1\u5668\u5730\u5740
-spring.cloud.nacos.config.server-addr=47.96.85.100:8848
+spring.cloud.nacos.config.server-addr=47.114.1.200:8848
 #\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
-spring.cloud.nacos.config.namespace=02105743-16b8-46ab-87df-2aca0f3dbca3
+spring.cloud.nacos.config.namespace=f753d9d9-4bb2-4df6-a483-da9e169617c4
 #\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
 spring.cloud.nacos.config.group=DEFAULT_GROUP
 #\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}