Procházet zdrojové kódy

Merge remote-tracking branch 'origin/master'

周箭河 před 5 roky
rodič
revize
1f6ea85e02

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -559,4 +559,22 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<SuperClassGroupDto> superFindClassGroups(Map<String, Object> params);
     int superCountClassGroups(Map<String, Object> params);
+
+    /**
+     * @describe 根据关键字查询学生相关的班级编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findClassGroupIdsByStudent(@Param("search") String search);
+
+    /**
+     * @describe 根据关键字查询教师相关的班级编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search:
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findClassGroupIdsByTeacher(@Param("search") String search);
 }

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

@@ -936,4 +936,22 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     List<CourseScheduleEndDto> endFindCourseSchedules(Map<String, Object> params);
     int endCountCourseSchedules(Map<String, Object> params);
+
+    /**
+     * @describe 根据关键字查询学生相关的课程编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findCourseIdsByStudent(String search);
+
+    /**
+     * @describe 根据关键字查询教师相关的课程编号
+     * @author Joburgess
+     * @date 2019/12/31
+     * @param search: 搜索关键字
+     * @return java.util.List<java.lang.Integer>
+     */
+    List<Integer> findCourseIdsByTeacher(String search);
 }

+ 22 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java

@@ -19,6 +19,28 @@ public class EndCourseScheduleQueryInfo extends QueryInfo {
     @ApiModelProperty(value = "班级编号")
     private Integer classGroupId;
 
+    @ApiModelProperty(value = "学生编号")
+    private Integer studentId;
+
+    @ApiModelProperty(value = "教师编号")
+    private Integer teacherId;
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
     public GroupType getGroupType() {
         return groupType;
     }

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

@@ -31,7 +31,7 @@ public class UploadFileService {
 	private int maxSize;
 
 	/** 支持的扩展名 */
-	@Value("${common.upload.supportExtensions:jpg,jpeg,gif,png,mp3,mid,midi,aac}")
+	@Value("${common.upload.supportExtensions:jpg,jpeg,gif,png,mp3,mid,midi,aac,m4a}")
 	private String supportExtensions;
 
 	/** 文件根目录 */

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -2212,6 +2212,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             if(!CollectionUtils.isEmpty(groups)){
                 params.put("groups", groups);
             }
+            List<Integer> studentClassGroupIds=classGroupDao.findClassGroupIdsByStudent(queryInfo.getSearch());
+            List<Integer> teacherClassGroupIds=classGroupDao.findClassGroupIdsByTeacher(queryInfo.getSearch());
+            studentClassGroupIds.addAll(teacherClassGroupIds);
+            if(!CollectionUtils.isEmpty(studentClassGroupIds)){
+                params.put("classGroupIds", studentClassGroupIds);
+            }
         }
 
         List<SuperClassGroupDto> results = new ArrayList<>();
@@ -2229,10 +2235,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             groups = groupDao.findByGroupIds(groups);
             Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
             results.forEach(result -> {
-                List<Group> groupTemps = groupsGroupByGroup.get(result.getMusicGroupId())
-                        .get(result.getGroupType());
-                if(!CollectionUtils.isEmpty(groupTemps)){
-                    result.setGroupName(groupTemps.get(0).getGroupName());
+                Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());
+                if(Objects.nonNull(groupsTypeMap)){
+                    List<Group> groupTemps = groupsTypeMap.get(result.getGroupType());
+                    if(!CollectionUtils.isEmpty(groupTemps)){
+                        result.setGroupName(groupTemps.get(0).getGroupName());
+                    }
                 }
             });
         }

