MusicGroupController.java 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301
  1. package com.ym.mec.web.controller;
  2. import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
  3. import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
  4. import com.ym.mec.biz.dal.entity.StudentRegistration;
  5. import com.ym.mec.common.entity.HttpResponseResult;
  6. import io.swagger.annotations.Api;
  7. import io.swagger.annotations.ApiImplicitParam;
  8. import io.swagger.annotations.ApiImplicitParams;
  9. import io.swagger.annotations.ApiOperation;
  10. import java.util.Arrays;
  11. import java.util.Date;
  12. import java.util.List;
  13. import java.util.Set;
  14. import org.apache.commons.lang3.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.security.access.prepost.PreAuthorize;
  17. import org.springframework.web.bind.annotation.GetMapping;
  18. import org.springframework.web.bind.annotation.PostMapping;
  19. import org.springframework.web.bind.annotation.RequestBody;
  20. import org.springframework.web.bind.annotation.RequestMapping;
  21. import org.springframework.web.bind.annotation.RestController;
  22. import com.ym.mec.auth.api.client.SysUserFeignService;
  23. import com.ym.mec.auth.api.entity.SysUser;
  24. import com.ym.mec.biz.dal.dao.EmployeeDao;
  25. import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
  26. import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
  27. import com.ym.mec.biz.dal.entity.Employee;
  28. import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
  29. import com.ym.mec.biz.service.MusicGroupService;
  30. import com.ym.mec.common.controller.BaseController;
  31. import com.ym.mec.common.exception.BizException;
  32. @RequestMapping("musicGroup")
  33. @Api(tags = "乐团服务")
  34. @RestController
  35. public class MusicGroupController extends BaseController {
  36. @Autowired
  37. private MusicGroupService musicGroupService;
  38. @Autowired
  39. private SysUserFeignService sysUserFeignService;
  40. @Autowired
  41. private EmployeeDao employeeDao;
  42. @ApiOperation(value = "修改乐团基本信息")
  43. @PostMapping("/update")
  44. @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
  45. public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  46. musicGroupService.updateBaseInfo(subFeeSettingDto);
  47. return succeed();
  48. }
  49. @ApiOperation(value = "获取乐团调整--基本信息数据")
  50. @PostMapping("/findMusicGroupBasicInfo")
  51. @PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupBasicInfo')")
  52. public Object findMusicGroupBasicInfo(String musicGroupId) {
  53. if (StringUtils.isEmpty(musicGroupId)) {
  54. return failed("参数校验失败");
  55. }
  56. return succeed(musicGroupService.findMusicGroupBasicInfo(musicGroupId));
  57. }
  58. @ApiOperation(value = "获取乐团调整--声部信息数据")
  59. @GetMapping("/findMusicGroupSubjectInfo")
  60. @PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupSubjectInfo')")
  61. public Object findMusicGroupSubjectInfo(String musicGroupId) {
  62. if (StringUtils.isEmpty(musicGroupId)) {
  63. return failed("参数校验失败");
  64. }
  65. return succeed(musicGroupService.findMusicGroupSubjectInfo(musicGroupId));
  66. }
  67. // @ApiOperation(value = "用户费用表,数据补全")
  68. // @PostMapping("/musicGroupStudentFeePatch")
  69. // public Object musicGroupStudentFeePatch(@RequestBody List<String> musicGroupIds){
  70. // musicGroupService.musicGroupStudentFeePatch(musicGroupIds);
  71. // return succeed();
  72. // }
  73. @ApiOperation(value = "修改乐团声部信息")
  74. @PostMapping("/updateSubjectInfo")
  75. @PreAuthorize("@pcs.hasPermissions('musicGroup/updateSubjectInfo')")
  76. public Object updateSubjectInfo(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  77. musicGroupService.updateSubjectInfo(subFeeSettingDto);
  78. return succeed();
  79. }
  80. @ApiOperation(value = "修改乐团计划招生人数")
  81. @PostMapping("/updateExpectedStudentNum")
  82. @PreAuthorize("@pcs.hasPermissions('musicGroup/updateExpectedStudentNum')")
  83. public Object updateExpectedStudentNum(@RequestBody List<UpdateExpectedNumDto> updateExpectedNumDtos){
  84. if(updateExpectedNumDtos == null || updateExpectedNumDtos.size() <= 0){
  85. return failed("参数校验错误");
  86. }
  87. musicGroupService.updateExpectedStudentNum(updateExpectedNumDtos);
  88. return succeed();
  89. }
  90. @ApiOperation(value = "根据乐团编号查询乐团详情")
  91. @GetMapping("/get")
  92. @PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
  93. public Object get(String musicGroupId) {
  94. return succeed(musicGroupService.getMusicGroupDetail(musicGroupId));
  95. }
  96. @ApiOperation(value = "分页查询乐团列表")
  97. @GetMapping("/queryPage")
  98. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
  99. public Object queryPage(MusicGroupQueryInfo queryInfo) {
  100. SysUser sysUser = sysUserFeignService.queryUserInfo();
  101. if (sysUser == null) {
  102. return failed("用户信息获取失败");
  103. }
  104. if(!sysUser.getIsSuperAdmin()){
  105. Employee employee = employeeDao.get(sysUser.getId());
  106. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  107. queryInfo.setOrganId(employee.getOrganIdList());
  108. }else if(StringUtils.isEmpty(employee.getOrganIdList())){
  109. return failed("用户所在分部异常");
  110. }else {
  111. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  112. if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
  113. return failed("非法请求");
  114. }
  115. }
  116. }
  117. return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
  118. }
  119. @ApiOperation(value = "新增乐团 建团申请数据提交")
  120. @PostMapping("/createGroup")
  121. @PreAuthorize("@pcs.hasPermissions('musicGroup/createGroup')")
  122. public Object createGroup(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  123. return succeed(musicGroupService.createGroup(subFeeSettingDto));
  124. }
  125. @ApiOperation(value = "乐团筹备结束后,3.0乐团推送小班课缴费信息")
  126. @PostMapping("/pushMessage")
  127. @PreAuthorize("@pcs.hasPermissions('musicGroup/pushMessage')")
  128. public Object pushMessage(String musicGroupId,String classGroupIds) throws Exception {
  129. SysUser sysUser = sysUserFeignService.queryUserInfo();
  130. if (sysUser == null || sysUser.getId() == null) {
  131. return failed("获取用户信息失败");
  132. }
  133. if(StringUtils.isEmpty(musicGroupId)){
  134. throw new BizException("参数校验错误");
  135. }
  136. return succeed( musicGroupService.pushMessage(musicGroupId,classGroupIds));
  137. }
  138. @ApiOperation(value = "根据乐团ids获取乐团列表")
  139. @PostMapping("/queryListByIds")
  140. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryListByIds')")
  141. public Object queryListByIds(@RequestBody Set<String> musicGroupIds) {
  142. if (musicGroupIds.isEmpty()) {
  143. return failed("参数校验失败");
  144. }
  145. return succeed(musicGroupService.queryListByIds(musicGroupIds));
  146. }
  147. @ApiOperation(value = "开启缴费(报名中 --> 缴费中)")
  148. @PostMapping("/openPay")
  149. @PreAuthorize("@pcs.hasPermissions('musicGroup/openPay')")
  150. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  151. @ApiImplicitParam(name = "expireDate", value = "截止缴费日期", required = true, dataType = "String") })
  152. public Object openPay(String musicGroupId, String expireDate) throws Exception {
  153. return succeed(musicGroupService.openPay(musicGroupId, expireDate));
  154. }
  155. @ApiOperation(value = "确认开团(缴费中(报名中) --> 筹备中)")
  156. @PostMapping("/found")
  157. @PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
  158. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  159. public Object found(String musicGroupId) throws Exception {
  160. musicGroupService.musicGroupFound(musicGroupId);
  161. return succeed();
  162. }
  163. @ApiOperation(value = "提交审核(草稿 -> 审核中)")
  164. @PostMapping("/audit")
  165. @PreAuthorize("@pcs.hasPermissions('musicGroup/audit')")
  166. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  167. public Object audit(String musicGroupId) throws Exception {
  168. musicGroupService.musicGroupAudit(musicGroupId);
  169. return succeed();
  170. }
  171. @ApiOperation(value = "审核失败(审核中 -> 审核失败)")
  172. @PostMapping("/auditFailed")
  173. @PreAuthorize("@pcs.hasPermissions('musicGroup/auditFailed')")
  174. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  175. @ApiImplicitParam(name = "memo", value = "memo", required = true, dataType = "String") })
  176. public Object auditFailed(String musicGroupId,String memo) throws Exception {
  177. musicGroupService.musicGroupAuditFailed(musicGroupId,memo);
  178. return succeed();
  179. }
  180. @ApiOperation(value = "审核通过(审核中 -> 报名中)")
  181. @PostMapping("/auditSuccess")
  182. @PreAuthorize("@pcs.hasPermissions('musicGroup/auditSuccess')")
  183. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
  184. public Object auditSuccess(String musicGroupId) throws Exception {
  185. musicGroupService.musicGroupAuditSuccess(musicGroupId);
  186. return succeed();
  187. }
  188. @ApiOperation(value = "开启乐团(筹备中 --> 进行中)")
  189. @PostMapping("/action")
  190. @PreAuthorize("@pcs.hasPermissions('musicGroup/action')")
  191. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  192. public Object action(String musicGroupId) throws Exception {
  193. musicGroupService.musicGroupAction(musicGroupId);
  194. return succeed();
  195. }
  196. @ApiOperation(value = "取消乐团")
  197. @PostMapping("/cancelMusicGroup")
  198. @PreAuthorize("@pcs.hasPermissions('musicGroup/cancelMusicGroup')")
  199. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  200. public Object cancelMusicGroup(String musicGroupId) {
  201. musicGroupService.cancelMusicGroup(musicGroupId);
  202. return succeed();
  203. }
  204. @ApiOperation(value = "删除乐团")
  205. @PostMapping("/deleteMusicGroup")
  206. @PreAuthorize("@pcs.hasPermissions('musicGroup/deleteMusicGroup')")
  207. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  208. public Object deleteMusicGroup(String musicGroupId) {
  209. musicGroupService.deleteMusicGroup(musicGroupId);
  210. return succeed();
  211. }
  212. @ApiOperation(value = "暂停乐团")
  213. @PostMapping("/pauseMusicGroup")
  214. @PreAuthorize("@pcs.hasPermissions('musicGroup/pauseMusicGroup')")
  215. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  216. public Object pauseMusicGroup(String musicGroupId) {
  217. musicGroupService.pauseMusicGroup(musicGroupId);
  218. return succeed();
  219. }
  220. @ApiOperation(value = "恢复乐团")
  221. @PostMapping("/resumeMusicGroup")
  222. @PreAuthorize("@pcs.hasPermissions('musicGroup/resumeMusicGroup')")
  223. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  224. public Object resumeMusicGroup(String musicGroupId) {
  225. musicGroupService.resumeMusicGroup(musicGroupId);
  226. return succeed();
  227. }
  228. @ApiOperation(value = "延长缴费时间")
  229. @PostMapping("/extensionPayment")
  230. @PreAuthorize("@pcs.hasPermissions('musicGroup/extensionPayment')")
  231. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  232. @ApiImplicitParam(name = "expireDate", value = "延长缴费的截止日期", required = true, dataType = "Date") })
  233. public Object extensionPayment(String musicGroupId, Date expireDate) {
  234. musicGroupService.extensionPaymentExpireDate(musicGroupId, expireDate);
  235. return succeed();
  236. }
  237. @ApiOperation(value = "延长报名时间")
  238. @PostMapping("/extensionApplyExpireDate")
  239. @PreAuthorize("@pcs.hasPermissions('musicGroup/extensionApplyExpireDate')")
  240. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  241. @ApiImplicitParam(name = "expireDate", value = "延长报名的截止日期", required = true, dataType = "Date") })
  242. public Object extensionApplyExpireDate(String musicGroupId, Date expireDate) {
  243. musicGroupService.extensionApplyExpireDate(musicGroupId, expireDate);
  244. return succeed();
  245. }
  246. @ApiOperation("获取分部乐团列表名称")
  247. @GetMapping(value = "/queryOrganMusicInfos")
  248. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryOrganMusicInfos')")
  249. public Object queryOrganMusicInfos(Integer organId) {
  250. return succeed(musicGroupService.queryOrganMusicInfos(organId));
  251. }
  252. @ApiOperation(value = "乐团添加报名学员")
  253. @PostMapping("/addMusicGroupRegs")
  254. @PreAuthorize("@pcs.hasPermissions('musicGroup/addMusicGroupRegs')")
  255. public HttpResponseResult<List<StudentRegistration>> addMusicGroupRegs(@RequestBody MusicGroupRegsDto musicGroupRegsDto) throws Exception {
  256. if(musicGroupRegsDto.getRegisterIds().size() <=0){
  257. return failed("请选择要添加的学员");
  258. }
  259. return succeed(musicGroupService.addMusicGroupRegs(musicGroupRegsDto.getMusicGroupId(),musicGroupRegsDto.getRegisterIds()));
  260. }
  261. @ApiOperation(value = "关闭乐团")
  262. @PostMapping("/closeMusicGroup")
  263. @PreAuthorize("@pcs.hasPermissions('musicGroup/closeMusicGroup')")
  264. public HttpResponseResult<Boolean> closeMusicGroup(CloseMusicGroupDto closeMusicGroupDto) {
  265. return succeed(musicGroupService.closeMusicGroup(closeMusicGroupDto));
  266. }
  267. }