Ver Fonte

Merge remote-tracking branch 'origin/master'

Joburgess há 4 anos atrás
pai
commit
300ec7ceb4

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

@@ -792,4 +792,18 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @return
      */
     Integer getMusicGroupHighClassNumBySubject(@Param("musicGroupId") String musicGroupId, @Param("subjectIds") String subjectIds, @Param("type") ClassGroupTypeEnum type);
+
+    /**
+     * count班级数量
+     * @param params
+     * @return
+     */
+    int countClassGroup(Map<String, Object> params);
+
+    /**
+     * 获取班级列表
+     * @param params
+     * @return
+     */
+    List<ClassGroupTeachersDto> queryClassGroupPage(Map<String, Object> params);
 }

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/ClassGroupQueryInfo.java

@@ -22,9 +22,20 @@ public class ClassGroupQueryInfo extends QueryInfo {
     
     @ApiModelProperty(value = "班级名称", required = false)
     private String name;
+
+    @ApiModelProperty(value = "分部", required = false)
+    private String organIdList;
     
     private Integer delFlag;
 
+	public String getOrganIdList() {
+		return organIdList;
+	}
+
+	public void setOrganIdList(String organIdList) {
+		this.organIdList = organIdList;
+	}
+
 	public Integer getId() {
 		return id;
 	}

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

@@ -377,7 +377,7 @@ public interface ClassGroupService extends BaseService<Integer, ClassGroup> {
      * @param queryInfo
      * @return
      */
-    List<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo);
+    PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo);
 
     /**
      * 添加IM群组

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

@@ -2919,8 +2919,50 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     }
 
     @Override
-    public List<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
-        return null;
+    public PageInfo<ClassGroupTeachersDto> queryClassGroupPage(ClassGroupQueryInfo queryInfo) {
+        PageInfo<ClassGroupTeachersDto> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<String, Object>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<ClassGroupTeachersDto> dataList = null;
+        int count = classGroupDao.countClassGroup(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = classGroupDao.queryClassGroupPage(params);
+            String classGroupIds = dataList.stream().map(classGroup -> classGroup.getId().toString()).collect(Collectors.joining(","));
+            List<Integer> classGroupSet = dataList.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
+
+            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperDao.findClassGroupTeachers(classGroupIds);
+            Map<Integer, Integer> studyNums = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countStudyNum(classGroupIds))), HashMap.class);
+
+            Map<Integer, Long> totalNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalNumByClassGroupId(classGroupSet, null));
+            Map<Integer, Long> currentNumMap = MapUtil.convertIntegerMap(courseScheduleDao.countExpendNumByClassGroupId(classGroupSet));
+            for (ClassGroupTeachersDto classGroup : dataList) {
+                List<ClassGroupTeacherMapper> classGroupTeacherMappers = new ArrayList<>();
+                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+                    if (!classGroup.getId().equals(classGroupTeacher.getClassGroupId())) continue;
+                    classGroupTeacherMappers.add(classGroupTeacher);
+                }
+                classGroup.setClassGroupTeacherMapperList(classGroupTeacherMappers);
+                classGroup.setStudentNum(studyNums.get(classGroup.getId()));
+                int totalClassTimes = 0;
+                int currentClassTimes = 0;
+                if (totalNumMap.containsKey(classGroup.getId())) {
+                    totalClassTimes = totalNumMap.get(classGroup.getId()).intValue();
+                }
+                if (currentNumMap.containsKey(classGroup.getId())) {
+                    currentClassTimes = currentNumMap.get(classGroup.getId()).intValue();
+                }
+                classGroup.setTotalClassTimes(totalClassTimes);
+                classGroup.setCurrentClassTimes(currentClassTimes);
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
     }
 
     @Override

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

@@ -282,6 +282,7 @@
     <resultMap type="com.ym.mec.biz.dal.dto.ClassGroupTeachersDto" id="ClassGroupTeachers">
         <result column="id_" property="id"/>
         <result column="music_group_id_" property="musicGroupId"/>
+        <result column="music_group_name_" property="musicGroupName"/>
         <result column="subject_id_list_" property="subjectIdList"/>
         <result column="memo_" property="memo"/>
         <result column="name_" property="name"/>
@@ -1402,4 +1403,31 @@
         AND type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND del_flag_ = '0'
         AND INTE_ARRAY(subject_id_list_,#{subjectIds})
     </select>
+
+    <sql id="queryClassGroupPageSql">
+        <where>
+            cg.group_type_ = 'MUSIC' AND cg.del_flag_ = 0
+            <if test="type != null">
+                AND type_ = #{type,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+            </if>
+            <if test="organIdList != null and organIdList != ''">
+                AND FIND_IN_SET(mg.organ_id_,#{organIdList})
+            </if>
+            <if test="search != null and search != ''">
+                AND (mg.name_ LIKE CONCAT('%',#{search},'%') OR cg.music_group_id_ LIKE CONCAT('%',#{search},'%'))
+            </if>
+        </where>
+    </sql>
+    <select id="countClassGroup" resultType="int">
+        SELECT COUNT(cg.id_) FROM class_group cg
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+        <include refid="queryClassGroupPageSql"/>
+    </select>
+    <select id="queryClassGroupPage" resultMap="ClassGroupTeachers">
+        SELECT cg.*,mg.name_ music_group_name_ FROM class_group cg
+        LEFT JOIN music_group mg ON mg.id_ = cg.music_group_id_
+        <include refid="queryClassGroupPageSql"/>
+        ORDER BY cg.id_ DESC
+        <include refid="global.limit"/>
+    </select>
 </mapper>

+ 22 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupController.java

@@ -1,6 +1,8 @@
 package com.ym.mec.web.controller;
 
+import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -8,6 +10,7 @@ import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 
@@ -50,6 +53,8 @@ public class ClassGroupController extends BaseController {
     private ClassGroupTeacherMapperService classGroupTeacherMapperService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
 
     @ApiOperation(value = "分页查询班级列表")
     @GetMapping("/queryPage")
@@ -284,6 +289,23 @@ public class ClassGroupController extends BaseController {
     @GetMapping("/queryClassGroupPage")
     @PreAuthorize("@pcs.hasPermissions('classGroup/queryClassGroupPage')")
     public HttpResponseResult queryClassGroupPage(ClassGroupQueryInfo queryInfo) throws Exception {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (org.apache.commons.lang3.StringUtils.isEmpty(queryInfo.getOrganIdList())) {
+                queryInfo.setOrganIdList(employee.getOrganIdList());
+            }else if(org.apache.commons.lang3.StringUtils.isEmpty(employee.getOrganIdList())){
+                return failed("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganIdList().split(",")))){
+                    return failed("非法请求");
+                }
+            }
+        }
         return succeed(classGroupService.queryClassGroupPage(queryInfo));
     }
 

BIN
mec-web/src/main/resources/excelTemplate/财务支出导入模板.xls