package com.hywa.banktest.controller; import com.alibaba.fastjson.JSONObject; import com.hywa.banktest.bankframework.utils.StringUtils; import com.hywa.banktest.common.*; import com.hywa.banktest.entity.CheckBankVO; import com.hywa.banktest.entity.GetBankNo; import com.hywa.banktest.entity.GetClearText; import com.hywa.banktest.entity.TransRequest; import com.hywa.banktest.service.CarbonBankService; import com.hywa.banktest.service.OrderInfoService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.*; import java.util.Calendar; @Slf4j @RestController @RequestMapping(value = "/clearing") public class ApplyClearingController { @Autowired private ValidateSignUtils validateSignUtils; @Autowired private OrderInfoService orderInfoService; @Autowired private CarbonBankService carbonBankService; @Value("spring.datasource.url") private String url; @PostMapping(value = "/apply") public AjaxJson apply(@RequestBody ApplyClearingForm form){ log.info("form==============>{}",form); if(null!=form && !"".equals(form.getSignStr())){ // 验证字符串签名 try { if(validateSignUtils.signVerify(form.getRecordId(),form.getSignStr())){ // 开始打款 orderInfoService.dealClearingRecordByRid(form.getRecordId(), form.getCompanyType()); return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS); }else{ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } } catch (Exception e) { log.info("validateSignUtils signVerify is error"); return new AjaxJson(AjaxJson.FAILURE,"validateSignUtils signVerify is error"); } } return new AjaxJson(AjaxJson.FAILURE,"验证字符串参数未传,请检查接口参数"); } @PostMapping("/orApply") public AjaxJson applyByOrderId(@RequestBody OrderInfoClearingForm orderInfoClearingForm){ Calendar cal= Calendar.getInstance(); int h=cal.get(Calendar.HOUR_OF_DAY); if (h>21){ return new AjaxJson(ResponseEnum.ERROREQUEST); } log.info("orderInfoForm订单请求划款>>>>>{}", JSONObject.toJSONString(orderInfoClearingForm)); if (orderInfoClearingForm.getTimeStamp() == null){ return new AjaxJson(ResponseEnum.REQNUMNULL); } long time = orderInfoClearingForm.getTimeStamp(); long timeStamp = getTimeStamp(time); if (timeStamp>60000){ return new AjaxJson(ResponseEnum.ERROREQUEST); } // 先进行值判断是否为空 if (StringUtils.isEmpty(orderInfoClearingForm.getOrderId())){ return new AjaxJson(ResponseEnum.REQNUMNULL); } if (StringUtils.isEmpty(orderInfoClearingForm.getSignStr())){ return new AjaxJson(ResponseEnum.REQNUMNULL); } //组装数据 boolean flag = false; //验证字符串签名 try { flag = validateSignUtils.signVerify(time+"|"+orderInfoClearingForm.getRecordId()+"|"+orderInfoClearingForm.getOrderId(), orderInfoClearingForm.getSignStr()); } catch (Exception e) { return new AjaxJson(ResponseEnum.FAIL); } if (flag){ //orderInfoClearingForm.setCompanyType("1"); int i = orderInfoService.dealClearingRecordByRid(orderInfoClearingForm.getRecordId(),orderInfoClearingForm.getCompanyType() ); return new AjaxJson(ResponseEnum.SUCCESS); } return new AjaxJson(ResponseEnum.CHECKFAIL); } @PostMapping("/check") public AjaxJson checkBankNo(@RequestBody CheckBankVO checkBankVO){ checkBankVO.setCompanyType("1"); log.info("------请求银行卡验证---{}",JSONObject.toJSONString(checkBankVO)); if (checkBankVO.getTimeStamp()==null||StringUtils.isEmpty(checkBankVO.getSignStr())){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } long timeStamp = checkBankVO.getTimeStamp(); long sc = getTimeStamp(timeStamp); if (sc>60000){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } String strSign = checkBankVO.getSignStr(); String farmerPid = checkBankVO.getFarmerPid(); String farmerAccount = checkBankVO.getFarmerAccount(); if (StringUtils.isEmpty(farmerAccount)||StringUtils.isEmpty(farmerPid)){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } boolean flag = false; try { flag = validateSignUtils.signVerify(timeStamp + "|" + farmerPid + "|" + farmerAccount, strSign); } catch (Exception e) { log.info("------系统异常---{}",JSONObject.toJSONString(checkBankVO)); return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } if (flag){ return carbonBankService.checkBankCard(checkBankVO); } return new AjaxJson(ResponseEnum.CHECKFAIL); } @PostMapping("/bankNum") public AjaxJson getBankNum(@RequestBody GetBankNo getBankNo){ log.info("------请求银行卡余额数量---{}",JSONObject.toJSONString(getBankNo)); if (getBankNo==null||StringUtils.isEmpty(getBankNo.getSignStr())){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } long timeStamp = getBankNo.getTimeStamp(); long sc = getTimeStamp(timeStamp); if (sc>60000){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } String strSign = getBankNo.getSignStr(); boolean flag = false; try { flag = validateSignUtils.signVerify(timeStamp + "|gzth$12345", strSign); } catch (Exception e) { log.info("------系统异常---{}",JSONObject.toJSONString(getBankNo)); return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } if (flag){ return carbonBankService.findCardNumMoney(getBankNo); } return new AjaxJson(ResponseEnum.CHECKFAIL); } /** * 获取清分的文件详情 * @param getBankNo * @return */ @PostMapping("/clearText") public AjaxJson getClearText(@RequestBody GetClearText getBankNo){ log.info("------请求银行卡余额数量---{}",JSONObject.toJSONString(getBankNo)); if (getBankNo==null||StringUtils.isEmpty(getBankNo.getSignStr())){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } long timeStamp = getBankNo.getTimeStamp(); long sc = getTimeStamp(timeStamp); if (sc>60000){ return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } String strSign = getBankNo.getSignStr(); boolean flag = false; try { flag = validateSignUtils.signVerify(timeStamp + "|gzth$12345|"+getBankNo.getClearId(), strSign); } catch (Exception e) { log.info("------系统异常---{}",JSONObject.toJSONString(getBankNo)); return new AjaxJson(AjaxJson.FAILURE,AjaxJson.MSGFAILURE); } if (flag){ return carbonBankService.getClearText(getBankNo); } return new AjaxJson(ResponseEnum.CHECKFAIL); } public long getTimeStamp(long timeStamp){ long endTime = System.currentTimeMillis(); long sc = endTime - timeStamp; return sc; } public AjaxJson getApp(@RequestBody TransRequest transRequest) { // 先进行值判断是否为空 if (StringUtils.isEmpty(transRequest.getRecord())){ return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE); } if (StringUtils.isEmpty(transRequest.getSignStr())){ return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE); } //组装数据 boolean flag = false; //验证字符串签名 try { flag = validateSignUtils.signVerify(transRequest.getRecord()+"|"+transRequest.getTransVos().size(), transRequest.getSignStr()); } catch (Exception e) { return new AjaxJson(ResponseEnum.FAIL); } if (flag){ return new AjaxJson(AjaxJson.SUCCESS ,AjaxJson.DEAL_CLEARING_APPLY_SUCCESS); } return new AjaxJson(AjaxJson.FAILURE ,AjaxJson.MSGFAILURE); } @GetMapping("/checkService") public AjaxJson checkService(){ return new AjaxJson("连接服务正常"); } }