zouxuan 5 年之前
父节点
当前提交
43fb5f88dd

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

@@ -1096,4 +1096,13 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      * @return
      */
     Integer getSingleClassMinutes(@Param("courseScheduleId") Long courseScheduleId);
+
+    /**
+     * @param groupIds: 课程组编号列表
+     * @return java.util.List<java.util.Map < java.lang.Long, java.lang.Integer>>
+     * @describe 统计课程组已上课程数量
+     * @author Joburgess
+     * @date 2019/10/21
+     */
+    List<Map<Long, Integer>> countGroupOverCourse(@Param("groupIds") List<String> groupIds,@Param("groupType")String groupType);
 }

+ 24 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -1,10 +1,13 @@
 package com.ym.mec.biz.dal.dao;
 
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.entity.VipGroup;
 import org.apache.ibatis.annotations.Param;
 
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, PracticeGroup> {
 
@@ -29,5 +32,25 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
      * @return java.util.List<com.ym.mec.biz.dal.entity.PracticeGroup>
      */
     int countUserPracticeApplyRecord(@Param("userId") Integer userId);
-	
+
+    /**
+     * count陪练课列表数量
+     * @param params
+     * @return
+     */
+    int countPracticeGroupByOrgan(Map<String, Object> params);
+
+    /**
+     * 获取陪练课列表
+     * @param params
+     * @return
+     */
+    List<PracticeGroupDto> findAllByOrgan(Map<String, Object> params);
+
+    /**
+     * 获取已上课程数量
+     * @param practiceGroupIds
+     * @return
+     */
+    List<Map<Long, Integer>> countPracticeGroupOverCourse(List<String> practiceGroupIds);
 }

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