+ 13 - 5
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -2085,7 +2085,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     @Override
     public PageInfo endFindCourseSchedules(EndCourseScheduleQueryInfo queryInfo) {
         PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
-        Map<String, Object> params = new HashMap<>();
+        Map<String, Object> params = new HashMap<>(16);
         MapUtil.populateMap(params, queryInfo);
 
         if(StringUtils.isNotBlank(queryInfo.getSearch())){
@@ -2093,6 +2093,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             if(!CollectionUtils.isEmpty(groups)){
                 params.put("groups", groups);
             }
+            List<Integer> studentCourseIds=courseScheduleDao.findCourseIdsByStudent(queryInfo.getSearch());
+            List<Integer> teacherCourseIds=courseScheduleDao.findCourseIdsByTeacher(queryInfo.getSearch());
+            studentCourseIds.addAll(teacherCourseIds);
+            if(!CollectionUtils.isEmpty(studentCourseIds)){
+                params.put("courseIds", studentCourseIds);
+            }
         }
 
         List<CourseScheduleEndDto> results = new ArrayList<>();
@@ -2110,10 +2116,12 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
             groups = groupDao.findByGroupIds(groups);
             Map<String, Map<GroupType, List<Group>>> groupsGroupByGroup = groups.stream().collect(Collectors.groupingBy(Group::getId, Collectors.groupingBy(Group::getGroupType)));
             results.forEach(result -> {
-                List<Group> groupTemps = groupsGroupByGroup.get(result.getMusicGroupId())
-                        .get(result.getGroupType());
-                if(!CollectionUtils.isEmpty(groupTemps)){
-                    result.setGroupName(groupTemps.get(0).getGroupName());
+                Map<GroupType, List<Group>> groupsTypeMap = groupsGroupByGroup.get(result.getMusicGroupId());
+                if(Objects.nonNull(groupsTypeMap)){
+                    List<Group> groupTemps = groupsTypeMap.get(result.getGroupType());
+                    if(!CollectionUtils.isEmpty(groupTemps)){
+                        result.setGroupName(groupTemps.get(0).getGroupName());
+                    }
                 }
             });
         }

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

@@ -1240,7 +1240,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
 			if (classGroupIdList != null && classGroupIdList.size() > 0) {
 				//更新班级人数
-				classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+				//classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
 
                 List<ImGroupModel> imGroupModels = new ArrayList<>();
                 ImGroupMember[] imGroupMember = {new ImGroupMember(userId.toString())};
@@ -1348,7 +1348,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
 		if (classGroupIdList != null && classGroupIdList.size() > 0) {
 			//更新班级人数
-			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			//classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
 
 			//删除融云群
 			List<ImGroupModel> imGroupModels = new ArrayList<ImGroupModel>();
@@ -1607,9 +1607,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             paymentDetail.setType(PlatformCashAccountDetailTypeEnum.PAY_FEE);
             paymentDetail.setUpdateTime(date);
             paymentDetail.setUserId(userId);
-            rechargeDetail.setChannel(studentPaymentOrder.getPaymentChannel());
-            rechargeDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
-            rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
+            paymentDetail.setChannel(studentPaymentOrder.getPaymentChannel());
+            paymentDetail.setComAmount(studentPaymentOrder.getComAmount().negate());
+            paymentDetail.setPerAmount(studentPaymentOrder.getPerAmount().negate());
             sysUserCashAccountDetailService.insert(paymentDetail);
 
             // 发送续费结果通知

+ 6 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -612,6 +612,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             }
             Date nextPaymentDate = musicGroupPaymentCalenderService.getNextPaymentDate(musicGroupId, null);
 
+            StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
+
+            if(waitPayOrder != null){
+                waitPayOrder.setStatus(DealStatusEnum.CLOSE);
+                studentPaymentOrderService.update(waitPayOrder);
+            }
             //生成订单
             StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
             studentPaymentOrder.setUserId(userId);

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

@@ -267,7 +267,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 		Date classEndDateAdd60Minutes = DateUtil.addMinutes(classEndDateTime, 60);
 		Date classEndDateCut10Minutes = DateUtil.addMinutes(classEndDateTime, -10);
 //		Date add20Minutes = DateUtil.addMinutes(classStartDateTime, advanceSignMinutes * -1);
-		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
+//		Date add60Minutes = DateUtil.addMinutes(classStartDateTime, -60);
 		//签到
 		if(teacherAttendance.getSignInTime() == null && SignStatusEnum.SIGN_IN.equals(signStatus)){
 			//是否连堂课
@@ -281,8 +281,8 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			boolean isSign = false;
 			if(yesOrNoEnum == YesOrNoEnum.YES){
 				isSign = true;
-			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,classStartDateTime) > 0){
-				//正常签到范围(开始前60分钟  ~  开始之前)
+			}else if(DateUtil.minutesBetween(date,classStartDateTime) > 0){
+				//正常签到范围(开始之前)
 				isSign = true;
 			}else if(DateUtil.minutesBetween(classStartDateTime,date) > 0){
 				//异常签到范围(开始之后)

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

@@ -1981,8 +1981,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			oldVipGroupInfo.setOfflineClassesUnitPrice(vipGroupApplyBaseInfo.getOfflineClassesUnitPrice());
 			isChange=true;
 		}
-		if(Objects.nonNull(vipGroupApplyBaseInfo.getTeacherSchoolId())
-			&&!vipGroupApplyBaseInfo.getTeacherSchoolId().equals(oldVipGroupInfo.getTeacherSchoolId())){
+		if(Objects.nonNull(vipGroupApplyBaseInfo.getTeacherSchoolId())){
 			oldVipGroupInfo.setTeacherSchoolId(vipGroupApplyBaseInfo.getTeacherSchoolId());
 			courseScheduleDao.updateCourseSchoolByGroup(oldVipGroupInfo.getId().toString(), GroupType.VIP.getCode(), oldVipGroupInfo.getTeacherSchoolId());
 			isChange=true;
@@ -2276,7 +2275,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			}
 		}
 
-		BigDecimal avgCourseFee = surplusCoursesPrice.divide(surplusCourseNum,CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
+        BigDecimal discount=null;
+		if(Objects.nonNull(vipGroupActivity)&&vipGroupActivity.getType().equals(VipGroupActivityTypeEnum.DISCOUNT)){
+            discount=new BigDecimal(vipGroupActivity.getAttribute1()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+            surplusCoursesPrice=surplusCoursesPrice.multiply(discount).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
+        }
 
 		//生成学生单课缴费信息
 		for (Integer studentId:studentIds) {
@@ -2318,6 +2321,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						courseScheduleStudentPayment.setExpectPrice(new BigDecimal(0));
 					}
 				}
+				if(Objects.nonNull(discount)){
+                    courseScheduleStudentPayment.setExpectPrice(courseScheduleStudentPayment.getExpectPrice().multiply(discount).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP));
+                }
 				courseScheduleStudentPayment.setCreateTime(now);
 				courseScheduleStudentPayment.setUpdateTime(now);
 				courseScheduleStudentPayments.add(courseScheduleStudentPayment);

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -934,6 +934,12 @@
                         #{group.id}
                     </foreach>
                 </if>
+                <if test="classGroupIds != null">
+                    OR cg.id_ IN
+                    <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+                        #{classGroupId}
+                    </foreach>
+                </if>
                 )
             </if>
             <if test="groupType != null">
@@ -963,5 +969,22 @@
             class_group cg
             <include refid="superFindClassGroupsCondition"/>
     </select>
+    <select id="findClassGroupIdsByStudent" resultType="int">
+        SELECT
+            cgsm.class_group_id_
+        FROM
+            class_group_student_mapper cgsm
+            LEFT JOIN sys_user su ON cgsm.user_id_ = su.id_
+        WHERE su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+    <select id="findClassGroupIdsByTeacher" resultType="int">
+        SELECT
+            cgtm.class_group_id_
+        FROM
+            class_group_teacher_mapper cgtm
+            LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
+        WHERE su.real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+
 
 </mapper>

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

@@ -1861,6 +1861,12 @@
                           #{group.id}
                       </foreach>
                   </if>
+                  <if test="courseIds != null">
+                    OR cs.id_ IN
+                    <foreach collection="courseIds" item="courseId" open="(" close=")" separator=",">
+                        #{courseId}
+                    </foreach>
+                  </if>
                 )
             </if>
             <if test="groupType != null">
