Browse Source

[停车][修改]:停简单车流回调

release_toaliyun_real
Stormeye Wu 6 years ago
parent
commit
91bbd3a5f4
2 changed files with 140 additions and 14 deletions
  1. +133
    -14
      mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java
  2. +7
    -0
      mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java

+ 133
- 14
mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java View File

@@ -1,13 +1,16 @@
package com.iformall.controller.callback;

import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*;
import com.iformall.enums.EnumCarCmd;
import com.iformall.enums.EnumCarVendor;
import com.iformall.enums.EnumCouponSendSendType;
import com.iformall.service.*;
import com.iformall.utils.DateUtils;
import com.iformall.utils.car.TJDUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,7 +51,9 @@ public class WxCarTJDCallBackController extends BaseController {
@Autowired
WxCUserService wxCUserService;

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat dateFormat0 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyyMMddHHmmss");


/**
* 注册车牌
@@ -116,8 +121,11 @@ public class WxCarTJDCallBackController extends BaseController {
Map map = new HashMap();
Date currentDate = new Date();

String tjdParkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkName = paramMap.get(TJDUtil.TJD_PARK_NAME);
String carNumber = paramMap.get(TJDUtil.TJD_CAR_NUMBER);
String tradeId = paramMap.get(TJDUtil.TJD_TRADE_ID);
String inDt = paramMap.get(TJDUtil.TJD_IN_DT);

WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode());
@@ -129,12 +137,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null;
WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ);
if (park == null) {
logger.error("tjdParkInCallback: 车场未找到" + tjdParkId);
logger.error("tjdParkInCallback: 车场未找到" + parkId);
map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map;
} else {
tenantId = park.getTenantId();
@@ -175,6 +183,32 @@ public class WxCarTJDCallBackController extends BaseController {
}
}

try {
// 保存WxCarPayRecord
WxCarPayRecord record = new WxCarPayRecord();
record.setTenantId(tenantId);
record.setVendorType(wxCarCmdLog.getVendorType());
record.setSynId(tradeId);
record.setParkId(parkId);
record.setParkName(parkName);
record.setPlateNumber(carNumber);
if(StringUtils.isNotBlank(inDt)) {
record.setEntranceTime(dateFormat1.parse(inDt));
}
record.setPhone(phoneStrs);
WxCarPayRecord query = new WxCarPayRecord();
query.setTenantId(tenantId);
query.setParkId(parkId);
query.setSynId(tradeId);
PageInfo<WxCarPayRecord> page = wxCarPayRecordService.findCarPayListByPage(query,1,1);
if(page != null && CollectionUtils.isNotEmpty(page.getList())){
record.setId(page.getList().get(0).getId());
}
wxCarPayRecordService.saveOrUpdate(record);
} catch (Exception e) {
logger.error("WxCarPayRecord: 入库错误 "+e.getMessage()+"," + paramMap.toString());
}

map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map;
}
@@ -201,10 +235,13 @@ public class WxCarTJDCallBackController extends BaseController {
logger.info("["+getIpAddr()+"tjdParkOutCallback: " + paramMap.toString());
Map map = new HashMap();

String tjdParkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkName = paramMap.get(TJDUtil.TJD_PARK_NAME);
String carNumber = paramMap.get(TJDUtil.TJD_CAR_NUMBER);

String tradeId = paramMap.get(TJDUtil.TJD_TRADE_ID);
String inDt = paramMap.get(TJDUtil.TJD_IN_DT);
String outDt = paramMap.get(TJDUtil.TJD_OUT_DT);
String stopFee = paramMap.get(TJDUtil.TJD_PARK_AMT);

Date currentDate = new Date();
WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
@@ -217,12 +254,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null;
WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ);
if (park == null) {
logger.error("tjdParkOutCallback: 车场未找到" + tjdParkId);
logger.error("tjdParkOutCallback: 车场未找到" + parkId);
map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map;
} else {
tenantId = park.getTenantId();
@@ -238,6 +275,39 @@ public class WxCarTJDCallBackController extends BaseController {
return map;
}

try {
// 保存WxCarPayRecord
WxCarPayRecord record = new WxCarPayRecord();
record.setTenantId(tenantId);
record.setVendorType(wxCarCmdLog.getVendorType());
record.setParkId(parkId);
record.setParkName(parkName);
record.setPlateNumber(carNumber);
record.setSynId(tradeId);
if(StringUtils.isNotBlank(inDt)) {
record.setEntranceTime(dateFormat1.parse(inDt));
}
if(StringUtils.isNotBlank(outDt)) {
record.setExitTime(dateFormat1.parse(outDt));
Long stayedTime = (record.getExitTime().getTime() - record.getEntranceTime().getTime())/ 1000;
record.setStayedTime(stayedTime);
}
if (StringUtils.isNotBlank(stopFee)) {
record.setFee(stopFee);
}
WxCarPayRecord query = new WxCarPayRecord();
query.setTenantId(tenantId);
query.setParkId(parkId);
query.setSynId(tradeId);
PageInfo<WxCarPayRecord> page = wxCarPayRecordService.findCarPayListByPage(query,1,1);
if(page != null && CollectionUtils.isNotEmpty(page.getList())){
record.setId(page.getList().get(0).getId());
}
wxCarPayRecordService.saveOrUpdate(record);
} catch (Exception e) {
logger.error("WxCarPayRecord: 出场更新错误 " +e.getMessage()+", " +paramMap.toString());
}

map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map;
}
@@ -264,9 +334,12 @@ public class WxCarTJDCallBackController extends BaseController {
Date currentDate = new Date();
Map map = new HashMap();

String tjdParkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkId = paramMap.get(TJDUtil.TJD_PARK_ID);
String parkName = paramMap.get(TJDUtil.TJD_PARK_NAME);
String carNumber = paramMap.get(TJDUtil.TJD_CAR_NUMBER);
String tradeId = paramMap.get(TJDUtil.TJD_TRADE_ID);
String stopFee = paramMap.get(TJDUtil.TJD_PAY_AMT);
String stopFeeTime = paramMap.get(TJDUtil.TJD_PAY_DT);

WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
@@ -278,12 +351,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null;
WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ);
if (park == null) {
logger.error("tjdPaidCallback: 车场未找到" + tjdParkId);
logger.error("tjdPaidCallback: 车场未找到" + parkId);
map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map;
} else {
tenantId = park.getTenantId();
@@ -299,6 +372,52 @@ public class WxCarTJDCallBackController extends BaseController {
return map;
}

try {
// 保存WxCarPayRecord
WxCarPayRecord record = new WxCarPayRecord();
record.setTenantId(tenantId);
record.setVendorType(wxCarCmdLog.getVendorType());
record.setParkId(parkId);
record.setParkName(parkName);
record.setPlateNumber(carNumber);
record.setSynId(tradeId);
record.setFee(stopFee);
if (StringUtils.isNotBlank(stopFeeTime)) {
record.setFeeTime(dateFormat1.parse(stopFeeTime));
}

WxCarPayRecord query = new WxCarPayRecord();
record.setTenantId(tenantId);
record.setParkId(parkId);
record.setPlateNumber(carNumber);
query.setSynId(tradeId);
PageInfo<WxCarPayRecord> page = wxCarPayRecordService.findCarPayListByPage(query,1,2);
if(page != null && page.getList().size() > 0){

if(page.getList().size() >= 2){
wxCarPayRecordService.saveOrUpdate(record);
} else {
WxCarPayRecord r = page.getList().get(0);
if(r.getFeeTime() == null) {
// 无缴费信息, 更新
record.setId(r.getId());
wxCarPayRecordService.saveOrUpdate(record);
} else {
// 缴费时间在15分钟以内,更新之前的数据, ETCP会把之前的缴费自动退款
if(DateUtils.isInDate15Mins(record.getFeeTime(), r.getFeeTime())) {
record.setId(r.getId());
}
wxCarPayRecordService.saveOrUpdate(record);
}
}
} else {
wxCarPayRecordService.saveOrUpdate(record);
}
} catch (Exception e) {
logger.error("WxCarPayRecord: 缴费更新错误 " +e.getMessage()+", "+ paramMap.toString());
//return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString());
}

map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map;
}


+ 7
- 0
mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java View File

@@ -36,8 +36,15 @@ public class TJDUtil {
public static final String TJD_ERR_1 = "1"; // 业务级失败(不进行重发)
public static final String TJD_ERR_2 = "2"; // 系统级失败(有重发机制)
public static final String TJD_PARK_ID = "parkId";
public static final String TJD_PARK_NAME = "parkName";
public static final String TJD_CAR_NUMBER = "carNum";
public static final String TJD_TRADE_ID = "tradeId";
public static final String TJD_IN_DT = "inDt";
public static final String TJD_OUT_DT = "outDt";
public static final String TJD_PARK_AMT = "parkAmount";
public static final String TJD_PAY_AMT = "payAmount";
public static final String TJD_PAY_DT = "payDt";


private final static Logger logger = LoggerFactory.getLogger(TJDUtil.class);



Loading…
Cancel
Save