Commit 8114546306200d4d71f05d868566c5d6d729e0b0

Authored by 王富生
1 parent 0183f5ad

更改车牌号支付流程

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 @@ $(&#39;#view_now&#39;).on(&#39;click&#39;,function () { @@ -169,8 +169,8 @@ $(&#39;#view_now&#39;).on(&#39;click&#39;,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 @@ $(&#39;#view_now&#39;).on(&#39;click&#39;,function () { @@ -188,7 +188,7 @@ $(&#39;#view_now&#39;).on(&#39;click&#39;,function () {
188 188
189 } 189 }
190 190
191 - }); 191 + });*/
192 192
193 193
194 194