DegreeController.java 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. package com.ym.mec.student.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.DegreeRegistrationDao;
  5. import com.ym.mec.biz.dal.dao.OrganizationDao;
  6. import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao;
  7. import com.ym.mec.biz.dal.dao.StudentDao;
  8. import com.ym.mec.biz.dal.dto.DegreeRegistrationActivityDto;
  9. import com.ym.mec.biz.dal.dto.SporadicPayDto;
  10. import com.ym.mec.biz.dal.entity.DegreeRegistration;
  11. import com.ym.mec.biz.dal.entity.Employee;
  12. import com.ym.mec.biz.dal.entity.SporadicChargeInfo;
  13. import com.ym.mec.biz.dal.entity.Student;
  14. import com.ym.mec.biz.dal.enums.DealStatusEnum;
  15. import com.ym.mec.biz.dal.enums.SporadicChargeTypeEnum;
  16. import com.ym.mec.biz.dal.page.SporadicChargeInfoQueryInfo;
  17. import com.ym.mec.biz.service.DegreeRegistrationService;
  18. import com.ym.mec.biz.service.SporadicChargeInfoService;
  19. import com.ym.mec.biz.service.StudentPaymentOrderService;
  20. import com.ym.mec.common.controller.BaseController;
  21. import com.ym.mec.common.entity.HttpResponseResult;
  22. import com.ym.mec.common.exception.BizException;
  23. import com.ym.mec.util.idcard.IdcardValidator;
  24. import com.ym.mec.util.validator.CommonValidator;
  25. import io.swagger.annotations.Api;
  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("degree")
  34. @Api(tags = "考级报名服务")
  35. @RestController
  36. public class DegreeController extends BaseController {
  37. @Autowired
  38. private StudentPaymentOrderService studentPaymentOrderService;
  39. @Autowired
  40. private DegreeRegistrationDao degreeRegistrationDao;
  41. @Autowired
  42. private DegreeRegistrationService degreeRegistrationService;
  43. @Autowired
  44. private SporadicChargeInfoDao sporadicChargeInfoDao;
  45. @Autowired
  46. private SporadicChargeInfoService sporadicChargeInfoService;
  47. @Autowired
  48. private SysUserFeignService sysUserFeignService;
  49. @Autowired
  50. private StudentDao studentDao;
  51. @Autowired
  52. private OrganizationDao organizationDao;
  53. @ApiOperation(value = "考级报名支付")
  54. @PostMapping("/pay")
  55. public HttpResponseResult pay(@RequestBody DegreeRegistrationActivityDto degreeRegistration) throws Exception {
  56. SysUser user = sysUserFeignService.queryUserInfo();
  57. if(Objects.isNull(user)){
  58. return failed(HttpStatus.FORBIDDEN,"请登录");
  59. }
  60. degreeRegistration.setUserId(user.getId());
  61. if(StringUtils.isNotBlank(degreeRegistration.getIdcard())){
  62. IdcardValidator idcardValidator = new IdcardValidator();
  63. if (!idcardValidator.isValidatedAllIdcard(degreeRegistration.getIdcard())) {
  64. throw new BizException("身份证号不正确,请核对");
  65. }
  66. }
  67. if(Objects.isNull(degreeRegistration.getOrganId())){
  68. return failed("该分部暂未参与此活动");
  69. }
  70. if(Objects.nonNull(degreeRegistration.getSporadicId())){
  71. SporadicChargeInfo info = sporadicChargeInfoDao.get(degreeRegistration.getSporadicId());
  72. if (info == null || info.getDelFlag().equals(1)) {
  73. return failed("报名信息不存在");
  74. }
  75. if (info.getOrganId() != 42 || !info.getChargeType().equals(SporadicChargeTypeEnum.LEVEL)) {
  76. return failed("报名信息不存在");
  77. }
  78. }
  79. DegreeRegistration degree = degreeRegistrationDao.getWithUserIdAndActivityTag(user.getId(), DegreeRegistrationService.ACTIVITY_TAG);
  80. if (!degreeRegistration.getIsRepay() && degree != null && degree.getStatus().equals(1)) {
  81. Integer ingOrder = studentPaymentOrderService.findOrderByGroupType(degree.getId(), degreeRegistration.getSporadicId(), "SPORADIC", DealStatusEnum.ING);
  82. if (ingOrder != null && ingOrder > 0) {
  83. return failed(HttpStatus.CONTINUE, "您有待支付的订单");
  84. }
  85. }
  86. Map payMap = degreeRegistrationService.pay(degreeRegistration);
  87. if (payMap.containsKey("tradeState")) {
  88. return failed(HttpStatus.CREATED, "恭喜您,支付成功!");
  89. }
  90. return succeed(payMap);
  91. }
  92. @ApiOperation(value = "查询收费列表")
  93. @GetMapping("/queryList")
  94. public HttpResponseResult queryPage(SporadicChargeInfoQueryInfo queryInfo) {
  95. queryInfo.setOrganId("42");
  96. queryInfo.setChargeType(SporadicChargeTypeEnum.LEVEL);
  97. queryInfo.setRows(99);
  98. queryInfo.setOpenFlag(0);
  99. queryInfo.setSort("amount_");
  100. queryInfo.setOrder("ASC");
  101. return succeed(sporadicChargeInfoService.queryDetailPage(queryInfo));
  102. }
  103. @ApiOperation(value = "获取活动参数")
  104. @GetMapping("/getParams")
  105. public HttpResponseResult getParams(){
  106. SysUser user = sysUserFeignService.queryUserInfo();
  107. if(Objects.isNull(user)){
  108. return failed(HttpStatus.FORBIDDEN,"请登录");
  109. }
  110. SporadicChargeInfoQueryInfo queryInfo = new SporadicChargeInfoQueryInfo();
  111. queryInfo.setOrganId("42");
  112. queryInfo.setChargeType(SporadicChargeTypeEnum.LEVEL);
  113. queryInfo.setRows(99);
  114. queryInfo.setOpenFlag(0);
  115. queryInfo.setSort("amount_");
  116. queryInfo.setOrder("ASC");
  117. Map<String, Object> result = new HashMap<>();
  118. DegreeRegistration degreeRegistration = degreeRegistrationDao.getWithUserIdAndActivityTag(user.getId(), DegreeRegistrationService.ACTIVITY_TAG);
  119. Student student = studentDao.get(user.getId());
  120. result.put("userInfo", user);
  121. result.put("isNewUser", student.getIsNewUser());
  122. result.put("organs", organizationDao.getActivityOrgans());
  123. result.put("sporadicChargeInfo", sporadicChargeInfoService.queryDetailPage(queryInfo));
  124. if(Objects.isNull(degreeRegistration)||degreeRegistration.getStatus()==0){
  125. result.put("isApplied", 0);
  126. }else if(degreeRegistration.getStatus()==1){
  127. result.put("isApplied", 1);
  128. }else if(degreeRegistration.getStatus()==2){
  129. result.put("isApplied", 2);
  130. }
  131. return succeed(result);
  132. }
  133. }