From 3ef02177eae63e4287e27aa36493d696b53c5621 Mon Sep 17 00:00:00 2001 From: kongdeqiang <123456> Date: 星期三, 20 九月 2023 17:17:44 +0800 Subject: [PATCH] 修改 --- src/main/java/com/boying/service/OutParkService.java | 6 src/main/java/com/boying/service/WXService.java | 20 ++ src/main/java/com/boying/service/impl/EnterParkServiceImpl.java | 2 src/main/java/com/boying/service/impl/OutParkServiceImpl.java | 34 ++++ src/main/java/com/boying/common/WeChatConfig.java | 24 +++ src/main/java/com/boying/util/CommonUtil.java | 86 ++++++++++ src/main/java/com/boying/controller/OutParkController.java | 34 ++++ src/main/java/com/boying/service/impl/WXServiceImpl.java | 80 ++++++++++ src/main/java/com/boying/entity/XTYHResult.java | 26 +++ pom.xml | 148 ++++++++++++++---- 10 files changed, 424 insertions(+), 36 deletions(-) diff --git a/pom.xml b/pom.xml index 73486ff..32afc3d 100644 --- a/pom.xml +++ b/pom.xml @@ -111,43 +111,20 @@ <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> </dependency> -<!-- <dependency>--> -<!-- <groupId>net.sf</groupId>--> -<!-- <artifactId>jni4net</artifactId>--> -<!-- <version>0.8.8.0</version>--> -<!-- <scope>system</scope>--> -<!-- <systemPath>${basedir}/src/main/resources/jni/jni4net.j-0.8.8.0.jar</systemPath>--> -<!-- </dependency>--> - -<!-- <dependency>--> -<!-- <groupId>com.led</groupId>--> -<!-- <artifactId>show</artifactId>--> -<!-- <version>0.0.1</version>--> -<!-- <scope>system</scope>--> -<!-- <systemPath>${basedir}/src/main/resources/jni/LedShow.j4n.jar</systemPath>--> -<!-- </dependency>--> + <dependency> + <groupId>org.bouncycastle</groupId> + <artifactId>bcprov-jdk15on</artifactId> + <version>1.68</version> + </dependency> + <dependency> + <groupId>com.ruim.ifsp</groupId> + <artifactId>signature</artifactId> + <version>1.1.0.6</version> + </dependency> </dependencies> <build> <plugins> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>io.fabric8</groupId> - <artifactId>docker-maven-plugin</artifactId> - </plugin> - <!--涓婄嚎閮ㄧ讲 JAR鍚姩鍒嗙渚濊禆lib鍜岄厤缃�--> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-resources-plugin</artifactId> - <version>3.1.0</version> - </plugin> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> @@ -219,6 +196,111 @@ </executions> </plugin> </plugins> + <resources> + <resource> + <directory>libs</directory> + <targetPath>BOOT-INF/lib/</targetPath> + <includes> + <include>*.jar</include> + </includes> + </resource> + </resources> </build> +<!-- <build>--> +<!-- <plugins>--> +<!-- <plugin>--> +<!-- <groupId>org.apache.maven.plugins</groupId>--> +<!-- <artifactId>maven-jar-plugin</artifactId>--> +<!-- <configuration>--> +<!-- <!–涓嶆墦鍖呰祫婧愭枃浠�–>--> +<!-- <excludes>--> +<!-- <exclude>*.**</exclude>--> +<!-- </excludes>--> +<!-- <archive>--> +<!-- <manifest>--> +<!-- <addClasspath>true</addClasspath>--> +<!-- <classpathPrefix>lib/</classpathPrefix>--> +<!-- <!–jar鍖呬笉鍖呭惈鍞竴鐗堟湰鏍囪瘑–>--> +<!-- <useUniqueVersions>false</useUniqueVersions>--> +<!-- <!–绋嬪簭鍚姩绫籥pplication.java鐨勮矾寰�–>--> +<!-- <mainClass>com.boying.Application</mainClass>--> +<!-- </manifest>--> +<!-- <!– 鎸囧畾閰嶇疆鏂囦欢鐩綍锛岃繖鏍穓ar杩愯鏃朵細鍘绘壘鍒板悓鐩綍涓嬬殑config鏂囦欢澶逛笅鏌ユ壘 –>--> +<!-- <manifestEntries>--> +<!-- <Class-Path>config/</Class-Path>--> +<!-- </manifestEntries>--> +<!-- </archive>--> +<!-- <outputDirectory>1-running/</outputDirectory>--> +<!-- </configuration>--> +<!-- </plugin>--> +<!-- <!–鎷疯礉渚濊禆 copy-dependencies–>--> +<!-- <plugin>--> +<!-- <groupId>org.apache.maven.plugins</groupId>--> +<!-- <artifactId>maven-dependency-plugin</artifactId>--> +<!-- <executions>--> +<!-- <execution>--> +<!-- <id>copy-dependencies</id>--> +<!-- <phase>package</phase>--> +<!-- <goals>--> +<!-- <goal>copy-dependencies</goal>--> +<!-- </goals>--> +<!-- <configuration>--> +<!-- <outputDirectory>--> +<!-- 1-running/lib/--> +<!-- </outputDirectory>--> +<!-- </configuration>--> +<!-- </execution>--> +<!-- </executions>--> +<!-- </plugin>--> +<!-- <!–鎷疯礉璧勬簮鏂囦欢 copy-resources–>--> +<!-- <plugin>--> +<!-- <artifactId>maven-resources-plugin</artifactId>--> +<!-- <executions>--> +<!-- <execution>--> +<!-- <id>copy-resources</id>--> +<!-- <phase>package</phase>--> +<!-- <goals>--> +<!-- <goal>copy-resources</goal>--> +<!-- </goals>--> +<!-- <configuration>--> +<!-- <resources>--> +<!-- <resource>--> +<!-- <directory>src/main/resources</directory>--> +<!-- <!– 鎸囧畾鍙備笌鏋勫缓鐨剅esoures–>--> +<!-- <includes>--> +<!-- <include>**/*</include>--> +<!-- </includes>--> +<!-- <filtering>true</filtering>--> +<!-- </resource>--> +<!-- </resources>--> +<!-- <outputDirectory>1-running/config</outputDirectory>--> +<!-- </configuration>--> +<!-- </execution>--> +<!-- </executions>--> +<!-- </plugin>--> +<!-- </plugins>--> +<!-- <resources>--> +<!-- <resource>--> +<!-- <!– directory 琛ㄧず鍙栬鐩綍涓嬬殑鏂囦欢 –>--> +<!-- <directory>libs</directory>--> +<!-- <!–targetPath 鎸囧畾鎵撳寘鍒板摢涓洰褰曚笅 榛樿鏄斁鍒癱lass鐩綍涓�–>--> +<!-- <targetPath>/BOOT-INF/lib/</targetPath>--> +<!-- <!– 鍙栫鍚堟牸寮忕殑鎵�鏈夋枃浠� *浠h〃鍏ㄩ儴 –>--> +<!-- <includes>--> +<!-- <include>**/*.jar</include>--> +<!-- </includes>--> +<!-- </resource>--> +<!-- <!– 鎵撳寘jar鏃惰В寮�涓嬫柟鐨勬敞閲婏紝濡傛灉鏄紪璇戝櫒杩愯椤圭洰鏃舵敞閲婃帀涓嬫柟閰嶇疆锛�--> +<!-- 銆�銆�銆�銆�銆�銆�鍥犱负缂栬瘧鍣ㄨ繍琛岄」鐩椂锛岄」鐩細璇诲彇澶栭儴渚濊禆鍖呯殑閰嶇疆鏂囦欢锛�--> +<!-- 銆�銆�銆�銆�銆�銆�椤圭洰鏈韩鐨勯厤缃枃浠惰涓嶅埌 –>--> +<!-- <!–<resource>--> +<!-- 鎶妔rc/main/resources涓嬬殑鎵�鏈夐厤缃枃浠跺姞杞藉埌鎵撳寘鍚庣殑BOOT-INF/classes鏂囦欢涓�--> +<!-- <directory>src/main/resources</directory>--> +<!-- <targetPath>BOOT-INF/classes</targetPath>--> +<!-- </resource>–>--> +<!-- </resources>--> +<!-- </build>--> + + </project> diff --git a/src/main/java/com/boying/common/WeChatConfig.java b/src/main/java/com/boying/common/WeChatConfig.java new file mode 100644 index 0000000..5915097 --- /dev/null +++ b/src/main/java/com/boying/common/WeChatConfig.java @@ -0,0 +1,24 @@ +package com.boying.common; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName WeChatConfig.java + * @Description TODO + * @createTime 2023骞�09鏈�11鏃� 08:30:00 + */ +public class WeChatConfig { + /** + * 寰俊鏈嶅姟鍙稟PPID + */ + public static String APPID="wx46e756aed958f895"; + /** + * appsecret + */ + public static String APPSECRECT="543d89dae2d5445298f4ef588f41538f"; + /** + * grant_type + */ + public static String GRANTTYPE="authorization_code"; + +} diff --git a/src/main/java/com/boying/controller/OutParkController.java b/src/main/java/com/boying/controller/OutParkController.java index a70ad40..47d3411 100644 --- a/src/main/java/com/boying/controller/OutParkController.java +++ b/src/main/java/com/boying/controller/OutParkController.java @@ -71,7 +71,11 @@ page.setTotal(count); return R.ok(page); } - + //getById + @PostMapping("/getById") + public Object getById(Long id) { + return R.ok(outParkService.getById(id)); + } //閬撻椄code @PostMapping("/findByBarrierCode") public Object findById(String code) { @@ -100,6 +104,34 @@ } } + //閬撻椄code + @PostMapping("/findByBarrierCode2") + public Object findById2(String code2) { + QueryWrapper<Barrier> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(Barrier::getCode2,code2); + List<Barrier> all = barrierService.list(wrapper); + if(all.size()==0){ + return R.failed("鏈壘鍒拌璁惧"); + }else{ + Barrier barrier = all.get(0); + String carNo = barrier.getCarNo(); + + OutPark outPark = outParkService.findByCarNoAndBarrierId(carNo,barrier.getId()); + if(outPark==null){ + return R.failed("鏈瘑鍒埌杞︾墝鍙�"); + }else{ + outPark.setParkName(barrier.getName()); + if(outPark.getTime() > 0){ + outPark.setTimeStr(DateUtilOther.millisToDayHrMinSec(new Double(outPark.getTime()).longValue())); + }else { + outPark.setTimeStr("涓嶈冻涓�鍒嗛挓"); + } + return R.ok(outPark); + } + } + } + @PostMapping("/delete") public Object delete(Long id) { outParkService.removeById(id); diff --git a/src/main/java/com/boying/entity/XTYHResult.java b/src/main/java/com/boying/entity/XTYHResult.java new file mode 100644 index 0000000..832ff58 --- /dev/null +++ b/src/main/java/com/boying/entity/XTYHResult.java @@ -0,0 +1,26 @@ +package com.boying.entity; + +import lombok.Data; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName XTYHResult.java + * @Description TODO + * @createTime 2023骞�09鏈�12鏃� 13:37:00 + */ +@Data +public class XTYHResult { + private String respCode; + private String respMsg; + private String signMethod; + private String certId; + private String signAture; + private String txnOrderId; + private String txnOrderTime; + private String respTxnSsn; + private String respTxnTime; + private String settleAmt; + private String settleCcyType; + private String settleDate; +} diff --git a/src/main/java/com/boying/service/OutParkService.java b/src/main/java/com/boying/service/OutParkService.java index b636c48..57aba40 100644 --- a/src/main/java/com/boying/service/OutParkService.java +++ b/src/main/java/com/boying/service/OutParkService.java @@ -36,4 +36,10 @@ int count5(); OutPark findByCarNoAndBarrierId(String carNo, Integer id); + + OutPark findByPayCode(String payCode); + + OutPark findByOrderId(String txnOrderId); + + } diff --git a/src/main/java/com/boying/service/WXService.java b/src/main/java/com/boying/service/WXService.java new file mode 100644 index 0000000..712c4d0 --- /dev/null +++ b/src/main/java/com/boying/service/WXService.java @@ -0,0 +1,20 @@ +package com.boying.service; + +import java.util.Map; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName WXService.java + * @Description TODO + * @createTime 2023骞�09鏈�11鏃� 08:35:00 + */ +public interface WXService { + + String getOpenIdByCode(String code); + + /** + * 鍔犵鎿嶄綔 + */ + Map<String,String> addSign(Map<String,Object> map); +} diff --git a/src/main/java/com/boying/service/impl/EnterParkServiceImpl.java b/src/main/java/com/boying/service/impl/EnterParkServiceImpl.java index 64ad418..2062705 100644 --- a/src/main/java/com/boying/service/impl/EnterParkServiceImpl.java +++ b/src/main/java/com/boying/service/impl/EnterParkServiceImpl.java @@ -31,11 +31,13 @@ @Override public List<EnterPark> getList(long current, long size, String carNo, Integer parkId, String date) { return enterParkMapper.getList((current-1)*size,size,carNo,parkId,date); + //return null; } @Override public long getCount( String carNo, Integer parkId, String date) { return enterParkMapper.getCount(carNo,parkId,date); + //return 0; } @Override diff --git a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java index ad07530..efb9813 100644 --- a/src/main/java/com/boying/service/impl/OutParkServiceImpl.java +++ b/src/main/java/com/boying/service/impl/OutParkServiceImpl.java @@ -139,12 +139,42 @@ } @Override + public OutPark findByPayCode(String payCode) { + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getCode2,payCode) + .orderByDesc(OutPark::getCreateTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks.size()>0){ + return outParks.get(0); + }else{ + return null; + } + } + + @Override + public OutPark findByOrderId(String txnOrderId) { + QueryWrapper<OutPark> wrapper = new QueryWrapper<>(); + wrapper.lambda() + .eq(OutPark::getTxnOrderId,txnOrderId) + .orderByDesc(OutPark::getCreateTime); + List<OutPark> outParks = outParkMapper.selectList(wrapper); + if(outParks.size()>0){ + return outParks.get(0); + }else{ + return null; + } + } + + @Override public List<OutPark> getList(long current, long size, String carNo, Long parkId, String payCode, String date) { - return outParkMapper.getList((current-1)*size,size,carNo,parkId,payCode,date); + // return outParkMapper.getList((current-1)*size,size,carNo,parkId,payCode,date); + return null; } @Override public long getCount(String carNo, Long parkId, String payCode, String date) { - return outParkMapper.getCount(carNo,parkId,payCode,date); + // return outParkMapper.getCount(carNo,parkId,payCode,date); + return 0; } } diff --git a/src/main/java/com/boying/service/impl/WXServiceImpl.java b/src/main/java/com/boying/service/impl/WXServiceImpl.java new file mode 100644 index 0000000..b39af3a --- /dev/null +++ b/src/main/java/com/boying/service/impl/WXServiceImpl.java @@ -0,0 +1,80 @@ +package com.boying.service.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.toolkit.StringUtils; +import com.boying.common.WeChatConfig; +import com.boying.service.WXService; +import com.boying.util.CommonUtil; +import com.ruim.ifsp.signature.IfspSdkSecurityAtureUtil; +import com.ruim.ifsp.signature.cert.IfspSdkConstants; +import org.springframework.stereotype.Service; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName WXServiceImpl.java + * @Description TODO + * @createTime 2023骞�09鏈�11鏃� 08:35:00 + */ +@Service +public class WXServiceImpl implements WXService { + private String APPID= WeChatConfig.APPID; + private String APPSECRECT= WeChatConfig.APPSECRECT; + private String GRANTTYPE= WeChatConfig.GRANTTYPE; + + @Override + public String getOpenIdByCode(String code) { + String WX_URL = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; + try { + if (StringUtils.isBlank(code)) { + System.out.println("code涓虹┖"); + return "code涓虹┖"; + } else { + String requestUrl = WX_URL.replace("APPID", WeChatConfig.APPID).replace("SECRET", WeChatConfig.APPSECRECT) + .replace("CODE", code).replace("authorization_code", WeChatConfig.GRANTTYPE); + JSONObject jsonObject = CommonUtil.httpsRequest(requestUrl, "GET", null); + if (jsonObject != null) { + try { + // 涓氬姟鎿嶄綔 + String access_token = jsonObject.getString("access_token"); + String openId = jsonObject.getString("openid"); + //鎷夊彇鐢ㄦ埛淇℃伅 + //getUserMsg(access_token, openId); + return openId; + } catch (Exception e) { + e.printStackTrace(); + } + } else { + System.out.println("code鏃犳晥"); + return "code鏃犳晥"; + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return "error"; + } + + @Override + public Map<String, String> addSign(Map<String, Object> map) { + /* + *鍔犵 + */ + try { + IfspSdkSecurityAtureUtil.RSASigndata(map, + "D:\\sa\\certificate09.pfx", "xtbanktest"); + } catch (Exception e) { + e.printStackTrace(); + } + + System.out.println("signAture锛� "+map.get(IfspSdkConstants.param_signature)); + System.out.println("certId锛� "+map.get(IfspSdkConstants.param_certId)); + Map<String,String> map1 = new HashMap<>(); + map1.put("signAture",map.get(IfspSdkConstants.param_signature).toString()); + map1.put("certId",map.get(IfspSdkConstants.param_certId).toString()); + return map1; + } +} diff --git a/src/main/java/com/boying/util/CommonUtil.java b/src/main/java/com/boying/util/CommonUtil.java new file mode 100644 index 0000000..1cd75ac --- /dev/null +++ b/src/main/java/com/boying/util/CommonUtil.java @@ -0,0 +1,86 @@ +package com.boying.util; + + +import com.alibaba.fastjson.JSONObject; + +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.ConnectException; +import java.net.URL; +import java.security.SecureRandom; + +/** + * @author kdq + * @version 1.0.0 + * @ClassName CommonUtil.java + * @Description TODO + * @createTime 2023骞�09鏈�11鏃� 08:53:00 + */ +public class CommonUtil { + /** + * 鍙戦�乭ttps璇锋眰 + * @param requestUrl 璇锋眰鍦板潃 + * @param requestMethod 璇锋眰鏂瑰紡锛圙ET銆丳OST锛� + * @param outputStr 鎻愪氦鐨勬暟鎹� + * @return JSONObject(閫氳繃JSONObject.get(key)鐨勬柟寮忚幏鍙杍son瀵硅薄鐨勫睘鎬у��) + */ + public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) { + JSONObject jsonObject = null; + try { + // 鍒涘缓SSLContext瀵硅薄锛屽苟浣跨敤鎴戜滑鎸囧畾鐨勪俊浠荤鐞嗗櫒鍒濆鍖� + TrustManager[] tm = { new MyX509TrustManager() }; + SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); + sslContext.init(null, tm, new SecureRandom()); + // 浠庝笂杩癝SLContext瀵硅薄涓緱鍒癝SLSocketFactory瀵硅薄 + SSLSocketFactory ssf = sslContext.getSocketFactory(); + + URL url = new URL(requestUrl); + HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); + conn.setSSLSocketFactory(ssf); + + conn.setDoOutput(true); + conn.setDoInput(true); + conn.setUseCaches(false); + // 璁剧疆璇锋眰鏂瑰紡锛圙ET/POST锛� + conn.setRequestMethod(requestMethod); + + // 褰搊utputStr涓嶄负null鏃跺悜杈撳嚭娴佸啓鏁版嵁 + if (null != outputStr) { + OutputStream outputStream = conn.getOutputStream(); + // 娉ㄦ剰缂栫爜鏍煎紡 + outputStream.write(outputStr.getBytes("UTF-8")); + outputStream.close(); + } + + // 浠庤緭鍏ユ祦璇诲彇杩斿洖鍐呭 + InputStream inputStream = conn.getInputStream(); + InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); + BufferedReader bufferedReader = new BufferedReader(inputStreamReader); + String str = null; + StringBuffer buffer = new StringBuffer(); + while ((str = bufferedReader.readLine()) != null) { + buffer.append(str); + } + + // 閲婃斁璧勬簮 + bufferedReader.close(); + inputStreamReader.close(); + inputStream.close(); + inputStream = null; + conn.disconnect(); + //jsonObject = JSONObject.fromObject(buffer.toString()); + jsonObject = JSONObject.parseObject(buffer.toString()); + } catch (ConnectException ce) { + System.out.println("杩炴帴瓒呮椂"); + } catch (Exception e) { + System.out.println("璇锋眰寮傚父"); + } + return jsonObject; + } +} -- Gitblit v1.9.1