diff --git a/src/main/java/com/rnt/service/IRainQueryService.java b/src/main/java/com/rnt/service/IRainQueryService.java index 93c5f48..e6dde88 100644 --- a/src/main/java/com/rnt/service/IRainQueryService.java +++ b/src/main/java/com/rnt/service/IRainQueryService.java @@ -5,6 +5,7 @@ import java.util.Map; import org.beetl.sql.core.kit.StringKit; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.jfinal.kit.Prop; import com.jfinal.kit.PropKit; @@ -12,6 +13,7 @@ import com.jfinal.log.Log; import com.rnt.model.park.IrainPknoRelation; import com.rnt.utils.HttpClientTutorial; import com.rnt.utils.MD5Utils; +import com.zteits.clouds.api.dto.park.param.RoadsideRequest; /** * 艾润费用查询service.
@@ -37,14 +39,16 @@ public class IRainQueryService { * @param parkCode * @return */ - public String billQuery(String carNum,String parkCode) { - logger.info("开始调用查询费用接口,入参={carNum,parkCode}="+"{"+carNum+","+parkCode+"}"); + public Map billQuery(String carNum,String parkCode) { + logger.info("---begin调用艾润查询费用接口,入参={carNum,parkCode}="+"{"+carNum+","+parkCode+"}"); //1.查询停车场关系映射表-获取艾润停车场查询费用编码 ztetis-park.irain_pkno_relation StringBuffer sql = new StringBuffer("select a.irain_pkno1"); sql.append(" from irain_pkno_relation a"); sql.append(" where a.park_lotpkno = ?"); String rs = ""; + Map map = new HashMap(); IrainPknoRelation irainPknoRelation = new IrainPknoRelation().findFirst(sql.toString(), parkCode); + logger.info("获取查询费用编码数据结果="+JSONObject.toJSON(irainPknoRelation)); if(irainPknoRelation != null && StringKit.isNotBlank(irainPknoRelation.getIrainPkno1())){ /**** 以下为模拟入参 实际入参 由app提供-------------------------------------*/ Prop prop = PropKit.use("a_little_config.txt"); @@ -61,6 +65,12 @@ public class IRainQueryService { logger.info("irain 查询停车费用入参:" + JSONObject.toJSONString(params)); rs = HttpClientTutorial.httpPostRequest(prop.get("irain.url")+"/bill/Query", params); logger.info("irain 查询停车费用返回:" + JSONObject.toJSONString(rs)); + if (StringKit.isNotBlank(rs) && !"NO_PARK_RECORD".equals(JSONObject.parseObject(rs).get("code"))) { + map = this.jsonToMapForIrunResult(rs); + }else{ + logger.info("调用艾润费用查询接口:无停车记录"); + } + } catch (Exception e) { logger.info("irain 查询停车费用出错:" + e); } @@ -68,30 +78,125 @@ public class IRainQueryService { logger.info("没有查询到艾润查询费用编码"); } - logger.info("结束调用查询费用接口,结果="+JSONObject.toJSONString(rs)); + logger.info("---end调用艾润查询费用接口,结果="+JSONObject.toJSON(map)); - return JSONObject.toJSON(rs)+""; + return map; } - public static void main(String[] args) { + /** + * 青岛路侧费用查询接口.
+ * @param recordId + * @return + */ + public static Map queryBillRoadside(String recordId){ + logger.info("---begin调用青岛路侧费用查询接口,入参={recordId}="+"{"+recordId+"}"); Prop prop = PropKit.use("a_little_config.txt"); - String rs = ""; + Map params = new HashMap<>(); + Long time = System.currentTimeMillis(); + params.put("orderCode", recordId); + params.put("timestamp",time); + Map rsMap = new HashMap(); + try{ + String qingdaors = HttpClientTutorial.httpPostRequest(prop.get("qindao.url")+"", JSONObject.toJSONString(params)); + logger.info("青岛路侧查询停车费用返回:" + JSONObject.toJSONString(qingdaors)); + RoadsideRequest roadsideRequest = JSONObject.parseObject(qingdaors,RoadsideRequest.class); + logger.info("青岛路侧返回JSON转换对象结果"+JSONObject.toJSON(roadsideRequest)); + if(roadsideRequest != null){ + rsMap.put("record_id", roadsideRequest.getOrderCode()); + // 出场时间 + rsMap.put("park_out_time", roadsideRequest.getOuttime()); + //入场时间 + rsMap.put("park_in_time", roadsideRequest.getIntime()); + //总费用 + rsMap.put("order_total_fee", roadsideRequest.getOrderPay() != null ? roadsideRequest.getOrderPay().toString() :"1"); + //已付费用 + rsMap.put("order_payed_fee", "0"); + //未支付费用(本次应付金额) + rsMap.put("order_not_pay_fee", roadsideRequest.getOrderPay() != null ? roadsideRequest.getOrderPay().toString() :"1"); + //停车时长 单位:秒 + rsMap.put("parking_duration",roadsideRequest.getStaytime() != null ? String.valueOf(roadsideRequest.getStaytime()) :"1"); + //停车场名车 + rsMap.put("park_name", roadsideRequest.getParkName()); + } + + }catch (Exception e) { + e.printStackTrace(); + } + logger.info("---end调用青岛路侧费用查询接口,结果="+JSONObject.toJSON(rsMap)); + return rsMap; + } + + + /** + * 获取查询费用返回结果.
+ * + * @param json + * @return + */ + private static Map jsonToMapForIrunResult(String json) { + + JSONObject jsobj = JSONObject.parseObject(json); + Map map = new HashMap(); + if (jsobj != null) { + if (!jsobj.get("status").toString().equals("0")) { + JSONObject data = (JSONObject)jsobj.get("data"); + // 出场时间对象 + JSONObject parkOutObject = (JSONObject)data.get("out"); + //停车记录id + map.put("record_id", data.getString("id")); + // 出场时间 + map.put("park_out_time", parkOutObject.getString("time")); + if (data.get("park") != null) { + map.put("park_name", JSONObject.parseObject(data.get("park").toString()).get("name") + ""); + map.put("park_address", JSONObject.parseObject(data.get("park").toString()).get("address") + ""); + } + + //入场时间 + if (data.get("in") != null) { + map.put("park_in_time", JSONObject.parseObject(data.get("in").toString()).getString("time")); + } + //总费用 + map.put("order_total_fee", JSONObject.parseObject(data.get("charge").toString()).getString("due")); + //已付费用 + map.put("order_payed_fee", JSONObject.parseObject(data.get("charge").toString()).getString("paid")); + //未支付费用(本次应付金额) + map.put("order_not_pay_fee", JSONObject.parseObject(data.get("charge").toString()).getString("unpaid")); + //停车时长 单位:秒 + map.put("parking_duration", + JSONObject.parseObject(data.get("charge").toString()).getString("duration")); + } + } + return map; + } + + public static void main(String[] args) { + /**Map map = new HashMap(); + Prop prop = PropKit.use("a_little_config.txt"); Long time = System.currentTimeMillis(); String md5 = MD5Utils.enMD5(prop.get("irain.appid")+prop.get("irain.appsecret")+time); Map params = new HashMap<>(); params.put("appid", prop.get("irain.appid")); params.put("sign", md5); params.put("timestamp", time); - params.put("vpl_number", "苏B1B566"); + params.put("vpl_number", "苏BV291U"); params.put("park_code", "734861a1e8656ffa51bdd90829941ca9"); - + String rs = ""; try { logger.info("irain 查询停车费用入参:" + JSONObject.toJSONString(params)); rs = HttpClientTutorial.httpPostRequest(prop.get("irain.url")+"/bill/Query", params); logger.info("irain 查询停车费用返回:" + JSONObject.toJSONString(rs)); + if (StringKit.isNotBlank(rs) && !"NO_PARK_RECORD".equals(JSONObject.parseObject(rs).get("code"))) { + System.out.println(rs); + map = jsonToMapForIrunResult(rs); + System.out.println("------"+JSONObject.toJSON(map)); + }else{ + logger.info("调用艾润费用查询接口:无停车记录"); + } + } catch (Exception e) { logger.info("irain 查询停车费用出错:" + e); - } + }*/ + queryBillRoadside("101332467802357239808"); } } diff --git a/src/main/java/com/rnt/utils/HttpClientTutorial.java b/src/main/java/com/rnt/utils/HttpClientTutorial.java index d91e2f3..63f2f39 100644 --- a/src/main/java/com/rnt/utils/HttpClientTutorial.java +++ b/src/main/java/com/rnt/utils/HttpClientTutorial.java @@ -95,6 +95,18 @@ public class HttpClientTutorial { return getResult(httpPost); } + public static String httpPostRequest(String url, String jsonParam) throws UnsupportedEncodingException { + HttpPost httpPost = new HttpPost(url); + if (null != jsonParam) { + //解决中文乱码问题 + StringEntity entity = new StringEntity(jsonParam, "utf-8"); + entity.setContentEncoding("UTF-8"); + entity.setContentType("application/json"); + httpPost.setEntity(entity); + } + return getResult(httpPost); + } + public static String httpPostRequest(String url, JSONObject jsonParam) throws UnsupportedEncodingException { HttpPost httpPost = new HttpPost(url); if (null != jsonParam) { diff --git a/src/main/resources/a_little_config.txt b/src/main/resources/a_little_config.txt index 3d92a11..580ca1c 100644 --- a/src/main/resources/a_little_config.txt +++ b/src/main/resources/a_little_config.txt @@ -3,11 +3,14 @@ devMode = true ######## park库 -park.druid.url=jdbc:mysql://10.117.185.28:3306/zt_park?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +#park.druid.url=jdbc:mysql://10.117.185.28:3306/zt_park?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +#park.druid.username=park +#park.druid.password=MySQL5.7;123 + +park.druid.url=jdbc:mysql://120.26.116.79:13306/zt_park?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true park.druid.username=park park.druid.password=MySQL5.7;123 - park.druid.initialSize=1 park.druid.minIdle=1 park.druid.maxActive=20 @@ -21,7 +24,11 @@ park.druid.testOnReturn=false park.druid.testOnWhileIdle=true ####### zf库 -zf.druid.url=jdbc:mysql://10.117.185.28:3306/zt_order?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +#zf.druid.url=jdbc:mysql://10.117.185.28:3306/zt_order?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true +#zf.druid.username=order +#zf.druid.password=MySQL5.7;123 + +zf.druid.url=jdbc:mysql://120.26.116.79:13306/zt_order?useUnicode=true&characterEncoding=UTF-8&allowMultiQueries=true zf.druid.username=order zf.druid.password=MySQL5.7;123 @@ -57,9 +64,11 @@ appSecret=fc468de39e6fcf181982483331d08fbd -app.host=http://wxgzh.rnting.com/rnt-wx -app.staticHost=http://wxgzh.rnting.com/rnt-wx/static +#app.host=http://wxgzh.rnting.com/rnt-wx +#app.staticHost=http://wxgzh.rnting.com/rnt-wx/static +app.host=http://localhost:8080 +app.staticHost=http://localhost:8080/static #weixin pay #是否支持信用卡支付 @@ -79,6 +88,9 @@ irain.appsecret=rrr6uz3aqvutpsq2lsna0k18cea4mabw irain.aes=avakrky0gk1m7n00 irain.park_code=734861a1e8656ffa51bdd90829941ca9 +#青岛路侧费用查询url +qindao.url=http://zteits.gnway.cc:8088/RNT-ATMS-ADAPTER/pay/doPayAdvice + #dubbo dubbo.application.name=rnt-wx