DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/TokenUtil.java
@@ -38,10 +38,11 @@ headerMap.put("encrp", "1"); headerMap.put("encrpNo", zhengLianConfig.getEncrpNo()); headerMap.put("timestamp", sdf.format(new Date())); log.info("【证联获取token】请求头报文:"+JSON.toJSONString(headerMap)); tokenRequest.setAppId(zhengLianConfig.getAppid()); String reqBO = JSON.toJSONString(tokenRequest); log.info("【证联获取token】请求体报文:"+reqBO); // 生成对称加密秘钥 String key = ZhengLianUtil.generateKey(16); // 加密数据 @@ -55,31 +56,32 @@ body.setData(jsonData); body.setSign(ZhengLianUtil.sign(jsonData)); body.setSecret(secrtKey); log.info("【证联获取token】请求体密文报文:"+JSON.toJSONString(body)); String result = ZLHttpClientUtil.doPost(zhengLianConfig.getUrl(), headerMap, JSON.toJSONString(body)); System.out.println("应答内容:"+ result); log.info("【证联获取token】应答内容:"+ result); MessageBody respBody = JSON.parseObject(result,MessageBody.class); // 验签 boolean checkResult = SM2Util.verify(publicKey, zhengLianConfig.getEncrpNo(), respBody.getSign(), respBody.getData()); System.out.println("验签结果:" + checkResult); log.info("【证联获取token】验签结果:" + checkResult); // 获取私钥 String privateKey = ZhengLianUtil.getPrivateKey(); // 解密对称秘钥 String k = SM2Util.decrypt(privateKey, respBody.getSecret()); System.out.println("对称秘钥:" + k); log.info("【证联获取token】对称秘钥:" + k); // 解密业务报文 String backData = SM4Util.sm4EcbDecrypt(k, respBody.getData()); System.out.println("返回业务报文:" + backData); log.info("【证联获取token】返回业务报文:" + backData); JSONObject jsonObject = JSON.parseObject(backData); String sysRtnCode = jsonObject.getString("sysRtnCode"); if(!"000000".equals(sysRtnCode)){ log.error("获取token失败!{}", jsonObject.getString("sysRtnMsg")); log.error("【证联获取token】获取token失败!{}", jsonObject.getString("sysRtnMsg")); throw new Exception(jsonObject.getString("sysRtnMsg")); } JSONObject bizData = jsonObject.getJSONObject("bizData"); String resCode = bizData.getString("resCode"); if(!"S010000".equals(resCode)){ log.error("获取token失败!{}", bizData.getString("resMsg")); log.error("【证联获取token】获取token失败!{}", bizData.getString("resMsg")); throw new Exception(jsonObject.getString("resMsg")); } JSONObject resData = bizData.getJSONObject("resData"); DriverQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/zhenglian/ZhengLianUtil.java
@@ -56,12 +56,14 @@ headerMap.put("encrp", "1"); headerMap.put("encrpNo", zhengLianConfig.getEncrpNo()); headerMap.put("timestamp", sdf.format(new Date())); log.info("【证联获取用户信息】请求头报文:"+JSON.toJSONString(headerMap)); Map<String, Object> map = new HashMap<>(); map.put("appId", zhengLianConfig.getAppid()); map.put("appUserId", appUserId); map.put("tradeTerminalInfo", tradeTerminalInfo); String reqBO = JSON.toJSONString(map); log.info("【证联获取用户信息】请求体报文:"+reqBO); // 生成对称加密秘钥 String key = ZhengLianUtil.generateKey(16); // 加密数据 @@ -75,25 +77,26 @@ body.setData(jsonData); body.setSign(ZhengLianUtil.sign(jsonData)); body.setSecret(secrtKey); log.info("【证联获取用户信息】请求体密文报文:"+JSON.toJSONString(body)); String result = ZLHttpClientUtil.doPost(zhengLianConfig.getUrl(), headerMap, JSON.toJSONString(body)); System.out.println("应答内容:"+ result); log.info("【证联获取用户信息】应答内容:"+ result); MessageBody respBody = JSON.parseObject(result,MessageBody.class); // 验签 boolean checkResult = SM2Util.verify(publicKey, zhengLianConfig.getEncrpNo(), respBody.getSign(), respBody.getData()); System.out.println("验签结果:" + checkResult); log.info("【证联获取用户信息】验签结果:" + checkResult); // 获取私钥 String privateKey = ZhengLianUtil.getPrivateKey(); // 解密对称秘钥 String k = SM2Util.decrypt(privateKey, respBody.getSecret()); System.out.println("对称秘钥:" + k); log.info("【证联获取用户信息】对称秘钥:" + k); // 解密业务报文 String backData = SM4Util.sm4EcbDecrypt(k, respBody.getData()); System.out.println("返回业务报文:" + backData); log.info("【证联获取用户信息】返回业务报文:" + backData); JSONObject jsonObject = JSON.parseObject(backData); String sysRtnCode = jsonObject.getString("sysRtnCode"); if(!"000000".equals(sysRtnCode)){ log.error("查询用户信息失败!{}", jsonObject.getString("sysRtnMsg")); log.error("【证联获取用户信息】查询用户信息失败!{}", jsonObject.getString("sysRtnMsg")); throw new Exception(jsonObject.getString("sysRtnMsg")); } JSONObject bizData = jsonObject.getJSONObject("bizData"); @@ -102,7 +105,7 @@ return null; } if(!"S010000".equals(resCode)){ log.error("查询用户信息失败!{}", bizData.getString("resMsg")); log.error("【证联获取用户信息】查询用户信息失败!{}", bizData.getString("resMsg")); throw new Exception(jsonObject.getString("resMsg")); } JSONObject resData = bizData.getJSONObject("resData"); DriverQYTTravel/guns-admin/src/test/java/com/stylefeng/guns/GunsApplicationTest.java
@@ -1,47 +1,47 @@ //package com.stylefeng.guns; // //import com.stylefeng.guns.modular.system.model.Driver; //import com.stylefeng.guns.modular.system.service.IDriverService; //import com.stylefeng.guns.modular.system.util.zhenglian.ZhengLianUtil; //import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; //import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; //import com.stylefeng.guns.modular.system.util.zhenglian.model.ZLUserInfo; //import org.junit.Test; //import org.junit.runner.RunWith; //import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.data.mongodb.core.MongoTemplate; //import org.springframework.test.context.junit4.SpringRunner; // //@RunWith(SpringRunner.class) //@SpringBootTest //public class GunsApplicationTest { // // @Autowired // private MongoTemplate mongoTemplate; // @Autowired // private IDriverService driverService; // // // @Test // public void test() { // // Driver driver = driverService.selectById(14); // TokenRequest tokenRequest = new TokenRequest(); // tokenRequest.setAppUserId(driver.getEmpId().toString()); // tokenRequest.setUserName(driver.getName()); // tokenRequest.setCertNo(driver.getIdCard()); // tokenRequest.setPhone(driver.getPhone()); // TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); // tradeTerminalInfo.setIp("127.0.0.1"); // tradeTerminalInfo.setTerminal("1"); // tradeTerminalInfo.setMac(""); // ZLUserInfo userInfo = null; // try { // userInfo = ZhengLianUtil.getUserInfo("14", tradeTerminalInfo); // } catch (Exception e) { // throw new RuntimeException(e); // } // System.err.println(userInfo); // } //} package com.stylefeng.guns; import com.stylefeng.guns.modular.system.model.Driver; import com.stylefeng.guns.modular.system.service.IDriverService; import com.stylefeng.guns.modular.system.util.zhenglian.TokenUtil; import com.stylefeng.guns.modular.system.util.zhenglian.model.TokenRequest; import com.stylefeng.guns.modular.system.util.zhenglian.model.TradeTerminalInfo; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class GunsApplicationTest { @Autowired private MongoTemplate mongoTemplate; @Autowired private IDriverService driverService; @Test public void test() { Driver driver = driverService.selectById(14); TokenRequest tokenRequest = new TokenRequest(); tokenRequest.setAppUserId(driver.getEmpId().toString()); tokenRequest.setUserName(driver.getName()); tokenRequest.setCertNo(driver.getIdCard()); tokenRequest.setPhone(driver.getPhone()); TradeTerminalInfo tradeTerminalInfo = new TradeTerminalInfo(); tradeTerminalInfo.setIp("127.0.0.1"); tradeTerminalInfo.setTerminal("1"); tradeTerminalInfo.setMac("111-111-111-111"); tokenRequest.setTradeTerminalInfo(tradeTerminalInfo); tokenRequest.setType("04"); try { String token = TokenUtil.getToken(tokenRequest); System.err.println(token); } catch (Exception e) { throw new RuntimeException(e); } } } ManagementQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/controller/specialTrain/TSystemPriceController.java
@@ -383,10 +383,10 @@ } if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper<SystemPriceCity>().eq("areaCode", systemPriceCity.getAreaCode()) .eq("cityCode", systemPriceCity.getCityCode()).ne("flag", 3)); .eq("cityCode", systemPriceCity.getCityCode()).isNull("provinceCode").ne("flag", 3)); if(null == one){ one = systemPriceCityService.selectOne(new EntityWrapper<SystemPriceCity>().eq("areaCode", systemPriceCity.getAreaCode()) .ne("flag", 3)); .isNull("cityCode").isNull("provinceCode").ne("flag", 3)); if(null != one && !systemPriceCity.getId().equals(one.getId())){ return new ErrorTip(500, "不能重复添加城市"); } UserQYTTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/specialTrain/dao/mapping/OrderPrivateCarMapper.xml
@@ -611,7 +611,7 @@ id as orderId, rideType as rideType, DATE_FORMAT(insertTime, '%Y-%m-%d %H:%i') as orderTime, DATE_FORMAT(travelTime, '%m月?d日 %H:%i') as time, DATE_FORMAT(travelTime, '%m月%d日 %H:%i') as time, startAddress as startAddress, endAddress as endAddress, driverId as driverId,