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

1、增加课表获取接口
2、调整小课申请教师部门判断

Joburgess 5 лет назад
Родитель
Сommit
6be3c39c9a

+ 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;
+    }
 }

+ 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;
+    }
 }

+ 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;
     }
 }

+ 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());

+ 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>