Forráskód Böngészése

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

zouxuan 5 éve
szülő
commit
6cf62dc795
18 módosított fájl, 111 hozzáadás és 51 törlés
  1. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java
  2. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/UserMusicGroupQueryInfo.java
  3. 1 2
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  4. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java
  5. 14 3
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  6. 8 28
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java
  7. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java
  8. 3 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java
  9. 6 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  10. 2 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java
  11. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  12. 0 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupTeacherMapperMapper.xml
  13. 9 0
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  14. 1 1
      mec-biz/src/main/resources/config/mybatis/MusicGroupMapper.xml
  15. 4 5
      mec-biz/src/main/resources/config/mybatis/TeacherAttendanceMapper.xml
  16. 2 3
      mec-student/src/main/java/com/ym/mec/student/controller/CourseController.java
  17. 11 2
      mec-student/src/main/java/com/ym/mec/student/controller/StudentVipGroupController.java
  18. 1 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupStudentController.java

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

@@ -522,6 +522,15 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
     List<String> queryMusicGroupIds(Map<String, Object> params);
 
     /**
+     * @describe 获取学员购买的所有乐团和vip编号分页列表,排除已结束的乐团
+     * @author Joburgess
+     * @date 2019/12/2
+     * @param params: 参数
+     * @return java.util.List<java.lang.String>
+     */
+    List<String> queryMusicGroupIdsWithoutOverGroup(Map<String, Object> params);
+
+    /**
      * @param startTime: 开始时间
      * @param endTime:   结束时间
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseSchedule>

+ 20 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/UserMusicGroupQueryInfo.java

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/2
+ */
+public class UserMusicGroupQueryInfo extends QueryInfo {
+
+    private boolean hideOverGroup;
+
+    public boolean isHideOverGroup() {
+        return hideOverGroup;
+    }
+
+    public void setHideOverGroup(boolean hideOverGroup) {
+        this.hideOverGroup = hideOverGroup;
+    }
+}

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

@@ -14,7 +14,6 @@ import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
 import com.ym.mec.common.service.BaseService;
-import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -139,7 +138,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param queryInfo
      * @return
      */
