Commit 80db26ae69d0c35b303328cbefae5289c7417274

Authored by 王富生
1 parent 07a50221

提交

@@ -137,8 +137,8 @@ @@ -137,8 +137,8 @@
137 <artifactId>sign</artifactId> 137 <artifactId>sign</artifactId>
138 <type>jar</type> 138 <type>jar</type>
139 <version>1.0</version> 139 <version>1.0</version>
140 - <scope>system</scope>  
141 - <systemPath>${basedir}/src/main/webapp/lib/sign-1.0.jar</systemPath> 140 + <!-- <scope>system</scope>
  141 + <systemPath>${basedir}/src/main/webapp/lib/sign-1.0.jar</systemPath>-->
142 </dependency> 142 </dependency>
143 <dependency> 143 <dependency>
144 <groupId>com.alibaba</groupId> 144 <groupId>com.alibaba</groupId>
src/main/java/com/rnt/controller/WeixinPayController.java
@@ -12,8 +12,9 @@ import java.util.Map; @@ -12,8 +12,9 @@ import java.util.Map;
12 import java.util.Map.Entry; 12 import java.util.Map.Entry;
13 import java.util.Set; 13 import java.util.Set;
14 14
15 -import com.alibaba.fastjson.JSONObject; 15 +import org.beetl.sql.core.kit.StringKit;
16 16
  17 +import com.alibaba.fastjson.JSONObject;
17 import com.jfinal.aop.Clear; 18 import com.jfinal.aop.Clear;
18 import com.jfinal.aop.Duang; 19 import com.jfinal.aop.Duang;
19 import com.jfinal.core.Controller; 20 import com.jfinal.core.Controller;
@@ -36,6 +37,7 @@ import com.rnt.commo.enums.SequenceTypeEnum; @@ -36,6 +37,7 @@ import com.rnt.commo.enums.SequenceTypeEnum;
36 import com.rnt.commo.interceptor.BindInterceptor; 37 import com.rnt.commo.interceptor.BindInterceptor;
37 import com.rnt.model.zf.CardCoupons; 38 import com.rnt.model.zf.CardCoupons;
38 import com.rnt.model.zf.Order; 39 import com.rnt.model.zf.Order;
  40 +import com.rnt.model.zf.OrderDetailPark;