@@ -195,15 +195,6 @@ public interface VipGroupDao extends BaseDAO<Long, VipGroup> {
     List<Map<String, Integer>> countSurplusClassTimes(Long vipGroupId);
 
     /**
-     * @param vipGroupIds: vip课编号列表
-     * @return java.util.List<java.util.Map < java.lang.Long, java.lang.Integer>>
-     * @describe 统计vip课已上课程数量
-     * @author Joburgess
-     * @date 2019/10/21
-     */
-    List<Map<Long, Integer>> countVipGroupOverCourse(List<String> vipGroupIds);
-
-    /**
      * @return java.math.BigDecimal
      * @Author: Joburgess
      * @Date: 2019/10/12

+ 98 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/PracticeGroupDto.java

@@ -0,0 +1,98 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.PracticeGroup;
+
+import java.math.BigDecimal;
+
+public class PracticeGroupDto extends PracticeGroup {
+
+    private String teacherName;
+
+    private String subjectName;
+
+    private String organName;
+
+    private BigDecimal onlineClassesUnitPrice = new BigDecimal(0);
+
+    private BigDecimal offlineClassesUnitPrice = new BigDecimal(0);
+
+    private Integer currentClassTimes;
+
+    private Integer totalClassTimes;
+
+    private Integer subClassTimes;
+
+    private Integer studentNum;
+
+    public Integer getSubClassTimes() {
+        return subClassTimes;
+    }
+
+    public void setSubClassTimes(Integer subClassTimes) {
+        this.subClassTimes = subClassTimes;
+    }
+
+    public BigDecimal getOnlineClassesUnitPrice() {
+        return onlineClassesUnitPrice;
+    }
+
+    public void setOnlineClassesUnitPrice(BigDecimal onlineClassesUnitPrice) {
+        this.onlineClassesUnitPrice = onlineClassesUnitPrice;
+    }
+
+    public BigDecimal getOfflineClassesUnitPrice() {
+        return offlineClassesUnitPrice;
+    }
+
+    public void setOfflineClassesUnitPrice(BigDecimal offlineClassesUnitPrice) {
+        this.offlineClassesUnitPrice = offlineClassesUnitPrice;
+    }
+
+    public Integer getCurrentClassTimes() {
+        return currentClassTimes;
+    }
+
+    public void setCurrentClassTimes(Integer currentClassTimes) {
+        this.currentClassTimes = currentClassTimes;
+    }
+
+    public Integer getTotalClassTimes() {
+        return totalClassTimes;
+    }
+
+    public void setTotalClassTimes(Integer totalClassTimes) {
+        this.totalClassTimes = totalClassTimes;
+    }
+
+    public Integer getStudentNum() {
+        return studentNum;
+    }
+
+    public void setStudentNum(Integer studentNum) {
+        this.studentNum = studentNum;
+    }
+
+    public String getOrganName() {
+        return organName;
+    }
+
+    public void setOrganName(String organName) {
+        this.organName = organName;
+    }
+
+    public String getTeacherName() {
+        return teacherName;
+    }
+
+    public void setTeacherName(String teacherName) {
+        this.teacherName = teacherName;
+    }
+
+    public String getSubjectName() {
+        return subjectName;
+    }
+
+    public void setSubjectName(String subjectName) {
+        this.subjectName = subjectName;
+    }
+}

+ 30 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/PracticeGroupQueryInfo.java

@@ -0,0 +1,30 @@
+package com.ym.mec.biz.dal.page;
+
+import com.ym.mec.common.page.QueryInfo;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/10/9
+ */
+public class PracticeGroupQueryInfo extends QueryInfo {
+
+    private String organId;
+
+    private Integer teacherId;
+
+    public Integer getTeacherId() {
+        return teacherId;
+    }
+
+    public void setTeacherId(Integer teacherId) {
+        this.teacherId = teacherId;
+    }
+
+    public String getOrganId() {
+        return organId;
+    }
+
+    public void setOrganId(String organId) {
+        this.organId = organId;
+    }
+}

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

@@ -1,7 +1,10 @@
 package com.ym.mec.biz.service;
 
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.entity.PracticeGroup;
+import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.BaseService;
 
 import java.util.Date;
@@ -73,4 +76,10 @@ public interface PracticeGroupService extends BaseService<Long, PracticeGroup> {
      */
     Map practiceApply(PracticeGroup practiceGroup);
 
+	/**
+	 * 获取陪练课列表
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<PracticeGroupDto> findPracticeGroups(PracticeGroupQueryInfo queryInfo);
 }

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

@@ -455,7 +455,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 //            Map<Integer, String> nameMap = MapUtil.convertMybatisMap(names);
             //计算月度平均消耗值(已上课时 / 消耗月份)
             List<String> vipGroupIds = dataList.stream().map(vipGroup -> String.valueOf(vipGroup.getVipClassId())).collect(Collectors.toList());
-            List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
+            List<Map<Long, Integer>> vipGroupOverCourses = courseScheduleDao.countGroupOverCourse(vipGroupIds,"VIP");
             Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
             dataList.forEach(vipGroup -> {
                 Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getVipClassId());
@@ -899,7 +899,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<Map<Long, Integer>> musicGroupIdAndNumList = musicGroupStudentFeeDao.countContinuosAbsenteeismStudentNum(musicGroupIds);
         Map<Long, Integer> musicGroupIdAndNum = MapUtil.convertIntegerMap(musicGroupIdAndNumList);
 
-        List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(musicGroupIds);
+        List<Map<Long, Integer>> vipGroupOverCourses = courseScheduleDao.countGroupOverCourse(musicGroupIds,"VIP");
         Map<Long, Integer> vipGroupOverCourseMaps = MapUtil.convertIntegerMap(vipGroupOverCourses);
 
 //        List<ClassGroup> byClassGroupIds = classGroupDao.findByClassGroupIds(classGroupIds);

+ 54 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -1,20 +1,25 @@
 package com.ym.mec.biz.service.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.*;
 import com.ym.mec.biz.dal.dto.CourseScheduleDto;
+import com.ym.mec.biz.dal.dto.PracticeGroupDto;
 import com.ym.mec.biz.dal.dto.TeacherBasicDto;
 import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.enums.*;
+import com.ym.mec.biz.dal.page.PracticeGroupQueryInfo;
 import com.ym.mec.biz.service.PracticeGroupService;
 import com.ym.mec.biz.service.SysConfigService;
 import com.ym.mec.biz.service.SysMessageService;
 import com.ym.mec.biz.service.TeacherService;
+import com.ym.mec.common.constant.CommonConstants;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.entity.ImGroupMember;
 import com.ym.mec.common.entity.ImGroupModel;
 import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.im.ImFeignService;
 import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
@@ -37,6 +42,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Autowired
     private PracticeGroupDao practiceGroupDao;
     @Autowired
+    private VipGroupDao vipGroupDao;
+    @Autowired
     private SysConfigService sysConfigService;
     @Autowired
     private SubjectDao subjectDao;
@@ -1099,4 +1106,51 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         return result;
     }
 
+    @Override
+    public PageInfo<PracticeGroupDto> findPracticeGroups(PracticeGroupQueryInfo queryInfo) {
+        PageInfo pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
+        Map<String, Object> params = new HashMap<>();
+        MapUtil.populateMap(params, queryInfo);
+
+        List<PracticeGroupDto> dataList = null;
+        int count = practiceGroupDao.countPracticeGroupByOrgan(params);
+        if (count > 0) {
+            pageInfo.setTotal(count);
+            params.put("offset", pageInfo.getOffset());
+            dataList = practiceGroupDao.findAllByOrgan(params);
+            if(dataList != null && dataList.size() > 0){
+                List<Integer> subjectIds = dataList.stream().map(practiceGroup -> practiceGroup.getSubjectId()).distinct().collect(Collectors.toList());
+                List<String> practiceGroupIds = dataList.stream().map(e -> String.valueOf(e.getId())).distinct().collect(Collectors.toList());
+
+                List<ClassGroup> classGroupsByVipGroups = classGroupDao
+                        .findByMusicGroupsAndType(practiceGroupIds.stream().map(groupId->String.valueOf(groupId)).collect(Collectors.toList()),
+                                GroupType.PRACTICE.getCode());
+                Map<String, ClassGroup> vipGroupClassGroupMap = classGroupsByVipGroups.stream().collect(Collectors.toMap(ClassGroup::getMusicGroupId, classGroup -> classGroup));
+                //当前课时,总课时
+//                List<Map<Long, Integer>> countGroupOverCourse = courseScheduleDao.countGroupOverCourse(practiceGroupIds,GroupType.PRACTICE.getCode());
+                Map<String,Long> totalClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countTotalCourseScheduleNum(practiceGroupIds,GroupType.PRACTICE.getCode()));
+                Map<String,Long> currentClassTimeMap = MapUtil.convertIntegerMap(courseScheduleDao.countCourseScheduleNum(practiceGroupIds,GroupType.PRACTICE.getCode()));
+                //声部名称列表
+                List<Map<Long, String>> subjectNames = subjectDao.findBySubjecIds(StringUtils.join(subjectIds, ","));
+                Map<Long, String> map = MapUtil.convertMybatisMap(subjectNames);
+                dataList.forEach(e -> {
+                    e.setSubjectName(map.get(e.getSubjectId().intValue()));
+                    ClassGroup classGroup = vipGroupClassGroupMap.get(e.getId().toString());
+                    if(Objects.nonNull(classGroup)){
+                        e.setStudentNum(classGroup.getStudentNum());
+                    }
+                    Long aLong = totalClassTimeMap.get(e.getId() + "");
+                    e.setTotalClassTimes(aLong==null?0:aLong.intValue());
+                    Long aLong1 = currentClassTimeMap.get(e.getId() + "");
+                    e.setCurrentClassTimes(aLong1==null?0:aLong1.intValue());
+                });
+            }
+        }
+        if (count == 0) {
+            dataList = new ArrayList<>();
+        }
+        pageInfo.setRows(dataList);
+        return pageInfo;
+    }
+
 }

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

@@ -552,7 +552,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			dataList = vipGroupDao.findAllByOrgan(params);
 			if(dataList != null && dataList.size() > 0){
 				List<String> vipGroupIds = dataList.stream().map(vipGroup -> String.valueOf(vipGroup.getId())).distinct().collect(Collectors.toList());
-				List<Map<Long, Integer>> vipGroupOverCourses = vipGroupDao.countVipGroupOverCourse(vipGroupIds);
+				List<Map<Long, Integer>> vipGroupOverCourses = courseScheduleDao.countGroupOverCourse(vipGroupIds,"VIP");
 				Map<String,Integer> vipGroupOverCourseMaps = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(vipGroupOverCourses)),HashMap.class);
 
 				List<ClassGroup> classGroupsByVipGroups = classGroupDao

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

@@ -2222,4 +2222,19 @@
         UNIX_TIMESTAMP(CONCAT(cs.class_date_,' ',cs.start_class_time_))) / 60) FROM course_schedule cs
         WHERE cs.id_ = #{courseScheduleId}
     </select>
+    <select id="countGroupOverCourse" resultType="java.util.Map">
+        SELECT
+        cs.music_group_id_ AS 'key',
+        COUNT(cs.Id_) AS 'value'
+        FROM
+        course_schedule cs
+        WHERE cs.status_='OVER'
+        AND DATE_FORMAT(cs.class_date_,'%Y-%m')=DATE_FORMAT(NOW(),'%Y-%m')
+        AND cs.group_type_ = #{groupType}
+        AND cs.music_group_id_ IN
+        <foreach collection="groupIds" item="id" open="(" close=")" separator=",">
+            #{id}
+        </foreach>
+        GROUP BY cs.music_group_id_
+    </select>
 </mapper>

+ 46 - 0
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -20,6 +20,22 @@
 		<result column="memo_" property="memo" />
 	</resultMap>
 
+	<resultMap type="com.ym.mec.biz.dal.dto.PracticeGroupDto" id="PracticeGroupDto">
+		<result column="id_" property="id" />
+		<result column="name_" property="name" />
+		<result column="subject_id_" property="subjectId" />
+		<result column="user_id_" property="userId" />
+		<result column="single_class_minutes_" property="singleClassMinutes" />
+		<result column="organ_id_" property="organId" />
+		<result column="courses_start_date_" property="coursesStartDate" />
+		<result column="courses_expire_date_" property="coursesExpireDate" />
+		<result column="create_time_" property="createTime" />
+		<result column="update_time_" property="updateTime" />
+		<result column="memo_" property="memo" />
+		<result column="subject_name_" property="subjectName" />
+		<result column="teacher_name_" property="teacherName" />
+	</resultMap>
+
 	<!-- 根据主键查询一条记录 -->
 	<select id="get" resultMap="PracticeGroup">
 		SELECT * FROM practice_group WHERE id_ = #{id}
@@ -57,4 +73,34 @@
     <select id="countUserPracticeApplyRecord" resultType="int">
 		SELECT COUNT(*) FROM class_group_student_mapper WHERE group_type_='PRACTICE' AND user_id_=#{userId}
     </select>
+    <select id="countPracticeGroupByOrgan" resultType="java.lang.Integer">
+		SELECT count(*) FROM practice_group pg
+		<include refid="practiceGroupQueryCondition"/>
+	</select>
+	<select id="findAllByOrgan" resultMap="PracticeGroupDto">
+		SELECT pg.*,
+		su.real_name_ teacher_name_
+		FROM
+		practice_group pg
+		LEFT JOIN sys_user su ON pg.user_id_ = su.id_
+		<include refid="practiceGroupQueryCondition"/>
+		ORDER BY pg.id_ DESC
+		<include refid="global.limit"/>
+	</select>
+	<select id="countPracticeGroupOverCourse" resultType="java.util.Map">
+
+	</select>
+	<sql id="practiceGroupQueryCondition">
+		<where>
+			<if test="search!=null and search!=''">
+				AND (pg.name_ LIKE CONCAT('%',#{search},'%') OR pg.id_= #{search})
+			</if>
+			<if test="teacherId!=null">
+				AND pg.user_id_=#{teacherId}
+			</if>
+			<if test="organId != null">
+				AND FIND_IN_SET(pg.organ_id_,#{organId})
+			</if>
+		</where>
+	</sql>
 </mapper>

+ 0 - 16
mec-biz/src/main/resources/config/mybatis/VipGroupMapper.xml

@@ -716,22 +716,6 @@
         SELECT * from school where user_id_ = #{userId} or user_id_ is null
     </select>
 
-    <select id="countVipGroupOverCourse" resultType="java.util.Map">
-        SELECT
-            cs.music_group_id_ AS 'key',
-            COUNT(cs.Id_) AS 'value'
-        FROM
-            course_schedule cs
-            WHERE cs.status_='OVER'
-            AND DATE_FORMAT(cs.class_date_,'%Y-%m')=DATE_FORMAT(NOW(),'%Y-%m')
-            AND cs.group_type_='VIP'
-            AND cs.music_group_id_ IN
-            <foreach collection="list" item="id" open="(" close=")" separator=",">
-                #{id}
-            </foreach>
-        GROUP BY cs.music_group_id_
-    </select>
-
     <select id="findByCourseSchedule" resultMap="VipGroup">
         SELECT
             vg.*

+ 45 - 5
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -2,10 +2,7 @@ package com.ym.mec.web.controller;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.EmployeeDao;
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
-import com.ym.mec.biz.dal.dao.VipGroupDao;
+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.GroupType;
@@ -63,11 +60,54 @@ public class ExportController extends BaseController {
     @Autowired
     private VipGroupService vipGroupService;
     @Autowired
+    private PracticeGroupService practiceGroupService;
+    @Autowired
     private CourseScheduleService scheduleService;
     @Autowired
     private SporadicChargeInfoService sporadicChargeInfoService;
 
-
+    @ApiOperation(value = "导出陪练课列表")
+    @GetMapping("export/practiceGroupList")
+    @PreAuthorize("@pcs.hasPermissions('export/practiceGroupList')")
+    public void queryAll(HttpServletResponse response,PracticeGroupQueryInfo queryInfo) {
+        queryInfo.setRows(999999999);
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            throw new BizException("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+                throw new BizException("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                    throw new BizException("非法请求");
+                }
+            }
+        }
+        List<PracticeGroupDto> rows = practiceGroupService.findPracticeGroups(queryInfo).getRows();
+        if(rows != null && rows.size() > 0){
+            rows.forEach(e->{
+                e.setSubClassTimes(e.getTotalClassTimes()==null?0:e.getTotalClassTimes() - (e.getCurrentClassTimes()==null?0:e.getCurrentClassTimes()));
+            });
+        }
+        try {
+            HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"陪练课编号", "课程名称", "指导老师", "班级人数", "先上课单价", "线下课单价",
+                    "当前课次", "总课次", "剩余课次","开课时间", "结束时间"}, new String[]{
+                    "id", "name", "teacherName", "studentNum", "onlineClassesUnitPrice",
+                    "offlineClassesUnitPrice", "currentClassTimes", "totalClassTimes", "subClassTimes","coursesStartDate", "coursesExpireDate"}, rows);
+            response.setContentType("application/octet-stream");
+            response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
+            response.flushBuffer();
+            workbook.write(response.getOutputStream());
+            workbook.close();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 
     @ApiOperation(value = "导出VIP课管理")
     @GetMapping("export/vipGroupList")

+ 67 - 0
mec-web/src/main/java/com/ym/mec/web/controller/PracticeGroupManageController.java

@@ -0,0 +1,67 @@
+package com.ym.mec.web.controller;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dao.EmployeeDao;
+import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dto.ClassDateAdjustDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyBaseInfoDto;
+import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
+import com.ym.mec.biz.dal.entity.*;
+import com.ym.mec.biz.dal.entity.StudentApplyRefunds.StudentApplyRefundsStatus;
+import com.ym.mec.biz.dal.enums.AuditStatusEnum;
+import com.ym.mec.biz.dal.page.*;
+import com.ym.mec.biz.service.*;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.exception.BizException;
+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.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.util.*;
+
+/**
+ * @Author Joburgess
+ * @Date 2019/9/21
+ */
+@Api(tags = "陪练课")
+@RequestMapping("practiceGroupManage")
+@RestController
+public class PracticeGroupManageController extends BaseController {
+
+    @Autowired
+    private PracticeGroupService practiceGroupService;
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+    @Autowired
+    private EmployeeDao employeeDao;
+
+    @ApiOperation(value = "全查询")
+    @GetMapping("/queryAll")
+    @PreAuthorize("@pcs.hasPermissions('practiceGroupManage/queryAll')")
+    public Object queryAll(PracticeGroupQueryInfo queryInfo) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if (sysUser == null) {
+            return failed("用户信息获取失败");
+        }
+        if(!sysUser.getIsSuperAdmin()){
+            Employee employee = employeeDao.get(sysUser.getId());
+            if (StringUtils.isEmpty(queryInfo.getOrganId())) {
+                queryInfo.setOrganId(employee.getOrganIdList());
+            }else if(StringUtils.isEmpty(employee.getOrganIdList())){
+                return failed("用户所在分部异常");
+            }else {
+                List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
+                if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
+                    return failed("非法请求");
+                }
+            }
+        }
+        return succeed(practiceGroupService.findPracticeGroups(queryInfo));
+    }
+}