| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 |
- package com.ym.mec.teacher.controller;
- 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.*;
- import com.ym.mec.biz.dal.page.StudentManageQueryInfo;
- import com.ym.mec.biz.service.StudentManageService;
- import com.ym.mec.biz.service.VipGroupService;
- import com.ym.mec.common.controller.BaseController;
- import com.ym.mec.common.entity.HttpResponseResult;
- import com.ym.mec.util.date.DateUtil;
- import com.yonge.log.model.AuditLogAnnotation;
- 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.http.HttpStatus;
- import org.springframework.security.access.prepost.PreAuthorize;
- import org.springframework.transaction.annotation.Transactional;
- import org.springframework.util.CollectionUtils;
- import org.springframework.web.bind.annotation.*;
- import java.util.*;
- import java.util.stream.Collectors;
- /**
- * @Author Joburgess
- * @Date 2019/9/21
- */
- @Api(tags = "vip课-教师端")
- @RequestMapping("teacherVipGroup")
- @RestController
- public class TeacherVipGroupController extends BaseController {
- @Autowired
- private VipGroupService vipGroupService;
- @Autowired
- private SysUserFeignService sysUserFeignService;
- @Autowired
- private TeacherDao teacherDao;
- @Autowired
- private StudentManageService studentManageService;
- @Autowired
- private VipGroupCategoryDao vipGroupCategoryDao;
- @Autowired
- private VipGroupDefaultClassesUnitPriceDao vipGroupDefaultClassesUnitPriceDao;
- @ApiOperation("vip课申请")
- @PostMapping("/vipGroupApply")
- @AuditLogAnnotation(operateName = "vip课申请")
- public Object vipGroupApply(@RequestBody VipGroupApplyDto vipGroupApplyDto) {
- SysUser user = sysUserFeignService.queryUserInfo();
- if (Objects.isNull(user)) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- Integer userId = user.getId();
- Teacher teacher = teacherDao.get(userId);
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(userId);
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(userId));
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(teacher.getTeacherOrganId().toString());
- // vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
- 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());
- return vipGroupService.createVipGroup(vipGroupApplyDto);
- }
- @ApiOperation("vip课申请-双11")
- @PostMapping("/vipGroupApplyForDouble11")
- @Transactional(rollbackFor = Exception.class)
- public Object vipGroupApplyForDouble11(@RequestBody VipGroupApplyDto vipGroupApplyDto) {
- SysUser user = sysUserFeignService.queryUserInfo();
- if (Objects.isNull(user)) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- Integer userId = user.getId();
- Teacher teacher = teacherDao.get(userId);
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setUserId(userId);
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setTeacherId(Long.valueOf(userId));
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganIdList(teacher.getTeacherOrganId().toString());
- // vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(teacher.getTeacherOrganId());
- 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());
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setRegistrationStartTime(DateUtil.addDays(new Date(), -1));
- vipGroupApplyDto.getVipGroupApplyBaseInfo().setPaymentExpireDate(vipGroupApplyDto.getVipGroupApplyBaseInfo().getRegistrationStartTime());
- vipGroupApplyDto.setOnlyProgress(true);
- VipGroupCategory vipGroupCategory = vipGroupCategoryDao.get(vipGroupApplyDto.getVipGroupApplyBaseInfo().getVipGroupCategoryId());
- if(Objects.isNull(vipGroupCategory)){
- return failed("课程形式错误");
- }
- List<Integer> studentIds = Arrays.stream(vipGroupApplyDto.getVipGroupApplyBaseInfo().getStudentIdList().split(",")).map(Integer::valueOf).collect(Collectors.toList());
- List<StudentVipDouble11Dto> studentDouble11Info = studentManageService.getStudentDouble11Info(studentIds);
- Map<Integer, StudentVipDouble11Dto> idStudentInfoMap = new HashMap<>();
- if(!CollectionUtils.isEmpty(studentDouble11Info)){
- idStudentInfoMap = studentDouble11Info.stream().collect(Collectors.toMap(StudentVipDouble11Dto::getUserId, s->s, (s1, s2)->s1));
- }
- for (Integer studentId : studentIds) {
- StudentVipDouble11Dto studentVipDouble11Dto = idStudentInfoMap.get(studentId);
- if(Objects.isNull(studentVipDouble11Dto)){
- return failed("部分学员可排课次不足");
- }
- boolean enableApply = false;
- switch (vipGroupCategory.getStudentNum()){
- case 1:
- enableApply = studentVipDouble11Dto.getCourseOneToOneTime()>=vipGroupApplyDto.getVipGroupApplyBaseInfo().getTotalClassTimes();
- break;
- case 2:
- enableApply = studentVipDouble11Dto.getCourseOneToTwoTime()>=vipGroupApplyDto.getVipGroupApplyBaseInfo().getTotalClassTimes();
- break;
- default:
- break;
- }
- if(!enableApply){
- return failed("部分学员可排课次不足");
- }
- }
- HttpResponseResult result = vipGroupService.createVipGroup(vipGroupApplyDto);
- if(result.getCode()==200){
- vipGroupService.addVipGroupStudents(vipGroupApplyDto.getVipGroupApplyBaseInfo().getId(), studentIds, new HashMap<>());
- }
- return result;
- }
- @ApiOperation("获取vip课课程和课酬总费用")
- @PostMapping("/getVipGroupCostCount")
- public Object getVipGroupCostCount(VipGroupCostCountParamsDto vipGroupCostCountParamsDto) {
- // return succeed(vipGroupService.vipGroupCostCount(vipGroupCostCountParamsDto));
- return succeed();
- }
- @ApiOperation("获取vip课教学点")
- @PostMapping("/getSchools")
- public Object getSchools() {
- SysUser user = sysUserFeignService.queryUserInfo();
- if (Objects.isNull(user)) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- return succeed(vipGroupService.querySchoolByUserId(user.getId()));
- }
- @ApiOperation(value = "获取教师所在分部学生列表")
- @GetMapping("/queryStudentsWithTeacher")
- public Object queryStudentsWithTeacher(StudentManageQueryInfo queryInfo){
- SysUser user = sysUserFeignService.queryUserInfo();
- if (Objects.isNull(user)) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- queryInfo.setTeacherId(user.getId());
- return succeed(studentManageService.queryStudentsWithTeacher(queryInfo));
- }
- @ApiOperation(value = "获取参与双十一活动学员列表")
- @GetMapping("/queryDouble11Students")
- public HttpResponseResult queryDouble11Students(StudentManageQueryInfo queryInfo){
- SysUser user = sysUserFeignService.queryUserInfo();
- if (Objects.isNull(user)) {
- return failed(HttpStatus.FORBIDDEN, "请登录");
- }
- queryInfo.setTeacherId(user.getId());
- 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);
- }
- }
|