|
@@ -1,13 +1,12 @@
|
|
|
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;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
@@ -23,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 {
|
|
@@ -124,6 +124,85 @@ public class CourseScheduleRewardsRulesServiceImpl extends BaseServiceImpl<Integ
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public int add(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("请设置梯度");
|
|
|
+ }
|
|
|
+ //同一种课程形式,只能有一个老师
|
|
|
+ List<CourseScheduleRewardsRules> scheduleRewardsRules = courseScheduleRewardsDao.findByTeacherAndCategory(teacherId,vipGroupCategoryIdList);
|
|
|
+ if(scheduleRewardsRules != null && scheduleRewardsRules.size() > 0){
|
|
|
+ throw new BizException("同一种课程类型,只能对应一个老师");
|
|
|
+ }
|
|
|
+ courseScheduleRewardsDao.insert(courseScheduleRewardsRules);
|
|
|
+ return courseScheduleRewardsRules.getId();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ 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);
|
|
|
+ List<CourseScheduleRewardsRules> dataList = null;
|
|
|
+ int count = courseScheduleRewardsDao.findDetailPage(params);
|
|
|
+ if (count > 0) {
|
|
|
+ pageInfo.setTotal(count);
|
|
|
+ params.put("offset", pageInfo.getOffset());
|
|
|
+ dataList = courseScheduleRewardsDao.queryDetailPage(params);
|
|
|
+ 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<>();
|
|
|
+ }
|
|
|
+ pageInfo.setRows(dataList);
|
|
|
+ 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;
|