MusicGroupController.java 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  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.auth.api.entity.SysUserRole;
  5. import com.ym.mec.biz.dal.dao.EmployeeDao;
  6. import com.ym.mec.biz.dal.dto.CloseMusicGroupDto;
  7. import com.ym.mec.biz.dal.dto.MusicGroupRegsDto;
  8. import com.ym.mec.biz.dal.dto.SubFeeSettingDto;
  9. import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto;
  10. import com.ym.mec.biz.dal.entity.Employee;
  11. import com.ym.mec.biz.dal.entity.MusicGroup;
  12. import com.ym.mec.biz.dal.entity.MusicMemberDto;
  13. import com.ym.mec.biz.dal.entity.StudentRegistration;
  14. import com.ym.mec.biz.dal.page.MusicGroupQueryInfo;
  15. import com.ym.mec.biz.dal.page.MusicMemberQueryInfo;
  16. import com.ym.mec.biz.service.MusicGroupService;
  17. import com.ym.mec.biz.service.OrganizationService;
  18. import com.ym.mec.common.controller.BaseController;
  19. import com.ym.mec.common.entity.HttpResponseResult;
  20. import com.ym.mec.common.exception.BizException;
  21. import com.ym.mec.common.page.PageInfo;
  22. import com.yonge.log.model.AuditLogAnnotation;
  23. import io.swagger.annotations.Api;
  24. import io.swagger.annotations.ApiImplicitParam;
  25. import io.swagger.annotations.ApiImplicitParams;
  26. import io.swagger.annotations.ApiOperation;
  27. import org.apache.commons.lang3.StringUtils;
  28. import org.springframework.beans.factory.annotation.Autowired;
  29. import org.springframework.http.HttpStatus;
  30. import org.springframework.security.access.prepost.PreAuthorize;
  31. import org.springframework.web.bind.annotation.*;
  32. import java.util.*;
  33. @RequestMapping("musicGroup")
  34. @Api(tags = "乐团服务")
  35. @RestController
  36. public class MusicGroupController extends BaseController {
  37. @Autowired
  38. private MusicGroupService musicGroupService;
  39. @Autowired
  40. private SysUserFeignService sysUserFeignService;
  41. @Autowired
  42. private EmployeeDao employeeDao;
  43. @Autowired
  44. private OrganizationService organizationService;
  45. @ApiOperation(value = "修改乐团基本信息")
  46. @PostMapping("/update")
  47. @AuditLogAnnotation(operateName = "乐团基本信息修改",interfaceURL = "musicGroup/update")
  48. @PreAuthorize("@pcs.hasPermissions('musicGroup/update')")
  49. public Object update(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  50. musicGroupService.updateBaseInfo(subFeeSettingDto);
  51. return succeed();
  52. }
  53. @ApiOperation(value = "获取乐团调整--基本信息数据")
  54. @PostMapping("/findMusicGroupBasicInfo")
  55. @PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupBasicInfo')")
  56. public Object findMusicGroupBasicInfo(String musicGroupId) {
  57. if (StringUtils.isEmpty(musicGroupId)) {
  58. return failed("参数校验失败");
  59. }
  60. return succeed(musicGroupService.findMusicGroupBasicInfo(musicGroupId));
  61. }
  62. @ApiOperation(value = "获取乐团调整--声部信息数据")
  63. @GetMapping("/findMusicGroupSubjectInfo")
  64. @PreAuthorize("@pcs.hasPermissions('musicGroup/findMusicGroupSubjectInfo')")
  65. public Object findMusicGroupSubjectInfo(String musicGroupId) {
  66. if (StringUtils.isEmpty(musicGroupId)) {
  67. return failed("参数校验失败");
  68. }
  69. return succeed(musicGroupService.findMusicGroupSubjectInfo(musicGroupId));
  70. }
  71. @ApiOperation(value = "修改乐团声部信息")
  72. @PostMapping("/updateSubjectInfo")
  73. @PreAuthorize("@pcs.hasPermissions('musicGroup/updateSubjectInfo')")
  74. public Object updateSubjectInfo(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  75. musicGroupService.updateSubjectInfo(subFeeSettingDto);
  76. return succeed();
  77. }
  78. @ApiOperation(value = "修改乐团计划招生人数")
  79. @PostMapping("/updateExpectedStudentNum")
  80. @PreAuthorize("@pcs.hasPermissions('musicGroup/updateExpectedStudentNum')")
  81. public Object updateExpectedStudentNum(@RequestBody List<UpdateExpectedNumDto> updateExpectedNumDtos){
  82. if(updateExpectedNumDtos == null || updateExpectedNumDtos.size() <= 0){
  83. return failed("参数校验错误");
  84. }
  85. musicGroupService.updateExpectedStudentNum(updateExpectedNumDtos);
  86. return succeed();
  87. }
  88. @ApiOperation(value = "根据乐团编号查询乐团详情")
  89. @GetMapping("/get")
  90. @PreAuthorize("@pcs.hasPermissions('musicGroup/get')")
  91. public Object get(String musicGroupId) {
  92. return succeed(musicGroupService.getMusicGroupDetail(musicGroupId));
  93. }
  94. @ApiOperation(value = "分页查询乐团列表")
  95. @RequestMapping("/queryPage")
  96. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryPage')")
  97. public Object queryPage(MusicGroupQueryInfo queryInfo) {
  98. SysUser sysUser = sysUserFeignService.queryUserInfo();
  99. if (sysUser == null) {
  100. return failed("用户信息获取失败");
  101. }
  102. Employee employee = employeeDao.get(sysUser.getId());
  103. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  104. queryInfo.setOrganId(employee.getOrganIdList());
  105. }else if(StringUtils.isEmpty(employee.getOrganIdList())){
  106. return failed("用户所在分部异常");
  107. }else {
  108. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  109. if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
  110. return failed("非法请求");
  111. }
  112. }
  113. return succeed(musicGroupService.queryMusicGroupPage(queryInfo));
  114. }
  115. @ApiOperation(value = "新增乐团 建团申请数据提交")
  116. @PostMapping("/createGroup")
  117. @PreAuthorize("@pcs.hasPermissions('musicGroup/createGroup')")
  118. public Object createGroup(@RequestBody SubFeeSettingDto subFeeSettingDto) throws Exception {
  119. return succeed(musicGroupService.createGroup(subFeeSettingDto));
  120. }
  121. @ApiOperation(value = "乐团筹备结束后,3.0乐团推送小班课缴费信息")
  122. @PostMapping("/pushMessage")
  123. @PreAuthorize("@pcs.hasPermissions('musicGroup/pushMessage')")
  124. public Object pushMessage(String musicGroupId,String classGroupIds) throws Exception {
  125. SysUser sysUser = sysUserFeignService.queryUserInfo();
  126. if (sysUser == null || sysUser.getId() == null) {
  127. return failed("获取用户信息失败");
  128. }
  129. if(StringUtils.isEmpty(musicGroupId)){
  130. throw new BizException("参数校验错误");
  131. }
  132. return succeed( musicGroupService.pushMessage(musicGroupId,classGroupIds));
  133. }
  134. @ApiOperation(value = "根据乐团ids获取乐团列表")
  135. @PostMapping("/queryListByIds")
  136. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryListByIds')")
  137. public Object queryListByIds(@RequestBody Set<String> musicGroupIds) {
  138. if (musicGroupIds.isEmpty()) {
  139. return failed("参数校验失败");
  140. }
  141. return succeed(musicGroupService.queryListByIds(musicGroupIds));
  142. }
  143. @ApiOperation(value = "开启缴费(报名中 --> 缴费中)")
  144. @PostMapping("/openPay")
  145. @PreAuthorize("@pcs.hasPermissions('musicGroup/openPay')")
  146. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  147. @ApiImplicitParam(name = "expireDate", value = "截止缴费日期", required = true, dataType = "String") })
  148. public Object openPay(String musicGroupId, String expireDate) throws Exception {
  149. return succeed(musicGroupService.openPay(musicGroupId, expireDate));
  150. }
  151. @ApiOperation(value = "确认开团(缴费中(报名中) --> 筹备中)")
  152. @PostMapping("/found")
  153. @PreAuthorize("@pcs.hasPermissions('musicGroup/found')")
  154. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  155. public Object found(String musicGroupId) throws Exception {
  156. musicGroupService.musicGroupFound(musicGroupId);
  157. return succeed();
  158. }
  159. @ApiOperation(value = "提交审核(草稿 -> 审核中)")
  160. @PostMapping("/audit")
  161. @PreAuthorize("@pcs.hasPermissions('musicGroup/audit')")
  162. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  163. public Object audit(String musicGroupId) throws Exception {
  164. musicGroupService.musicGroupAudit(musicGroupId);
  165. return succeed();
  166. }
  167. @ApiOperation(value = "审核失败(审核中 -> 审核失败)")
  168. @PostMapping("/auditFailed")
  169. @PreAuthorize("@pcs.hasPermissions('musicGroup/auditFailed')")
  170. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  171. @ApiImplicitParam(name = "memo", value = "memo", required = true, dataType = "String") })
  172. public Object auditFailed(String musicGroupId,String memo) throws Exception {
  173. musicGroupService.musicGroupAuditFailed(musicGroupId,memo);
  174. return succeed();
  175. }
  176. @ApiOperation(value = "审核通过(审核中 -> 预报名)")
  177. @PostMapping("/auditSuccess")
  178. @PreAuthorize("@pcs.hasPermissions('musicGroup/auditSuccess')")
  179. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
  180. public Object auditSuccess(String musicGroupId) throws Exception {
  181. musicGroupService.musicGroupAuditSuccess(musicGroupId);
  182. return succeed();
  183. }
  184. @ApiOperation(value = "开启乐团(筹备中 --> 进行中)")
  185. @PostMapping("/action")
  186. @PreAuthorize("@pcs.hasPermissions('musicGroup/action')")
  187. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  188. public Object action(String musicGroupId) throws Exception {
  189. musicGroupService.musicGroupAction(musicGroupId);
  190. return succeed();
  191. }
  192. @ApiOperation(value = "取消乐团")
  193. @PostMapping("/cancelMusicGroup")
  194. @PreAuthorize("@pcs.hasPermissions('musicGroup/cancelMusicGroup')")
  195. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  196. public Object cancelMusicGroup(String musicGroupId) {
  197. musicGroupService.cancelMusicGroup(musicGroupId);
  198. return succeed();
  199. }
  200. @ApiOperation(value = "删除乐团")
  201. @PostMapping("/deleteMusicGroup")
  202. @PreAuthorize("@pcs.hasPermissions('musicGroup/deleteMusicGroup')")
  203. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  204. public Object deleteMusicGroup(String musicGroupId) {
  205. musicGroupService.deleteMusicGroup(musicGroupId);
  206. return succeed();
  207. }
  208. @ApiOperation(value = "暂停乐团")
  209. @PostMapping("/pauseMusicGroup")
  210. @PreAuthorize("@pcs.hasPermissions('musicGroup/pauseMusicGroup')")
  211. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  212. public Object pauseMusicGroup(String musicGroupId) {
  213. musicGroupService.pauseMusicGroup(musicGroupId);
  214. return succeed();
  215. }
  216. @ApiOperation(value = "恢复乐团")
  217. @PostMapping("/resumeMusicGroup")
  218. @PreAuthorize("@pcs.hasPermissions('musicGroup/resumeMusicGroup')")
  219. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String") })
  220. public Object resumeMusicGroup(String musicGroupId) {
  221. musicGroupService.resumeMusicGroup(musicGroupId);
  222. return succeed();
  223. }
  224. @ApiOperation(value = "延长缴费时间")
  225. @PostMapping("/extensionPayment")
  226. @PreAuthorize("@pcs.hasPermissions('musicGroup/extensionPayment')")
  227. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  228. @ApiImplicitParam(name = "expireDate", value = "延长缴费的截止日期", required = true, dataType = "Date") })
  229. public Object extensionPayment(String musicGroupId, Date expireDate) {
  230. musicGroupService.extensionPaymentExpireDate(musicGroupId, expireDate);
  231. return succeed();
  232. }
  233. @ApiOperation(value = "延长报名时间")
  234. @PostMapping("/extensionApplyExpireDate")
  235. @PreAuthorize("@pcs.hasPermissions('musicGroup/extensionApplyExpireDate')")
  236. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  237. @ApiImplicitParam(name = "expireDate", value = "延长报名的截止日期", required = true, dataType = "Date") })
  238. public Object extensionApplyExpireDate(String musicGroupId, Date expireDate) {
  239. musicGroupService.extensionApplyExpireDate(musicGroupId, expireDate);
  240. return succeed();
  241. }
  242. @ApiOperation(value = "延长预报名时间")
  243. @PostMapping("/extensionPreApplyExpireDate")
  244. @PreAuthorize("@pcs.hasPermissions('musicGroup/extensionApplyExpireDate')")
  245. @ApiImplicitParams({ @ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String"),
  246. @ApiImplicitParam(name = "expireDate", value = "延长预报名的截止日期", required = true, dataType = "Date") })
  247. public Object extensionPreApplyExpireDate(String musicGroupId, Date expireDate) {
  248. musicGroupService.extensionPreApplyExpireDate(musicGroupId, expireDate);
  249. return succeed();
  250. }
  251. @ApiOperation("获取分部乐团列表名称")
  252. @GetMapping(value = "/queryOrganMusicInfos")
  253. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryOrganMusicInfos')")
  254. public Object queryOrganMusicInfos(Integer organId) {
  255. return succeed(musicGroupService.queryOrganMusicInfos(organId));
  256. }
  257. @ApiOperation(value = "乐团添加报名学员")
  258. @PostMapping("/addMusicGroupRegs")
  259. @PreAuthorize("@pcs.hasPermissions('musicGroup/addMusicGroupRegs')")
  260. public HttpResponseResult<List<StudentRegistration>> addMusicGroupRegs(@RequestBody MusicGroupRegsDto musicGroupRegsDto) throws Exception {
  261. if(musicGroupRegsDto.getRegisterIds().size() <=0){
  262. return failed("请选择要添加的学员");
  263. }
  264. return succeed(musicGroupService.addMusicGroupRegs(musicGroupRegsDto.getMusicGroupId(),musicGroupRegsDto.getRegisterIds()));
  265. }
  266. @ApiOperation(value = "关闭乐团")
  267. @PostMapping("/closeMusicGroup")
  268. @PreAuthorize("@pcs.hasPermissions('musicGroup/closeMusicGroup')")
  269. public HttpResponseResult<Boolean> closeMusicGroup(@RequestBody CloseMusicGroupDto closeMusicGroupDto) {
  270. return succeed(musicGroupService.closeMusicGroup(closeMusicGroupDto));
  271. }
  272. @ApiOperation(value = "完成预报名")
  273. @PostMapping("/finishPreApply")
  274. @PreAuthorize("@pcs.hasPermissions('musicGroup/finishPreApply')")
  275. public HttpResponseResult<Boolean> finishPreApply(String musicGroupId,boolean isCheckStudentNum) {
  276. return musicGroupService.finishPreApply(musicGroupId, isCheckStudentNum) ? succeed() : failed();
  277. }
  278. @ApiOperation(value = "发送家长会通知")
  279. @PostMapping("/sendParentMeetingNotice")
  280. @PreAuthorize("@pcs.hasPermissions('musicGroup/sendParentMeetingNotice')")
  281. public HttpResponseResult<Boolean> sendParentMeetingNotice(String musicGroupId, Date meetingDate, String address) {
  282. SysUser sysUser = sysUserFeignService.queryUserInfo();
  283. if (sysUser == null) {
  284. return failed(HttpStatus.FORBIDDEN, "用户信息获取失败");
  285. }
  286. return musicGroupService.sendParentMeetingNotice(sysUser.getId(), musicGroupId, meetingDate, address) ? succeed() : failed();
  287. }
  288. @ApiOperation(value = "获取乐团的年级列表")
  289. @GetMapping("/getGradeList")
  290. @PreAuthorize("@pcs.hasPermissions('musicGroup/getGradeList')")
  291. @ApiImplicitParams({@ApiImplicitParam(name = "musicGroupId", value = "乐团编号", required = true, dataType = "String")})
  292. public HttpResponseResult<Map<Integer,String>> getGradeList(String musicGroupId) {
  293. MusicGroup musicGroup = musicGroupService.get(musicGroupId);
  294. if (musicGroup == null) {
  295. return failed("乐团信息不存在");
  296. }
  297. return succeed(organizationService.getGradeList(musicGroup.getOrganId()));
  298. }
  299. @ApiOperation(value = "根据合作单位获取所有乐团列表")
  300. @GetMapping("/findByCooperationId")
  301. @PreAuthorize("@pcs.hasPermissions('musicGroup/findByCooperationId')")
  302. @ApiImplicitParams({@ApiImplicitParam(name = "cooperationId", value = "合作单位", required = true, dataType = "Integer")})
  303. public HttpResponseResult<List<MusicGroup>> findByCooperationId(Integer cooperationId) {
  304. return succeed(musicGroupService.findByCooperationId(cooperationId));
  305. }
  306. @ApiOperation(value = "获取乐团已经过期或者即将过期的学员列表")
  307. @GetMapping("/queryMusicMemberList")
  308. @PreAuthorize("@pcs.hasPermissions('musicGroup/queryMusicMemberList')")
  309. public HttpResponseResult<PageInfo<MusicMemberDto>> queryMusicMemberList(MusicMemberQueryInfo queryInfo) {
  310. SysUser sysUser = sysUserFeignService.queryUserInfo();
  311. if (sysUser == null) {
  312. return failed("用户信息获取失败");
  313. }
  314. Employee employee = employeeDao.get(sysUser.getId());
  315. if (StringUtils.isEmpty(queryInfo.getOrganId())) {
  316. queryInfo.setOrganId(employee.getOrganIdList());
  317. }else if(StringUtils.isEmpty(employee.getOrganIdList())){
  318. return failed("用户所在分部异常");
  319. }else {
  320. List<String> list = Arrays.asList(employee.getOrganIdList().split(","));
  321. if(!list.containsAll(Arrays.asList(queryInfo.getOrganId().split(",")))){
  322. return failed("非法请求");
  323. }
  324. }
  325. return succeed(musicGroupService.queryMusicMemberList(queryInfo));
  326. }
  327. @ApiOperation(value = "确认发放乐器")
  328. @PostMapping("/takeEffectOfinstrumentInsurance")
  329. @PreAuthorize("@pcs.hasPermissions('musicGroup/takeEffectOfinstrumentInsurance')")
  330. public HttpResponseResult takeEffectOfinstrumentInsurance(String musicGroupId) {
  331. SysUser sysUser = sysUserFeignService.queryUserInfo();
  332. if (sysUser == null) {
  333. return failed(HttpStatus.FORBIDDEN, "请登录");
  334. }
  335. return succeed(musicGroupService.takeEffectOfinstrumentInsurance(musicGroupId));
  336. }
  337. }