39 import com.rnt.model.zf.ParkCardCoupons; 41 import com.rnt.model.zf.ParkCardCoupons;
40 import com.rnt.model.zf.PayOrder; 42 import com.rnt.model.zf.PayOrder;
41 import com.rnt.model.zf.PayOrderFlow; 43 import com.rnt.model.zf.PayOrderFlow;
@@ -55,7 +57,6 @@ import com.rnt.vo.OrderVO; @@ -55,7 +57,6 @@ import com.rnt.vo.OrderVO;
55 import com.rnt.vo.ParkLotCardVO; 57 import com.rnt.vo.ParkLotCardVO;
56 import com.xiaoleilu.hutool.date.DateField; 58 import com.xiaoleilu.hutool.date.DateField;
57 import com.xiaoleilu.hutool.date.DateUtil; 59 import com.xiaoleilu.hutool.date.DateUtil;
58 -import org.beetl.sql.core.kit.StringKit;  
59 60
60 /** 61 /**
61 * 感谢 *半杯* 童鞋联调支付API 62 * 感谢 *半杯* 童鞋联调支付API
@@ -1117,19 +1118,17 @@ public class WeixinPayController extends Controller { @@ -1117,19 +1118,17 @@ public class WeixinPayController extends Controller {
1117 public void parkOrderForNotPayExist() { 1118 public void parkOrderForNotPayExist() {
1118 BizResult<Order> result = new BizResult<>(); 1119 BizResult<Order> result = new BizResult<>();
1119 String carNum = this.getPara("carNum"); 1120 String carNum = this.getPara("carNum");
1120 - logger.info("开始校验输入车牌是否存在待核算订单..入参=" + carNum);  
1121 - String rs = "";  
1122 - OrderVO OrderVO = new OrderVO(); 1121 + logger.info("---begin 校验输入车牌是否存在待核算订单..入参=" + carNum);
  1122 + Map<String,String> reultMap = new HashMap<String,String>();
1123 try { 1123 try {
1124 if (StringKit.isNotBlank(carNum)) { 1124 if (StringKit.isNotBlank(carNum)) {
1125 OrderService orderService = Duang.duang(OrderService.class); 1125 OrderService orderService = Duang.duang(OrderService.class);
1126 - IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class);  
1127 - /**查询待核算支付单信息.*/ 1126 + /**查询单信息.*/
1128 Order order = orderService.findOrderByCarNum(carNum); 1127 Order order = orderService.findOrderByCarNum(carNum);
1129 if (order != null && StringKit.isNotBlank(order.getOrderId())) { 1128 if (order != null && StringKit.isNotBlank(order.getOrderId())) {
1130 result.setData(order); 1129 result.setData(order);
1131 - /**调用艾润查询费用接口.*/  
1132 - rs = iRainQueryService.billQuery(carNum, order.getParkId()); 1130 + /**查询费用接口.*/
  1131 + reultMap = orderService.chosseBillQuery(carNum, order);
1133 } else { 1132 } else {
1134 result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); 1133 result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");
1135 } 1134 }
@@ -1137,21 +1136,14 @@ public class WeixinPayController extends Controller { @@ -1137,21 +1136,14 @@ public class WeixinPayController extends Controller {
1137 logger.info("入参为空!"); 1136 logger.info("入参为空!");
1138 result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); 1137 result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误");
1139 } 1138 }
1140 - if (StringKit.isNotBlank(rs)) {  
1141 - if ("NO_PARK_RECORD".equals(JSONObject.parseObject(rs).get("code"))) {  
1142 - result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");  
1143 - this.renderJson(result);  
1144 - return;  
1145 - }  
1146 - } else {  
1147 - result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");  
1148 - this.renderJson(result);  
1149 - return; 1139 +
  1140 + if(reultMap == null || reultMap.size() ==0){
  1141 + result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");
1150 } 1142 }
1151 } catch (Exception e) { 1143 } catch (Exception e) {
1152 e.printStackTrace(); 1144 e.printStackTrace();
1153 } 1145 }
1154 - logger.info("结束校验输入车牌是否存在待核算订单..响应=" + JSONObject.toJSONString(result)); 1146 + logger.info("---end 校验输入车牌是..结果=" + JSONObject.toJSONString(result));
1155 this.renderJson(result); 1147 this.renderJson(result);
1156 1148
1157 } 1149 }
src/main/java/com/rnt/service/OrderService.java
@@ -9,8 +9,9 @@ import java.util.HashMap; @@ -9,8 +9,9 @@ import java.util.HashMap;
9 import java.util.List; 9 import java.util.List;
10 import java.util.Map; 10 import java.util.Map;
11 11
12 -import com.alibaba.fastjson.JSONObject; 12 +import org.beetl.sql.core.kit.StringKit;
13 13
  14 +import com.alibaba.fastjson.JSONObject;
14 import com.jfinal.aop.Before; 15 import com.jfinal.aop.Before;
15 import com.jfinal.aop.Duang; 16 import com.jfinal.aop.Duang;
16 import com.jfinal.log.Log; 17 import com.jfinal.log.Log;
@@ -18,18 +19,19 @@ import com.jfinal.plugin.activerecord.Db; @@ -18,18 +19,19 @@ import com.jfinal.plugin.activerecord.Db;
18 import com.jfinal.plugin.activerecord.tx.Tx; 19 import com.jfinal.plugin.activerecord.tx.Tx;
19 import com.rnt.commo.enums.DSEnum; 20 import com.rnt.commo.enums.DSEnum;
20 import com.rnt.commo.enums.DataStatusEnum; 21 import com.rnt.commo.enums.DataStatusEnum;
  22 +import com.rnt.commo.enums.ErrorType;
