|
@@ -1,5 +1,8 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
@@ -86,6 +89,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
private ImFeignService imFeignService;
|
|
|
@Autowired
|
|
|
private JiaRiFeignService jiaRiFeignService;
|
|
|
+ @Autowired
|
|
|
+ private SysConfigService sysConfigService;
|
|
|
|
|
|
|
|
|
@Override
|
|
@@ -418,16 +423,43 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
public List<ClassGroupTeachersDto> getClassGroupAndTeacherSalary(String musicGroupId, SalarySettlementTypeEnum type, Integer classGroupId) throws Exception {
|
|
|
//乐团班级及班级老师
|
|
|
List<ClassGroupTeachersDto> classGroupAndTeachers = getClassGroupAndTeachers(musicGroupId, "NORMAL,MIX,HIGH", classGroupId);
|
|
|
-
|
|
|
+ BigDecimal zeroSalary = new BigDecimal(0);
|
|
|
for (ClassGroupTeachersDto classGroupAndTeacher : classGroupAndTeachers) {
|
|
|
//班级的教师列表
|
|
|
List<ClassGroupTeacherMapper> classGroupTeacherMapperList = classGroupAndTeacher.getClassGroupTeacherMapperList();
|
|
|
for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
|
|
|
//获取老师的默认课酬
|
|
|
String courseType = classGroupAndTeacher.getType().equals(ClassGroupTypeEnum.NORMAL) ? "SINGLE" : classGroupAndTeacher.getType().getCode();
|
|
|
+
|
|
|
List<TeacherDefaultMusicGroupSalary> teacherSalaryByUserIdAndType = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacherMapper.getUserId(), courseType, type);
|
|
|
- if (teacherSalaryByUserIdAndType == null) {
|
|
|
- throw new Exception("userId:" + classGroupTeacherMapper.getUserId() + "名字:" + classGroupTeacherMapper.getUserName() + " 老师没有设置课酬");
|
|
|
+ //老师课酬没有设置,设置成0
|
|
|
+ if (teacherSalaryByUserIdAndType == null || teacherSalaryByUserIdAndType.size()==0) {
|
|
|
+ if (type.equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
|
|
|
+ String paramName = courseType.equals("SINGLE") ? "sigle_gradient_settlement_rule" : (courseType.equals("MIX") ? "max_gradient_settlement_rule" : "high_gradient_settlement_rule");
|
|
|
+ SysConfig sysConfig = sysConfigService.findByParamName(paramName);
|
|
|
+
|
|
|
+ List<Map<String, String>> configs = JSONArray.parseObject(sysConfig.getParanValue(), List.class);
|
|
|
+ for (Map<String, String> config : configs) {
|
|
|
+ TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = new TeacherDefaultMusicGroupSalary();
|
|
|
+ teacherDefaultMusicGroupSalary.setDurationMin(Integer.parseInt(config.get("min")));
|
|
|
+ teacherDefaultMusicGroupSalary.setDurationMax(Integer.parseInt(config.get("max")));
|
|
|
+ teacherDefaultMusicGroupSalary.setSettlementType(type);
|
|
|
+ teacherDefaultMusicGroupSalary.setUserId(classGroupTeacherMapper.getUserId());
|
|
|
+ teacherDefaultMusicGroupSalary.setAssistantTeacherSalary(zeroSalary);
|
|
|
+ teacherDefaultMusicGroupSalary.setMainTeacherSalary(zeroSalary);
|
|
|
+
|
|
|
+ teacherSalaryByUserIdAndType.add(teacherDefaultMusicGroupSalary);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = new TeacherDefaultMusicGroupSalary();
|
|
|
+ teacherDefaultMusicGroupSalary.setAssistantTeacherSalary(zeroSalary);
|
|
|
+ teacherDefaultMusicGroupSalary.setMainTeacherSalary(zeroSalary);
|
|
|
+ teacherDefaultMusicGroupSalary.setSettlementType(type);
|
|
|
+ teacherDefaultMusicGroupSalary.setUserId(classGroupTeacherMapper.getUserId());
|
|
|
+
|
|
|
+ teacherSalaryByUserIdAndType.add(teacherDefaultMusicGroupSalary);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
classGroupTeacherMapper.setTeacherDefaultMusicGroupSalaryList(teacherSalaryByUserIdAndType);
|
|
|
}
|
|
@@ -521,7 +553,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
Map<Integer, Long> numsMap = MapUtil.convertMybatisMap(nums);
|
|
|
imGroupModels.forEach(e -> {
|
|
|
Long num = numsMap.get(Integer.parseInt(e.getId()));
|
|
|
- e.setCount((int)(num == null ? 0L : num) + e.getCount());
|
|
|
+ e.setCount((int) (num == null ? 0L : num) + e.getCount());
|
|
|
});
|
|
|
}
|
|
|
return imGroupModels;
|
|
@@ -530,7 +562,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
@Override
|
|
|
public List<ImUserModel> findGroupUsers(Integer groupId) {
|
|
|
List<ImUserModel> students = classGroupDao.findGroupUsers(groupId);
|
|
|
- if(students == null){
|
|
|
+ if (students == null) {
|
|
|
students = new ArrayList<>();
|
|
|
}
|
|
|
List<ImUserModel> teachers = classGroupDao.findGroupTeacher(groupId);
|
|
@@ -867,7 +899,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
int times = 0;
|
|
|
|
|
|
Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- if(classGroup4MixDto.getHoliday()) {
|
|
|
+ if (classGroup4MixDto.getHoliday()) {
|
|
|
Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
|
|
|
holidayDays = holiday.get(now.getYear());
|
|
|
}
|
|
@@ -1068,7 +1100,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
|
int times = 0;
|
|
|
Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- if(classGroup4MixDto.getHoliday()) {
|
|
|
+ if (classGroup4MixDto.getHoliday()) {
|
|
|
Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
|
|
|
holidayDays = holiday.get(now.getYear());
|
|
|
}
|
|
@@ -1266,7 +1298,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
|
|
|
BigDecimal expectPrice = new BigDecimal("0");
|
|
|
int times = 0;
|
|
|
Map<String, Integer> holidayDays = new HashMap<>();
|
|
|
- if(classGroup4MixDto.getHoliday()) {
|
|
|
+ if (classGroup4MixDto.getHoliday()) {
|
|
|
Map<Integer, Map<String, Integer>> holiday = jiaRiFeignService.query(now.getYear());
|
|
|
holidayDays = holiday.get(now.getYear());
|
|
|
}
|