Pārlūkot izejas kodu

Merge branch 'online1' of http://git.dayaedu.com/yonge/mec into system_fee

zouxuan 4 gadi atpakaļ
vecāks
revīzija
e9227aeed8

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -3038,6 +3038,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         musicGroup.setPaymentExpireDate(DateUtil.toDate(expireDate));
         musicGroup.setStatus(MusicGroupStatusEnum.PAY);
         musicGroupDao.update(musicGroup);
+        List<Map<Integer, String>> mapList = studentRegistrationDao.findMapByMusicGroupId(musicGroupId, 0);
         //所有人开启缴费
         studentRegistrationDao.musicGroupOpenPay(musicGroupId, PaymentStatusEnum.OPEN);
         MusicGroupPaymentCalender regCalender = musicGroupPaymentCalenderDao.findByMusicGroupRegCalender(musicGroupId);
@@ -3050,7 +3051,7 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
         //三方乐团不发送缴费通知
         if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
             //获取所有已报名学员列表
-            HashMap<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(studentRegistrationDao.findMapByMusicGroupId(musicGroupId, 0))), HashMap.class);
+            HashMap<Integer, String> map = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertMybatisMap(mapList)), HashMap.class);
             if (map != null && map.size() > 0) {
                 String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + musicGroupId;
 //                String serverPhone = sysConfigDao.findConfigValue(SysConfigService.SERVER_PHONE);

+ 28 - 28
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -653,20 +653,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		className.append(StringUtils.join(studentNames, ","));
 		vipGroupApplyBaseInfoDto.setName(className.toString());
 
-
-		if(!ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
-			//计算课程相关费用信息
-			Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
-					vipGroupApplyBaseInfoDto.getUserId(), null);
-			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
-			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(costInfo.get("offlineTeacherSalary"));
-			vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
-		}else{
-			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(BigDecimal.ZERO);
-			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(BigDecimal.ZERO);
-			vipGroupApplyBaseInfoDto.setTotalPrice(BigDecimal.ZERO);
-		}
-
 		vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
 		vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.PROGRESS);
 
@@ -710,6 +696,34 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroup.setUpdateTime(now);
 		classGroupDao.insert(classGroup);
 
+		//班级学员关联记录
+		List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
+		for (Integer studentId : studentIdList) {
+			ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
+			classGroupStudentMapper.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
+			classGroupStudentMapper.setClassGroupId(classGroup.getId());
+			classGroupStudentMapper.setUserId(studentId);
+			classGroupStudentMapper.setCreateTime(now);
+			classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
+			classGroupStudentMapper.setGroupType(GroupType.VIP);
+			classGroupStudentMapperList.add(classGroupStudentMapper);
+		}
+		classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
+
+		if(!ActivityCourseType.FREE_VIP.equals(vipGroup.getVipGroupApplyBaseInfo().getActivityCourseType())){
+			//计算课程相关费用信息
+			Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
+					vipGroupApplyBaseInfoDto.getUserId(), null);
+			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
+			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(costInfo.get("offlineTeacherSalary"));
+			vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
+		}else{
+			vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(BigDecimal.ZERO);
+			vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(BigDecimal.ZERO);
+			vipGroupApplyBaseInfoDto.setTotalPrice(BigDecimal.ZERO);
+		}
+		vipGroupDao.update(vipGroupApplyBaseInfoDto);
+
 		//创建班级老师关联记录
 		ClassGroupTeacherMapper classGroupTeacherMapper=new ClassGroupTeacherMapper();
 		classGroupTeacherMapper.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
@@ -734,20 +748,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroupTeacherSalary.setUpdateTime(now);
 		classGroupTeacherSalaryDao.insert(classGroupTeacherSalary);
 
