Просмотр исходного кода

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

zouxuan 5 лет назад
Родитель
Сommit
89cefee7df
23 измененных файлов с 356 добавлено и 85 удалено
  1. 10 11
      mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java
  2. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java
  3. 9 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dao/GroupDao.java
  4. 10 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java
  5. 20 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SuperClassGroupDto.java
  6. 7 9
      mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Group.java
  7. 35 0
      mec-biz/src/main/java/com/ym/mec/biz/dal/page/EndCourseScheduleQueryInfo.java
  8. 10 4
      mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java
  9. 5 0
      mec-biz/src/main/java/com/ym/mec/biz/service/SysConfigService.java
  10. 42 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java
  11. 28 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java
  12. 2 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java
  13. 9 2
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentAttendanceServiceImpl.java
  14. 1 1
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java
  15. 4 4
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java
  16. 45 1
      mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml
  17. 17 1
      mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml
  18. 25 2
      mec-biz/src/main/resources/config/mybatis/GroupMapper.xml
  19. 1 1
      mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java
  20. 18 13
      mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java
  21. 32 18
      mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java
  22. 8 1
      mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java
  23. 8 7
      mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

+ 10 - 11
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/service/impl/SysUserServiceImpl.java

@@ -1,14 +1,5 @@
 package com.ym.mec.auth.service.impl;
 
-import java.util.Date;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Service;
-
 import com.ym.mec.auth.api.dto.SysUserInfo;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.auth.api.enums.SysUserType;
@@ -24,8 +15,16 @@ import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.im.UserFeignService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Date;
+import java.util.List;
+
 @Service
 public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implements SysUserService {
 
@@ -149,7 +148,7 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 	@Transactional(rollbackFor = Exception.class)
 	public SysUserInfo initUser(String phone, String clientId,String isRegister) {
 		if("register".equals(isRegister)){
-			return null;
+			throw new UsernameNotFoundException("404.9");
 		}
 		if(autoRegister){
 			if(StringUtils.equalsIgnoreCase(clientId,"STUDENT")){
@@ -196,4 +195,4 @@ public class SysUserServiceImpl extends BaseServiceImpl<Integer, SysUser> implem
 		throw new UsernameNotFoundException("404.9");
 	}
 
-}
+}

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

@@ -549,4 +549,14 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     ClassGroup findByGroupAndType(@Param("groupId") String groupId,
                                   @Param("groupType") String groupType);
+
+    /**
+     * @describe 终极班级查询
+     * @author Joburgess
+     * @date 2019/12/30
+     * @param params: 查询条件
+     * @return java.util.List<com.ym.mec.biz.dal.dto.SuperClassGroupDtio>
+     */
+    List<SuperClassGroupDto> superFindClassGroups(Map<String, Object> params);
+    int superCountClassGroups(Map<String, Object> params);
 }

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

@@ -20,4 +20,13 @@ public interface GroupDao {
      */
     List<Group> searchGroups(@Param("search") String search);
 
+    /**
+     * @describe 根据团体编号获取团体
+     * @author Joburgess
+     * @date 2019/12/30
+     * @param groups: 团体列表
+     * @return java.util.List<com.ym.mec.biz.dal.entity.Group>
+     */
+    List<Group> findByGroupIds(@Param("groups") List<Group> groups);
+
 }

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/CourseScheduleEndDto.java

@@ -7,4 +7,14 @@ import com.ym.mec.biz.dal.entity.CourseSchedule;
  * @Date 2019/12/27
  */
 public class CourseScheduleEndDto extends CourseSchedule {
+
+    private String groupName;
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
 }

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

@@ -0,0 +1,20 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.ClassGroup;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/12/30
+ */
+public class SuperClassGroupDto extends ClassGroup {
+
+    private String groupName;
+
+    public String getGroupName() {
+        return groupName;
+    }
+
+    public void setGroupName(String groupName) {
+        this.groupName = groupName;
+    }
+}

+ 7 - 9
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Group.java

