Просмотр исходного кода

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

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
91bbd3a5f4
2 измененных файлов: 140 добавлений и 14 удалений
  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 Просмотреть файл

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


import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.github.pagehelper.PageInfo;
import com.iformall.controller.base.BaseController; import com.iformall.controller.base.BaseController;
import com.iformall.domain.po.*; import com.iformall.domain.po.*;
import com.iformall.enums.EnumCarCmd; import com.iformall.enums.EnumCarCmd;
import com.iformall.enums.EnumCarVendor; import com.iformall.enums.EnumCarVendor;
import com.iformall.enums.EnumCouponSendSendType; import com.iformall.enums.EnumCouponSendSendType;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.DateUtils;
import com.iformall.utils.car.TJDUtil; import com.iformall.utils.car.TJDUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -48,7 +51,9 @@ public class WxCarTJDCallBackController extends BaseController {
@Autowired @Autowired
WxCUserService wxCUserService; 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(); Map map = new HashMap();
Date currentDate = new Date(); 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 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 wxCarCmdLog = new WxCarCmdLog();
wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode()); wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode());
@@ -129,12 +137,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null; String tenantId = null;
WxPark parkQ = new WxPark(); WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode()); parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ); WxPark park = wxParkService.getByObj(parkQ);
if (park == null) { 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_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map; return map;
} else { } else {
tenantId = park.getTenantId(); 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); map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map; return map;
} }
@@ -201,10 +235,13 @@ public class WxCarTJDCallBackController extends BaseController {
logger.info("["+getIpAddr()+"tjdParkOutCallback: " + paramMap.toString()); logger.info("["+getIpAddr()+"tjdParkOutCallback: " + paramMap.toString());
Map map = new HashMap(); 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 carNumber = paramMap.get(TJDUtil.TJD_CAR_NUMBER);

String tradeId = paramMap.get(TJDUtil.TJD_TRADE_ID); 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(); Date currentDate = new Date();
WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); WxCarCmdLog wxCarCmdLog = new WxCarCmdLog();
@@ -217,12 +254,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null; String tenantId = null;
WxPark parkQ = new WxPark(); WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode()); parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ); WxPark park = wxParkService.getByObj(parkQ);
if (park == null) { 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_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map; return map;
} else { } else {
tenantId = park.getTenantId(); tenantId = park.getTenantId();
@@ -238,6 +275,39 @@ public class WxCarTJDCallBackController extends BaseController {
return map; 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); map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map; return map;
} }
@@ -264,9 +334,12 @@ public class WxCarTJDCallBackController extends BaseController {
Date currentDate = new Date(); Date currentDate = new Date();
Map map = new HashMap(); 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 carNumber = paramMap.get(TJDUtil.TJD_CAR_NUMBER);
String tradeId = paramMap.get(TJDUtil.TJD_TRADE_ID); 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 wxCarCmdLog = new WxCarCmdLog();
wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
@@ -278,12 +351,12 @@ public class WxCarTJDCallBackController extends BaseController {
String tenantId = null; String tenantId = null;
WxPark parkQ = new WxPark(); WxPark parkQ = new WxPark();
parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode()); parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode());
parkQ.setParkId(tjdParkId);
parkQ.setParkId(parkId);
WxPark park = wxParkService.getByObj(parkQ); WxPark park = wxParkService.getByObj(parkQ);
if (park == null) { 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_IS_SUC, TJDUtil.TJD_ERR_1);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + tjdParkId);
map.put(TJDUtil.TJD_ERR_MSG, "车场未找到" + parkId);
return map; return map;
} else { } else {
tenantId = park.getTenantId(); tenantId = park.getTenantId();
@@ -299,6 +372,52 @@ public class WxCarTJDCallBackController extends BaseController {
return map; 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); map.put(TJDUtil.TJD_IS_SUC, TJDUtil.TJD_SUC);
return map; return map;
} }


+ 7
- 0
mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java Просмотреть файл

@@ -36,8 +36,15 @@ public class TJDUtil {
public static final String TJD_ERR_1 = "1"; // 业务级失败(不进行重发) public static final String TJD_ERR_1 = "1"; // 业务级失败(不进行重发)
public static final String TJD_ERR_2 = "2"; // 系统级失败(有重发机制) public static final String TJD_ERR_2 = "2"; // 系统级失败(有重发机制)
public static final String TJD_PARK_ID = "parkId"; 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_CAR_NUMBER = "carNum";
public static final String TJD_TRADE_ID = "tradeId"; 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); private final static Logger logger = LoggerFactory.getLogger(TJDUtil.class);




Загрузка…
Отмена
Сохранить