-		//班级学员关联记录
-		List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
-		for (Integer studentId : studentIdList) {
-			ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
-			classGroupStudentMapper.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
-			classGroupStudentMapper.setClassGroupId(classGroup.getId());
-			classGroupStudentMapper.setUserId(studentId);
-			classGroupStudentMapper.setCreateTime(now);
-			classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
-			classGroupStudentMapper.setGroupType(GroupType.VIP);
-			classGroupStudentMapperList.add(classGroupStudentMapper);
-		}
-		classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
-
 		//课程信息调整
 		vipGroup.getCourseSchedules().forEach(courseSchedule -> {
 			courseSchedule.setGroupType(GroupType.VIP);

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentManageDao.xml

@@ -656,7 +656,7 @@
         LEFT JOIN class_group cg ON cgsm.class_group_id_ = cg.id_
         LEFT JOIN vip_group vg ON cg.music_group_id_ = vg.id_
         LEFT JOIN vip_group_activity vgc ON vgc.id_ = vg.vip_group_activity_id_
-        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ != 3
+        WHERE cg.group_type_ = 'VIP' AND cgsm.user_id_ = #{studentId} AND vg.group_status_ NOT IN (3,7)
         <if test="vipGroupName != null">
             AND vg.name_ LIKE CONCAT('%',#{vipGroupName},'%')
         </if>

+ 61 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/TeacherVipGroupController.java

@@ -4,11 +4,11 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
 import com.ym.mec.biz.dal.dao.VipGroupCategoryDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
 import com.ym.mec.biz.dal.dto.StudentVipDouble11Dto;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.dto.VipGroupCostCountParamsDto;
-import com.ym.mec.biz.dal.entity.Teacher;
-import com.ym.mec.biz.dal.entity.VipGroupCategory;
+import com.ym.mec.biz.dal.entity.*;
 import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
 import com.ym.mec.biz.service.StudentManageService;
 import com.ym.mec.biz.service.VipGroupService;
@@ -48,6 +48,8 @@ public class TeacherVipGroupController extends BaseController {
 	private StudentManageService studentManageService;
 	@Autowired
 	private VipGroupCategoryDao vipGroupCategoryDao;
+	@Autowired
+	private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
 
 	@ApiOperation("vip课申请")
 	@PostMapping("/vipGroupApply")
@@ -177,4 +179,61 @@ public class TeacherVipGroupController extends BaseController {
 		return succeed(studentManageService.queryDouble11Students(queryInfo));
 	}
 
+	@ApiOperation(value = "获取六一活动学生列表")
+	@GetMapping("queryChildrenDayStudentList")
+	public Object queryStudentList(StudentManageQueryInfo queryInfo){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		Teacher teacher = teacherDao.get(sysUser.getId());
+		if(Objects.isNull(teacher)){
+			return failed("教师信息不存在");
+		}
+		if(Objects.nonNull(teacher.getTeacherOrganId())){
+			queryInfo.setOrganId(teacher.getTeacherOrganId().toString());
+		}
+		if(StringUtils.isNotBlank(teacher.getFlowOrganRange())){
+			queryInfo.setOrganId(queryInfo.getOrganId()+","+teacher.getFlowOrganRange());
+		}
+		if(StringUtils.isBlank(queryInfo.getOrganId())){
+			return succeed(Collections.EMPTY_LIST);
+		}
+
+		queryInfo.setIsExport(false);
+		return succeed(studentManageService.findStudentsByOrganId(queryInfo));
+	}
+
+	@ApiOperation(value = "创建六一活动vip课")
+	@PostMapping("/createActivityVipGroup")
+	public Object createActivityVipGroup(@RequestBody VipGroupApplyDto vipGroupApplyDto){
+		SysUser sysUser = sysUserFeignService.queryUserInfo();
+		if (sysUser == null) {
+			return failed("用户信息获取失败");
+		}
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(sysUser.getId());
+		Integer userId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getUserId();
+		Teacher teacher = teacherDao.get(userId);
+		if(Objects.isNull(teacher)){
+			return failed("请指定指导老师!");
+		}
+		Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
+		SysUser student = teacherDao.getUser(firstStudentId);
+		if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+			return failed("学员信息异常");
+		}
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
+		for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
+			courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
+		}
+		VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+		if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
+			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
+			vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+		}
+
+		vipGroupApplyDto.getVipGroupApplyBaseInfo().setEducationalTeacherId(sysUser.getId());
+		return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
+	}
+
 }

+ 49 - 0
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupActivityController.java

@@ -16,6 +16,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 
@@ -122,4 +123,52 @@ public class VipGroupActivityController extends BaseController {
         }
     }
 