@@ -17,8 +17,13 @@ public class Group {
     @ApiModelProperty(value = "类型")
     private GroupType groupType;
 
-    @ApiModelProperty(value = "班级编号")
-    private Integer classGroupId;
+    public Group() {
+    }
+
+    public Group(String id, GroupType groupType) {
+        this.id = id;
+        this.groupType = groupType;
+    }
 
     public String getId() {
         return id;
@@ -44,11 +49,4 @@ public class Group {
         this.groupType = groupType;
     }
 
-    public Integer getClassGroupId() {
-        return classGroupId;
-    }
-
-    public void setClassGroupId(Integer classGroupId) {
-        this.classGroupId = classGroupId;
-    }
 }

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

@@ -1,10 +1,45 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 /**
  * @Author Joburgess
  * @Date 2019/12/27
  */
 public class EndCourseScheduleQueryInfo extends QueryInfo {
+
+    @ApiModelProperty(value = "团体类型")
+    private GroupType groupType;
+
+    @ApiModelProperty(value = "团体编号")
+    private String groupId;
+
+    @ApiModelProperty(value = "班级编号")
+    private Integer classGroupId;
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public Integer getClassGroupId() {
+        return classGroupId;
+    }
+
+    public void setClassGroupId(Integer classGroupId) {
+        this.classGroupId = classGroupId;
+    }
 }

+ 10 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupService.java

@@ -5,10 +5,7 @@ import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
-import com.ym.mec.biz.dal.page.VipClassQueryInfo;
-import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.entity.ImUserModel;
 import com.ym.mec.common.page.PageInfo;
@@ -373,4 +370,13 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      */
     boolean delClassNoStartCourse(Integer classGroupId);
 
+    /**
+     * @describe 终极班级信息获取
+     * @author Joburgess
+     * @date 2019/12/30
+     * @param queryInfo: 查询条件
+     * @return com.ym.mec.common.page.PageInfo
+     */
+    PageInfo endFindClassGroups(EndCourseScheduleQueryInfo queryInfo);
+
 }

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

