|
@@ -1,43 +1,31 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Calendar;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.List;
|
|
|
-import java.util.UUID;
|
|
|
-
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Propagation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.BasicUserDto;
|
|
|
import com.ym.mec.biz.dal.dto.MusicCardDto;
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupsDto;
|
|
|
import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
|
|
|
-import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
|
|
|
import com.ym.mec.biz.service.MusicGroupService;
|
|
|
import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
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.IdGeneratorService;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.im.ImFeignService;
|
|
|
+import com.ym.mec.util.collection.MapUtil;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> implements MusicGroupService {
|
|
@@ -45,6 +33,14 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
@Autowired
|
|
|
private MusicGroupDao musicGroupDao;
|
|
|
@Autowired
|
|
|
+ private ChargeTypeDao chargeTypeDao;
|
|
|
+ @Autowired
|
|
|
+ private TeacherDao teacherDao;
|
|
|
+ @Autowired
|
|
|
+ private IdGeneratorService idGeneratorService;
|
|
|
+ @Autowired
|
|
|
+ private SchoolDao schoolDao;
|
|
|
+ @Autowired
|
|
|
private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
|
|
|
@Autowired
|
|
|
private MusicGroupPaymentEntitiesDao musicGroupPaymentEntitiesDao;
|
|
@@ -76,58 +72,57 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void createGroup(SubFeeSettingDto subFeeSettingDto, Integer userId) {
|
|
|
+ public String createGroup(SubFeeSettingDto subFeeSettingDto, Integer userId) {
|
|
|
MusicGroup musicGroup = subFeeSettingDto.getMusicGroup();
|
|
|
List<MusicGroupPaymentEntities> musicGroupPaymentEntities = subFeeSettingDto.getMusicGroupPaymentEntities();
|
|
|
List<MusicGroupSubjectGoodsGroup> musicGroupSubjectGoodsGroups = subFeeSettingDto.getMusicGroupSubjectGoodsGroups();
|
|
|
List<MusicGroupSubjectPlan> musicGroupSubjectPlans = subFeeSettingDto.getMusicGroupSubjectPlans();
|
|
|
- if (musicGroup == null || musicGroupPaymentEntities == null || musicGroupSubjectGoodsGroups == null || musicGroupSubjectPlans == null) {
|
|
|
- String musicGroupId = UUID.randomUUID().toString();
|
|
|
- musicGroup.setId(musicGroupId);
|
|
|
- // 保存乐团基本信息
|
|
|
- musicGroupDao.insert(musicGroup);
|
|
|
- // 保存乐团付费主体列表
|
|
|
- musicGroupPaymentEntities.forEach(e -> {
|
|
|
- e.setMusicGroupId(musicGroupId);
|
|
|
- musicGroupPaymentEntitiesDao.insert(e);
|
|
|
- });
|
|
|
- // 保存学员付费周期
|
|
|
- List<Integer> months = subFeeSettingDto.getMonths();
|
|
|
- if (months != null && months.size() > 0) {
|
|
|
- MusicGroupPaymentCalender mg;
|
|
|
- for (Integer month : months) {
|
|
|
- mg = new MusicGroupPaymentCalender();
|
|
|
- mg.setMusicGroupId(musicGroupId);
|
|
|
- mg.setPaymentMonth(month);
|
|
|
- musicGroupPaymentCalenderDao.insert(mg);
|
|
|
- }
|
|
|
+ String musicGroupId = idGeneratorService.generatorId()+"";
|
|
|
+ musicGroup.setId(musicGroupId);
|
|
|
+ // 保存乐团基本信息
|
|
|
+ musicGroupDao.insert(musicGroup);
|
|
|
+ // 保存乐团付费主体列表
|
|
|
+ musicGroupPaymentEntities.forEach(e -> {
|
|
|
+ e.setMusicGroupId(musicGroupId);
|
|
|
+ musicGroupPaymentEntitiesDao.insert(e);
|
|
|
+ });
|
|
|
+ // 保存学员付费周期
|
|
|
+ List<Integer> months = subFeeSettingDto.getMonths();
|
|
|
+ if (months != null && months.size() > 0) {
|
|
|
+ MusicGroupPaymentCalender mg;
|
|
|
+ for (Integer month : months) {
|
|
|
+ mg = new MusicGroupPaymentCalender();
|
|
|
+ mg.setMusicGroupId(musicGroupId);
|
|
|
+ mg.setPaymentMonth(month);
|
|
|
+ musicGroupPaymentCalenderDao.insert(mg);
|
|
|
}
|
|
|
- // 保存乐团声部规划
|
|
|
- if (musicGroupSubjectPlans == null) {
|
|
|
- musicGroupSubjectPlans = new ArrayList<MusicGroupSubjectPlan>();
|
|
|
- }
|
|
|
- musicGroupSubjectPlans.forEach(e -> {
|
|
|
- e.setMusicGroupId(musicGroupId);
|
|
|
- musicGroupSubjectPlanDao.insert(e);
|
|
|
- });
|
|
|
- // 保存乐团声部商品规划
|
|
|
- if (musicGroupSubjectGoodsGroups == null) {
|
|
|
- musicGroupSubjectGoodsGroups = new ArrayList<MusicGroupSubjectGoodsGroup>();
|
|
|
- }
|
|
|
- musicGroupSubjectGoodsGroups.forEach(e -> {
|
|
|
- e.setMusicGroupId(musicGroupId);
|
|
|
- musicGroupSubjectGoodsGroupDao.insert(e);
|
|
|
- });
|
|
|
- // 新增聊天群
|
|
|
-// ImGroupModel imGroupModel = new ImGroupModel(musicGroupId, musicGroup.getName());
|
|
|
- // 教务老师和运营主管加入群组
|
|
|
- ImGroupMember[] imGroupMembers = { new ImGroupMember(musicGroup.getTeamTeacherId().toString()),
|
|
|
- new ImGroupMember(musicGroup.getEducationalTeacherId().toString()) };
|
|
|
- // 创建群组
|
|
|
- imFeignService.groupCreate(new ImGroupModel(musicGroupId, imGroupMembers, musicGroup.getName()));
|
|
|
- // 记录创建日志
|
|
|
- musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "提交建团申请", userId, ""));
|
|
|
}
|
|
|
+ // 保存乐团声部规划
|
|
|
+ if (musicGroupSubjectPlans == null) {
|
|
|
+ musicGroupSubjectPlans = new ArrayList<>();
|
|
|
+ }
|
|
|
+ musicGroupSubjectPlans.forEach(e -> {
|
|
|
+ e.setMusicGroupId(musicGroupId);
|
|
|
+ musicGroupSubjectPlanDao.insert(e);
|
|
|
+ });
|
|
|
+ // 保存乐团声部商品规划
|
|
|
+ if (musicGroupSubjectGoodsGroups == null) {
|
|
|
+ musicGroupSubjectGoodsGroups = new ArrayList<>();
|
|
|
+ }
|
|
|
+ musicGroupSubjectGoodsGroups.forEach(e -> {
|
|
|
+ e.setMusicGroupId(musicGroupId);
|
|
|
+ musicGroupSubjectGoodsGroupDao.insert(e);
|
|
|
+ });
|
|
|
+ // 新增聊天群
|
|
|
+// ImGroupModel imGroupModel = new ImGroupModel(musicGroupId, musicGroup.getName());
|
|
|
+ // 教务老师和运营主管加入群组
|
|
|
+ ImGroupMember[] imGroupMembers = { new ImGroupMember(musicGroup.getTeamTeacherId().toString()),
|
|
|
+ new ImGroupMember(musicGroup.getEducationalTeacherId().toString()) };
|
|
|
+ // 创建群组
|
|
|
+ imFeignService.groupCreate(new ImGroupModel(musicGroupId, imGroupMembers, musicGroup.getName()));
|
|
|
+ // 记录创建日志
|
|
|
+ musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroupId, "提交建团申请", userId, ""));
|
|
|
+ return musicGroupId;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -273,7 +268,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
public boolean quitMusicGroup(String musicGroupId, Integer userId) {
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
|
if (musicGroup == null) {
|
|
|
- throw new BizException("乐团找不到");
|
|
|
+ throw new BizException("乐团不存在");
|
|
|
}
|
|
|
|
|
|
classGroupStudentMapperDao.updateUserStatusByMusicGroupId(musicGroupId, userId, ClassGroupStudentStatusEnum.QUIT);
|
|
@@ -285,4 +280,46 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
|
|
|
public boolean renew(String musicGroupId, Integer userId, double amount) {
|
|
|
return true;
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public PageInfo<MusicGroup> queryMusicGroupPage(MusicGroupQueryInfo queryInfo) {
|
|
|
+ PageInfo<MusicGroup> musicGroupPageInfo = queryPage(queryInfo);
|
|
|
+ List<MusicGroup> musicGroupList = musicGroupPageInfo.getRows();
|
|
|
+ //获取学校编号列表
|
|
|
+ Set<Integer> schoolIds = musicGroupList.stream().map(e -> e.getSchoolId()).collect(Collectors.toSet());
|
|
|
+ List<Map<Integer,String>> schoolNames = schoolDao.queryNameByIds(schoolIds);
|
|
|
+ //获取相关学校名称map
|
|
|
+ Map<Integer,String> schoolNameMap = MapUtil.convertMybatisMap(schoolNames);
|
|
|
+
|
|
|
+ //获取教务老师编号列表
|
|
|
+ Set<Integer> educationalTeacherIds = musicGroupList.stream().map(e -> e.getEducationalTeacherId()).collect(Collectors.toSet());
|
|
|
+ //获取相关老师的名字
|
|
|
+ List<Map<Integer,String>> educationalTeacherNames = teacherDao.queryNameByIds(educationalTeacherIds);
|
|
|
+ Map<Integer,String> educationalTeacherNameMap = MapUtil.convertMybatisMap(educationalTeacherNames);
|
|
|
+
|
|
|
+ //获取运营主管编号列表
|
|
|
+ Set<Integer> teamTeacherIds = musicGroupList.stream().map(e -> e.getTeamTeacherId()).collect(Collectors.toSet());
|
|
|
+ List<Map<Integer,String>> teamTeacherNames = teacherDao.queryNameByIds(teamTeacherIds);
|
|
|
+ Map<Integer,String> teamTeacherNameMap = MapUtil.convertMybatisMap(teamTeacherNames);
|
|
|
+
|
|
|
+ //获取乐团编号列表
|
|
|
+ Set<String> musicGroupIds = musicGroupList.stream().map(e -> e.getId()).collect(Collectors.toSet());
|
|
|
+ //统计乐团在读人数
|
|
|
+ List<Map<String,Long>> payNums = musicGroupDao.countPayNum(musicGroupIds);
|
|
|
+ Map<String,Long> payNumMap = MapUtil.convertMybatisMap(payNums);
|
|
|
+
|
|
|
+ //获取收费类型编号列表
|
|
|
+ Set<Integer> chargeTypeIds = musicGroupList.stream().map(e -> e.getChargeTypeId()).collect(Collectors.toSet());
|
|
|
+ List<Map<Integer,String>> chargeTypeNames = chargeTypeDao.queryNameByIds(chargeTypeIds);
|
|
|
+ Map<Integer,String> chargeTypeNameMap = MapUtil.convertMybatisMap(chargeTypeNames);
|
|
|
+
|
|
|
+ musicGroupList.forEach(e->{
|
|
|
+ e.setSchoolName(schoolNameMap.get(e.getSchoolId()));
|
|
|
+ e.setEducationalTeacherName(educationalTeacherNameMap.get(e.getEducationalTeacherId()));
|
|
|
+ e.setTeamTeacherName(teamTeacherNameMap.get(e.getTeamTeacherId()));
|
|
|
+ e.setPayNum(payNumMap.get(e.getId())==null?0:payNumMap.get(e.getId()).intValue());
|
|
|
+ e.setChargeTypeName(chargeTypeNameMap.get(e.getChargeTypeId()));
|
|
|
+ });
|
|
|
+ return musicGroupPageInfo;
|
|
|
+ }
|
|
|
}
|