21 import com.rnt.commo.enums.OrderTypeEnum; 23 import com.rnt.commo.enums.OrderTypeEnum;
22 import com.rnt.commo.enums.PayOrderEnum; 24 import com.rnt.commo.enums.PayOrderEnum;
23 import com.rnt.commo.enums.SequenceTypeEnum; 25 import com.rnt.commo.enums.SequenceTypeEnum;
24 import com.rnt.model.zf.CardCoupons; 26 import com.rnt.model.zf.CardCoupons;
25 import com.rnt.model.zf.Order; 27 import com.rnt.model.zf.Order;
26 import com.rnt.model.zf.OrderDetailCard; 28 import com.rnt.model.zf.OrderDetailCard;
  29 +import com.rnt.model.zf.OrderDetailPark;
27 import com.rnt.model.zf.ParkOrderFlow; 30 import com.rnt.model.zf.ParkOrderFlow;
28 import com.rnt.model.zf.PayOrder; 31 import com.rnt.model.zf.PayOrder;
29 import com.rnt.utils.DateUtil; 32 import com.rnt.utils.DateUtil;
30 import com.rnt.utils.SequenceUtil; 33 import com.rnt.utils.SequenceUtil;
31 import com.rnt.vo.OrderVO; 34 import com.rnt.vo.OrderVO;
32 -import org.beetl.sql.core.kit.StringKit;  
33 35
34 public class OrderService { 36 public class OrderService {
35 37
@@ -129,6 +131,20 @@ public class OrderService { @@ -129,6 +131,20 @@ public class OrderService {
129 131
130 return list; 132 return list;
131 } 133 }
  134 +
  135 + /**
  136 + * 通过订单好
  137 + * @param orderId
  138 + * @return
  139 + */
  140 + public OrderDetailPark queryDetailParkByOrderId(String orderId){
  141 + StringBuffer sql = new StringBuffer("select order_id,record_id");
  142 + sql.append(" from td_b_order_detail_park a ");
  143 + sql.append(" where a.data_state =1");
  144 + sql.append(" and a.order_id ? ");
  145 + OrderDetailPark orderDetailPark = new OrderDetailPark().findFirst(sql.toString(), orderId);
  146 + return orderDetailPark;
  147 + }
132 148
133 /** 149 /**
134 * 查询待支付的停车订单.<br/> 150 * 查询待支付的停车订单.<br/>
@@ -143,40 +159,33 @@ public class OrderService { @@ -143,40 +159,33 @@ public class OrderService {
143 * @throws ParseException 159 * @throws ParseException
144 */ 160 */
145 public OrderVO queryParkOrderForNotPay(String carNum) throws ParseException { 161 public OrderVO queryParkOrderForNotPay(String carNum) throws ParseException {
146 - logger.info("开始查询待支付单信息,carNum=" + carNum); 162 + logger.info("---begin订单信息更新,carNum=" + carNum);
147 OrderVO orderVO = new OrderVO(); 163 OrderVO orderVO = new OrderVO();
148 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); 164 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
149 - String irunResult = "";  
150 - //1.查询待支付订单 165 + Map<String,String> resultmap = new HashMap<String,String>();
  166 + //1.查询支付订单
151 Order order = this.findOrderByCarNum(carNum); 167 Order order = this.findOrderByCarNum(carNum);
152 - //2.调用艾润接口  
153 - if (order != null && StringKit.isNotBlank(order.getParkId())) {  
154 - irunResult = iRainQueryService.billQuery(carNum, order.getParkId());  
155 - } else {  
156 - logger.info("查询订单失败");  
157 - } 168 + logger.info("通过车牌号查询到的支付订单信息结果="+JSONObject.toJSON(order));
  169 + //2.调用查询费用接口
  170 + if (order != null && StringKit.isNotBlank(order.getOrderId())) {
  171 + resultmap = this.chosseBillQuery(carNum,order);
  172 + }
158 boolean orderUpdateFlg = false; 173 boolean orderUpdateFlg = false;
159 int updateOrderDetailFlg = 0; 174 int updateOrderDetailFlg = 0;
160 //3.更新订单 175 //3.更新订单
161 - if (StringKit.isNotBlank(irunResult) && !"NO_PARK_RECORD".equals(JSONObject.parseObject(irunResult).get("code"))) {  
162 - Map<String, String> map = jsonToMapForIrunResult(irunResult);  
163 - Order updateOrder = new Order();  
164 -  
165 - if (map != null && map.size() > 0) { 176 + if (resultmap != null && resultmap.size() >0){
  177 + Order updateOrder = new Order();
166 updateOrder.setId(order.getId()); 178 updateOrder.setId(order.getId());
167 updateOrder.setOrderId(order.getOrderId()); 179 updateOrder.setOrderId(order.getOrderId());
168 updateOrder.setOrderType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_PARK.getValue())); 180 updateOrder.setOrderType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_PARK.getValue()));
169 updateOrder.setOrderState(Integer.valueOf(OrderTypeEnum.ORDER_TYPE_2.value())); 181 updateOrder.setOrderState(Integer.valueOf(OrderTypeEnum.ORDER_TYPE_2.value()));
170 - updateOrder.setOrderPayedFee(new BigDecimal(map.get("order_payed_fee")));  
171 - updateOrder.setOrderNotPayFee(new BigDecimal(map.get("order_not_pay_fee")));  
172 - updateOrder.setOrderTotalFee(new BigDecimal(map.get("order_total_fee"))); 182 + updateOrder.setOrderPayedFee(new BigDecimal(resultmap.get("order_payed_fee")));
  183 + updateOrder.setOrderNotPayFee(new BigDecimal(resultmap.get("order_not_pay_fee")));
  184 + updateOrder.setOrderTotalFee(new BigDecimal(resultmap.get("order_total_fee")));
173 updateOrder.setModfiyDate(new Date()); 185 updateOrder.setModfiyDate(new Date());
174 /**更新订单表.*/ 186 /**更新订单表.*/
175 orderUpdateFlg = updateOrder.update(); 187 orderUpdateFlg = updateOrder.update();
176 - } else {  
177 - logger.info("没有查询到费用信息");  
178 - }  
179 - 188 + logger.info("更新订单结果="+(orderUpdateFlg ==true ? "成功!" :"失败!"));
180 if (orderUpdateFlg) { 189 if (orderUpdateFlg) {
181 StringBuffer sqls = new StringBuffer("update td_b_order_detail_park a "); 190 StringBuffer sqls = new StringBuffer("update td_b_order_detail_park a ");
182 sqls.append("set a.order_id =?,"); 191 sqls.append("set a.order_id =?,");
@@ -191,29 +200,29 @@ public class OrderService { @@ -191,29 +200,29 @@ public class OrderService {
191 /**更新订单明细表.*/ 200 /**更新订单明细表.*/
192 updateOrderDetailFlg = Db.use(DSEnum.ZF_DATASOURCE.name()).update(sqls.toString(), 201 updateOrderDetailFlg = Db.use(DSEnum.ZF_DATASOURCE.name()).update(sqls.toString(),
193 order.getOrderId(), 202 order.getOrderId(),
194 - map.get("record_id"),  
195 - format.parse(map.get("park_in_time")),  
196 - format.parse(map.get("park_out_time")),  
197 - Long.valueOf(map.get("parking_duration")), 203 + resultmap.get("record_id"),
  204 + format.parse(resultmap.get("park_in_time")),
  205 + format.parse(resultmap.get("park_out_time")),
  206 + Long.valueOf(resultmap.get("parking_duration")),
198 new Date(), 207 new Date(),
199 order.getOrderId()); 208 order.getOrderId());
200 - if (updateOrderDetailFlg <= 0) {  
201 - logger.info("更新订单子表失败");  
202 - } else {  
203 - //封装返回数据 209 + logger.info("更新停车订单明细结果="+(updateOrderDetailFlg > 0 ? "成功" : "失败"));
  210 + if (updateOrderDetailFlg > 0) {
  211 + //封装返回数据
204 orderVO.setOrderId(order.getOrderId()); 212 orderVO.setOrderId(order.getOrderId());
205 orderVO.setParkId(order.getParkId()); 213 orderVO.setParkId(order.getParkId());
206 - orderVO.setParkName(map.get("park_name"));  
207 - orderVO.setParkAddress(map.get("park_address")); 214 + orderVO.setParkName(resultmap.get("park_name"));
  215 + orderVO.setParkAddress(resultmap.get("park_address"));
208 orderVO.setCarNumber(order.getCarNumber()); 216 orderVO.setCarNumber(order.getCarNumber());
209 - orderVO.setOrderPayedFee(new BigDecimal(map.get("order_payed_fee")));  
210 - orderVO.setOrderNotPayFee(new BigDecimal(map.get("order_not_pay_fee")));  
211 - orderVO.setOrderTotalFee(new BigDecimal(map.get("order_total_fee"))); 217 + orderVO.setOrderPayedFee(new BigDecimal(resultmap.get("order_payed_fee")));
  218 + orderVO.setOrderNotPayFee(new BigDecimal(resultmap.get("order_not_pay_fee")));
  219 + orderVO.setOrderTotalFee(new BigDecimal(resultmap.get("order_total_fee")));
212 orderVO.setOrderTitle("待付费用"); 220 orderVO.setOrderTitle("待付费用");
213 - orderVO.setParkInTime(format.parse(map.get("park_in_time")));  
214 - orderVO.setParkOutTime(format.parse(map.get("park_out_time")));  
215 - orderVO.setParkingDuration(DateUtil.secondToTime(Long.valueOf(map.get("parking_duration"))));  
216 - } 221 + orderVO.setParkInTime(format.parse(resultmap.get("park_in_time")));
  222 + orderVO.setParkOutTime(format.parse(resultmap.get("park_out_time")));
  223 + orderVO.setParkingDuration(DateUtil.secondToTime(Long.valueOf(resultmap.get("parking_duration"))));
  224 + }
  225 + /**插入订单流水.*/
217 ParkOrderFlow parkOrderFlow = new ParkOrderFlow(); 226 ParkOrderFlow parkOrderFlow = new ParkOrderFlow();
218 parkOrderFlow.setParkOrderFolwId(SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PARK_FLOW.value())); 227 parkOrderFlow.setParkOrderFolwId(SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PARK_FLOW.value()));
219 parkOrderFlow.setParkOrderId(order.getOrderId()); 228 parkOrderFlow.setParkOrderId(order.getOrderId());
@@ -221,56 +230,43 @@ public class OrderService { @@ -221,56 +230,43 @@ public class OrderService {
221 parkOrderFlow.setProcResult(1); 230 parkOrderFlow.setProcResult(1);
222 parkOrderFlow.save(); 231 parkOrderFlow.save();
223 232
224 - } else {  
225 - logger.info("更新订单失败");  
226 - } 233 + }
227 } 234 }
228 - logger.info("结束查询待支付单信息"); 235 +
  236 + logger.info("---end订单信息更新,结果=" +JSONObject.toJSON(orderVO));
229 return orderVO; 237 return orderVO;
230 } 238 }
231 - 239 +
232 /** 240 /**
233 - * 获取查询费用返回结果.<br/>  
234 - *  
235 - * @param json 241 + * 查询费用艾润或者青岛路侧费用查询接口.<br/>
  242 + * @param carNum
236 * @return 243 * @return
237 */ 244 */
238 - private Map<String, String> jsonToMapForIrunResult(String json) {  
239 -  
240 - JSONObject jsobj = JSONObject.parseObject(json);  
241 - Map<String, String> map = new HashMap<String, String>();  
242 - if (jsobj != null) {  
243 - if (!jsobj.get("status").toString().equals("0")) {  
244 - JSONObject data = (JSONObject)jsobj.get("data");  
245 - // 出场时间对象  
246 - JSONObject parkOutObject = (JSONObject)data.get("out");  
247 - //停车记录id  
248 - map.put("record_id", data.getString("id"));  
249 - // 出场时间  
250 - map.put("park_out_time", parkOutObject.getString("time"));  
251 - if (data.get("park") != null) {  
252 - map.put("park_name", JSONObject.parseObject(data.get("park").toString()).get("name") + "");  
253 - map.put("park_address", JSONObject.parseObject(data.get("park").toString()).get("address") + "");  
254 - }  
255 -  
256 - //入场时间  
257 - if (data.get("in") != null) {  
258 - map.put("park_in_time", JSONObject.parseObject(data.get("in").toString()).getString("time"));  
259 - }  
260 - //总费用  
261 - map.put("order_total_fee", JSONObject.parseObject(data.get("charge").toString()).getString("due"));  
262 - //已付费用  
263 - map.put("order_payed_fee", JSONObject.parseObject(data.get("charge").toString()).getString("paid"));  
264 - //未支付费用(本次应付金额)  
265 - map.put("order_not_pay_fee", JSONObject.parseObject(data.get("charge").toString()).getString("unpaid"));  
266 - //停车时长 单位:秒  
267 - map.put("parking_duration",  
268 - JSONObject.parseObject(data.get("charge").toString()).getString("duration"));  
269 - }  
270 - }  
271 - return map; 245 + public Map<String, String> chosseBillQuery(String carNum,Order order){
  246 +
  247 + OrderService orderService = Duang.duang(OrderService.class);
  248 + IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class);
  249 + Map<String, String> reultMap = new HashMap<String, String>();
  250 + if (order != null && StringKit.isNotBlank(order.getOrderId())) {
  251 + if("1".equals(String.valueOf(order.getSourceType()))){//道闸:调用艾润查询费用接口
  252 + /**调用艾润查询费用接口.*/
  253 + reultMap = iRainQueryService.billQuery(carNum, order.getParkId());
  254 + }else if("2".equals(String.valueOf(order.getSourceType()))
  255 + && StringKit.isNotBlank(order.getOrderId())){//调用青岛路侧查询费用接口
  256 + /**查询停车记录id.*/
  257 + OrderDetailPark OrderDetailPark = orderService.queryDetailParkByOrderId(order.getOrderId());
  258 + if(OrderDetailPark != null && StringKit.isNotBlank(OrderDetailPark.getRecordId())){
  259 + /**调用青岛路侧费用查询接口.*/
  260 + reultMap =iRainQueryService.queryBillRoadside(OrderDetailPark.getRecordId());
  261 + }
  262 +
  263 + }
  264 + }
  265 + return reultMap;
272 } 266 }
273 267
  268 +
  269 +
274 /** 270 /**
275 * 通过车牌查询待核算支付单信息.<br/> 271 * 通过车牌查询待核算支付单信息.<br/>
276 * 272 *
src/main/webapp/static/js/url.js
1 var mUrl = mUrl || {}; 1 var mUrl = mUrl || {};
2 //var webPath = 'http://p6esgw.natappfree.cc'; 2 //var webPath = 'http://p6esgw.natappfree.cc';
3 -//var webPath = 'http://atao.s1.natapp.cc';  
4 -var webPath = 'http://wxgzh.rnting.com/rnt-wx'; 3 +var webPath = 'localhost:8080';
  4 +//var webPath = 'http://wxgzh.rnting.com/rnt-wx';
5 mUrl.getCommonParam = function () { 5 mUrl.getCommonParam = function () {
6 //获取公共参数 6 //获取公共参数
7 var openId = mUrl.getOpenId(); 7 var openId = mUrl.getOpenId();