Commit 07eaa5b49768d954d8a0255e3d891e51e9c3b50c

Authored by atao
1 parent 96d2824b

提交代码

src/main/java/com/rnt/controller/WeixinPayController.java
... ... @@ -12,9 +12,8 @@ import java.util.Map;
12 12 import java.util.Map.Entry;
13 13 import java.util.Set;
14 14  
15   -import org.beetl.sql.core.kit.StringKit;
16   -
17 15 import com.alibaba.fastjson.JSONObject;
  16 +
18 17 import com.jfinal.aop.Clear;
19 18 import com.jfinal.aop.Duang;
20 19 import com.jfinal.core.Controller;
... ... @@ -37,12 +36,10 @@ import com.rnt.commo.enums.SequenceTypeEnum;
37 36 import com.rnt.commo.interceptor.BindInterceptor;
38 37 import com.rnt.model.zf.CardCoupons;
39 38 import com.rnt.model.zf.Order;
40   -import com.rnt.model.zf.OrderDetailPark;
41 39 import com.rnt.model.zf.ParkCardCoupons;
42 40 import com.rnt.model.zf.PayOrder;
43 41 import com.rnt.model.zf.PayOrderFlow;
44 42 import com.rnt.service.CardOrderService;
45   -import com.rnt.service.IRainQueryService;
46 43 import com.rnt.service.OrderService;
47 44 import com.rnt.service.ParkCardCouponsService;
48 45 import com.rnt.service.ParkLotService;
... ... @@ -57,7 +54,9 @@ import com.rnt.vo.CardOrderVO;
57 54 import com.rnt.vo.OrderVO;
58 55 import com.rnt.vo.ParkLotCardVO;
59 56 import com.xiaoleilu.hutool.date.DateField;
  57 +import com.xiaoleilu.hutool.date.DateTime;
60 58 import com.xiaoleilu.hutool.date.DateUtil;
  59 +import org.beetl.sql.core.kit.StringKit;