+    @ApiOperation(value = "获取六一活动方案")
+    @GetMapping("/getChildrenDayActivitys")
+    public Object findByVipGroupCategory(Long categoryId, String studentIds){
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        if(sysUser == null){
+            return failed("用户信息获取失败");
+        }
+        if(StringUtils.isBlank(studentIds)){
+            return failed("请选择学员");
+        }
+
+        SysConfig activityIdConfig = sysConfigService.findByParamName(SysConfigService.CHILDREN_DAY_VIP_ACTIVITY_IDS);
+        if(Objects.isNull(activityIdConfig)||StringUtils.isBlank(activityIdConfig.getParanValue())){
+            return succeed();
+        }
+
+        Set<Integer> activityIds = Arrays.stream(activityIdConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
+
+        List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
+        List<Student> students = studentDao.findByStudentIds(userIds);
+        if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
+            return failed("学员信息不存在");
+        }
+        long newStudentNum = students.stream().filter(s -> s.getIsNewUser()).count();
+
+        Integer applyToStudentType = -1;
+        if(newStudentNum==0){
+            applyToStudentType = 0;
+        }else if(newStudentNum==userIds.size()){
+            applyToStudentType = 1;
+        }
+
+        SysUser student = teacherDao.getUser(userIds.get(0));
+        if(Objects.isNull(student)){
+            return failed("学员信息不存在");
+        }
+        String organIds = student.getOrganId().toString();
+        List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(categoryId, organIds, sysUser.getId(), applyToStudentType, null);
+        Iterator<VipGroupActivity> iterator = vipGroupActivities.iterator();
+        while (iterator.hasNext()){
+            VipGroupActivity vipGroupActivity = iterator.next();
+            if(!activityIds.contains(vipGroupActivity.getId())){
+                iterator.remove();
+            }
+        }
+        return succeed(vipGroupActivities);
+    }
+
 }

+ 2 - 2
mec-teacher/src/main/java/com/ym/mec/teacher/controller/VipGroupCategoryController.java

@@ -45,7 +45,7 @@ public class VipGroupCategoryController extends BaseController {
 
 	@ApiOperation("全查询")
 	@GetMapping(value = "/queryAll")
-	public Object queryAll(Integer organId) {
+	public Object queryAll(Integer organId, Integer includeMusicTheory) {
 		SysUser user = sysUserFeignService.queryUserInfo();
 		if (Objects.isNull(user)) {
 			return failed(HttpStatus.FORBIDDEN, "请登录");
@@ -62,7 +62,7 @@ public class VipGroupCategoryController extends BaseController {
 				return failed("教师信息不存在");
 			}
 			List<VipGroupCategory> result = vipGroupCategoryService.findAllByOrgan(teacher.getTeacherOrganId().toString());
-			if(!CollectionUtils.isEmpty(result)){
+			if(!CollectionUtils.isEmpty(result)&&(Objects.isNull(includeMusicTheory)||includeMusicTheory<=0)){
 				result = result.stream().filter(c->!c.getMusicTheory()).collect(Collectors.toList());
 			}
 			return succeed(result);

+ 13 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduVipGroupManageController.java

@@ -3,9 +3,11 @@ package com.ym.mec.web.controller.education;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.VipGroupDefaultClassesUnitPriceDao;
 import com.ym.mec.biz.dal.dto.VipGroupApplyDto;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.VipGroupDefaultClassesUnitPrice;
 import com.ym.mec.biz.service.VipGroupService;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.entity.HttpResponseResult;
@@ -35,6 +37,8 @@ public class EduVipGroupManageController extends BaseController {
     private SysUserFeignService sysUserFeignService;
     @Autowired
     private TeacherDao teacherDao;
+    @Autowired
+    private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
 
     @ApiOperation(value = "创建六一活动vip课")
     @PostMapping("/createActivityVipGroup")
@@ -59,6 +63,15 @@ public class EduVipGroupManageController extends BaseController {
         for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
             courseSchedule.setEndClassTime(DateUtil.addMinutes(courseSchedule.getStartClassTime(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getSingleClassMinutes()));
         }
+
+        if(Objects.nonNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId())){
+            VipGroupDefaultClassesUnitPrice vipGroupDefaultClassesUnitPrice = vipGroupDefaultClassesUnitPriceDao.getByVipGroupCategory(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId(), vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId());
+            if(Objects.nonNull(vipGroupDefaultClassesUnitPrice)){
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOnlineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOnlineClassesUnitPrice());
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOfflineClassesUnitPrice(vipGroupDefaultClassesUnitPrice.getOfflineClassesUnitPrice());
+            }
+        }
+
         vipGroupApplyDto.getVipGroupApplyBaseInfo().setEducationalTeacherId(sysUser.getId());
         return vipGroupService.createActivityVipGroup(vipGroupApplyDto);
     }