@@ -80,6 +80,11 @@ public interface SysConfigService extends BaseService<Long, SysConfig> {
      * 可更新学生签到状态时间限制,课程结束后{}分钟
      */
     String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE = "enable_student_attendance_time_range";
+
+    /**
+     * vip课程可更新学生签到状态时间限制,课程结束后{}分钟
+     */
+    String ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP = "enable_student_attendance_time_range_vip";
     
     /**
      * 十分钟内最大可发送的短信次数

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

@@ -7,10 +7,7 @@ import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.*;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
-import com.ym.mec.biz.dal.page.CourseScheduleQueryInfo;
-import com.ym.mec.biz.dal.page.StudentPayLogQueryInfo;
-import com.ym.mec.biz.dal.page.VipClassQueryInfo;
-import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
+import com.ym.mec.biz.dal.page.*;
 import com.ym.mec.biz.service.*;
 import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
@@ -106,6 +103,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     private SysConfigDao sysConfigDao;
     @Autowired
     private SubjectDao subjectDao;
+    @Autowired
+    private GroupDao groupDao;
 
     @Override
     public BaseDAO<Integer, ClassGroup> getDAO() {
@@ -2201,4 +2200,43 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
         return true;
     }
+
+    @Override
+    public PageInfo endFindClassGroups(EndCourseScheduleQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        if(StringUtils.isNotBlank(queryInfo.getSearch())){
+            List<Group> groups = groupDao.searchGroups(queryInfo.getSearch());
+            if(!CollectionUtils.isEmpty(groups)){
+                params.put("groups", groups);
+            }
+        }
+
+        List<SuperClassGroupDto> results = new ArrayList<>();
+        int count = classGroupDao.superCountClassGroups(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            results = classGroupDao.superFindClassGroups(params);
+            List<Group> groups=new ArrayList<>();
+            groups.add(null);
+            for (SuperClassGroupDto result : results) {
+                Group group=new Group(result.getMusicGroupId(),result.getGroupType());
+                groups.add(group);
+            }
+            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());
+                }
+            });
+        }
+        pageInfo.setRows(results);
+        return pageInfo;
+    }
 }

+ 28 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -92,6 +92,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
     private MusicGroupService musicGroupService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private GroupDao groupDao;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -1278,8 +1280,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         classStartDateAdjust(newCourseSchedules);
     }
 
-    @Transactional(rollbackFor = Exception.class)
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void classStartDateAdjust(List<CourseSchedule> newCourseSchedules) {
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         List<Long> newCourseScheduleIds = newCourseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
@@ -2086,14 +2088,36 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         Map<String, Object> params = new HashMap<>();
         MapUtil.populateMap(params, queryInfo);
 
-        List<CourseScheduleEndDto> result = new ArrayList<>();
+        if(StringUtils.isNotBlank(queryInfo.getSearch())){
+            List<Group> groups = groupDao.searchGroups(queryInfo.getSearch());
+            if(!CollectionUtils.isEmpty(groups)){
+                params.put("groups", groups);
+            }
+        }
+
+        List<CourseScheduleEndDto> results = new ArrayList<>();
         int count = courseScheduleDao.endCountCourseSchedules(params);
         if (count > 0) {
             pageInfo.setTotal(count);
             params.put("offset", pageInfo.getOffset());
-            result = courseScheduleDao.endFindCourseSchedules(params);
+            results = courseScheduleDao.endFindCourseSchedules(params);
+            List<Group> groups=new ArrayList<>();
+            groups.add(null);
+            for (CourseScheduleEndDto courseScheduleEndDto : results) {
+                Group group=new Group(courseScheduleEndDto.getMusicGroupId(),courseScheduleEndDto.getGroupType());
+                groups.add(group);
+            }
+            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());
+                }
+            });
         }
-        pageInfo.setRows(result);
+        pageInfo.setRows(results);
         return pageInfo;
     }
 }

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

@@ -1437,10 +1437,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
             throw new BizException("个人信息不存在");
         }
         //判断是否是续费
-		List<StudentPaymentOrder> orderList = studentPaymentOrderDao.queryByCondition(GroupType.MUSIC, musicGroupId, userId, DealStatusEnum.SUCCESS);
+		/*List<StudentPaymentOrder> orderList = studentPaymentOrderDao.queryByCondition(GroupType.MUSIC, musicGroupId, userId, DealStatusEnum.SUCCESS);
 		if (orderList == null || orderList.size() == 0) {
 			throw new BizException("请走报名缴费流程");
-		}
+		}*/
         
         // 判断当前是否是续费状态
         if (musicGroupStudentFee.getPaymentStatus() != PaymentStatus.NON_PAYMENT) {

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

@@ -84,10 +84,17 @@ public class StudentAttendanceServiceImpl extends BaseServiceImpl<Long, StudentA
 			throw new BizException("请指定课程");
 		}
 		Date date = new Date();
-		SysConfig attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
+		SysConfig attendanceTimeRange;
+		if(courseSchedule.getGroupType().equals(GroupType.MUSIC)){
+			attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE);
+		}else{
+			attendanceTimeRange = sysConfigService.findByParamName(SysConfigService.ENABLE_STUDENT_ATTENDANCE_TIME_RANGE_VIP);
+		}
 		int courseEndTime = DateUtil.minutesBetween(courseSchedule.getEndClassTime(), date);
 		if(date.after(courseSchedule.getEndClassTime())&&courseEndTime>attendanceTimeRange.getParanValue(Integer.class)){
-			throw new BizException("课程结束一小时后禁止点名");
+			throw new BizException("{}课结束{}分钟后禁止点名",
+					courseSchedule.getGroupType().equals(GroupType.MUSIC)?"乐团":"VIP",
+					attendanceTimeRange.getParanValue(Integer.class));
 		}
 		studentAttendanceDao.deleteStudentAttendancesByCourse(courseScheduleId);
 		int classTimes=courseScheduleDao.countClassTimes(courseSchedule.getClassGroupId().longValue(),courseSchedule.getStartClassTime());

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

@@ -399,7 +399,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 				teacher.setFlowOrganRange(StringUtils.join(organNames,","));
 			}
 			if(StringUtils.isNotEmpty(teacher.getOrganId())){
-				teacher.setOrganName(organizationDao.get(Integer.parseInt(teacher.getOrganId())).getName());
+				teacher.setOrganName(organizationDao.get(teacher.getTeacherOrganId()).getName());
 			}
 			//专业技能
 			if(StringUtils.isNotEmpty(teacher.getSubjectId())){

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

@@ -271,10 +271,10 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}else{
 			vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.APPLYING);
 		}
-        Teacher teacher = teacherService.get(sysUser.getId());
-		if(teacher.getOrganId().indexOf(",")!=-1){
-		    throw new BizException("教师部门异常");
-        }
+//        Teacher teacher = teacherService.get(sysUser.getId());
+//		if(teacher.getOrganId().indexOf(",")!=-1){
+//		    throw new BizException("教师部门异常");
+//        }
 //        vipGroupApplyBaseInfoDto.setOrganId(Integer.parseInt(teacher.getOrganId()));
 		//开课时间为排课的第一节课的开始时间
 		vipGroupApplyBaseInfoDto.setCourseStartDate(firstCourseSchedule.getStartClassTime());

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

