MusicGroupPaymentCalenderController.java 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. package com.ym.mec.web.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.ClassGroupStudentMapperDao;
  5. import com.ym.mec.biz.dal.dao.EmployeeDao;
  6. import com.ym.mec.biz.dal.entity.Employee;
  7. import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
  8. import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
  9. import com.ym.mec.biz.dal.entity.StudentRegistration;
  10. import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
  11. import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
  12. import com.ym.mec.biz.service.MusicGroupPaymentCalenderCourseSettingsService;
  13. import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
  14. import com.ym.mec.common.controller.BaseController;
  15. import com.ym.mec.common.entity.HttpResponseResult;
  16. import com.ym.mec.common.exception.BizException;
  17. import io.swagger.annotations.Api;
  18. import io.swagger.annotations.ApiOperation;
  19. import org.apache.commons.lang3.StringUtils;
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.http.MediaType;
  22. import org.springframework.security.access.prepost.PreAuthorize;
  23. import org.springframework.ui.ModelMap;
  24. import org.springframework.util.CollectionUtils;
  25. import org.springframework.web.bind.annotation.*;
  26. import java.util.*;
  27. import java.util.stream.Collectors;
  28. @RequestMapping("musicGroupPaymentCalender")
  29. @Api(tags = "乐团缴费日历服务")
  30. @RestController
  31. public class MusicGroupPaymentCalenderController extends BaseController {
  32. @Autowired
  33. private MusicGroupPaymentCalenderService musicGroupPaymentCalenderService;
  34. @Autowired
  35. private MusicGroupPaymentCalenderCourseSettingsService musicGroupPaymentCalenderCourseSettingsService;
  36. @Autowired
  37. private SysUserFeignService sysUserFeignService;
  38. @Autowired
  39. private EmployeeDao employeeDao;
  40. @Autowired
  41. private ClassGroupStudentMapperDao classGroupStudentMapperDao;
  42. @ApiOperation(value = "分页查询乐团缴费日历列表")
  43. @GetMapping(value = "/queryPage", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  44. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/queryPage')")
  45. public Object queryPage(MusicGroupPaymentCalenderQueryInfo queryInfo) {
  46. return succeed(musicGroupPaymentCalenderService.queryPage(queryInfo));
  47. }
  48. @ApiOperation(value = "获取缴费信息")
  49. @GetMapping("/getDetail")
  50. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/getDetail')")
  51. public Object getDetail(Long id) {
  52. return succeed(musicGroupPaymentCalenderService.getDetail(id));
  53. }
  54. @ApiOperation(value = "新增乐团缴费日历")
  55. @PostMapping(value = "/add", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
  56. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/add')")
  57. public Object add(@RequestBody MusicGroupPaymentCalender musicGroupPaymentCalender) {
  58. Long musicGroupPaymentCalenderId = musicGroupPaymentCalenderService.create(musicGroupPaymentCalender);
  59. ModelMap map = new ModelMap();
  60. map.put("musicGroupPaymentCalenderId", musicGroupPaymentCalenderId);
  61. return succeed(map);
  62. }
  63. @ApiOperation(value = "删除乐团缴费日历")
  64. @PostMapping("/del")
  65. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/del')")
  66. public Object del(Long id) {
  67. musicGroupPaymentCalenderService.del(id);
  68. return succeed();
  69. }
  70. @ApiOperation(value = "修改乐团缴费时间")
  71. @PostMapping("/update")
  72. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/update')")
  73. public Object update(@RequestBody MusicGroupPaymentCalender paymentCalender) {
  74. Long musicGroupPaymentCalenderId = musicGroupPaymentCalenderService.merge(paymentCalender);
  75. ModelMap map = new ModelMap();
  76. map.put("musicGroupPaymentCalenderId", musicGroupPaymentCalenderId);
  77. return succeed();
  78. }
  79. @ApiOperation(value = "乐团缴费日历审核列表")
  80. @GetMapping("/auditList")
  81. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditList')")
  82. public Object auditList(MusicGroupPaymentCalenderQueryInfo queryInfo) {
  83. SysUser sysUser = sysUserFeignService.queryUserInfo();
  84. if (sysUser == null) {
  85. return failed("用户信息获取失败");
  86. }
  87. if(!sysUser.getIsSuperAdmin()){
  88. Employee employee = employeeDao.get(sysUser.getId());
  89. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  90. queryInfo.setOrganId(employee.getOrganIdList());
  91. }else if(StringUtils.isEmpty(employee.getOrganIdList())){
  92. return failed("用户所在分部异常");
  93. }else {
  94. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  95. if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
  96. return failed("非法请求");
  97. }
  98. }
  99. }
  100. return succeed(musicGroupPaymentCalenderService.auditList(queryInfo));
  101. }
  102. @ApiOperation(value = "乐团缴费日历审核列表详情")
  103. @GetMapping("/auditListDetail")
  104. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditListDetail')")
  105. public Object auditListDetail(Long calenderId) {
  106. return succeed(musicGroupPaymentCalenderService.auditListDetail(calenderId));
  107. }
  108. @ApiOperation(value = "乐团缴费日历审核通过")
  109. @PostMapping("/auditPass")
  110. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditPass')")
  111. public Object auditPass(Long calenderId,String auditMemo) {
  112. musicGroupPaymentCalenderService.auditPass(calenderId,auditMemo);
  113. return succeed();
  114. }
  115. @ApiOperation(value = "乐团缴费日历审核拒绝")
  116. @PostMapping("/auditRefuse")
  117. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/auditRefuse')")
  118. public Object auditRefuse(Long calenderId,String auditMemo) {
  119. musicGroupPaymentCalenderService.auditRefuse(calenderId,auditMemo);
  120. return succeed();
  121. }
  122. @ApiOperation(value = "获取指定学员在指定乐团下本次课排课时长")
  123. @GetMapping("/getMusicCourseSettingsWithStudents")
  124. @PreAuthorize("@pcs.hasPermissions('musicGroupPaymentCalender/getMusicCourseSettingsWithStudents')")
  125. public HttpResponseResult<Map<String, Integer>> getMusicCourseSettingsWithStudents(String musicGroupId, String studentIds, Long classGroupId){
  126. List<Integer> studentIdList = new ArrayList<>();
  127. if(StringUtils.isNotBlank(studentIds)){
  128. studentIdList = Arrays.stream(studentIds.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
  129. }
  130. if(Objects.nonNull(classGroupId)){
  131. List<StudentRegistration> studentList = classGroupStudentMapperDao.findClassStudentList(classGroupId.intValue(), ClassGroupStudentStatusEnum.NORMAL);
  132. studentIdList = studentList.stream().map(StudentRegistration::getUserId).collect(Collectors.toList());
  133. }
  134. if(CollectionUtils.isEmpty(studentIdList)){
  135. throw new BizException("未指定学员");
  136. }
  137. return succeed(musicGroupPaymentCalenderCourseSettingsService.getMusicCourseSettingsWithStudents(musicGroupId,studentIdList));
  138. }
  139. }