|
@@ -1,13 +1,10 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.Collections;
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.page.RewardsRulesQueryInfo;
|
|
|
import com.ym.mec.common.exception.BizException;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -25,6 +22,7 @@ import com.ym.mec.common.page.QueryInfo;
|
|
|
import com.ym.mec.common.service.impl.BaseServiceImpl;
|
|
|
import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.json.JsonUtil;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
@Service
|
|
|
public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integer, CourseScheduleRewardsRules> implements CourseScheduleRewardsRulesService {
|
|
@@ -127,6 +125,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
public int add(CourseScheduleRewardsRules courseScheduleRewardsRules) {
|
|
|
String teacherId = courseScheduleRewardsRules.getTeacherId();
|
|
|
String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
|
|
@@ -146,7 +145,7 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageInfo<CourseScheduleRewardsRules> queryDetailPage(QueryInfo queryInfo) {
|
|
|
+ public PageInfo<CourseScheduleRewardsRules> queryDetailPage(RewardsRulesQueryInfo queryInfo) {
|
|
|
PageInfo<CourseScheduleRewardsRules> pageInfo = new PageInfo<>(queryInfo.getPage(), queryInfo.getRows());
|
|
|
Map<String, Object> params = new HashMap<>();
|
|
|
MapUtil.populateMap(params, queryInfo);
|
|
@@ -156,9 +155,16 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
|
|
|
pageInfo.setTotal(count);
|
|
|
params.put("offset", pageInfo.getOffset());
|
|
|
dataList = courseScheduleRewardsDao.queryDetailPage(params);
|
|
|
-// for (CourseScheduleRewardsRules rules : dataList) {
|
|
|
-// rules.setOrganNameList(organizationDao.findByOrganIds(rules.getOrganId()).stream().collect(Collectors.joining("、")));
|
|
|
-// }
|
|
|
+ List<Integer> rewardsIds = dataList.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ //获取教师列表
|
|
|
+ if(rewardsIds != null && rewardsIds.size() > 0){
|
|
|
+ Map<Integer,String> teacherNameMap = MapUtil.convertIntegerMap(courseScheduleRewardsDao.findTeacherNames(rewardsIds));
|
|
|
+ Map<Integer,String> vipCategoryNameMap = MapUtil.convertIntegerMap(courseScheduleRewardsDao.findVipCategoryNames(rewardsIds));
|
|
|
+ dataList.forEach(e->{
|
|
|
+ e.setTeacherNames(teacherNameMap.get(e.getId()));
|
|
|
+ e.setVipGroupCategoryNameList(vipCategoryNameMap.get(e.getId()));
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
if (count == 0) {
|
|
|
dataList = new ArrayList<>();
|
|
@@ -167,6 +173,36 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
|
|
|
return pageInfo;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public int updateDetail(CourseScheduleRewardsRules courseScheduleRewardsRules) {
|
|
|
+ String teacherId = courseScheduleRewardsRules.getTeacherId();
|
|
|
+ String vipGroupCategoryIdList = courseScheduleRewardsRules.getVipGroupCategoryIdList();
|
|
|
+ if(StringUtils.isEmpty(teacherId) || StringUtils.isEmpty(vipGroupCategoryIdList)){
|
|
|
+ throw new BizException("参数校验异常");
|
|
|
+ }
|
|
|
+ if(StringUtils.isEmpty(courseScheduleRewardsRules.getRewardsRulesJson())){
|
|
|
+ throw new BizException("请设置梯度");
|
|
|
+ }
|
|
|
+ if(courseScheduleRewardsRules.getId() == null){
|
|
|
+ throw new BizException("参数校验异常");
|
|
|
+ }
|
|
|
+ //同一种课程形式,只能有一个老师
|
|
|
+ List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
|
|
|
+ if(scheduleRewardsRules.size() > 1){
|
|
|
+ throw new BizException("同一种课程类型,只能对应一个老师");
|
|
|
+ }
|
|
|
+ if(scheduleRewardsRules.size() == 1){
|
|
|
+ CourseScheduleRewardsRules rewardsRules = scheduleRewardsRules.get(0);
|
|
|
+ if(!rewardsRules.getId().equals(courseScheduleRewardsRules.getId())){
|
|
|
+ throw new BizException("同一种课程类型,只能对应一个老师");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ courseScheduleRewardsRules.setUpdateTime(new Date());
|
|
|
+ courseScheduleRewardsDao.update(courseScheduleRewardsRules);
|
|
|
+ return courseScheduleRewardsRules.getId();
|
|
|
+ }
|
|
|
+
|
|
|
class RewardsRules implements Comparable<RewardsRules> {
|
|
|
|
|
|
private int min;
|