소스 검색

1、课酬确认相关
2、VIP课导出添加学生姓名和编号

Joburgess 5 년 전
부모
커밋
a311a588a5

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

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.GroupBaseCourseInfoDto;
+import com.ym.mec.biz.dal.dto.GroupUserDto;
 import com.ym.mec.biz.dal.entity.Group;
 import com.ym.mec.biz.dal.enums.GroupType;
 import org.apache.ibatis.annotations.Param;
@@ -69,5 +70,16 @@ public interface GroupDao {
     List<GroupBaseCourseInfoDto> countGroupFinishedClassesTimes(@Param("groupIds") List<String> groupIds,
                                                   @Param("groupType") GroupType groupType);
 
+    /**
+     * @describe 获取团体学生
+     * @author Joburgess
+     * @date 2020/4/15
+     * @param groupIds:
+     * @param groupType:
+     * @return java.util.List<com.ym.mec.biz.dal.dto.GroupUserDto>
+     */
+    List<GroupUserDto> findGroupsStudents(@Param("groupIds") List<String> groupIds,
+                                       @Param("groupType") GroupType groupType);
+
 
 }

+ 50 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/GroupUserDto.java

@@ -0,0 +1,50 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.enums.GroupType;
+
+/**
+ * @Author Joburgess
+ * @Date 2020/4/15
+ */
+public class GroupUserDto {
+
+    private String groupId;
+
+    private GroupType groupType;
+
+    private Integer userId;
+
+    private String userName;
+
+    public String getGroupId() {
+        return groupId;
+    }
+
+    public void setGroupId(String groupId) {
+        this.groupId = groupId;
+    }
+
+    public GroupType getGroupType() {
+        return groupType;
+    }
+
+    public void setGroupType(GroupType groupType) {
+        this.groupType = groupType;
+    }
+
+    public Integer getUserId() {
+        return userId;
+    }
+
+    public void setUserId(Integer userId) {
+        this.userId = userId;
+    }
+
+    public String getUserName() {
+        return userName;
+    }
+
+    public void setUserName(String userName) {
+        this.userName = userName;
+    }
+}

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/VipGroup.java

@@ -128,6 +128,16 @@ public class VipGroup {
 
 	private String educationalTeacherName;
 
+	private String userInfo;
+
+	public String getUserInfo() {
+		return userInfo;
+	}
+
+	public void setUserInfo(String userInfo) {
+		this.userInfo = userInfo;
+	}
+
 	public String getEducationalTeacherName() {
 		return educationalTeacherName;
 	}

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

@@ -124,6 +124,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 	private StudentAttendanceDao studentAttendanceDao;
 	@Autowired
 	private EmployeeDao employeeDao;
+	@Autowired
+	private GroupDao groupDao;
 
 	private static final Logger LOGGER = LoggerFactory
 			.getLogger(VipGroup.class);
@@ -588,6 +590,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 					idNameMap = educationalUsers.stream().filter(e->Objects.nonNull(e.getUserId())&&Objects.nonNull(e.getUserName())).collect(Collectors.toMap(SimpleUserDto::getUserId, user -> user.getUserName()));
 				}
 
+				Map<String, List<GroupUserDto>> groupStudentsMap = new HashMap<>();
+				if(queryInfo.getIsExport()){
+					List<GroupUserDto> groupsStudents = groupDao.findGroupsStudents(vipGroupIds, GroupType.VIP);
+					groupStudentsMap=groupsStudents.stream().collect(Collectors.groupingBy(GroupUserDto::getGroupId));
+				}
+
 				for (VipGroup vipGroup : dataList) {
 					Integer overCourses = vipGroupOverCourseMaps.get(vipGroup.getId().toString());
 					ClassGroup classGroup = vipGroupClassGroupMap.get(vipGroup.getId().toString());
@@ -602,6 +610,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 					vipGroup.setEducationalTeacherName(idNameMap.get(vipGroup.getEducationalTeacherId()));
 
+					if(queryInfo.getIsExport()){
+						List<GroupUserDto> groupStudents = groupStudentsMap.get(vipGroup.getId().toString());
+						if(!CollectionUtils.isEmpty(groupStudents)){
+							List<String> userInfos = groupStudents.stream().map(u->u.getUserName()+ "(" + u.getUserId() + ")").collect(Collectors.toList());
+							vipGroup.setUserInfo(StringUtils.join(userInfos, ","));
+						}
+					}
+
 					Integer totalClassTimes=vipGroup.getTotalClassTimes();
 					if(Objects.isNull(totalClassTimes) || Objects.isNull(overCourses)){
 						vipGroup.setMonthConsumeRate(0);

+ 23 - 0
mec-biz/src/main/resources/config/mybatis/GroupMapper.xml

@@ -206,4 +206,27 @@
         GROUP BY music_group_id_;
     </select>
 
+    <resultMap id="GroupUserDto" type="com.ym.mec.biz.dal.dto.GroupUserDto">
+        <result property="groupId" column="group_id_"/>
+        <result property="groupType" column="group_type_" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
+        <result property="userId" column="user_id_"/>
+        <result property="userName" column="username_"/>
+    </resultMap>
+
+    <select id="findGroupsStudents" resultMap="GroupUserDto">
+        SELECT
+          music_group_id_ group_id_,
+          group_type_,
+          cgsm.user_id_,
+          su.username_
+        FROM class_group_student_mapper cgsm
+        LEFT JOIN sys_user su ON cgsm.user_id_=su.id_
+        WHERE group_type_=#{groupType, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+        AND status_ IN ('NORMAL', 'QUIT_SCHOOL')
+        AND music_group_id_ IN
+        <foreach collection="groupIds" item="groupId" open="(" close=")" separator=",">
+            #{groupId}
+        </foreach>
+    </select>
+
 </mapper>

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

@@ -344,10 +344,10 @@ public class ExportController extends BaseController {
         }
         try {
             HSSFWorkbook workbook = POIUtil.exportExcel(new String[]{"VIP编号", "课程名称", "课程状态", "指导老师", "指导老师", "班级人数", "先上课单价", "线下课单价",
-                    "活动方案", "当前课次", "总课次", "剩余课次", "月消耗", "开课时间", "结束时间", "申请时间"}, new String[]{
+                    "活动方案", "当前课次", "总课次", "剩余课次", "月消耗", "开课时间", "结束时间", "申请时间", "学生姓名"}, new String[]{
                     "id", "name", "status.msg", "userName", "educationalTeacherName", "studentNum", "onlineClassesUnitPrice",
                     "offlineClassesUnitPrice", "vipGroupActivityName", "currentClassTimes", "totalClassTimes", "subClassTimes", "monthConsumeRate",
-                    "courseStartDate", "coursesExpireDate", "registrationStartTime"}, rows);
+                    "courseStartDate", "coursesExpireDate", "registrationStartTime", "userInfo"}, rows);
             response.setContentType("application/octet-stream");
             response.setHeader("Content-Disposition", "attachment;filename=lender-" + DateUtil.getDate(new Date()) + ".xls");
             response.flushBuffer();