Commit 80db26ae69d0c35b303328cbefae5289c7417274
1 parent
07a50221
提交
Showing
4 changed files
with
94 additions
and
106 deletions
pom.xml
| ... | ... | @@ -137,8 +137,8 @@ |
| 137 | 137 | <artifactId>sign</artifactId> |
| 138 | 138 | <type>jar</type> |
| 139 | 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 | 142 | </dependency> |
| 143 | 143 | <dependency> |
| 144 | 144 | <groupId>com.alibaba</groupId> | ... | ... |
src/main/java/com/rnt/controller/WeixinPayController.java
| ... | ... | @@ -12,8 +12,9 @@ import java.util.Map; |
| 12 | 12 | import java.util.Map.Entry; |
| 13 | 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 | 18 | import com.jfinal.aop.Clear; |
| 18 | 19 | import com.jfinal.aop.Duang; |
| 19 | 20 | import com.jfinal.core.Controller; |
| ... | ... | @@ -36,6 +37,7 @@ import com.rnt.commo.enums.SequenceTypeEnum; |
| 36 | 37 | import com.rnt.commo.interceptor.BindInterceptor; |
| 37 | 38 | import com.rnt.model.zf.CardCoupons; |
| 38 | 39 | import com.rnt.model.zf.Order; |
| 40 | +import com.rnt.model.zf.OrderDetailPark; | |
| 39 | 41 | import com.rnt.model.zf.ParkCardCoupons; |
| 40 | 42 | import com.rnt.model.zf.PayOrder; |
| 41 | 43 | import com.rnt.model.zf.PayOrderFlow; |
| ... | ... | @@ -55,7 +57,6 @@ import com.rnt.vo.OrderVO; |
| 55 | 57 | import com.rnt.vo.ParkLotCardVO; |
| 56 | 58 | import com.xiaoleilu.hutool.date.DateField; |
| 57 | 59 | import com.xiaoleilu.hutool.date.DateUtil; |
| 58 | -import org.beetl.sql.core.kit.StringKit; | |
| 59 | 60 | |
| 60 | 61 | /** |
| 61 | 62 | * 感谢 *半杯* 童鞋联调支付API |
| ... | ... | @@ -1117,19 +1118,17 @@ public class WeixinPayController extends Controller { |
| 1117 | 1118 | public void parkOrderForNotPayExist() { |
| 1118 | 1119 | BizResult<Order> result = new BizResult<>(); |
| 1119 | 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 | 1123 | try { |
| 1124 | 1124 | if (StringKit.isNotBlank(carNum)) { |
| 1125 | 1125 | OrderService orderService = Duang.duang(OrderService.class); |
| 1126 | - IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class); | |
| 1127 | - /**查询待核算支付单信息.*/ | |
| 1126 | + /**查询单信息.*/ | |
| 1128 | 1127 | Order order = orderService.findOrderByCarNum(carNum); |
| 1129 | 1128 | if (order != null && StringKit.isNotBlank(order.getOrderId())) { |
| 1130 | 1129 | result.setData(order); |
| 1131 | - /**调用艾润查询费用接口.*/ | |
| 1132 | - rs = iRainQueryService.billQuery(carNum, order.getParkId()); | |
| 1130 | + /**查询费用接口.*/ | |
| 1131 | + reultMap = orderService.chosseBillQuery(carNum, order); | |
| 1133 | 1132 | } else { |
| 1134 | 1133 | result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); |
| 1135 | 1134 | } |
| ... | ... | @@ -1137,21 +1136,14 @@ public class WeixinPayController extends Controller { |
| 1137 | 1136 | logger.info("入参为空!"); |
| 1138 | 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 | 1143 | } catch (Exception e) { |
| 1152 | 1144 | e.printStackTrace(); |
| 1153 | 1145 | } |
| 1154 | - logger.info("结束校验输入车牌是否存在待核算订单..响应=" + JSONObject.toJSONString(result)); | |
| 1146 | + logger.info("---end 校验输入车牌是..结果=" + JSONObject.toJSONString(result)); | |
| 1155 | 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 | 9 | import java.util.List; |
| 10 | 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 | 15 | import com.jfinal.aop.Before; |
| 15 | 16 | import com.jfinal.aop.Duang; |
| 16 | 17 | import com.jfinal.log.Log; |
| ... | ... | @@ -18,18 +19,19 @@ import com.jfinal.plugin.activerecord.Db; |
| 18 | 19 | import com.jfinal.plugin.activerecord.tx.Tx; |
| 19 | 20 | import com.rnt.commo.enums.DSEnum; |
| 20 | 21 | import com.rnt.commo.enums.DataStatusEnum; |
| 22 | +import com.rnt.commo.enums.ErrorType; | |
| 21 | 23 | import com.rnt.commo.enums.OrderTypeEnum; |
| 22 | 24 | import com.rnt.commo.enums.PayOrderEnum; |
| 23 | 25 | import com.rnt.commo.enums.SequenceTypeEnum; |
| 24 | 26 | import com.rnt.model.zf.CardCoupons; |
| 25 | 27 | import com.rnt.model.zf.Order; |
| 26 | 28 | import com.rnt.model.zf.OrderDetailCard; |
| 29 | +import com.rnt.model.zf.OrderDetailPark; | |
| 27 | 30 | import com.rnt.model.zf.ParkOrderFlow; |
| 28 | 31 | import com.rnt.model.zf.PayOrder; |
| 29 | 32 | import com.rnt.utils.DateUtil; |
| 30 | 33 | import com.rnt.utils.SequenceUtil; |
| 31 | 34 | import com.rnt.vo.OrderVO; |
| 32 | -import org.beetl.sql.core.kit.StringKit; | |
| 33 | 35 | |
| 34 | 36 | public class OrderService { |
| 35 | 37 | |
| ... | ... | @@ -129,6 +131,20 @@ public class OrderService { |
| 129 | 131 | |
| 130 | 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 | 150 | * 查询待支付的停车订单.<br/> |
| ... | ... | @@ -143,40 +159,33 @@ public class OrderService { |
| 143 | 159 | * @throws ParseException |
| 144 | 160 | */ |
| 145 | 161 | public OrderVO queryParkOrderForNotPay(String carNum) throws ParseException { |
| 146 | - logger.info("开始查询待支付单信息,carNum=" + carNum); | |
| 162 | + logger.info("---begin订单信息更新,carNum=" + carNum); | |
| 147 | 163 | OrderVO orderVO = new OrderVO(); |
| 148 | 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 | 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 | 173 | boolean orderUpdateFlg = false; |
| 159 | 174 | int updateOrderDetailFlg = 0; |
| 160 | 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 | 178 | updateOrder.setId(order.getId()); |
| 167 | 179 | updateOrder.setOrderId(order.getOrderId()); |
| 168 | 180 | updateOrder.setOrderType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_PARK.getValue())); |
| 169 | 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 | 185 | updateOrder.setModfiyDate(new Date()); |
| 174 | 186 | /**更新订单表.*/ |
| 175 | 187 | orderUpdateFlg = updateOrder.update(); |
| 176 | - } else { | |
| 177 | - logger.info("没有查询到费用信息"); | |
| 178 | - } | |
| 179 | - | |
| 188 | + logger.info("更新订单结果="+(orderUpdateFlg ==true ? "成功!" :"失败!")); | |
| 180 | 189 | if (orderUpdateFlg) { |
| 181 | 190 | StringBuffer sqls = new StringBuffer("update td_b_order_detail_park a "); |
| 182 | 191 | sqls.append("set a.order_id =?,"); |
| ... | ... | @@ -191,29 +200,29 @@ public class OrderService { |
| 191 | 200 | /**更新订单明细表.*/ |
| 192 | 201 | updateOrderDetailFlg = Db.use(DSEnum.ZF_DATASOURCE.name()).update(sqls.toString(), |
| 193 | 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 | 207 | new Date(), |
| 199 | 208 | order.getOrderId()); |
| 200 | - if (updateOrderDetailFlg <= 0) { | |
| 201 | - logger.info("更新订单子表失败"); | |
| 202 | - } else { | |
| 203 | - //封装返回数据 | |
| 209 | + logger.info("更新停车订单明细结果="+(updateOrderDetailFlg > 0 ? "成功" : "失败")); | |
| 210 | + if (updateOrderDetailFlg > 0) { | |
| 211 | + //封装返回数据 | |
| 204 | 212 | orderVO.setOrderId(order.getOrderId()); |
| 205 | 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 | 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 | 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 | 226 | ParkOrderFlow parkOrderFlow = new ParkOrderFlow(); |
| 218 | 227 | parkOrderFlow.setParkOrderFolwId(SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PARK_FLOW.value())); |
| 219 | 228 | parkOrderFlow.setParkOrderId(order.getOrderId()); |
| ... | ... | @@ -221,56 +230,43 @@ public class OrderService { |
| 221 | 230 | parkOrderFlow.setProcResult(1); |
| 222 | 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 | 237 | return orderVO; |
| 230 | 238 | } |
| 231 | - | |
| 239 | + | |
| 232 | 240 | /** |
| 233 | - * 获取查询费用返回结果.<br/> | |
| 234 | - * | |
| 235 | - * @param json | |
| 241 | + * 查询费用艾润或者青岛路侧费用查询接口.<br/> | |
| 242 | + * @param carNum | |
| 236 | 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 | 271 | * 通过车牌查询待核算支付单信息.<br/> |
| 276 | 272 | * | ... | ... |
src/main/webapp/static/js/url.js
| 1 | 1 | var mUrl = mUrl || {}; |
| 2 | 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 | 5 | mUrl.getCommonParam = function () { |
| 6 | 6 | //获取公共参数 |
| 7 | 7 | var openId = mUrl.getOpenId(); | ... | ... |