SmartGradeController.java 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.template.annotation.DESRespondSecret;
  5. import com.template.api.SmartGradeControllerAPI;
  6. import com.template.common.utils.*;
  7. import com.template.config.ControlConfig;
  8. import com.template.model.pojo.SmartGrade;
  9. import com.template.model.pojo.SmartSchool;
  10. import com.template.model.request.insertSmartGradeRequest;
  11. import com.template.model.request.updateSmartGradeRequest;
  12. import com.template.model.result.CommonResult;
  13. import com.template.model.result.PageUtils;
  14. import com.template.model.vo.BsGradeNoVo;
  15. import com.template.model.vo.BsGradeVo;
  16. import com.template.model.vo.SemesterVo;
  17. import com.template.services.SmartGradeService;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.validation.BindingResult;
  20. import org.springframework.web.bind.annotation.RestController;
  21. import javax.annotation.Resource;
  22. import java.net.URLDecoder;
  23. import java.net.URLEncoder;
  24. import java.util.ArrayList;
  25. import java.util.List;
  26. import static com.template.common.utils.AesTestOne.decrypt;
  27. /**
  28. * <p>
  29. * 年级表 前端控制器
  30. * </p>
  31. *
  32. * @author ceshi
  33. * @since 2023-12-25
  34. */
  35. @RestController
  36. //返回参数加密注解
  37. @DESRespondSecret
  38. public class SmartGradeController implements SmartGradeControllerAPI {
  39. @Resource
  40. private ControlConfig controlConfig;
  41. @Autowired
  42. private SmartGradeService smartGradeService;
  43. @Override
  44. @DESRespondSecret(validated = true)
  45. public CommonResult insertSmartGrade(SmartGrade smartGrade, BindingResult bindingResult) {
  46. return null;
  47. }
  48. @Override
  49. @DESRespondSecret(validated = true)
  50. public CommonResult updateSmartGradeById(updateSmartGradeRequest usgr, BindingResult bindingResult) throws Exception {
  51. if (bindingResult.hasErrors()) {
  52. String st = paramUtils.getParamError(bindingResult);
  53. return CommonResult.fail(st);
  54. }
  55. //数据ID是否有效
  56. SmartGrade oldData = smartGradeService.querySmartGradeById(usgr.getId());
  57. if (oldData == null) {
  58. return CommonResult.fail("年级数据无效,更新失败");
  59. }
  60. //判断重复性
  61. SmartGrade existData = smartGradeService.existSmartGradeData(usgr.getGradeNo(), usgr.getGradeName());
  62. if (existData != null && existData.getId().equals(usgr.getId())) {
  63. return CommonResult.fail("该年级数据已在系统中存在,请勿重复添加");
  64. }
  65. //region 修改百胜中的年级数据
  66. String appId = controlConfig.getAppId();
  67. String schoolno = controlConfig.getSchoolCode();
  68. String timestamp = TimeExchange.DateNowTimeStamo();
  69. String gradeName = usgr.getGradeName();
  70. String appSecret = controlConfig.getAppSecret();
  71. String url = controlConfig.getUrl() + "grade/update";
  72. JSONObject jsonobject = new JSONObject();
  73. jsonobject.put("appid", appId);
  74. String str = "{\"grade_no\":\"" + oldData.getBsGradeNo() + "\",\"grade_name\":\"" + gradeName + "\"}";
  75. String aesStr = URLEncoder.encode(AesTestOne.encrypt(str, controlConfig.getAppSecret()), "UTF-8");
  76. jsonobject.put("data", aesStr);
  77. jsonobject.put("schoolno", schoolno);
  78. jsonobject.put("timestamp", timestamp);
  79. //appid=ymdd36ed157ac423e2&carNo=赣U123659&parkKey=wdcmq9rc&rand=9.94995525689689966&reserveEndTime=2023-12-22 20:12:10&reserveTime=2023-12-21 18:12:10&version=v1.0&50596cd243dc4547b4c05f01f8ea02a4
  80. String md5Str = "appid=" + appId + "&data={\"grade_no\":\"" + oldData.getBsGradeNo() + "\",\"grade_name\":\"" + gradeName + "\"}" + "&schoolno=" + schoolno + "&timestamp=" + timestamp + "&key=" + appSecret;
  81. String sign = CommonUtil.MD5(md5Str);
  82. //sign签名
  83. jsonobject.put("sign", sign);
  84. //返回的结果中 code为1表示成功
  85. String result = RequestUtils.httpPost(url, jsonobject.toJSONString());
  86. if (result.contains("更新成功")) {
  87. oldData.setGradeNo(usgr.getGradeNo());
  88. oldData.setName(usgr.getGradeName());
  89. int updateGrade = smartGradeService.updateSmartGrade(oldData);
  90. if (updateGrade <= 0) {
  91. return CommonResult.fail("年级信息更新失败");
  92. }
  93. } else {
  94. return CommonResult.fail("年级信息更新失败");
  95. }
  96. //endregion
  97. return CommonResult.ok("年级信息更新成功");
  98. }
  99. @Override
  100. @DESRespondSecret(validated = true)
  101. public CommonResult queryPageSmartGrades(int currentPage, int pageCount, String name) {
  102. PageUtils<SmartGrade> result = smartGradeService.queryPageSmartGrade(currentPage, pageCount, name);
  103. return CommonResult.ok(result);
  104. }
  105. @Override
  106. @DESRespondSecret(validated = true)
  107. public CommonResult deleteSmartGradeById(int id) {
  108. return null;
  109. }
  110. @Override
  111. @DESRespondSecret(validated = true)
  112. public CommonResult querySmartGrades() {
  113. List<SmartGrade> datas = smartGradeService.getSmartGrades();
  114. List<SemesterVo> result = new ArrayList<>();
  115. for (SmartGrade data : datas) {
  116. SemesterVo model = new SemesterVo();
  117. model.setId(data.getId());
  118. model.setName(data.getName());
  119. result.add(model);
  120. }
  121. return CommonResult.ok(result);
  122. }
  123. @Override
  124. @DESRespondSecret(validated = true)
  125. public CommonResult insertSmartGradeToBaisheng(insertSmartGradeRequest isgr, BindingResult bindingResult) throws Exception {
  126. if (bindingResult.hasErrors()) {
  127. String st = paramUtils.getParamError(bindingResult);
  128. return CommonResult.fail(st);
  129. }
  130. //判断重复性
  131. int existCount = smartGradeService.existSmartGrade(isgr.getGradeNo(), isgr.getGradeName());
  132. if (existCount > 0) {
  133. return CommonResult.fail("该年级数据已在系统中存在,请勿重复添加");
  134. }
  135. String appId = controlConfig.getAppId();
  136. String schoolno = controlConfig.getSchoolCode();
  137. String timestamp = TimeExchange.DateNowTimeStamo();
  138. String gradeName = isgr.getGradeName();
  139. String appSecret = controlConfig.getAppSecret();
  140. String url = controlConfig.getUrl() + "grade/create";
  141. JSONObject jsonobject = new JSONObject();
  142. jsonobject.put("appid", appId);
  143. String str = "{\"grade_name\":\"" + gradeName + "\"}";
  144. String aesStr = URLEncoder.encode(AesTestOne.encrypt(str, controlConfig.getAppSecret()), "UTF-8");
  145. jsonobject.put("data", aesStr);
  146. jsonobject.put("schoolno", schoolno);
  147. jsonobject.put("timestamp", timestamp);
  148. //appid=ymdd36ed157ac423e2&carNo=赣U123659&parkKey=wdcmq9rc&rand=9.94995525689689966&reserveEndTime=2023-12-22 20:12:10&reserveTime=2023-12-21 18:12:10&version=v1.0&50596cd243dc4547b4c05f01f8ea02a4
  149. String md5Str = "appid=" + appId + "&data={\"grade_name\":\"" + gradeName + "\"}" + "&schoolno=" + schoolno + "&timestamp=" + timestamp + "&key=" + appSecret;
  150. String sign = CommonUtil.MD5(md5Str);
  151. //sign签名
  152. jsonobject.put("sign", sign);
  153. //返回的结果中 code为1表示成功
  154. String result = RequestUtils.httpPost(url, jsonobject.toJSONString());
  155. if (result.contains("添加成功")) {
  156. ObjectMapper objectMapper = new ObjectMapper();
  157. BsGradeVo grade = objectMapper.readValue(result, BsGradeVo.class);
  158. // URL解码
  159. String decodedUrl = URLDecoder.decode(grade.getData(), "UTF-8");
  160. BsGradeNoVo gradeNo = objectMapper.readValue(decrypt(decodedUrl, controlConfig.getAppSecret()), BsGradeNoVo.class);
  161. SmartGrade smartGrade = new SmartGrade();
  162. smartGrade.setGradeNo(isgr.getGradeNo());
  163. smartGrade.setName(isgr.getGradeName());
  164. smartGrade.setBsGradeNo(gradeNo.getGrade_no());
  165. int insertResult = smartGradeService.insertSmartGrade(smartGrade);
  166. return insertResult > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
  167. } else {
  168. return CommonResult.fail("添加失败");
  169. }
  170. }
  171. }