VipGroupActivityController.java 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  1. package com.ym.mec.teacher.controller;
  2. import com.ym.mec.auth.api.client.SysUserFeignService;
  3. import com.ym.mec.auth.api.entity.SysUser;
  4. import com.ym.mec.biz.dal.dao.StudentDao;
  5. import com.ym.mec.biz.dal.dao.TeacherDao;
  6. import com.ym.mec.biz.dal.dto.ActivityQueryDto;
  7. import com.ym.mec.biz.dal.dto.VipGroupActivityAddDto;
  8. import com.ym.mec.biz.dal.entity.Student;
  9. import com.ym.mec.biz.dal.entity.SysConfig;
  10. import com.ym.mec.biz.dal.entity.VipGroupActivity;
  11. import com.ym.mec.biz.dal.page.ActivityStudentQueryInfo;
  12. import com.ym.mec.biz.dal.page.VipGroupActivityQueryInfo;
  13. import com.ym.mec.biz.service.SysConfigService;
  14. import com.ym.mec.biz.service.VipGroupActivityService;
  15. import com.ym.mec.common.controller.BaseController;
  16. import io.swagger.annotations.Api;
  17. import io.swagger.annotations.ApiOperation;
  18. import org.apache.commons.lang3.StringUtils;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.util.CollectionUtils;
  21. import org.springframework.web.bind.annotation.*;
  22. import java.util.*;
  23. import java.util.stream.Collectors;
  24. /**
  25. * @Author Joburgess
  26. * @Date 2019/10/1
  27. */
  28. @Api(tags = "vip课活动")
  29. @RequestMapping("vipGroupActivity")
  30. @RestController
  31. public class VipGroupActivityController extends BaseController {
  32. @Autowired
  33. private VipGroupActivityService vipGroupActivityService;
  34. @Autowired
  35. private SysUserFeignService sysUserFeignService;
  36. @Autowired
  37. private SysConfigService sysConfigService;
  38. @Autowired
  39. private TeacherDao teacherDao;
  40. @Autowired
  41. private StudentDao studentDao;
  42. @ApiOperation(value = "获取老师待排课的活动方案列表")
  43. @RequestMapping("/queryWaitCourseActivity")
  44. public Object queryWaitCourseActivity(){
  45. SysUser sysUser = sysUserFeignService.queryUserInfo();
  46. if(sysUser == null){
  47. return failed("用户信息获取失败");
  48. }
  49. return succeed(vipGroupActivityService.queryWaitCourseActivity(sysUser.getId(),null));
  50. }
  51. @ApiOperation(value = "获取活动待排课学员数量")
  52. @RequestMapping("/getActivityWaitCourseStudentNum")
  53. public Object getActivityWaitCourseStudentNum(Integer activityId){
  54. SysUser sysUser = sysUserFeignService.queryUserInfo();
  55. if(sysUser == null){
  56. return failed("用户信息获取失败");
  57. }
  58. return succeed(vipGroupActivityService.getActivityWaitCourseStudentNum(sysUser.getId(),activityId));
  59. }
  60. @ApiOperation(value = "获取活动学员课排课次数")
  61. @RequestMapping("/getActivityStudentCanCourseNum")
  62. public Object getActivityStudentCanCourseNum(ActivityStudentQueryInfo queryInfo){
  63. SysUser sysUser = sysUserFeignService.queryUserInfo();
  64. if(sysUser == null){
  65. return failed("用户信息获取失败");
  66. }
  67. queryInfo.setUserId(sysUser.getId());
  68. return succeed(vipGroupActivityService.getActivityStudentCanCourseNum(queryInfo));
  69. }
  70. @ApiOperation(value = "新增vip课活动方案")
  71. @PostMapping("/addVipGroupActivity")
  72. public Object addVipGroupActivity(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
  73. return succeed(vipGroupActivityService.addVipGroupActivity(vipGroupActivityAddDto));
  74. }
  75. @ApiOperation(value = "分页查询活动方案")
  76. @GetMapping("/queryPage")
  77. public Object queryPage(VipGroupActivityQueryInfo queryInfo){
  78. return succeed(vipGroupActivityService.queryPage(queryInfo));
  79. }
  80. @ApiOperation(value = "修改活动方案")
  81. @PostMapping("/update")
  82. public Object update(@RequestBody VipGroupActivityAddDto vipGroupActivityAddDto){
  83. SysUser sysUser = sysUserFeignService.queryUserInfo();
  84. if(sysUser == null){
  85. return failed("用户信息获取失败");
  86. }
  87. vipGroupActivityService.updateVipGroupActivity(vipGroupActivityAddDto, sysUser.getId());
  88. return succeed();
  89. }
  90. @ApiOperation(value = "根据课程类型获取对应课程活动方案")
  91. @GetMapping("/findByVipGroupCategory")
  92. public Object findByVipGroupCategory(ActivityQueryDto activityQueryDto){
  93. SysUser sysUser = sysUserFeignService.queryUserInfo();
  94. if(sysUser == null){
  95. return failed("用户信息获取失败");
  96. }
  97. activityQueryDto.setTeacherId(sysUser.getId());
  98. String studentIds = activityQueryDto.getStudentIds();
  99. if(StringUtils.isBlank(studentIds)){
  100. return failed("请选择学员");
  101. }
  102. List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
  103. List<Student> students = studentDao.findByStudentIds(userIds);
  104. if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
  105. return failed("学员信息不存在");
  106. }
  107. long newStudentNumCount = students.stream().filter(s -> s.getIsNewUser()).count();
  108. long memberCount = students.stream().filter(e -> e.getMemberRankSettingId() != null).count();
  109. if(newStudentNumCount == 0){
  110. activityQueryDto.setNewStudentNum(1);
  111. }else if(newStudentNumCount == userIds.size()){
  112. activityQueryDto.setNewStudentNum(0);
  113. }
  114. if(memberCount == 0){
  115. activityQueryDto.setMemberNum(1);
  116. }else if(memberCount == userIds.size()){
  117. activityQueryDto.setMemberNum(0);
  118. }
  119. SysUser student = teacherDao.getUser(userIds.get(0));
  120. if(Objects.isNull(student)){
  121. return failed("学员信息不存在");
  122. }
  123. activityQueryDto.setOrganId(student.getOrganId().toString());
  124. activityQueryDto.setIncludeClosed(activityQueryDto.isOnlySpecialActivity()?true:null);
  125. activityQueryDto.setEnable(true);
  126. List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(activityQueryDto);
  127. SysConfig sysConfig = sysConfigService.findByParamName(SysConfigService.VIP_SPECIAL_ACTIVITY_IDS);
  128. if(activityQueryDto.isOnlySpecialActivity()){
  129. if(Objects.isNull(sysConfig)|| StringUtils.isBlank(sysConfig.getParanValue())){
  130. return succeed(Collections.EMPTY_LIST);
  131. }
  132. Set<Integer> specialActivityIds = Arrays.stream(sysConfig.getParanValue().split(",")).map(Integer::valueOf).collect(Collectors.toSet());
  133. List<VipGroupActivity> results = vipGroupActivities.stream().filter(e -> specialActivityIds.contains(e.getId())).collect(Collectors.toList());
  134. return succeed(results);
  135. }else{
  136. if(Objects.nonNull(sysConfig)&&StringUtils.isNotBlank(sysConfig.getParanValue())){
  137. Set<Integer> activityIds = Arrays.stream(sysConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
  138. Iterator<VipGroupActivity> iterator = vipGroupActivities.iterator();
  139. while(iterator.hasNext()){
  140. VipGroupActivity vipGroupActivity = iterator.next();
  141. if(activityIds.contains(vipGroupActivity.getId())){
  142. iterator.remove();
  143. }
  144. }
  145. }
  146. return succeed(vipGroupActivities);
  147. }
  148. }
  149. @ApiOperation(value = "获取六一活动方案")
  150. @GetMapping("/getChildrenDayActivitys")
  151. public Object findByVipGroupCategory1(ActivityQueryDto activityQueryDto){
  152. SysUser sysUser = sysUserFeignService.queryUserInfo();
  153. if(sysUser == null){
  154. return failed("用户信息获取失败");
  155. }
  156. activityQueryDto.setTeacherId(sysUser.getId());
  157. String studentIds = activityQueryDto.getStudentIds();
  158. if(StringUtils.isBlank(studentIds)){
  159. return failed("请选择学员");
  160. }
  161. SysConfig activityIdConfig = sysConfigService.findByParamName(SysConfigService.CHILDREN_DAY_VIP_ACTIVITY_IDS);
  162. if(Objects.isNull(activityIdConfig)||StringUtils.isBlank(activityIdConfig.getParanValue())){
  163. return succeed();
  164. }
  165. Set<Integer> activityIds = Arrays.stream(activityIdConfig.getParanValue().split(",")).map(id->Integer.valueOf(id)).collect(Collectors.toSet());
  166. List<Integer> userIds = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
  167. List<Student> students = studentDao.findByStudentIds(userIds);
  168. if(CollectionUtils.isEmpty(students)||students.size()!=userIds.size()){
  169. return failed("学员信息不存在");
  170. }
  171. long newStudentNumCount = students.stream().filter(s -> s.getIsNewUser()).count();
  172. long memberCount = students.stream().filter(e -> e.getMemberRankSettingId() != null).count();
  173. if(newStudentNumCount == 0){
  174. activityQueryDto.setNewStudentNum(1);
  175. }else if(newStudentNumCount == userIds.size()){
  176. activityQueryDto.setNewStudentNum(0);
  177. }
  178. if(memberCount == 0){
  179. activityQueryDto.setMemberNum(1);
  180. }else if(memberCount == userIds.size()){
  181. activityQueryDto.setMemberNum(0);
  182. }
  183. SysUser student = teacherDao.getUser(userIds.get(0));
  184. if(Objects.isNull(student)){
  185. return failed("学员信息不存在");
  186. }
  187. activityQueryDto.setOrganId(student.getOrganId().toString());
  188. activityQueryDto.setEnable(true);
  189. List<VipGroupActivity> vipGroupActivities = vipGroupActivityService.findByVipGroupCategory(activityQueryDto);
  190. Iterator<VipGroupActivity> iterator = vipGroupActivities.iterator();
  191. while (iterator.hasNext()){
  192. VipGroupActivity vipGroupActivity = iterator.next();
  193. if(!activityIds.contains(vipGroupActivity.getId())){
  194. iterator.remove();
  195. }
  196. }
  197. return succeed(vipGroupActivities);
  198. }
  199. }