ApplyClearingController.java 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. package com.hywa.banktest.controller;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.hywa.banktest.bankframework.utils.StringUtils;
  4. import com.hywa.banktest.common.*;
  5. import com.hywa.banktest.entity.CheckBankVO;
  6. import com.hywa.banktest.entity.GetBankNo;
  7. import com.hywa.banktest.entity.GetClearText;
  8. import com.hywa.banktest.entity.TransRequest;
  9. import com.hywa.banktest.service.CarbonBankService;
  10. import com.hywa.banktest.service.OrderInfoService;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.beans.factory.annotation.Value;
  14. import org.springframework.web.bind.annotation.*;
  15. import java.util.Calendar;
  16. @Slf4j
  17. @RestController
  18. @RequestMapping(value = "/clearing")
  19. public class ApplyClearingController {
  20. @Autowired
  21. private ValidateSignUtils validateSignUtils;
  22. @Autowired
  23. private OrderInfoService orderInfoService;
  24. @Autowired
  25. private CarbonBankService carbonBankService;
  26. @Value("spring.datasource.url")
  27. private String url;
  28. @PostMapping(value = "/apply")
  29. public AjaxJson apply(@RequestBody ApplyClearingForm form){
  30. log.info("form==============>{}",form);
  31. if(null!=form && !"".equals(form.getSignStr())){
  32. // 验证字符串签名
  33. try {
  34. if(validateSignUtils.signVerify(form.getRecordId(),form.getSignStr())){
  35. // 开始打款
  36. orderInfoService.dealClearingRecordByRid(form.getRecordId(), form.getCompanyType());
  37. return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS);
  38. }else{
  39. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  40. }
  41. } catch (Exception e) {
  42. log.info("validateSignUtils signVerify is error");
  43. return new AjaxJson(AjaxJson.FAILURE,"validateSignUtils signVerify is error");
  44. }
  45. }
  46. return new AjaxJson(AjaxJson.FAILURE,"验证字符串参数未传,请检查接口参数");
  47. }
  48. @PostMapping("/orApply")
  49. public AjaxJson applyByOrderId(@RequestBody OrderInfoClearingForm orderInfoClearingForm){
  50. Calendar cal= Calendar.getInstance();
  51. int h=cal.get(Calendar.HOUR_OF_DAY);
  52. if (h>21){
  53. return new AjaxJson(ResponseEnum.ERROREQUEST);
  54. }
  55. log.info("orderInfoForm订单请求划款>>>>>{}", JSONObject.toJSONString(orderInfoClearingForm));
  56. if (orderInfoClearingForm.getTimeStamp() == null){
  57. return new AjaxJson(ResponseEnum.REQNUMNULL);
  58. }
  59. long time = orderInfoClearingForm.getTimeStamp();
  60. long timeStamp = getTimeStamp(time);
  61. if (timeStamp>60000){
  62. return new AjaxJson(ResponseEnum.ERROREQUEST);
  63. }
  64. // 先进行值判断是否为空
  65. if (StringUtils.isEmpty(orderInfoClearingForm.getOrderId())){
  66. return new AjaxJson(ResponseEnum.REQNUMNULL);
  67. }
  68. if (StringUtils.isEmpty(orderInfoClearingForm.getSignStr())){
  69. return new AjaxJson(ResponseEnum.REQNUMNULL);
  70. }
  71. //组装数据
  72. boolean flag = false;
  73. //验证字符串签名
  74. try {
  75. flag = validateSignUtils.signVerify(time+"|"+orderInfoClearingForm.getRecordId()+"|"+orderInfoClearingForm.getOrderId(), orderInfoClearingForm.getSignStr());
  76. } catch (Exception e) {
  77. return new AjaxJson(ResponseEnum.FAIL);
  78. }
  79. if (flag){
  80. //orderInfoClearingForm.setCompanyType("1");
  81. int i = orderInfoService.dealClearingRecordByRid(orderInfoClearingForm.getRecordId(),orderInfoClearingForm.getCompanyType() );
  82. return new AjaxJson(ResponseEnum.SUCCESS);
  83. }
  84. return new AjaxJson(ResponseEnum.CHECKFAIL);
  85. }
  86. @PostMapping("/check")
  87. public AjaxJson checkBankNo(@RequestBody CheckBankVO checkBankVO){
  88. checkBankVO.setCompanyType("1");
  89. log.info("------请求银行卡验证---{}",JSONObject.toJSONString(checkBankVO));
  90. if (checkBankVO.getTimeStamp()==null||StringUtils.isEmpty(checkBankVO.getSignStr())){
  91. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  92. }
  93. long timeStamp = checkBankVO.getTimeStamp();
  94. long sc = getTimeStamp(timeStamp);
  95. if (sc>60000){
  96. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  97. }
  98. String strSign = checkBankVO.getSignStr();
  99. String farmerPid = checkBankVO.getFarmerPid();
  100. String farmerAccount = checkBankVO.getFarmerAccount();
  101. if (StringUtils.isEmpty(farmerAccount)||StringUtils.isEmpty(farmerPid)){
  102. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  103. }
  104. boolean flag = false;
  105. try {
  106. flag = validateSignUtils.signVerify(timeStamp + "|" + farmerPid + "|" + farmerAccount, strSign);
  107. } catch (Exception e) {
  108. log.info("------系统异常---{}",JSONObject.toJSONString(checkBankVO));
  109. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  110. }
  111. if (flag){
  112. return carbonBankService.checkBankCard(checkBankVO);
  113. }
  114. return new AjaxJson(ResponseEnum.CHECKFAIL);
  115. }
  116. @PostMapping("/bankNum")
  117. public AjaxJson getBankNum(@RequestBody GetBankNo getBankNo){
  118. log.info("------请求银行卡余额数量---{}",JSONObject.toJSONString(getBankNo));
  119. if (getBankNo==null||StringUtils.isEmpty(getBankNo.getSignStr())){
  120. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  121. }
  122. long timeStamp = getBankNo.getTimeStamp();
  123. long sc = getTimeStamp(timeStamp);
  124. if (sc>60000){
  125. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  126. }
  127. String strSign = getBankNo.getSignStr();
  128. boolean flag = false;
  129. try {
  130. flag = validateSignUtils.signVerify(timeStamp + "|gzth$12345", strSign);
  131. } catch (Exception e) {
  132. log.info("------系统异常---{}",JSONObject.toJSONString(getBankNo));
  133. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  134. }
  135. if (flag){
  136. return carbonBankService.findCardNumMoney(getBankNo);
  137. }
  138. return new AjaxJson(ResponseEnum.CHECKFAIL);
  139. }
  140. /**
  141. * 获取清分的文件详情
  142. * @param getBankNo
  143. * @return
  144. */
  145. @PostMapping("/clearText")
  146. public AjaxJson getClearText(@RequestBody GetClearText getBankNo){
  147. log.info("------请求银行卡余额数量---{}",JSONObject.toJSONString(getBankNo));
  148. if (getBankNo==null||StringUtils.isEmpty(getBankNo.getSignStr())){
  149. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  150. }
  151. long timeStamp = getBankNo.getTimeStamp();
  152. long sc = getTimeStamp(timeStamp);
  153. if (sc>60000){
  154. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  155. }
  156. String strSign = getBankNo.getSignStr();
  157. boolean flag = false;
  158. try {
  159. flag = validateSignUtils.signVerify(timeStamp + "|gzth$12345|"+getBankNo.getClearId(), strSign);
  160. } catch (Exception e) {
  161. log.info("------系统异常---{}",JSONObject.toJSONString(getBankNo));
  162. return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE);
  163. }
  164. if (flag){
  165. return carbonBankService.getClearText(getBankNo);
  166. }
  167. return new AjaxJson(ResponseEnum.CHECKFAIL);
  168. }
  169. public long getTimeStamp(long timeStamp){
  170. long endTime = System.currentTimeMillis();
  171. long sc = endTime - timeStamp;
  172. return sc;
  173. }
  174. public AjaxJson getApp(@RequestBody TransRequest transRequest) {
  175. // 先进行值判断是否为空
  176. if (StringUtils.isEmpty(transRequest.getRecord())){
  177. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  178. }
  179. if (StringUtils.isEmpty(transRequest.getSignStr())){
  180. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  181. }
  182. //组装数据
  183. boolean flag = false;
  184. //验证字符串签名
  185. try {
  186. flag = validateSignUtils.signVerify(transRequest.getRecord()+"|"+transRequest.getTransVos().size(), transRequest.getSignStr());
  187. } catch (Exception e) {
  188. return new AjaxJson(ResponseEnum.FAIL);
  189. }
  190. if (flag){
  191. return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS);
  192. }
  193. return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE);
  194. }
  195. @GetMapping("/checkService")
  196. public AjaxJson checkService(){
  197. return new AjaxJson("连接服务正常");
  198. }
  199. }