61 60  
62 61 /**
63 62 * 感谢 *半杯* 童鞋联调支付API
... ... @@ -132,8 +131,16 @@ public class WeixinPayController extends Controller {
132 131 endDateStr = DateUtil.format(endDate, "yyyy-MM-dd");
133 132 orderType = "2";
134 133 } else {
135   - //月卡
136   - Date endDate = DateUtil.offsetDay(DateUtil.offset(startDate, DateField.MONTH, num),-1);
  134 + DateTime endDate = DateUtil.offsetDay(startDate, 0);
  135 + DateTime temp = DateUtil.offsetDay(startDate, 0);
  136 + int days = 0;
  137 + for (int i = 1; i <= num; i++) {
  138 + temp = DateUtil.offsetMonth(temp, 1);
  139 + temp.setField(DateField.DAY_OF_MONTH, 0);
  140 + days += temp.getField(DateField.DAY_OF_MONTH);
  141 + }
  142 +
  143 + endDate =DateUtil.offsetDay(endDate, days-1);
137 144 endDateStr = DateUtil.format(endDate, "yyyy-MM-dd");
138 145 orderType = "3";
139 146 }
... ... @@ -227,7 +234,9 @@ public class WeixinPayController extends Controller {
227 234 //到期时间字符串
228 235 setAttr("expDateStr", DateUtil.format(cardCoupons.getExpDate(), "yyyy-MM-dd"));
229 236 //单价
230   - setAttr("cardPrice", cardCoupons.getCardPrice()!=null?cardCoupons.getCardPrice().divide(new BigDecimal("100")).toString():null);
  237 + setAttr("cardPrice",
  238 + cardCoupons.getCardPrice() != null ? cardCoupons.getCardPrice().divide(new BigDecimal("100")).toString()
  239 + : null);
231 240 //停车场名称
232 241 setAttr("parkName", parkName);
233 242  
... ... @@ -269,7 +278,7 @@ public class WeixinPayController extends Controller {
269 278 public void orderPayView() {
270 279 //订单id
271 280 String parkOrderId = this.getPara("parkOrderId");
272   -
  281 +
273 282 setAttr("parkOrderId", parkOrderId);
274 283 render("pay.html");
275 284 }
... ... @@ -359,13 +368,30 @@ public class WeixinPayController extends Controller {
359 368 if ("3".equals(cardBuyVO.getOrderType())) {
360 369 //计算结束月份
361 370 Date date = format.parse(cardBuyVO.getStartDate());
362   - Calendar calendar = Calendar.getInstance();
363   - calendar.setTime(date);
364   - calendar.add(Calendar.MONTH, Integer.parseInt(cardBuyVO.getBuyNum()));
365   - calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 1);
366   - Date resultDate = calendar.getTime();
  371 + //购买数量
  372 + int num = Integer.parseInt(cardBuyVO.getBuyNum());
  373 +
  374 + DateTime endDate = DateUtil.offsetDay(date, 0);
  375 + DateTime temp = DateUtil.offsetDay(date, 0);
  376 + int days = 0;
  377 + for (int i = 1; i <= num; i++) {
  378 + temp = DateUtil.offsetMonth(temp, 1);
  379 + temp.setField(DateField.DAY_OF_MONTH, 0);
  380 + days += temp.getField(DateField.DAY_OF_MONTH);
  381 + }
  382 +
  383 + endDate =DateUtil.offsetDay(endDate, days-1);
  384 + String endDateStr = DateUtil.format(endDate, "yyyy-MM-dd");
  385 +
  386 + //Calendar calendar = Calendar.getInstance();
  387 + //calendar.setTime(date);
  388 + //calendar.add(Calendar.MONTH, Integer.parseInt(cardBuyVO.getBuyNum()));
  389 + //calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 1);
  390 + //Date resultDate = calendar.getTime();
  391 +
367 392 logger.info("前端结束时间=" + cardBuyVO.getEndDate());
368   - cardBuyVO.setEndDate(format.format(resultDate));
  393 +
  394 + cardBuyVO.setEndDate(endDateStr);
369 395 logger.info("--计算结束时间=" + cardBuyVO.getEndDate());
370 396 } else {
371 397 //计算结束年
... ... @@ -457,9 +483,9 @@ public class WeixinPayController extends Controller {
457 483 String openId = getPara("openId");
458 484 String payOrderId = SequenceUtil.getNextOrderId(SequenceTypeEnum.ORDER_PAY_WXGZH.value());
459 485 logger.info("开始获取公众号支付JS支付参数: orderId=" + orderId + "; openId=" + openId + "; payOrderId=" + payOrderId);
460   -
  486 +
461 487 PayOrder payOrder = new PayOrder();
462   -
  488 +
463 489 payOrder.setPayOrderId(payOrderId);
464 490 payOrder.setPaySrcType(Integer.valueOf(PayOrderEnum.PAY_RESOURCE_TYPE_SERVICE.getValue()));
465 491 payOrder.setRltOrderId(orderId);
... ... @@ -474,7 +500,6 @@ public class WeixinPayController extends Controller {
474 500 Boolean flag = payOrder.save();
475 501 logger.info("支付单save 响应为: flag=" + flag);
476 502  
477   -
478 503 //订单ID
479 504 if (StringKit.isEmpty(orderId)) {
480 505 bizResult.setCode(ErrorType.PARAMM_NULL.getCode());
... ... @@ -490,8 +515,6 @@ public class WeixinPayController extends Controller {
490 515 return;
491 516 }
492 517  
493   -
494   -
495 518 Order order = Order.dao.findFirst("select * from td_b_order t where t.order_id = ?", orderId);
496 519 if (null == order) {
497 520 bizResult.setCode(ErrorType.PARAMM_NULL.getCode());
... ... @@ -1117,73 +1140,76 @@ public class WeixinPayController extends Controller {
1117 1140 * 检查输入的车牌号是否存订单(带核算/待支付/已完成).<br/>
1118 1141 */
1119 1142 public void parkOrderForNotPayExist() {
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");
  1143 + BizResult<OrderVO> result = new BizResult<OrderVO>();
  1144 + OrderVO orderVO = new OrderVO();
  1145 + Map<String, String> reultMap = new HashMap<String, String>();
  1146 + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
1124 1147 String carNum = this.getPara("carNum");
1125 1148 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   - }
  1149 + try {
  1150 + if (StringKit.isNotBlank(carNum)) {
  1151 + OrderService orderService = Duang.duang(OrderService.class);
  1152 + /**查询单信息.*/
  1153 + Order order = orderService.findOrderByCarNum(carNum);
  1154 + logger.info("通过车牌查询订单结果=" + JSONObject.toJSONString(order));
  1155 + if (order != null && StringKit.isNotBlank(order.getOrderId())) {
  1156 + orderVO.setOrderId(order.getOrderId());
  1157 + orderVO.setParkName(order.getParkName());
  1158 + orderVO.setCarNumber(order.getCarNumber());
  1159 + /**查询费用接口.*/
  1160 + reultMap = orderService.chosseBillQuery(carNum, order);
  1161 + } else {
  1162 + result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");
  1163 + }
  1164 + } else {
  1165 + logger.info("入参为空!");
  1166 + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误");
  1167 + }
  1168 +
  1169 + if (reultMap == null || reultMap.size() == 0) {
  1170 + result.setErrorMessage(ErrorType.NO_PARKING_MSG, "无停车记录");
  1171 + } else {
  1172 + orderVO.setParkInTime(StringKit.isNotBlank(reultMap.get("park_in_time")) ? format
  1173 + .format(format.parse(reultMap.get("park_in_time"))) : null);
  1174 + orderVO.setParkOutTime(StringKit.isNotBlank(reultMap.get("park_out_time")) ? format
  1175 + .format(format.parse(reultMap.get("park_out_time"))) : null);
  1176 + if (StringKit.isNotBlank(reultMap.get("order_total_fee"))) {//分转元
  1177 + orderVO.setOrderTotalFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_total_fee"))));
  1178 + } else {
  1179 + orderVO.setOrderTotalFee(new BigDecimal("0"));
  1180 + }
  1181 +
  1182 + if (StringKit.isNotBlank(reultMap.get("order_not_pay_fee"))) {//分转元
  1183 + orderVO.setOrderNotPayFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_not_pay_fee"))));
  1184 + } else {
  1185 + orderVO.setOrderNotPayFee(new BigDecimal("0"));
  1186 + }
  1187 +
  1188 + if (StringKit.isNotBlank(reultMap.get("order_payed_fee"))) {//分转元
  1189 + orderVO.setOrderPayedFee(new BigDecimal(AmountUtils.changeF2Y(reultMap.get("order_payed_fee"))));
  1190 + } else {
  1191 + orderVO.setOrderPayedFee(new BigDecimal("0"));
  1192 + }
  1193 + if (StringKit.isNotBlank(reultMap.get("parking_duration"))) {
  1194 + orderVO.setParkingDuration(
  1195 + com.rnt.utils.DateUtil.secondToTime(Long.valueOf(reultMap.get("parking_duration"))));
  1196 + } else {
  1197 + orderVO.setParkingDuration(com.rnt.utils.DateUtil.secondToTime(Long.valueOf("0")));
  1198 + }
  1199 +
  1200 + result.setErrorMessage(ErrorType.BIZ_SUCCESS, "通过车牌号查询费用成功");
  1201 + result.setData(orderVO);
  1202 + }
  1203 + } catch (Exception e) {
  1204 + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误");
  1205 + e.printStackTrace();
  1206 + }
