|
@@ -1,74 +1,26 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
-import static com.ym.mec.biz.dal.enums.CouponDetailTypeEnum.MEMBER;
|
|
|
-
|
|
|
-import java.math.BigDecimal;
|
|
|
-import java.util.Arrays;
|
|
|
-import java.util.Date;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Objects;
|
|
|
-import java.util.Optional;
|
|
|
-import java.util.concurrent.TimeUnit;
|
|
|
-import java.util.function.BiPredicate;
|
|
|
-import java.util.stream.Collectors;
|
|
|
-
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
-import org.apache.commons.collections.CollectionUtils;
|
|
|
-import org.apache.commons.lang3.StringUtils;
|
|
|
-import org.joda.time.LocalDate;
|
|
|
-import org.redisson.api.RBucket;
|
|
|
-import org.redisson.api.RedissonClient;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
-import org.springframework.context.annotation.Lazy;
|
|
|
-import org.springframework.http.HttpStatus;
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
-import org.springframework.transaction.annotation.Isolation;
|
|
|
-import org.springframework.transaction.annotation.Transactional;
|
|
|
-
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
-import com.ym.mec.biz.dal.dao.MemberRankPrivilegesDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TempBuyFreeLiveTheoryCourseDao;
|
|
|
-import com.ym.mec.biz.dal.dao.TempLittleArtistTrainingCampUserRelationDao;
|
|
|
-import com.ym.mec.biz.dal.dao.VipGroupActivityDao;
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
import com.ym.mec.biz.dal.dto.Cloud2022ActivityDto;
|
|
|
import com.ym.mec.biz.dal.dto.MemberPayParamDto;
|
|
|
-import com.ym.mec.biz.dal.entity.ActivityUserMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.CloudCoachPaymentProgram;
|
|
|
-import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
|
|
|
-import com.ym.mec.biz.dal.entity.MemberRankPrivileges;
|
|
|
-import com.ym.mec.biz.dal.entity.MemberRankSetting;
|
|
|
-import com.ym.mec.biz.dal.entity.Student;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentCloudCoachPaymentDetails;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
-import com.ym.mec.biz.dal.entity.TempBuyFreeLiveTheoryCourse;
|
|
|
-import com.ym.mec.biz.dal.entity.TempLittleArtistTrainingCampUserRelation;
|
|
|
-import com.ym.mec.biz.dal.entity.VipGroupActivity;
|
|
|
-import com.ym.mec.biz.dal.enums.CouponDetailTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
-import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
|
-import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
+import com.ym.mec.biz.dal.enums.*;
|
|
|
+import com.ym.mec.biz.dal.wrapper.LessonCoursewareWrapper;
|
|
|
+import com.ym.mec.biz.dal.wrapper.MemberRankSettingWrapper;
|
|
|
+import com.ym.mec.biz.dal.wrapper.MusicSheetWrapper;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import com.ym.mec.common.controller.BaseController;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.HttpResponseResult;
|
|
|
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.thirdparty.adapay.Payment;
|
|
@@ -77,6 +29,28 @@ import com.ym.mec.thirdparty.message.MessageSenderPluginContext;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.http.HttpUtil;
|
|
|
+import org.apache.commons.collections.CollectionUtils;
|
|
|
+import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.joda.time.LocalDate;
|
|
|
+import org.redisson.api.RBucket;
|
|
|
+import org.redisson.api.RedissonClient;
|
|
|
+import org.slf4j.Logger;
|
|
|
+import org.slf4j.LoggerFactory;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.context.annotation.Lazy;
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Isolation;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.util.*;
|
|
|
+import java.util.concurrent.TimeUnit;
|
|
|
+import java.util.function.BiPredicate;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+import static com.ym.mec.biz.dal.enums.CouponDetailTypeEnum.MEMBER;
|
|
|
|
|
|
@Service
|
|
|
public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, MemberRankSetting> implements MemberRankSettingService {
|
|
@@ -94,6 +68,11 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
@Autowired
|
|
|
private SysUserCashAccountDetailService sysUserCashAccountDetailService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private LessonCoursewareService lessonCoursewareService;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ private CbsMusicScoreCategoriesService cbsMusicScoreCategoriesService;
|
|
|
@Lazy
|
|
|
@Autowired
|
|
|
private ContractService contractService;
|
|
@@ -133,10 +112,22 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
private TempLittleArtistTrainingCampUserRelationDao tempLittleArtistTrainingCampUserRelationDao;
|
|
|
@Autowired
|
|
|
private StudentPaymentOrderDetailDao studentPaymentOrderDetailDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MemberRankCategoryMapperService memberRankCategoryMapperService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private MemberRankCourseTypeMapperService memberRankCourseTypeMapperService;
|
|
|
|
|
|
@Autowired
|
|
|
private HfMerchantConfigService hfMerchantConfigService;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private SysMusicScoreDao sysMusicScoreDao;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
+
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass());
|
|
|
|
|
|
@Override
|
|
@@ -146,35 +137,74 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void add(MemberRankSetting memberRankSetting) {
|
|
|
- memberRankSettingDao.insert(memberRankSetting);
|
|
|
+ public void add(MemberRankSettingWrapper.MemberRankSettingAdd memberRankSetting) {
|
|
|
+ MemberRankSetting object = JSON.parseObject(JSON.toJSONString(memberRankSetting), MemberRankSetting.class);
|
|
|
+ memberRankSettingDao.insert(object);
|
|
|
List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
- if (memberPrivilegesItemIdList == null || memberPrivilegesItemIdList.size() == 0) {
|
|
|
+ if (CollectionUtils.isEmpty(memberPrivilegesItemIdList)) {
|
|
|
throw new BizException("操作失败:请配置会员权益");
|
|
|
}
|
|
|
- memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
+ memberRankPrivilegesDao.batchInsert(object.getId(), memberPrivilegesItemIdList);
|
|
|
+ // 设置学练宝曲目分类内容
|
|
|
+ if (CollectionUtils.isNotEmpty( memberRankSetting.getMemberCategoryIdList())) {
|
|
|
+ memberRankCategoryMapperService.batchInsert(object.getId(), memberRankSetting.getMemberCategoryIdList());
|
|
|
+ }
|
|
|
+ // 设置云课堂曲目分类内容
|
|
|
+ if (CollectionUtils.isNotEmpty( memberRankSetting.getMemberCourseTypeList())) {
|
|
|
+ memberRankCourseTypeMapperService.batchInsert(object.getId(), memberRankSetting.getMemberCourseTypeList());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public MemberRankSetting getDetail(Integer memberRankSettingId) {
|
|
|
+ public MemberRankSettingWrapper.MemberRankSetting getDetail(Integer memberRankSettingId) {
|
|
|
MemberRankSetting memberRankSetting = memberRankSettingDao.get(memberRankSettingId);
|
|
|
+ MemberRankSettingWrapper.MemberRankSetting result = JSON
|
|
|
+ .parseObject(JSON.toJSONString(memberRankSetting), MemberRankSettingWrapper.MemberRankSetting.class);
|
|
|
List<MemberRankPrivileges> byRankSettingId = memberRankPrivilegesDao.findByRankSettingId(memberRankSettingId);
|
|
|
- if (byRankSettingId != null && byRankSettingId.size() > 0) {
|
|
|
- memberRankSetting.setMemberRankPrivileges(byRankSettingId);
|
|
|
- memberRankSetting.setMemberPrivilegesItemIdList(byRankSettingId.stream().map(e -> e.getMemberPrivilegesId()).collect(Collectors.toList()));
|
|
|
+ if (CollectionUtils.isNotEmpty(byRankSettingId)) {
|
|
|
+ result.setMemberPrivilegesItemIdList(byRankSettingId.stream().map(e -> e.getMemberPrivilegesId()).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+ // 分类ID集合
|
|
|
+ List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(Lists.newArrayList(memberRankSetting.getId()));
|
|
|
+ if (CollectionUtils.isNotEmpty(categoryMapperList)) {
|
|
|
+ result.setMemberCategoryIdList(categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).collect(Collectors.toList()));
|
|
|
}
|
|
|
- return memberRankSetting;
|
|
|
+
|
|
|
+ // 云课堂集合
|
|
|
+ List<MemberRankCourseTypeMapper> courseTypeMapperList = memberRankCourseTypeMapperService.getByMemberRankId(memberRankSetting.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(courseTypeMapperList)) {
|
|
|
+ result.setMemberCourseTypeList(courseTypeMapperList.stream().map(MemberRankCourseTypeMapper::getCourseType).collect(Collectors.toList()));
|
|
|
+ }
|
|
|
+
|
|
|
+ // 是否已被购买
|
|
|
+ int count = cloudTeacherOrderDao.countByMemberRankSetttingId(memberRankSettingId);
|
|
|
+ result.setBuyFlag(count > 0);
|
|
|
+
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public void updateSetting(MemberRankSetting memberRankSetting) {
|
|
|
- memberRankSettingDao.update(memberRankSetting);
|
|
|
+ public void updateSetting(MemberRankSettingWrapper.MemberRankSettingAdd memberRankSetting) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ memberRankSettingDao.update(JSON.parseObject(JSON.toJSONString(memberRankSetting),MemberRankSetting.class));
|
|
|
memberRankPrivilegesDao.deleteByRankSettingId(memberRankSetting.getId());
|
|
|
+ memberRankCourseTypeMapperService.deleteByRankSettingId(memberRankSetting.getId());
|
|
|
+ memberRankCategoryMapperService.deleteByRankSettingId(memberRankSetting.getId());
|
|
|
List<Integer> memberPrivilegesItemIdList = memberRankSetting.getMemberPrivilegesItemIdList();
|
|
|
if (memberPrivilegesItemIdList != null && memberPrivilegesItemIdList.size() > 0) {
|
|
|
memberRankPrivilegesDao.batchInsert(memberRankSetting.getId(), memberPrivilegesItemIdList);
|
|
|
}
|
|
|
+ // 设置学练宝曲目分类内容
|
|
|
+ if (CollectionUtils.isNotEmpty( memberRankSetting.getMemberCategoryIdList())) {
|
|
|
+ memberRankCategoryMapperService.batchInsert(memberRankSetting.getId(), memberRankSetting.getMemberCategoryIdList());
|
|
|
+ }
|
|
|
+ // 设置云课堂曲目分类内容
|
|
|
+ if (CollectionUtils.isNotEmpty( memberRankSetting.getMemberCourseTypeList())) {
|
|
|
+ memberRankCourseTypeMapperService.batchInsert(memberRankSetting.getId(), memberRankSetting.getMemberCourseTypeList());
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -434,6 +464,81 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
return BaseController.succeed(1);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<SysMusicScoreCategories> getTree(Integer parentId) {
|
|
|
+ // 分类
|
|
|
+ List<SysMusicScoreCategories> sysMusicScoreCategories = cbsMusicScoreCategoriesService.queryTreeByAppId();
|
|
|
+
|
|
|
+ // 课件
|
|
|
+ IPage<LessonCoursewareWrapper.LessonCoursewareDto> lessonCoursewareDtoIPage = lessonCoursewareService.selectPage(new Page<>(1, -1), new LessonCoursewareWrapper.LessonCoursewareQuery());
|
|
|
+ List<LessonCoursewareWrapper.LessonCoursewareDto> records = lessonCoursewareDtoIPage.getRecords();
|
|
|
+ SysMusicScoreCategories course =null;
|
|
|
+ if (CollectionUtils.isNotEmpty(records)) {
|
|
|
+ course = new SysMusicScoreCategories();
|
|
|
+ course.setId(-1);
|
|
|
+ course.setName("云课堂");
|
|
|
+ course.setSysMusicScoreCategoriesList(new ArrayList<>());
|
|
|
+ }
|
|
|
+ if (parentId != null) {
|
|
|
+ MemberRankSettingWrapper.MemberRankSetting detail = getDetail(parentId);
|
|
|
+ List<Integer> memberCategoryIdList = detail.getMemberCategoryIdList();
|
|
|
+ if (CollectionUtils.isEmpty(memberCategoryIdList)) {
|
|
|
+ sysMusicScoreCategories = new ArrayList<>();
|
|
|
+ }
|
|
|
+ // 将被使用过的选出来
|
|
|
+ sysMusicScoreCategories = getCategoryTreeByIds(sysMusicScoreCategories,memberCategoryIdList);
|
|
|
+
|
|
|
+ List<String> memberCourseTypeList = detail.getMemberCourseTypeList();
|
|
|
+ if (CollectionUtils.isNotEmpty(memberCourseTypeList) && course !=null) {
|
|
|
+ for (LessonCoursewareWrapper.LessonCoursewareDto record : records) {
|
|
|
+ if (memberCourseTypeList.contains(record.getId().toString())) {
|
|
|
+ SysMusicScoreCategories lesson = new SysMusicScoreCategories();
|
|
|
+ lesson.setId(record.getId());
|
|
|
+ lesson.setName(record.getName());
|
|
|
+ course.getSysMusicScoreCategoriesList().add(lesson);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(course.getSysMusicScoreCategoriesList())) {
|
|
|
+ sysMusicScoreCategories.add(course);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (LessonCoursewareWrapper.LessonCoursewareDto record : records) {
|
|
|
+ SysMusicScoreCategories lesson = new SysMusicScoreCategories();
|
|
|
+ lesson.setId(record.getId());
|
|
|
+ lesson.setName(record.getName());
|
|
|
+ course.getSysMusicScoreCategoriesList().add(lesson);
|
|
|
+ }
|
|
|
+ if (CollectionUtils.isNotEmpty(course.getSysMusicScoreCategoriesList())) {
|
|
|
+ sysMusicScoreCategories.add(course);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ return sysMusicScoreCategories;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private List<SysMusicScoreCategories> getCategoryTreeByIds(List<SysMusicScoreCategories> sysMusicScoreCategories, List<Integer> memberCategoryIdList) {
|
|
|
+ if (CollectionUtils.isEmpty(sysMusicScoreCategories)) {
|
|
|
+ return new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<SysMusicScoreCategories> list = new ArrayList<>();
|
|
|
+ for (SysMusicScoreCategories sysMusicScoreCategory : sysMusicScoreCategories) {
|
|
|
+ if (memberCategoryIdList.contains(sysMusicScoreCategory.getId())) {
|
|
|
+ list.add(sysMusicScoreCategory);
|
|
|
+ } else {
|
|
|
+ List<SysMusicScoreCategories> sysMusicScoreCategories1 = getCategoryTreeByIds(sysMusicScoreCategory.getSysMusicScoreCategoriesList(), memberCategoryIdList);
|
|
|
+ if (CollectionUtils.isNotEmpty(sysMusicScoreCategories1)) {
|
|
|
+ sysMusicScoreCategory.setSysMusicScoreCategoriesList(sysMusicScoreCategories1);
|
|
|
+ list.add(sysMusicScoreCategory);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public static final String BUY_2_QQHE_LOCK = "BUY_2_QQHE_LOCK:";
|
|
|
|
|
|
@Override
|
|
@@ -912,4 +1017,65 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
|
|
|
userPhones.put(sysUser.getId(), sysUser.getPhone());
|
|
|
sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.CLOUD_TEACHER_ORDER_SUCCESS, userPhones, null, 0, null, null);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 通过参数查找结果集,适合分页场景
|
|
|
+ *
|
|
|
+ * @param queryInfo
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public PageInfo<MemberRankSettingWrapper.MemberRankSetting> queryPage2(MemberRankSettingWrapper.MemberRankSettingQuery queryInfo) {
|
|
|
+ PageInfo<MemberRankSettingWrapper.MemberRankSetting> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
+ Map<String, Object> params = new HashMap<String, Object>();
|
|
|
+ MapUtil.populateMap(params, queryInfo);
|
|
|
+
|
|
|
+ List<MemberRankSetting> dataList = null;
|
|
|
+ int count = this.findCount(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = this.getDAO().queryPage(params);
|
|
|
+ }
|
|
|
+ if (count == 0) {
|
|
|
+ dataList = new ArrayList<>();
|
|
|
+ }
|
|
|
+ List<MemberRankSettingWrapper.MemberRankSetting> memberRankSettings = JSON.parseArray(JSON.toJSONString(dataList), MemberRankSettingWrapper.MemberRankSetting.class);
|
|
|
+
|
|
|
+ // 设置曲目数量
|
|
|
+ // 查询曲目ID分类
|
|
|
+ // 分类去重
|
|
|
+ // 曲目表汇总曲目数量
|
|
|
+ if (CollectionUtils.isNotEmpty(memberRankSettings)) {
|
|
|
+ List<Integer> memberRankSettingIds = memberRankSettings.stream().map(MemberRankSettingWrapper.MemberRankSetting::getId).collect(Collectors.toList());
|
|
|
+ List<MemberRankCategoryMapper> categoryMapperList = memberRankCategoryMapperService.getByMemberRankId(memberRankSettingIds);
|
|
|
+ // 分组
|
|
|
+ Map<Integer, List<Integer>> map = categoryMapperList.stream()
|
|
|
+ .collect(Collectors.groupingBy(MemberRankCategoryMapper::getRankId,
|
|
|
+ Collectors.mapping(MemberRankCategoryMapper::getCategoryId, Collectors.toList())));
|
|
|
+
|
|
|
+
|
|
|
+ List<Integer> categoryIds = categoryMapperList.stream().map(MemberRankCategoryMapper::getCategoryId).distinct().collect(Collectors.toList());
|
|
|
+ if (CollectionUtils.isNotEmpty(categoryIds)) {
|
|
|
+ List<MusicSheetWrapper.CategoryMusicNumStat> statList = sysMusicScoreDao.getNumByCategoryIds(categoryIds);
|
|
|
+ Map<Integer, Integer> statMap = statList.stream()
|
|
|
+ .collect(Collectors.toMap(MusicSheetWrapper.CategoryMusicNumStat::getCategoryId, MusicSheetWrapper.CategoryMusicNumStat::getMusicNum));
|
|
|
+
|
|
|
+ memberRankSettings.forEach(e -> {
|
|
|
+ List<Integer> categoryList = map.get(e.getId());
|
|
|
+ if (CollectionUtils.isNotEmpty(categoryList)) {
|
|
|
+ e.setMusicCount(categoryList.stream().map(statMap::get).filter(Objects::nonNull).reduce(Integer::sum).orElse(0));
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ pageInfo.setRows(memberRankSettings);
|
|
|
+ return pageInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void del(Integer id) {
|
|
|
+
|
|
|
+ }
|
|
|
}
|