SmartGradeController.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. package com.template.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.fasterxml.jackson.databind.ObjectMapper;
  4. import com.template.api.SmartGradeControllerAPI;
  5. import com.template.common.utils.*;
  6. import com.template.config.ControlConfig;
  7. import com.template.config.ParkConfig;
  8. import com.template.model.pojo.SmartGrade;
  9. import com.template.model.request.insertSmartGradeRequest;
  10. import com.template.model.result.CommonResult;
  11. import com.template.model.vo.BsGradeNoVo;
  12. import com.template.model.vo.BsGradeVo;
  13. import com.template.model.vo.SemesterVo;
  14. import com.template.services.SmartGradeService;
  15. import com.template.services.SmartIdentityService;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.validation.BindingResult;
  18. import org.springframework.web.bind.annotation.RestController;
  19. import javax.annotation.Resource;
  20. import java.net.URLDecoder;
  21. import java.net.URLEncoder;
  22. import java.util.ArrayList;
  23. import java.util.List;
  24. import static com.template.common.utils.AesTestOne.decrypt;
  25. /**
  26. * <p>
  27. * 年级表 前端控制器
  28. * </p>
  29. *
  30. * @author ceshi
  31. * @since 2023-12-25
  32. */
  33. @RestController
  34. public class SmartGradeController implements SmartGradeControllerAPI {
  35. @Resource
  36. private ControlConfig controlConfig;
  37. @Autowired
  38. private SmartGradeService smartGradeService;
  39. @Override
  40. public CommonResult insertSmartGrade(SmartGrade smartApply, BindingResult bindingResult) {
  41. return null;
  42. }
  43. @Override
  44. public CommonResult updateSmartGradeById(SmartGrade ra, BindingResult bindingResult) {
  45. return null;
  46. }
  47. @Override
  48. public CommonResult queryPageSmartGrades(int currentPage, int pageCount, String name) {
  49. return null;
  50. }
  51. @Override
  52. public CommonResult deleteSmartGradeById(int id) {
  53. return null;
  54. }
  55. @Override
  56. public CommonResult querySmartGrades() {
  57. List<SmartGrade> datas = smartGradeService.getSmartGrades();
  58. List<SemesterVo> result = new ArrayList<>();
  59. for (SmartGrade data : datas) {
  60. SemesterVo model = new SemesterVo();
  61. model.setId(data.getId());
  62. model.setName(data.getName());
  63. result.add(model);
  64. }
  65. return CommonResult.ok(result);
  66. }
  67. @Override
  68. public CommonResult insertSmartGradeToBaisheng(insertSmartGradeRequest isgr, BindingResult bindingResult) throws Exception {
  69. if (bindingResult.hasErrors()) {
  70. String st = paramUtils.getParamError(bindingResult);
  71. return CommonResult.fail(st);
  72. }
  73. //判断重复性
  74. int existCount = smartGradeService.existSmartGrade(isgr.getGradeNo(),isgr.getGradeName());
  75. if(existCount > 0){
  76. return CommonResult.fail("该年级数据已在系统中存在,请勿重复添加");
  77. }
  78. String appId = controlConfig.getAppId();
  79. String schoolno = controlConfig.getSchoolCode();
  80. String timestamp = TimeExchange.DateNowTimeStamo();
  81. String gradeName = isgr.getGradeName();
  82. String appSecret = controlConfig.getAppSecret();
  83. String url = "http://schoolopenapi.szymzh.com/openapi/grade/create";
  84. JSONObject jsonobject = new JSONObject();
  85. jsonobject.put("appid", appId);
  86. String str = "{\"grade_name\":\""+gradeName+"\"}";
  87. String aesStr = URLEncoder.encode(AesTestOne.encrypt(str),"UTF-8");
  88. jsonobject.put("data", aesStr);
  89. jsonobject.put("schoolno", schoolno);
  90. jsonobject.put("timestamp", timestamp);
  91. //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
  92. String md5Str = "appid=" + appId + "&data={\"grade_name\":\""+gradeName+"\"}" + "&schoolno=" + schoolno + "&timestamp=" + timestamp + "&key=" + appSecret;
  93. String sign = CommonUtil.MD5(md5Str);
  94. //sign签名
  95. jsonobject.put("sign", sign);
  96. //返回的结果中 code为1表示成功
  97. String result = RequestUtils.httpPost(url, jsonobject.toJSONString());
  98. if(result.contains("添加成功")){
  99. ObjectMapper objectMapper = new ObjectMapper();
  100. BsGradeVo grade = objectMapper.readValue(result, BsGradeVo.class);
  101. // URL解码
  102. String decodedUrl = URLDecoder.decode(grade.getData(), "UTF-8");
  103. BsGradeNoVo gradeNo = objectMapper.readValue(decrypt(decodedUrl), BsGradeNoVo.class);
  104. SmartGrade smartGrade = new SmartGrade();
  105. smartGrade.setGradeNo(isgr.getGradeNo());
  106. smartGrade.setName(isgr.getGradeName());
  107. smartGrade.setBsGradeNo(gradeNo.getGrade_no());
  108. int insertResult = smartGradeService.insertSmartGrade(smartGrade);
  109. return insertResult > 0 ? CommonResult.ok("添加成功") : CommonResult.fail("添加失败");
  110. }else{
  111. CommonResult.fail("添加失败");
  112. }
  113. return CommonResult.ok("添加成功");
  114. }
  115. }