1181 1207 logger.info("---end 校验输入车牌是..结果=" + JSONObject.toJSONString(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);
  1208 + if (result != null && ErrorType.BIZ_SUCCESS.getCode().equals(result.getCode()) && result.getData() != null) {
  1209 + this.getRequest().setAttribute("orderVO", result.getData());
  1210 + this.render("check.html");
  1211 + } else {
  1212 + this.setAttr("carNum", carNum);
1187 1213 this.render("checkerror.html");
1188 1214 }
1189 1215  
... ... @@ -1199,25 +1225,26 @@ public class WeixinPayController extends Controller {
1199 1225 * 5.插入订单流水表.
1200 1226 */
1201 1227 public void queryParkOrderForNotPay() {
1202   -
  1228 +
1203 1229 BizResult<OrderVO> result = new BizResult<OrderVO>();
1204 1230 String orderId = this.getPara("orderId");
1205   - logger.info("---begin查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.入参{orderId="+orderId+"}");
  1231 + logger.info("---begin查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.入参{orderId=" + orderId + "}");
1206 1232 OrderService orderService = Duang.duang(OrderService.class);
1207 1233 OrderVO orderVO = new OrderVO();
1208 1234 try {
1209 1235 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());
  1236 + if (orderVO != null && StringKit.isNotBlank(orderVO.getOrderId())) {
  1237 + result.setData(orderVO);
  1238 + } else {
  1239 + result.setCode(ErrorType.BIZ_ERROR.getCode());
1214 1240 result.setMsg("订单单保存失败!");
1215 1241 }
1216 1242 } catch (Exception e) {
1217   - result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误");
  1243 + result.setErrorMessage(ErrorType.SYSTEM_ERROR, "业务错误");
1218 1244 e.printStackTrace();
1219 1245 }
1220   - logger.info("---end查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.结果="+JSONObject.toJSONString(result));
  1246 + logger.info(
  1247 + "---end查询待支付的停车订单WeixinPayController.queryParkOrderForNotPay()方法.结果=" + JSONObject.toJSONString(result));
1221 1248 this.renderJson(result);
1222 1249 }
1223 1250  
... ...
src/main/java/com/rnt/model/zf/_DataDictionary.txt
... ... @@ -675,6 +675,24 @@ Table: td_c_acct_type
675 675 modfiy_date | DATETIME(19) | YES | | | 修改时间
676 676 ----------------+--------------+------+-----+---------+---------
677 677  
  678 +Table: td_c_app_config
  679 +--------------+--------------+------+-----+---------+---------
  680 + Field | Type | Null | Key | Default | Remarks
  681 +--------------+--------------+------+-----+---------+---------
  682 + id | BIGINT(19) | NO | PRI | | 主键id
  683 + app_id | VARCHAR(40) | YES | | | 给外部系统分配的唯一的appid
  684 + secret_key | VARCHAR(256) | YES | | | 私钥
  685 + app_type | INT(10) | YES | | | 商家类型 1 内部系统,2外部系统
  686 + bus_name | VARCHAR(64) | YES | | | 商家名称
  687 + bus_sys_name | VARCHAR(64) | YES | | | 商家系统名称
  688 + remark | VARCHAR(256) | YES | | | 描述
  689 + data_state | INT(10) | YES | | 1 | 数据状态:1有效,0无效
  690 + create_empid | VARCHAR(64) | YES | | | 创建人
  691 + create_date | DATETIME(19) | YES | | | 创建时间
  692 + modfiy_empid | VARCHAR(64) | YES | | | 修改人
  693 + modfiy_date | DATETIME(19) | YES | | | 修改时间
  694 +--------------+--------------+------+-----+---------+---------
  695 +
678 696 Table: td_c_car
679 697 --------------------+--------------+------+-----+---------+---------
680 698 Field | Type | Null | Key | Default | Remarks
... ... @@ -798,6 +816,7 @@ Table: td_c_cust_person
798 816 prov_id | VARCHAR(16) | YES | | | 省份id
799 817 city_id | VARCHAR(16) | YES | | | 地市
800 818 area_id | VARCHAR(16) | YES | | | 区县id
  819 + alias | VARCHAR(32) | YES | | | 推送别名
801 820 remark | VARCHAR(128) | YES | | | 描述
802 821 data_state | INT(10) | NO | | 1 | 数据状态:1有效,0无效
803 822 create_empid | VARCHAR(64) | YES | | | 创建人
... ...
src/main/java/com/rnt/model/zf/_MappingKit.java
... ... @@ -44,6 +44,7 @@ public class _MappingKit {
44 44 arp.addMapping("td_c_acct_person", "id", AcctPerson.class);
45 45 arp.addMapping("td_c_acct_source", "id", AcctSource.class);
46 46 arp.addMapping("td_c_acct_type", "id", AcctType.class);
  47 + arp.addMapping("td_c_app_config", "id", AppConfig.class);
47 48 arp.addMapping("td_c_car", "id", Car.class);
48 49 arp.addMapping("td_c_car_brand", "id", CarBrand.class);
49 50 // Composite Primary Key order: cust_id,id
... ...
src/main/java/com/rnt/model/zf/base/BaseCustPerson.java
... ... @@ -162,6 +162,15 @@ public abstract class BaseCustPerson&lt;M extends BaseCustPerson&lt;M&gt;&gt; extends Model&lt;
162 162 return get("area_id");
163 163 }
164 164  
  165 + public M setAlias(java.lang.String alias) {
  166 + set("alias", alias);
  167 + return (M)this;
  168 + }
  169 +
  170 + public java.lang.String getAlias() {
  171 + return get("alias");
  172 + }
  173 +
165 174 public M setRemark(java.lang.String remark) {
166 175 set("remark", remark);
167 176 return (M)this;
... ...
src/main/java/com/rnt/utils/JFinalGenerator_zf.java
... ... @@ -22,7 +22,7 @@ import com.jfinal.plugin.druid.DruidPlugin;
22 22 */
23 23 public class JFinalGenerator_zf {
24 24 public static DataSource getDataSource() {
25   - PropKit.use("a_little_config.txt");
  25 + PropKit.use("a_little_config_pro.txt");
26 26 DruidPlugin druidPlugin = new DruidPlugin(PropKit.get("zf.druid.url"), PropKit.get("zf.druid.username"),
27 27 PropKit.get("zf.druid.password").trim());
28 28 druidPlugin.start();
... ...