@@ -1904,4 +1910,20 @@
           LEFT JOIN class_group cg ON cg.id_=cs.class_group_id_
         <include refid="endFindCourseSchedulesCondition"/>
     </select>
+    <select id="findCourseIdsByStudent" resultType="int">
+        SELECT
+            cssp.course_schedule_id_
+        FROM
+            course_schedule_student_payment cssp
+            LEFT JOIN sys_user su ON cssp.user_id_ = su.id_
+        WHERE su.username_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
+    <select id="findCourseIdsByTeacher" resultType="int">
+        SELECT
+            csts.course_schedule_id_
+        FROM
+            course_schedule_teacher_salary csts
+            LEFT JOIN sys_user su ON csts.user_id_ = su.id_
+        WHERE real_name_ LIKE CONCAT('%',#{search},'%') OR su.id_=#{search}
+    </select>
 </mapper>

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

@@ -207,7 +207,7 @@
 		LEFT JOIN music_group mg ON sr.music_group_id_ = mg.id_
 		LEFT JOIN `subject` s ON sr.actual_subject_id_ = s.id_
 		LEFT JOIN sys_user su ON  su.id_ = sr.user_id_
-		WHERE sr.user_id_ = #{userId} AND mg.status_ IN ('APPLY','PAY','PREPARE','PROGRESS')
+		WHERE sr.user_id_ = #{userId} AND mg.status_ IN ('APPLY','PAY','PREPARE','PROGRESS') AND sr.music_group_status_ != 'QUIT'
 		ORDER BY mg.create_time_ DESC
 	</select>
 

+ 4 - 4
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -543,11 +543,11 @@
         GROUP BY sr.music_group_id_
     </select>
     <select id="queryUserByPhone" resultMap="StudentRegistration">
-        SELECT sr.user_id_,sr.parents_name_,sr.parents_phone_,sr.current_grade_,
+        SELECT su.id_,su.real_name_,su.phone_,sr.current_grade_,
         sr.current_class_,su.username_ name_,su.birthdate_,su.gender_
-        FROM student_registration sr
-        LEFT JOIN sys_user su ON sr.user_id_ = su.id_
-        WHERE sr.parents_phone_ = #{mobile}
+        FROM sys_user su
+        LEFT JOIN student_registration sr ON sr.user_id_ = su.id_
+        WHERE su.phone_ = #{mobile}
         LIMIT 1
     </select>
     <select id="queryPurchaseTypeMap" resultType="java.util.Map">

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java

@@ -50,7 +50,7 @@ public class CourseController extends BaseController {
         if(null == groupId){
             return failed("参数校验错误");
         }
-        return succeed(classGroupService.get(groupId));
+        return succeed(classGroupService.findGroupById(groupId));
     }
 
     @ApiOperation(value = "分页获取学员购买记录")

+ 0 - 1
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -199,7 +199,6 @@ public class MusicGroupController extends BaseController {
 
         Integer userId = studentRegistration.getUserId();
 
-
         StudentPaymentOrder ApplyOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.SUCCESS);
         StudentPaymentOrder waitPay = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
         if (ApplyOrder != null && waitPay == null) {