@@ -470,7 +470,7 @@
             LEFT JOIN course_schedule cs ON cg.id_=cs.class_group_id_
             LEFT JOIN school s ON vg.teacher_school_id_ = s.id_
         WHERE
-            vg.user_id_ = #{teacherId} AND vg.status_ = 2
+            vg.user_id_ = #{teacherId} AND (vg.status_ = 2 OR vg.status_ = 5)
         GROUP BY
         vg.id_,cg.id_
     </select>
@@ -920,4 +920,48 @@
       where id_=1
     </update>
 
+    <resultMap id="SuperClassGroupInfo" type="com.ym.mec.biz.dal.dto.SuperClassGroupDto" extends="ClassGroup">
+
+    </resultMap>
+
+    <sql id="superFindClassGroupsCondition">
+        <where>
+            <if test="search != null">
+                AND (cg.name_ LIKE CONCAT('%',#{search},'%') OR cg.id_ = #{search}
+                <if test="groups != null">
+                    OR cg.music_group_id_ IN
+                    <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                        #{group.id}
+                    </foreach>
+                </if>
+                )
+            </if>
+            <if test="groupType != null">
+                AND cg.group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="groupId != null">
+                AND cg.music_group_id_=#{groupId}
+            </if>
+            <if test="classGroupId != null">
+                AND cg.id_=#{classGroupId}
+            </if>
+        </where>
+    </sql>
+    <select id="superFindClassGroups" resultMap="SuperClassGroupInfo">
+        SELECT
+            *
+        FROM
+          class_group cg
+            <include refid="superFindClassGroupsCondition"/>
+            ORDER BY cg.create_time_ DESC
+        <include refid="global.limit"/>
+    </select>
+    <select id="superCountClassGroups" resultType="int">
+        SELECT
+          COUNT(id_)
+        FROM
+            class_group cg
+            <include refid="superFindClassGroupsCondition"/>
+    </select>
+
 </mapper>

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

@@ -1854,7 +1854,23 @@
     <sql id="endFindCourseSchedulesCondition">
         <where>
             <if test="search != null">
-                AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_ = #{search})
+                AND (cs.name_ LIKE CONCAT('%',#{search},'%') OR cs.id_ = #{search}
+                  <if test="groups != null">
+                      OR cs.music_group_id_ IN
+                      <foreach collection="groups" item="group" open="(" close=")" separator=",">
+                          #{group.id}
+                      </foreach>
+                  </if>
+                )
+            </if>
+            <if test="groupType != null">
+                AND cs.group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="groupId != null">
+                AND cs.music_group_id_=#{groupId}
+            </if>
+            <if test="classGroupId != null">
+                AND cs.class_group_id_=#{classGroupId}
             </if>
         </where>
     </sql>

+ 25 - 2
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -10,11 +10,34 @@
         <result column="id_" property="id"/>
         <result column="group_name_" property="groupName"/>
         <result column="group_type_" property="groupType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
-        <result column="class_group_id_" property="classGroupId"/>
     </resultMap>
 
     <select id="searchGroups" resultMap="Group">
-
+        ( SELECT id_, name_ group_name_, 'MUSIC' group_type_ FROM music_group WHERE id_ = #{search} OR name_ LIKE CONCAT( '%', #{search}, '%' ) ) UNION
+        ( SELECT id_, name_ group_name_, 'VIP' group_type_ FROM vip_group WHERE id_ = #{search} OR name_ LIKE CONCAT( '%', #{search}, '%' ) );
+    </select>
+    <select id="findByGroupIds" resultMap="Group">
+      ( SELECT id_, name_ group_name_, 'MUSIC' group_type_ FROM music_group WHERE id_ IN
+        <foreach collection="groups" item="group" open="(" close=")" separator=",">
+            <if test="group != null and group.groupType == @com.ym.mec.biz.dal.enums.GroupType@MUSIC">
+                #{group.id}
+            </if>
+            <if test="group == null">
+                #{group}
+            </if>
+        </foreach>
+      )
+      UNION
+      ( SELECT id_, name_ group_name_, 'VIP' group_type_ FROM vip_group WHERE id_ IN
+        <foreach collection="groups" item="group" open="(" close=")" separator=",">
+            <if test="group != null and group.groupType == @com.ym.mec.biz.dal.enums.GroupType@VIP">
+                #{group.id}
+            </if>
+            <if test="group == null">
+                #{group}
+            </if>
+        </foreach>
+      );
     </select>
 
 </mapper>

+ 1 - 1
mec-student/src/main/java/com/ym/mec/student/config/ResourceServerConfig.java

@@ -27,7 +27,7 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
 		http.csrf().disable().exceptionHandling().accessDeniedHandler(baseAccessDeniedHandler).authenticationEntryPoint(baseAuthenticationEntryPoint).and()
 				.authorizeRequests().antMatchers("/v2/api-docs","/code/*","/register/*","/studentOrder/*","/musicGroup/getSubjectGoodsAndInfo",
 				"/musicGroup/getMusicGroupStatus","/musicGroup/getOrderStatus",
-				"/musicGroup/pay","/musicGroup/rePay","/studentManage/queryStudentPer","/sporadicChargeInfo/get").permitAll().anyRequest().authenticated().and().httpBasic();
+				"/musicGroup/pay","/musicGroup/rePay","/studentManage/queryStudentPer","/sporadicChargeInfo/get","/sporadicChargeInfo/sporadicPay").permitAll().anyRequest().authenticated().and().httpBasic();
 	}
 
 	@Override

+ 18 - 13
mec-student/src/main/java/com/ym/mec/student/controller/SporadicChargeInfoController.java

@@ -39,14 +39,17 @@ public class SporadicChargeInfoController extends BaseController {
 
 	@ApiOperation(value = "单查询")
 	@GetMapping("/get")
-	public Object get(Integer id) {
-//		SysUser sysUser = sysUserFeignService.queryUserInfo();
-//		if (sysUser == null) {
-//			return failed("用户不存在");
-//		}
+	public Object get(Integer id,Integer userId) {
+		if(userId == null){
+			SysUser sysUser = sysUserFeignService.queryUserInfo();
+			if (sysUser == null || sysUser.getId() == null) {
+				return failed("用户不存在");
+			}
+			userId = sysUser.getId();
+		}
 		SporadicChargeInfo chargeInfo = sporadicChargeInfoService.get(id);
 		if(chargeInfo != null){
-			SysUserCashAccount locked = sysUserCashAccountDao.getLocked(chargeInfo.getUserId());
+			SysUserCashAccount locked = sysUserCashAccountDao.getLocked(userId);
 			chargeInfo.setBalance(locked.getBalance());
 		}else {
 			throw new BizException("信息不存在");
@@ -58,19 +61,21 @@ public class SporadicChargeInfoController extends BaseController {
 	@ApiOperation(value = "零星支付")
 	@PostMapping("/sporadicPay")
 	public HttpResponseResult sporadicPay(@RequestBody SporadicPayDto sporadicPayDto) throws Exception {
-		SysUser sysUser = sysUserFeignService.queryUserInfo();
-		if (sysUser == null) {
-			return failed("用户不存在");
-		}
 		if(sporadicPayDto == null ||
 				sporadicPayDto.getSporadicId() == null ||
 				sporadicPayDto.getAmount() == null){
 			throw new BizException("参数校验失败");
 		}
-		if(sysUser.getUserType() != SysUserType.STUDENT){
-			return failed("用户信息异常");
+		if(sporadicPayDto.getUserId() == null){
+			SysUser sysUser = sysUserFeignService.queryUserInfo();
+			if (sysUser == null || sysUser.getId() == null) {
+				return failed("用户不存在");
+			}
+			if(sysUser.getUserType() != SysUserType.STUDENT){
+				return failed("用户信息异常");
+			}
+			sporadicPayDto.setUserId(sysUser.getId());
 		}
-		sporadicPayDto.setUserId(sysUser.getId());
 		Integer ingOrder = studentPaymentOrderService.findOrderByGroupType(sporadicPayDto.getUserId(),sporadicPayDto.getSporadicId(),"SPORADIC", DealStatusEnum.ING);
 		if (ingOrder != null && ingOrder > 0){
 			return failed("您有支付中的订单");

+ 32 - 18
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -1,5 +1,31 @@
 package com.ym.mec.student.controller;
 
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+
+import java.math.BigDecimal;
+import java.net.URLEncoder;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
 import com.alibaba.fastjson.JSON;
 import com.huifu.adapay.model.payment.PayChannelEnum;
 import com.huifu.adapay.model.payment.Payment;
@@ -10,8 +36,11 @@ import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
 import com.ym.mec.biz.dal.enums.DealStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
-import com.ym.mec.biz.service.*;
+import com.ym.mec.biz.service.MusicGroupService;
+import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
+import com.ym.mec.biz.service.StudentPaymentOrderService;
+import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.thirdparty.adapay.NotifyEvent;
@@ -21,21 +50,6 @@ import com.ym.mec.thirdparty.yqpay.RsqMsg;
 import com.ym.mec.thirdparty.yqpay.YqPayFeignService;
 import com.ym.mec.thirdparty.yqpay.YqPayUtil;
 import com.ym.mec.util.http.HttpUtil;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiImplicitParam;
-import io.swagger.annotations.ApiImplicitParams;
-import io.swagger.annotations.ApiOperation;
-import org.apache.commons.lang.StringUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.web.bind.annotation.*;
-
-import java.math.BigDecimal;
-import java.net.URLEncoder;
-import java.util.*;
-import java.util.stream.Collectors;
 
 @RequestMapping("studentOrder")
 @Api(tags = "订单回调")
@@ -90,7 +104,7 @@ public class StudentOrderController extends BaseController {
 
 
     @ApiOperation(value = "查询订单状态")
-    @GetMapping("/checkOrderStatus")
+    @PostMapping("/checkOrderStatus")
     public Object checkOrderStatus(String orderNo) {
         if (StringUtils.isBlank(orderNo)) {
             return failed("请指定订单");

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

@@ -7,10 +7,10 @@ import com.ym.mec.biz.dal.dto.HighClassGroupDto;
 import com.ym.mec.biz.dal.dto.TestDto;
 import com.ym.mec.biz.dal.entity.ClassGroup;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.SalarySettlementTypeEnum;
+import com.ym.mec.biz.dal.page.EndCourseScheduleQueryInfo;
 import com.ym.mec.biz.dal.page.queryMusicGroupCourseScheduleQueryInfo;
 import com.ym.mec.biz.service.ClassGroupService;
 import com.ym.mec.biz.service.ClassGroupTeacherMapperService;
@@ -294,4 +294,11 @@ public class ClassGroupController extends BaseController {
     public HttpResponseResult delClassNoStartCourse(Integer classGroupId) throws Exception {
         return succeed(classGroupService.delClassNoStartCourse(classGroupId));
     }
+
+    @ApiOperation(value = "终极班级信息获取")
+    @GetMapping("/superFindClassGroups")
+    @PreAuthorize("@pcs.hasPermissions('classGroup/superFindClassGroups')")
+    public HttpResponseResult superFindClassGroups(EndCourseScheduleQueryInfo queryInfo){
+        return succeed(classGroupService.endFindClassGroups(queryInfo));
+    }
 }

+ 8 - 7
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -279,10 +279,12 @@ public class ExportController extends BaseController {
         PageInfo<MusicGroupStudentsDto> musicGroupStudentsDtoPageInfo = studentManageService.queryMusicGroupStudent(queryInfo);
         try {
             for (MusicGroupStudentsDto row : musicGroupStudentsDtoPageInfo.getRows()) {
-                if (row.getGender().equals("1")) {
-                    row.setGender("男");
-                } else {
-                    row.setGender("女");
+                if (row.getGender() != null) {
+                    if (row.getGender().equals("1")) {
+                        row.setGender("男");
+                    } else {
+                        row.setGender("女");
+                    }
                 }
                 if (row.getPaymentStatus() != null) {
                     if (row.getPaymentStatus().equals("PAID_COMPLETED")) {
@@ -311,11 +313,10 @@ public class ExportController extends BaseController {
                 if (row.getNextPaymentDate() != null) {
                     row.setNextPaymentDateStr(DateUtil.format(row.getNextPaymentDate(), DateUtil.DEFAULT_PATTERN));
                 }
-                row.setCurrentGrade(row.getCurrentGrade() + row.getCurrentClass());
             }
-            String[] header = {"学员编号", "学员姓名", "性别", "联系电话", "年级班级", "专业", "学员状态", "新增学员", "缴费金额",
+            String[] header = {"学员编号", "学员姓名", "性别", "联系电话", "年级", "班级", "专业", "学员状态", "新增学员", "缴费金额",
                     "下次缴费日期", "报名缴费", "是否激活"};
-            String[] body = {"userId", "realName", "gender", "phone", "currentGrade", "subjectName", "studentStatus", "isNewStudentStr",
+            String[] body = {"userId", "realName", "gender", "phone", "currentGrade", "currentClass", "subjectName", "studentStatus", "isNewStudentStr",
                     "courseFee", "nextPaymentDateStr", "paymentStatus", "activeName"};
             HSSFWorkbook workbook = POIUtil.exportExcel(header, body, musicGroupStudentsDtoPageInfo.getRows());
             response.setContentType("application/octet-stream");