Commit 8114546306200d4d71f05d868566c5d6d729e0b0
1 parent
0183f5ad
更改车牌号支付流程
Showing
7 changed files
with
338 additions
and
152 deletions
src/main/java/com/rnt/controller/WeixinPayController.java
@@ -47,6 +47,7 @@ import com.rnt.service.OrderService; | @@ -47,6 +47,7 @@ import com.rnt.service.OrderService; | ||
47 | import com.rnt.service.ParkCardCouponsService; | 47 | import com.rnt.service.ParkCardCouponsService; |
48 | import com.rnt.service.ParkLotService; | 48 | import com.rnt.service.ParkLotService; |
49 | import com.rnt.service.PersonCardCouponsService; | 49 | import com.rnt.service.PersonCardCouponsService; |
50 | +import com.rnt.utils.AmountUtils; | ||
50 | import com.rnt.utils.CardTypeUtil; | 51 | import com.rnt.utils.CardTypeUtil; |
51 | import com.rnt.utils.SequenceUtil; | 52 | import com.rnt.utils.SequenceUtil; |
52 | import com.rnt.utils.TLWXUser; | 53 | import com.rnt.utils.TLWXUser; |
@@ -1116,35 +1117,75 @@ public class WeixinPayController extends Controller { | @@ -1116,35 +1117,75 @@ public class WeixinPayController extends Controller { | ||
1116 | * 检查输入的车牌号是否存订单(带核算/待支付/已完成).<br/> | 1117 | * 检查输入的车牌号是否存订单(带核算/待支付/已完成).<br/> |
1117 | */ | 1118 | */ |
1118 | public void parkOrderForNotPayExist() { | 1119 | public void parkOrderForNotPayExist() { |
1119 | - BizResult<Order> result = new BizResult<>(); | 1120 | + BizResult<OrderVO> result = new BizResult<OrderVO>(); |
1121 | + OrderVO orderVO = new OrderVO(); | ||
1122 | + Map<String,String> reultMap = new HashMap<String,String>(); | ||
1123 | + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | ||
1120 | String carNum = this.getPara("carNum"); | 1124 | String carNum = this.getPara("carNum"); |
1121 | - logger.info("---begin 校验输入车牌是否存在待核算订单..入参=" + carNum); | ||
1122 | - Map<String,String> reultMap = new HashMap<String,String>(); | ||
1123 | - try { | ||
1124 | - if (StringKit.isNotBlank(carNum)) { | ||
1125 | - OrderService orderService = Duang.duang(OrderService.class); | ||
1126 | - /**查询单信息.*/ | ||
1127 | - Order order = orderService.findOrderByCarNum(carNum); | ||
1128 | - if (order != null && StringKit.isNotBlank(order.getOrderId())) { | ||
1129 | - result.setData(order); | ||
1130 | - /**查询费用接口.*/ | ||
1131 | - reultMap = orderService.chosseBillQuery(carNum, order); | ||
1132 | - } else { | ||
1133 | - result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); | ||
1134 | - } | ||
1135 | - } else { | ||
1136 | - logger.info("入参为空!"); | ||
1137 | - result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); | ||
1138 | - } | ||
1139 | - | ||
1140 | - if(reultMap == null || reultMap.size() ==0){ | ||
1141 | - result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); | ||
1142 | - } | ||
1143 | - } catch (Exception e) { | ||
1144 | - e.printStackTrace(); | ||
1145 | - } | 1125 | + logger.info("---begin 校验输入车牌是否存要支付订单,入参=" + carNum); |
1126 | + try{ | ||
1127 | + if(StringKit.isNotBlank(carNum)){ | ||
1128 | + OrderService orderService = Duang.duang(OrderService.class); | ||
1129 | + /**查询单信息.*/ | ||
1130 | + Order order = orderService.findOrderByCarNum(carNum); | ||
1131 | + logger.info("通过车牌查询订单结果="+JSONObject.toJSONString(order)); | ||
1132 | + if (order != null && StringKit.isNotBlank(order.getOrderId())) { | ||
1133 | + orderVO.setOrderId(order.getOrderId()); | ||
1134 | + orderVO.setParkName(order.getParkName()); | ||
1135 | + orderVO.setCarNumber(order.getCarNumber()); | ||
1136 | + /**查询费用接口.*/ | ||
1137 | + reultMap = orderService.chosseBillQuery(carNum, order); | ||
1138 | + }else{ | ||
1139 | + result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); | ||
1140 | + } | ||
1141 | + }else{ | ||
1142 | + logger.info("入参为空!"); | ||
1143 | + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); | ||
1144 | + } | ||
1145 | + | ||
1146 | + if(reultMap == null || reultMap.size() ==0){ | ||
1147 | + result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录"); | ||
1148 | + }else{ | ||
1149 | + orderVO.setParkInTime(StringKit.isNotBlank(reultMap.get("park_in_time")) ? format.format(format.parse(reultMap.get("park_in_time"))): null); | ||
1150 | + orderVO.setParkOutTime(StringKit.isNotBlank(reultMap.get("park_out_time")) ? format.format(format.parse(reultMap.get("park_out_time"))): null); | ||
1151 | + if(StringKit.isNotBlank(reultMap.get("order_total_fee"))){//分转元 | ||
1152 | + orderVO.setOrderTotalFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_total_fee")))); | ||
1153 | + }else{ | ||
1154 | + orderVO.setOrderTotalFee(new BigDecimal("0")); | ||
1155 | + } | ||
1156 | + | ||
1157 | + if(StringKit.isNotBlank(reultMap.get("order_not_pay_fee"))){//分转元 | ||
1158 | + orderVO.setOrderNotPayFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_not_pay_fee")))); | ||
1159 | + }else{ | ||
1160 | + orderVO.setOrderNotPayFee(new BigDecimal("0")); | ||
1161 | + } | ||
1162 | + | ||
1163 | + if(StringKit.isNotBlank(reultMap.get("order_payed_fee"))){//分转元 | ||
1164 | + orderVO.setOrderPayedFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_payed_fee")))); | ||
1165 | + }else{ | ||
1166 | + orderVO.setOrderPayedFee(new BigDecimal("0")); | ||
1167 | + } | ||
1168 | + if(StringKit.isNotBlank(reultMap.get("parking_duration"))){ | ||
1169 | + orderVO.setParkingDuration(com.rnt.utils.DateUtil.secondToTime(Long.valueOf(reultMap.get("parking_duration")))); | ||
1170 | + }else{ | ||
1171 | + orderVO.setParkingDuration(com.rnt.utils.DateUtil.secondToTime(Long.valueOf("0"))); | ||
1172 | + } | ||
1173 | + | ||
1174 | + result.setErrorMessage(ErrorType.BIZ_SUCCESS, "通过车牌号查询费用成功"); | ||
1175 | + result.setData(orderVO); | ||
1176 | + } | ||
1177 | + }catch (Exception e) { | ||
1178 | + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); | ||
1179 | + e.printStackTrace(); | ||
1180 | + } | ||
1146 | logger.info("---end 校验输入车牌是..结果=" + JSONObject.toJSONString(result)); | 1181 | logger.info("---end 校验输入车牌是..结果=" + JSONObject.toJSONString(result)); |
1147 | - this.renderJson(result); | 1182 | + if(result != null && ErrorType.BIZ_SUCCESS.getCode().equals(result.getCode()) && result.getData() != null){ |
1183 | + this.getRequest().setAttribute("orderVO", result.getData()); | ||
1184 | + this.render("check.html"); | ||
1185 | + }else{ | ||
1186 | + this.setAttr("carNum", carNum); | ||
1187 | + this.render("checkerror.html"); | ||
1188 | + } | ||
1148 | 1189 | ||
1149 | } | 1190 | } |
1150 | 1191 | ||
@@ -1158,45 +1199,25 @@ public class WeixinPayController extends Controller { | @@ -1158,45 +1199,25 @@ public class WeixinPayController extends Controller { | ||
1158 | * 5.插入订单流水表. | 1199 | * 5.插入订单流水表. |
1159 | */ | 1200 | */ |
1160 | public void queryParkOrderForNotPay() { | 1201 | public void queryParkOrderForNotPay() { |
1161 | - logger.info("开始查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法."); | 1202 | + |
1162 | BizResult<OrderVO> result = new BizResult<OrderVO>(); | 1203 | BizResult<OrderVO> result = new BizResult<OrderVO>(); |
1163 | - String carNum = this.getPara("carNum"); | 1204 | + String orderId = this.getPara("orderId"); |
1205 | + logger.info("---begin查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.入参{orderId="+orderId+"}"); | ||
1164 | OrderService orderService = Duang.duang(OrderService.class); | 1206 | OrderService orderService = Duang.duang(OrderService.class); |
1165 | OrderVO orderVO = new OrderVO(); | 1207 | OrderVO orderVO = new OrderVO(); |
1166 | try { | 1208 | try { |
1167 | - orderVO = orderService.queryParkOrderForNotPay(carNum); | ||
1168 | - if (orderVO != null && StringKit.isNotBlank(orderVO.getOrderId())) { | ||
1169 | - //创建支付单 | ||
1170 | - PayOrder payOrder = new PayOrder(); | ||
1171 | - String payOrderId = SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PAY_WXGZH.value()); | ||
1172 | - payOrder.setPayOrderId(payOrderId); | ||
1173 | - payOrder.setPaySrcType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_PARK.getValue())); | ||
1174 | - payOrder.setRltOrderId(orderVO.getOrderId()); | ||
1175 | - payOrder.setPayOrderTitle(PayOrderEnum.PAY_ORDER_TYPE_PAY.getValue()); | ||
1176 | - payOrder.setPayType(Integer.valueOf(PayOrderEnum.PAY_TYPE_WXGZH.getValue())); | ||
1177 | - payOrder.setPayOrderState(Integer.valueOf(PayOrderEnum.PAY_ORDER_STATE_WAIT_PAY.getValue())); | ||
1178 | - payOrder.setPayorderStateTime(new Date()); | ||
1179 | - payOrder.setDataState(DataStatusEnum.DATA_STATUS_VALID.value()); | ||
1180 | - payOrder.setCreateDate(new Date()); | ||
1181 | - payOrder.setModfiyDate(new Date()); | ||
1182 | - logger.info("支付单save请求数据为: payOrder=" + JSONObject.toJSONString(payOrder)); | ||
1183 | - Boolean flag = payOrder.save(); | ||
1184 | - logger.info("支付单save 响应为:flag=" + flag); | ||
1185 | - orderVO.setPayOrderId(payOrderId); | ||
1186 | - if (!flag) { | ||
1187 | - result.setCode(ErrorType.BIZ_ERROR.getCode()); | ||
1188 | - result.setMsg("支付单保存失败!"); | ||
1189 | - renderJson(result); | ||
1190 | - return; | ||
1191 | - } | ||
1192 | - /**根据停车场编码查询通知艾润停车场编码.*/ | ||
1193 | - result.setData(orderVO); | ||
1194 | - } else { | ||
1195 | - result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); | 1209 | + orderVO = orderService.queryParkOrderForNotPay(orderId); |
1210 | + if(orderVO != null && StringKit.isNotBlank(orderVO.getOrderId())){ | ||
1211 | + result.setData(orderVO); | ||
1212 | + }else{ | ||
1213 | + result.setCode(ErrorType.BIZ_ERROR.getCode()); | ||
1214 | + result.setMsg("订单单保存失败!"); | ||
1196 | } | 1215 | } |
1197 | } catch (Exception e) { | 1216 | } catch (Exception e) { |
1217 | + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误"); | ||
1198 | e.printStackTrace(); | 1218 | e.printStackTrace(); |
1199 | } | 1219 | } |
1220 | + logger.info("---end查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.结果="+JSONObject.toJSONString(result)); | ||
1200 | this.renderJson(result); | 1221 | this.renderJson(result); |
1201 | } | 1222 | } |
1202 | 1223 |
src/main/java/com/rnt/service/OrderService.java
@@ -158,17 +158,17 @@ public class OrderService { | @@ -158,17 +158,17 @@ public class OrderService { | ||
158 | * @param carNum | 158 | * @param carNum |
159 | * @throws ParseException | 159 | * @throws ParseException |
160 | */ | 160 | */ |
161 | - public OrderVO queryParkOrderForNotPay(String carNum) throws ParseException { | ||
162 | - logger.info("---begin订单信息更新,carNum=" + carNum); | 161 | + public OrderVO queryParkOrderForNotPay(String orderId) throws ParseException { |
162 | + logger.info("---begin订单信息更新,orderId=" + orderId); | ||
163 | OrderVO orderVO = new OrderVO(); | 163 | OrderVO orderVO = new OrderVO(); |
164 | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | 164 | SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm"); |
165 | Map<String,String> resultmap = new HashMap<String,String>(); | 165 | Map<String,String> resultmap = new HashMap<String,String>(); |
166 | //1.查询支付订单 | 166 | //1.查询支付订单 |
167 | - Order order = this.findOrderByCarNum(carNum); | 167 | + Order order = this.findOrderByOrderId(orderId); |
168 | logger.info("通过车牌号查询到的支付订单信息结果="+JSONObject.toJSON(order)); | 168 | logger.info("通过车牌号查询到的支付订单信息结果="+JSONObject.toJSON(order)); |
169 | //2.调用查询费用接口 | 169 | //2.调用查询费用接口 |
170 | if (order != null && StringKit.isNotBlank(order.getOrderId())) { | 170 | if (order != null && StringKit.isNotBlank(order.getOrderId())) { |
171 | - resultmap = this.chosseBillQuery(carNum,order); | 171 | + resultmap = this.chosseBillQuery(order.getCarNumber(),order); |
172 | } | 172 | } |
173 | boolean orderUpdateFlg = false; | 173 | boolean orderUpdateFlg = false; |
174 | int updateOrderDetailFlg = 0; | 174 | int updateOrderDetailFlg = 0; |
@@ -210,17 +210,6 @@ public class OrderService { | @@ -210,17 +210,6 @@ public class OrderService { | ||
210 | if (updateOrderDetailFlg > 0) { | 210 | if (updateOrderDetailFlg > 0) { |
211 | //封装返回数据 | 211 | //封装返回数据 |
212 | orderVO.setOrderId(order.getOrderId()); | 212 | orderVO.setOrderId(order.getOrderId()); |
213 | - orderVO.setParkId(order.getParkId()); | ||
214 | - orderVO.setParkName(resultmap.get("park_name")); | ||
215 | - orderVO.setParkAddress(resultmap.get("park_address")); | ||
216 | - orderVO.setCarNumber(order.getCarNumber()); | ||
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"))); | ||
220 | - orderVO.setOrderTitle("待付费用"); | ||
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 | } | 213 | } |
225 | /**插入订单流水.*/ | 214 | /**插入订单流水.*/ |
226 | ParkOrderFlow parkOrderFlow = new ParkOrderFlow(); | 215 | ParkOrderFlow parkOrderFlow = new ParkOrderFlow(); |
@@ -243,11 +232,11 @@ public class OrderService { | @@ -243,11 +232,11 @@ public class OrderService { | ||
243 | * @return | 232 | * @return |
244 | */ | 233 | */ |
245 | public Map<String, String> chosseBillQuery(String carNum,Order order){ | 234 | public Map<String, String> chosseBillQuery(String carNum,Order order){ |
246 | - | ||
247 | OrderService orderService = Duang.duang(OrderService.class); | 235 | OrderService orderService = Duang.duang(OrderService.class); |
248 | IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class); | 236 | IRainQueryService iRainQueryService = Duang.duang(IRainQueryService.class); |
249 | Map<String, String> reultMap = new HashMap<String, String>(); | 237 | Map<String, String> reultMap = new HashMap<String, String>(); |
250 | if (order != null && StringKit.isNotBlank(order.getOrderId())) { | 238 | if (order != null && StringKit.isNotBlank(order.getOrderId())) { |
239 | + logger.info("查询费用来源="+(order.getSourceType() ==2 ? "调用青岛路侧费用查询接口" :"调用艾润查询费用接口")); | ||
251 | if("1".equals(String.valueOf(order.getSourceType()))){//道闸:调用艾润查询费用接口 | 240 | if("1".equals(String.valueOf(order.getSourceType()))){//道闸:调用艾润查询费用接口 |
252 | /**调用艾润查询费用接口.*/ | 241 | /**调用艾润查询费用接口.*/ |
253 | reultMap = iRainQueryService.billQuery(carNum, order.getParkId()); | 242 | reultMap = iRainQueryService.billQuery(carNum, order.getParkId()); |
@@ -276,10 +265,11 @@ public class OrderService { | @@ -276,10 +265,11 @@ public class OrderService { | ||
276 | //1.查询待支付订单 | 265 | //1.查询待支付订单 |
277 | StringBuffer sql = new StringBuffer( | 266 | StringBuffer sql = new StringBuffer( |
278 | "select a.id, a.order_id,a.car_number,a.order_title,a.order_payed_fee,a.order_not_pay_fee,a" | 267 | "select a.id, a.order_id,a.car_number,a.order_title,a.order_payed_fee,a.order_not_pay_fee,a" |
279 | - + ".order_total_fee,a.park_id"); | 268 | + + ".order_total_fee,a.park_id,source_type,park_name"); |
280 | sql.append(" from td_b_order a"); | 269 | sql.append(" from td_b_order a"); |
281 | sql.append(" where a.order_state in(1,2,3)"); | 270 | sql.append(" where a.order_state in(1,2,3)"); |
282 | sql.append(" and a.car_number=?"); | 271 | sql.append(" and a.car_number=?"); |
272 | + sql.append(" and a.data_state=1"); | ||
283 | sql.append(" order by a.create_date DESC"); | 273 | sql.append(" order by a.create_date DESC"); |
284 | 274 | ||
285 | Order order = new Order().findFirst(sql.toString(), carNum); | 275 | Order order = new Order().findFirst(sql.toString(), carNum); |
@@ -288,6 +278,24 @@ public class OrderService { | @@ -288,6 +278,24 @@ public class OrderService { | ||
288 | 278 | ||
289 | return order; | 279 | return order; |
290 | } | 280 | } |
281 | + | ||
282 | + /** | ||
283 | + * 通过车牌查询待核算支付单信息.<br/> | ||
284 | + * | ||
285 | + * @param | ||
286 | + */ | ||
287 | + public Order findOrderByOrderId(String orderId) { | ||
288 | + //1.查询待支付订单 | ||
289 | + StringBuffer sql = new StringBuffer( | ||
290 | + "select a.id, a.order_id,a.car_number,a.order_title,a.order_payed_fee,a.order_not_pay_fee,a" | ||
291 | + + ".order_total_fee,a.park_id,source_type,park_name"); | ||
292 | + sql.append(" from td_b_order a"); | ||
293 | + sql.append(" where a.order_state in(1,2,3)"); | ||
294 | + sql.append(" and a.order_id=?"); | ||
295 | + sql.append(" and a.data_state=1"); | ||
296 | + Order order = new Order().findFirst(sql.toString(), orderId); | ||
297 | + return order; | ||
298 | + } | ||
291 | 299 | ||
292 | 300 | ||
293 | } | 301 | } |
src/main/java/com/rnt/utils/AmountUtils.java
0 → 100644
1 | +package com.rnt.utils; | ||
2 | + | ||
3 | + | ||
4 | +import java.math.BigDecimal; | ||
5 | + | ||
6 | +import com.zteits.clouds.api.apibase.constants.ErrorType; | ||
7 | +import com.zteits.clouds.api.apibase.exception.BizException; | ||
8 | + | ||
9 | +/** | ||
10 | + * | ||
11 | + * Copyright: Copyright (c) 2017 ZTE-ITS | ||
12 | + * | ||
13 | + * @ClassName: AmountUtils.java | ||
14 | + * @Description: | ||
15 | + * @version: v1.0.0 | ||
16 | + * @author: wangbiao | ||
17 | + * @date: 2017年6月27日 下午5:24:43 | ||
18 | + * Modification History: | ||
19 | + * Date Author Version Description | ||
20 | + *---------------------------------------------------------* | ||
21 | + * 2017年6月27日 wangbiao v1.0.0 创建 | ||
22 | + */ | ||
23 | + | ||
24 | +public class AmountUtils { | ||
25 | + /**金额为分的格式 */ | ||
26 | + public static final String CURRENCY_FEN_REGEX = "\\-?[0-9]+"; | ||
27 | + | ||
28 | + private AmountUtils() { | ||
29 | + } | ||
30 | + | ||
31 | + /** | ||
32 | + * 将分为单位的转换为元并返回金额格式的字符串 (除100) | ||
33 | + * | ||
34 | + * @param amount | ||
35 | + * @return | ||
36 | + * @throws Exception | ||
37 | + */ | ||
38 | + public static String changeF2Y(Long amount){ | ||
39 | + if(!amount.toString().matches(CURRENCY_FEN_REGEX)) { | ||
40 | + throw new BizException(ErrorType.BIZ_ERROR, "金额格式有误!"); | ||
41 | + } | ||
42 | + | ||
43 | + int flag = 0; | ||
44 | + String amString = amount.toString(); | ||
45 | + if(amString.charAt(0)=='-'){ | ||
46 | + flag = 1; | ||
47 | + amString = amString.substring(1); | ||
48 | + } | ||
49 | + StringBuilder result = new StringBuilder(); | ||
50 | + if(amString.length()==1){ | ||
51 | + result.append("0.0").append(amString); | ||
52 | + }else if(amString.length() == 2){ | ||
53 | + result.append("0.").append(amString); | ||
54 | + }else{ | ||
55 | + String intString = amString.substring(0,amString.length()-2); | ||
56 | + for(int i=1; i<=intString.length();i++){ | ||
57 | + if( (i-1)%3 == 0 && i !=1){ | ||
58 | + result.append(","); | ||
59 | + } | ||
60 | + result.append(intString.substring(intString.length()-i,intString.length()-i+1)); | ||
61 | + } | ||
62 | + result.reverse().append(".").append(amString.substring(amString.length()-2)); | ||
63 | + } | ||
64 | + if(flag == 1){ | ||
65 | + return "-"+result.toString(); | ||
66 | + }else{ | ||
67 | + return result.toString(); | ||
68 | + } | ||
69 | + } | ||
70 | + | ||
71 | + /** | ||
72 | + * 将分为单位的转换为元 (除100) | ||
73 | + * | ||
74 | + * @param amount | ||
75 | + * @return | ||
76 | + * @throws Exception | ||
77 | + */ | ||
78 | + public static String changeF2Y(String amount){ | ||
79 | + if(!amount.matches(CURRENCY_FEN_REGEX)) { | ||
80 | + throw new BizException(ErrorType.BIZ_ERROR, "金额格式有误!"); | ||
81 | + } | ||
82 | + return BigDecimal.valueOf(Long.valueOf(amount)).divide(new BigDecimal(100)).toString(); | ||
83 | + } | ||
84 | + | ||
85 | + | ||
86 | + /** | ||
87 | + * 将元为单位的转换为分 (乘100) | ||
88 | + * | ||
89 | + * @param amount | ||
90 | + * @return | ||
91 | + */ | ||
92 | + public static String changeY2F(Long amount){ | ||
93 | + return BigDecimal.valueOf(amount).multiply(new BigDecimal(100)).toString(); | ||
94 | + } | ||
95 | + | ||
96 | + /** | ||
97 | + * 将元为单位的转换为分 替换小数点,支持以逗号区分的金额 | ||
98 | + * | ||
99 | + * @param amount | ||
100 | + * @return | ||
101 | + */ | ||
102 | + public static String changeY2F(String amount){ | ||
103 | + String currency = amount.replaceAll("\\$|\\¥|\\,", ""); //处理包含, ¥ 或者$的金额 | ||
104 | + int index = currency.indexOf('.'); | ||
105 | + int length = currency.length(); | ||
106 | + Long amLong = 0l; | ||
107 | + if(index == -1){ | ||
108 | + amLong = Long.valueOf(currency+"00"); | ||
109 | + }else if(length - index >= 3){ | ||
110 | + amLong = Long.valueOf((currency.substring(0, index+3)).replace(".", "")); | ||
111 | + }else if(length - index == 2){ | ||
112 | + amLong = Long.valueOf((currency.substring(0, index+2)).replace(".", "")+0); | ||
113 | + }else{ | ||
114 | + amLong = Long.valueOf((currency.substring(0, index+1)).replace(".", "")+"00"); | ||
115 | + } | ||
116 | + return amLong.toString(); | ||
117 | + } | ||
118 | + | ||
119 | + | ||
120 | + /** | ||
121 | + * 数字金额大写转换,思想先写个完整的然后将如零拾替换成零 | ||
122 | + * 要用到正则表达式 | ||
123 | + */ | ||
124 | + public static String moneyUpperCase(double n){ | ||
125 | + String fraction[] = {"角", "分"}; | ||
126 | + String digit[] = { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" }; | ||
127 | + String unit[][] = {{"元", "万", "亿"}, | ||
128 | + {"", "拾", "佰", "仟"}}; | ||
129 | + | ||
130 | + String head = n < 0? "负": ""; | ||
131 | + n = Math.abs(n); | ||
132 | + | ||
133 | + String s = ""; | ||
134 | + for (int i = 0; i < fraction.length; i++) { | ||
135 | + double f1= new BigDecimal(n).setScale(2,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(10 * Math.pow(10, i))).doubleValue(); | ||
136 | + s += (digit[(int) (Math.floor(f1) % 10)] + fraction[i]).replaceAll("(零.)+", ""); | ||
137 | + | ||
138 | + } | ||
139 | + if(s.length()<1){ | ||
140 | + s = "整"; | ||
141 | + } | ||
142 | + int integerPart = (int)Math.floor(n); | ||
143 | + | ||
144 | + for (int i = 0; i < unit[0].length && integerPart > 0; i++) { | ||
145 | + String p =""; | ||
146 | + for (int j = 0; j < unit[1].length && n > 0; j++) { | ||
147 | + p = digit[integerPart%10]+unit[1][j] + p; | ||
148 | + integerPart = integerPart/10; | ||
149 | + } | ||
150 | + s = p.replaceAll("(零.)*零$", "").replaceAll("^$", "零") + unit[0][i] + s; | ||
151 | + } | ||
152 | + return head + s.replaceAll("(零.)*零元", "元").replaceFirst("(零.)+", "").replaceAll("(零.)+", "零").replaceAll("^整$", "零元整"); | ||
153 | + } | ||
154 | + /** | ||
155 | + * @param args | ||
156 | + */ | ||
157 | + public static void main(String[] args) { | ||
158 | + String str ="200"; | ||
159 | + BigDecimal big = new BigDecimal(str); | ||
160 | + System.out.println(AmountUtils.changeF2Y(str)); | ||
161 | + | ||
162 | + } | ||
163 | + | ||
164 | +} |
src/main/java/com/rnt/utils/DateUtil.java
@@ -828,7 +828,8 @@ public class DateUtil { | @@ -828,7 +828,8 @@ public class DateUtil { | ||
828 | private static String unitFormat(long time) { | 828 | private static String unitFormat(long time) { |
829 | String retStr = null; | 829 | String retStr = null; |
830 | if (time >= 0 && time < 10) | 830 | if (time >= 0 && time < 10) |
831 | - retStr = "0" + Long.toString(time); | 831 | + //retStr = "0" + Long.toString(time); wangfs 2017-07-07 更改 |
832 | + retStr = Long.toString(time); | ||
832 | else | 833 | else |
833 | retStr = "" + time; | 834 | retStr = "" + time; |
834 | return retStr; | 835 | return retStr; |
src/main/java/com/rnt/vo/OrderVO.java
@@ -33,10 +33,10 @@ public class OrderVO { | @@ -33,10 +33,10 @@ public class OrderVO { | ||
33 | private String orderTitle; | 33 | private String orderTitle; |
34 | 34 | ||
35 | /** 车辆进场时间. */ | 35 | /** 车辆进场时间. */ |
36 | - private Date parkInTime; | 36 | + private String parkInTime; |
37 | 37 | ||
38 | /** 车辆出场时间. */ | 38 | /** 车辆出场时间. */ |
39 | - private Date parkOutTime; | 39 | + private String parkOutTime; |
40 | 40 | ||
41 | /** 停车时长 单位:小时格式:02小时52分. */ | 41 | /** 停车时长 单位:小时格式:02小时52分. */ |
42 | private String parkingDuration; | 42 | private String parkingDuration; |
@@ -116,19 +116,21 @@ public class OrderVO { | @@ -116,19 +116,21 @@ public class OrderVO { | ||
116 | this.orderTitle = orderTitle == null ? null : orderTitle.trim(); | 116 | this.orderTitle = orderTitle == null ? null : orderTitle.trim(); |
117 | } | 117 | } |
118 | 118 | ||
119 | - public Date getParkInTime() { | 119 | + |
120 | + | ||
121 | + public String getParkInTime() { | ||
120 | return parkInTime; | 122 | return parkInTime; |
121 | } | 123 | } |
122 | 124 | ||
123 | - public void setParkInTime(Date parkInTime) { | 125 | + public void setParkInTime(String parkInTime) { |
124 | this.parkInTime = parkInTime; | 126 | this.parkInTime = parkInTime; |
125 | } | 127 | } |
126 | 128 | ||
127 | - public Date getParkOutTime() { | 129 | + public String getParkOutTime() { |
128 | return parkOutTime; | 130 | return parkOutTime; |
129 | } | 131 | } |
130 | 132 | ||
131 | - public void setParkOutTime(Date parkOutTime) { | 133 | + public void setParkOutTime(String parkOutTime) { |
132 | this.parkOutTime = parkOutTime; | 134 | this.parkOutTime = parkOutTime; |
133 | } | 135 | } |
134 | 136 |
src/main/webapp/WEB-INF/pages/check.html
@@ -63,33 +63,33 @@ | @@ -63,33 +63,33 @@ | ||
63 | 63 | ||
64 | 64 | ||
65 | <header class="demos-header"> | 65 | <header class="demos-header"> |
66 | - <p class="all_told discount_money"><span id="orderNotPayFee">90.00</span>元</p> | 66 | + <p class="all_told discount_money"><span id="orderNotPayFee">${orderVO.orderNotPayFee!''}</span>元</p> |
67 | <p class="platen_number discount_money" style="font-weight:bold;" id="orderTitle">待付费用</p> | 67 | <p class="platen_number discount_money" style="font-weight:bold;" id="orderTitle">待付费用</p> |
68 | </header> | 68 | </header> |
69 | 69 | ||
70 | <div class="weui-cells weui-cells_form"> | 70 | <div class="weui-cells weui-cells_form"> |
71 | <input type="hidden" id="carNumPre" value="${carNum!''}"/> | 71 | <input type="hidden" id="carNumPre" value="${carNum!''}"/> |
72 | - <input type="hidden" id="parkOrderId"/> | 72 | + <input type="hidden" id="parkOrderId" value="${orderVO.orderId!''}"/> |
73 | <div class="weui-cell"> | 73 | <div class="weui-cell"> |
74 | <div class="weui-cell__hd"><label for="" class="weui-label">当前车牌</label></div> | 74 | <div class="weui-cell__hd"><label for="" class="weui-label">当前车牌</label></div> |
75 | - <div class="weui-cell__bd" id="carNumber"> | 75 | + <div class="weui-cell__bd" id="carNumber">${orderVO.carNumber!''} |
76 | 76 | ||
77 | </div> | 77 | </div> |
78 | </div> | 78 | </div> |
79 | 79 | ||
80 | <div class="weui-cell"> | 80 | <div class="weui-cell"> |
81 | <div class="weui-cell__hd"><label for="" class="weui-label">停车位置</label></div> | 81 | <div class="weui-cell__hd"><label for="" class="weui-label">停车位置</label></div> |
82 | - <div class="weui-cell__bd" id="parkName"> | 82 | + <div class="weui-cell__bd" id="parkName">${orderVO.parkName!''} |
83 | </div> | 83 | </div> |
84 | </div> | 84 | </div> |
85 | <div class="weui-cell"> | 85 | <div class="weui-cell"> |
86 | <div class="weui-cell__hd"><label for="" class="weui-label">进场时间</label></div> | 86 | <div class="weui-cell__hd"><label for="" class="weui-label">进场时间</label></div> |
87 | - <div class="weui-cell__bd" id="parkInTime"> | 87 | + <div class="weui-cell__bd" id="parkInTime">${orderVO.parkInTime!''} |
88 | </div> | 88 | </div> |
89 | </div> | 89 | </div> |
90 | <div class="weui-cell"> | 90 | <div class="weui-cell"> |
91 | <div class="weui-cell__hd"><label for="" class="weui-label">停车时长</label></div> | 91 | <div class="weui-cell__hd"><label for="" class="weui-label">停车时长</label></div> |
92 | - <div class="weui-cell__bd" id="parkingDuration"> | 92 | + <div class="weui-cell__bd" id="parkingDuration">${orderVO.parkingDuration!''} |
93 | </div> | 93 | </div> |
94 | </div> | 94 | </div> |
95 | 95 | ||
@@ -99,14 +99,14 @@ | @@ -99,14 +99,14 @@ | ||
99 | <div class="weui-cell"> | 99 | <div class="weui-cell"> |
100 | <div class="weui-cell__hd"><label for="" class="weui-label">总计费用</label></div> | 100 | <div class="weui-cell__hd"><label for="" class="weui-label">总计费用</label></div> |
101 | <div class="weui-cell__bd"> | 101 | <div class="weui-cell__bd"> |
102 | - ¥<span id="orderTotalFee"></span> | 102 | + ¥<span id="orderTotalFee">${orderVO.orderTotalFee!''}</span> |
103 | </div> | 103 | </div> |
104 | </div> | 104 | </div> |
105 | 105 | ||
106 | <div class="weui-cell"> | 106 | <div class="weui-cell"> |
107 | <div class="weui-cell__hd"><label for="" class="weui-label">已付费用</label></div> | 107 | <div class="weui-cell__hd"><label for="" class="weui-label">已付费用</label></div> |
108 | <div class="weui-cell__bd"> | 108 | <div class="weui-cell__bd"> |
109 | - ¥<span id="orderPayedFee"></span> | 109 | + ¥<span id="orderPayedFee">${orderVO.orderPayedFee!''}</span> |
110 | </div> | 110 | </div> |
111 | </div> | 111 | </div> |
112 | <!-- <div class="weui-cell"> | 112 | <!-- <div class="weui-cell"> |
@@ -128,53 +128,27 @@ | @@ -128,53 +128,27 @@ | ||
128 | <script src="${staticHost}/js/jsutil.js"></script> | 128 | <script src="${staticHost}/js/jsutil.js"></script> |
129 | <script src="${staticHost}/js/url.js"></script> | 129 | <script src="${staticHost}/js/url.js"></script> |
130 | <script type="text/javascript"> | 130 | <script type="text/javascript"> |
131 | - var func = { | ||
132 | - /**查询待支付订单*/ | ||
133 | - initData: function () { | ||
134 | - $('#orderNotPayFee').empty(); | ||
135 | - $('#orderTitle').empty(); | ||
136 | - $('#carNumber').empty(); | ||
137 | - $('#parkName').empty(); | ||
138 | - $('#parkInTime').empty(); | ||
139 | - $('#parkingDuration').empty(); | ||
140 | - $('#orderTotalFee').empty(); | ||
141 | - $('#orderPayedFee').empty(); | ||
142 | - var carNumPre = $('#carNumPre').val(); | ||
143 | - jsutil.defaultReq( | ||
144 | - mUrl.queryParkOrderForNotPay, | ||
145 | - {"carNum": carNumPre}, | ||
146 | - function (data) { | ||
147 | - if (data != null && "1005" == data.code) { | ||
148 | - window.location.href = mUrl.queryOrderCheckErrorView + "&carNum=" + carNumPre; | ||
149 | - } else if (data != null && "8888" != data.code) { | ||
150 | - $.alert("查询待支付订单失败,请重试!"); | ||
151 | - } else { | ||
152 | - var orderVO = data.data; | ||
153 | - $('#parkOrderId').val(orderVO.orderId); | ||
154 | - $('#payOrderId').val(orderVO.payOrderId) | ||
155 | - $('#orderNotPayFee').text(orderVO.orderNotPayFee); | ||
156 | - $('#orderTitle').text(orderVO.orderTitle); | ||
157 | - $('#carNumber').text(orderVO.carNumber); | ||
158 | - $('#parkName').text(orderVO.parkName); | ||
159 | - $('#parkInTime').text(orderVO.parkInTime); | ||
160 | - $('#parkingDuration').text(orderVO.parkingDuration); | ||
161 | - $('#orderTotalFee').text(orderVO.orderTotalFee); | ||
162 | - $('#orderPayedFee').text(orderVO.orderPayedFee); | ||
163 | - | ||
164 | - } | ||
165 | - | ||
166 | - | ||
167 | - }); | ||
168 | - }, | ||
169 | - }; | ||
170 | - $(function () { | ||
171 | - func.initData(); | ||
172 | - }); | 131 | + $(function(){ |
132 | + var orderNotPayFee = $('#orderNotPayFee').text(); | ||
133 | + if("0" ==orderNotPayFee || null == orderNotPayFee || "" == orderNotPayFee){ | ||
134 | + $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); | ||
135 | + } | ||
136 | + }); | ||
173 | var flg = true; | 137 | var flg = true; |
174 | $("#showTooltips").click(function () { | 138 | $("#showTooltips").click(function () { |
139 | + var orderNotPayFee = $('#orderNotPayFee').text(); | ||
140 | + if("0" ==orderNotPayFee || null == orderNotPayFee || "" == orderNotPayFee){ | ||
141 | + $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); | ||
142 | + flg = false; | ||
143 | + return false; | ||
144 | + }else{ | ||
145 | + $('#showTooltips').attr('class', 'weui-btn weui-btn_primary'); | ||
146 | + flg = true; | ||
147 | + } | ||
175 | if (flg) { | 148 | if (flg) { |
176 | flg = false; | 149 | flg = false; |
177 | $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); | 150 | $('#showTooltips').attr('class', 'weui-btn weui-btn_primary weui-btn_disabled'); |
151 | + //判断待付费用为0不能发起支付 | ||
178 | var parkOrderId = $('#parkOrderId').val(); | 152 | var parkOrderId = $('#parkOrderId').val(); |
179 | if (parkOrderId.length < 1) { | 153 | if (parkOrderId.length < 1) { |
180 | $.toptip("订单Id为空", 2000, "error"); | 154 | $.toptip("订单Id为空", 2000, "error"); |
@@ -185,23 +159,39 @@ | @@ -185,23 +159,39 @@ | ||
185 | var req = { | 159 | var req = { |
186 | orderId: parkOrderId | 160 | orderId: parkOrderId |
187 | } | 161 | } |
188 | - | ||
189 | - $.ajax({ | ||
190 | - url: mUrl.getJSPayParam, | ||
191 | - type: 'post', | ||
192 | - dataType: 'json', | ||
193 | - data: req, | ||
194 | - success: function (res) { | ||
195 | - if (res.code == '8888') { | ||
196 | - var payParam = res.data; | ||
197 | - //调用微信支付 | ||
198 | - callpay(payParam); | ||
199 | - } else { | ||
200 | - $.toptip(res.msg, 2000, "error"); | ||
201 | - console.log('详细错误信息为:' + res.data); | ||
202 | - } | ||
203 | - } | ||
204 | - }); | 162 | + |
163 | + jsutil.defaultReq( | ||
164 | + mUrl.queryParkOrderForNotPay, | ||
165 | + {"orderId":parkOrderId}, | ||
166 | + function(data){ | ||
167 | + if(data != null && "8888" !=data.code){ | ||
168 | + $.alert("亲!支付失败,请重试!"); | ||
169 | + return false; | ||
170 | + }else{ | ||
171 | + $.ajax({ | ||
172 | + url: mUrl.getJSPayParam, | ||
173 | + type: 'post', | ||
174 | + dataType: 'json', | ||
175 | + data: req, | ||
176 | + success: function (res) { | ||
177 | + if (res.code == '8888') { | ||
178 | + var payParam = res.data; | ||
179 | + //调用微信支付 | ||
180 | + callpay(payParam); | ||
181 | + } else { | ||
182 | + $.toptip(res.msg, 2000, "error"); | ||
183 | + console.log('详细错误信息为:' + res.data); | ||
184 | + } | ||
185 | + } | ||
186 | + }); | ||
187 | + }//else | ||
188 | + | ||
189 | + } | ||
190 | + | ||
191 | + ); | ||
192 | + | ||
193 | + | ||
194 | + | ||
205 | }//if | 195 | }//if |
206 | }); | 196 | }); |
207 | 197 |
src/main/webapp/WEB-INF/pages/select.html
@@ -169,8 +169,8 @@ $('#view_now').on('click',function () { | @@ -169,8 +169,8 @@ $('#view_now').on('click',function () { | ||
169 | }; | 169 | }; |
170 | //根据车牌号查询带支付的订单是否存在 | 170 | //根据车牌号查询带支付的订单是否存在 |
171 | // | 171 | // |
172 | - | ||
173 | - jsutil.defaultReq( | 172 | + window.location.href= mUrl.parkOrderForNotPayExist +"&carNum="+val; |
173 | + /**jsutil.defaultReq( | ||
174 | mUrl.parkOrderForNotPayExist , | 174 | mUrl.parkOrderForNotPayExist , |
175 | {"carNum":val}, | 175 | {"carNum":val}, |
176 | function(data){ | 176 | function(data){ |
@@ -188,7 +188,7 @@ $('#view_now').on('click',function () { | @@ -188,7 +188,7 @@ $('#view_now').on('click',function () { | ||
188 | 188 | ||
189 | } | 189 | } |
190 | 190 | ||
191 | - }); | 191 | + });*/ |
192 | 192 | ||
193 | 193 | ||
194 | 194 |