-    PageInfo<CourseListDto> queryCoursePage(QueryInfo queryInfo,Integer userId);
+    PageInfo<CourseListDto> queryCoursePage(UserMusicGroupQueryInfo queryInfo,Integer userId);
 
     /**
      * 获取学员所在群组信息

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -183,6 +183,15 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
     void createVipGroupCourseScheInfo(Long vipGroupId,ClassGroup classGroup);
 
     /**
+     * @describe 检测能否购买vip课
+     * @author Joburgess
+     * @date 2019/12/2
+     * @param vipGroupId:
+     * @return void
+     */
+    void enableBuyVipGroup(Integer vipGroupId);
+
+    /**
      * @Author: Joburgess
      * @Date: 2019/10/3
      * @params [vipGroupBuyParams]

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

@@ -514,7 +514,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public PageInfo<CourseListDto> queryCoursePage(QueryInfo queryInfo, Integer userId) {
+    public PageInfo<CourseListDto> queryCoursePage(UserMusicGroupQueryInfo queryInfo, Integer userId) {
         queryInfo.setSearch(userId.toString());
         PageInfo<CourseListDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
         Map<String, Object> params = new HashMap<>();
@@ -524,6 +524,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //获取分页前的所有的乐团编号和vip编号
         params.put("offset", pageInfo.getOffset());
         List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
+        if(queryInfo.isHideOverGroup()){
+            musicGroupIds = courseScheduleDao.queryMusicGroupIdsWithoutOverGroup(params);
+        }
         courseListDtos = new ArrayList<>();
         //获取学员所购买的vip课列表详情
         List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","), userId);
@@ -695,11 +698,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void delSingle(Integer classGroupId) {
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+
         //删除学员班级关联关系
         classGroupStudentMapperDao.deleteByClassId(classGroupId);
         studentRegistrationDao.deleteClassGroup(classGroupId);
+
         //删除班级跟合奏班关系
-        classGroupRelationDao.deleteBySubClassId(classGroupId);
+        if (classGroup.getType().equals(ClassGroupTypeEnum.MIX)) { //合奏班
+            classGroupRelationDao.deleteByClassId(classGroupId);
+        } else {
+            classGroupRelationDao.deleteBySubClassId(classGroupId);
+        }
+
         //删除班级未开始课程
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
         if (courseScheduleList.size() > 0) {
@@ -987,7 +998,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
         String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
 
-        if(classGroup4MixDto.getType() == null){
+        if (classGroup4MixDto.getType() == null) {
             classGroup4MixDto.setType(ClassGroupTypeEnum.NORMAL);
         }
         //1、新建班级

+ 8 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Transactional;
 import java.io.IOException;
 import java.math.BigDecimal;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, ClassGroupStudentMapper> implements ClassGroupStudentMapperService {
@@ -177,17 +178,6 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 studentRegistration.setClassGroupId(classGroupId);
                 studentRegistrationService.update(studentRegistration);
             }
-            //班级在合奏班中
-            if (classGroupRelation != null) {
-                classGroupStudentMapper = new ClassGroupStudentMapper();
-                classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
-                classGroupStudentMapper.setClassGroupId(classGroupRelation.getClassGroupId());
-                classGroupStudentMapper.setUserId(userId);
-                classGroupStudentMapper.setCreateTime(nowDate);
-                classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-                classGroupStudentMapper.setGroupType(GroupType.MUSIC);
-                classGroupStudentMappers.add(classGroupStudentMapper);
-            }
             imGroupMemberList.add(new ImGroupMember(userId.toString()));
         }
 		if (classGroupStudentMappers.size() > 0) {
@@ -204,19 +194,6 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         //3、学生加入新班级未开始课程
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
 
-        //4、班级在合奏班、添加合奏课程
-        if (classGroupRelation != null) {
-            //合奏班增加人数
-            classGroupService.updateClassStudentNum(classGroupRelation.getClassGroupId().longValue(), userIdStrSet.size());
-            List<CourseSchedule> mixCourseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupRelation.getClassGroupId());
-            courseScheduleList.addAll(mixCourseScheduleList);
-
-            //添加进合奏班IM群组
-            imFeignService.groupJoin(new ImGroupModel(classGroupRelation.getClassGroupId().toString(), imGroupMembers, null));
-        }
-
-        BigDecimal coursePrice = new BigDecimal("0");
-
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
         for (CourseSchedule courseSchedule : courseScheduleList) {
             for (String userIdStr : userIdStrSet) {
@@ -225,7 +202,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 courseScheduleStudentPayment.setMusicGroupId(classGroup.getMusicGroupId());
                 courseScheduleStudentPayment.setCourseScheduleId(courseSchedule.getId());
                 courseScheduleStudentPayment.setUserId(Integer.parseInt(userIdStr));
-                courseScheduleStudentPayment.setExpectPrice(coursePrice);
+                courseScheduleStudentPayment.setExpectPrice(BigDecimal.ZERO);
                 courseScheduleStudentPayment.setClassGroupId(classGroupId);
                 courseScheduleStudentPayment.setCreateTime(nowDate);
                 courseScheduleStudentPayment.setUpdateTime(nowDate);
@@ -233,11 +210,14 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
             }
         }
 
-        if (courseScheduleStudentPayments.size() == 0) {
-            return true;
+        if (courseScheduleStudentPayments.size() > 0) {
+            courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
+        }
+        //乐团在合奏班
+        if(classGroupRelation != null){
+            addStudents(classGroupRelation.getClassGroupId(),userIdsStr,GroupType.MUSIC);
         }
 
-        courseScheduleStudentPaymentService.batchInsert(courseScheduleStudentPayments);
         return true;
     }
 

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

@@ -694,7 +694,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		double depositFee = 0d;
 		if (kitGroupPurchaseTypeEnum == KitGroupPurchaseTypeEnum.LEASE) {
-			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.SUCCESS);
+			StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, musicGroupId, DealStatusEnum.WAIT_PAY);
 
 			if (studentPaymentOrder == null) {
 				throw new BizException("缴费订单不存在");

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

@@ -326,7 +326,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }
 
         });
-        sysUserCashAccountDetailDao.batchInsert(userCashAccountDetails);
+        if(!CollectionUtils.isEmpty(userCashAccountDetails)){
+            sysUserCashAccountDetailDao.batchInsert(userCashAccountDetails);
+        }
     }
 
     @Override

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

@@ -928,7 +928,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			
 			//更新班级人数
 			List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
-			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			if (classGroupIdList != null && classGroupIdList.size() > 0) {
+				classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			}
 			
 			// 删除未上课
 			courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);
@@ -1016,7 +1018,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		
 		//更新班级人数
 		List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
-		classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+		if (classGroupIdList != null && classGroupIdList.size() > 0) {
+			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+		}
 		
 		// 删除未上课
 		courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);

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

@@ -911,15 +911,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             for (Subject subject : subjectList) {
                 if (student.getActualSubjectId().equals(subject.getId())) {
                     student.setSubjectName(subject.getName());
+                    break;
                 }
             }
             if (type.equals(ClassGroupTypeEnum.SNAP)) continue;
             for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
                 if (student.getUserId().equals(classGroupStudentMapper.getUserId())) {
                     iterator.remove();
+                    break;
                 }
             }
-
         }
         return students;
     }

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

@@ -823,6 +823,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
     }
 
 	@Override
+	public void enableBuyVipGroup(Integer vipGroupId) {
+		if (Objects.isNull(vipGroupId)){
+			throw new BizException("请指定VIP课");
+		}
+		VipGroup vipGroup = get(vipGroupId.longValue());
+		List<CourseSchedule> courseSchedules = JSON.parseArray(vipGroup.getCourseSchedulesJson(),CourseSchedule.class);
+		courseScheduleService.checkNewCourseSchedules(courseSchedules,false);
+	}
+
+	@Override
 	@Transactional(rollbackFor = Exception.class)
 	public void updateVipGroupStudentNumAndStatus(Long vipGroupId , ClassGroup classGroup, Integer num, boolean updateVipStatus) {
 		VipGroup vipGroup = vipGroupDao.getLockVipGroup(vipGroupId);

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

@@ -160,6 +160,5 @@
         <foreach collection="classGroupIds" item="classGroupId" index="index" open="(" close=")" separator=",">
             #{classGroupId}
         </foreach>
-        AND group_type_='MUSIC'
     </delete>
 </mapper>

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

@@ -1157,6 +1157,15 @@
         AND spo.user_id_ = #{userId} AND spo.status_='SUCCESS' AND cgsm.status_ != 'QUIT'
         <include refid="global.limit"/>
     </select>
+    <select id="queryMusicGroupIdsWithoutOverGroup" resultType="java.lang.String">
+        SELECT DISTINCT spo.music_group_id_ FROM student_payment_order spo
+        LEFT JOIN class_group_student_mapper cgsm ON spo.music_group_id_ = cgsm.music_group_id_
+        LEFT JOIN vip_group vg ON vg.id_=spo.music_group_id_ AND spo.group_type_='VIP'
+        WHERE spo.type_ != 'OTHER' AND spo.music_group_id_ IS NOT NULL
+        AND spo.user_id_ = #{userId} AND spo.status_='SUCCESS' AND cgsm.status_ != 'QUIT'
+        AND IF(spo.group_type_ = 'VIP', (vg.status_ = 4 OR vg.status_ = 3),0)=0
+        <include refid="global.limit"/>
+    </select>
     <select id="countExistRepeatInDateZone" resultType="int">
         SELECT
           COUNT(csts.course_schedule_id_)

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

@@ -166,7 +166,7 @@
 				AND FIND_IN_SET(organ_id_,#{organId})
 			</if>
 			<if test="musicGroupName != null and musicGroupName != ''">
-				AND name_ LIKE CONCAT('%',#{musicGroupName},'%')
+				AND (name_ LIKE CONCAT('%',#{musicGroupName},'%') or id_ like CONCAT('%',#{musicGroupName},'%'))
 			</if>
 			<if test="chargeTypeId != null">
 				AND charge_type_id_ = #{chargeTypeId}

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

@@ -142,7 +142,7 @@
         <where>
             (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)
             <if test="teacherId != null">
-                and ta.teacher_id_ = #{teacherId}
+                and cs.actual_teacher_id_ = #{teacherId}
             </if>
             <if test="courseStartDate != null">
                 and cs.class_date_ &gt;= #{courseStartDate}
@@ -178,16 +178,15 @@
             IF(ta.sign_out_status_ IS NULL,3,ta.sign_out_status_) sign_out_status_,
             ta.remark_
         FROM
-            teacher_attendance ta
-        LEFT JOIN course_schedule cs ON ta.course_schedule_id_=cs.id_
+            course_schedule cs left join teacher_attendance ta  ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
         ORDER BY cs.class_date_ DESC,cs.start_class_time_ DESC
         <include refid="global.limit"/>
     </select>
 
     <select id="getTeacherPersonalAttendancesCount" resultType="int">
-        SELECT count(ta.id_) FROM teacher_attendance ta
-        LEFT JOIN course_schedule cs ON ta.course_schedule_id_=cs.id_
+        SELECT count(cs.id_) FROM course_schedule cs left join teacher_attendance ta
+        ON ta.course_schedule_id_=cs.id_
         <include refid="queryCondition"/>
     </select>
 

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

@@ -2,13 +2,12 @@ package com.ym.mec.student.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.UserMusicGroupQueryInfo;
 import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -27,7 +26,7 @@ public class CourseController extends BaseController {
 
     @ApiOperation("获取学生所购买课程列表")
     @GetMapping(value = "/queryUserMusicGroups")
-    public Object queryCoursePage(QueryInfo queryInfo){
+    public Object queryCoursePage(UserMusicGroupQueryInfo queryInfo){
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         if(sysUser == null){
             return failed("获取用户信息失败");

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

@@ -10,10 +10,8 @@ import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.biz.service.VipGroupCategoryService;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
-
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
@@ -75,6 +73,17 @@ public class StudentVipGroupController extends BaseController {
         return succeed(vipGroupService.getVipGroupShowDetail(vipGroupId));
     }
 
+    @ApiOperation(value = "检测vip课成能否购买")
+    @GetMapping(value = "/enableBuyGroup")
+    public Object enableBuyGroup(Integer vipGroupId){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (null == sysUser) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        vipGroupService.enableBuyVipGroup(vipGroupId);
+        return succeed();
+    }
+
     @ApiOperation(value = "vip课购买")
     @PostMapping("/buyVipGroup")
     public Object buyVipGroup(VipGroupBuyParamsDto vipGroupBuyParams) throws Exception {

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupStudentController.java

@@ -57,7 +57,7 @@ public class ClassGroupStudentController extends BaseController {
     }
 
 
-    @ApiOperation(value = "添加学生(小班课,单技班通用)")
+    @ApiOperation(value = "添加学生(通用)")
     @PostMapping("/addStudents")
     @PreAuthorize("@pcs.hasPermissions('classGroupStudent/addStudents')")
     @ApiImplicitParams({