|
|
@@ -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; |
|
|
} |
|
|
} |
|
|
|