From ffc979ad8bb279a6de154406a1d454b87745249b Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Wed, 18 Sep 2019 14:15:25 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=81=9C=E8=BD=A6][=E4=BF=AE=E6=94=B9]:?= =?UTF-8?q?=E5=81=9C=E8=BD=A6=E7=9B=B8=E5=85=B3=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ....java => WxCarETCPCallBackController.java} | 432 +++++++----------- .../callback/WxCarTJDCallBackController.java | 296 ++++++++++++ .../java/com/iformall/enums/EnumCarCmd.java | 7 +- 3 files changed, 466 insertions(+), 269 deletions(-) rename mallinkCallback/src/main/java/com/iformall/controller/callback/{WxCarCallBackController.java => WxCarETCPCallBackController.java} (83%) create mode 100644 mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarETCPCallBackController.java similarity index 83% rename from mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java rename to mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarETCPCallBackController.java index 93504fda2..b1964c27a 100644 --- a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarCallBackController.java +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarETCPCallBackController.java @@ -32,7 +32,7 @@ import java.util.Map; @RestController @RequestMapping("/carCallback") -public class WxCarCallBackController extends BaseController { +public class WxCarETCPCallBackController extends BaseController { private final Logger logger = LoggerFactory.getLogger(this.getClass()); @Autowired @@ -81,119 +81,6 @@ public class WxCarCallBackController extends BaseController { return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); } - // @Async - private boolean doEtcpParkIn(@RequestBody Map paramMap) { - Date currentDate = new Date(); - WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); - - wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); - wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); - wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); - wxCarCmdLog.setCreateDate(currentDate); - wxCarCmdLog.setUpdateDate(currentDate); - - String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); - String tenantId = null; - WxPark parkQ = new WxPark(); - parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); - parkQ.setParkingId(etcpParkId); - WxPark park = wxParkService.getByObj(parkQ); - if (park == null) { - logger.error("etcpParkInCallback: ETCP车场未找到" + etcpParkId); - //return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId); - } else { - tenantId = park.getTenantId(); - wxCarCmdLog.setTenantId(park.getTenantId()); - } - - String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); - String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); - String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); - String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); - String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); - String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); - String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); - String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); - - // 检查是否有重复数据 - HashMap map = new HashMap(); - map.put("synId", synId); - map.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); - if(tenantId != null) { - map.put("tenantId", tenantId); - } - WxCarCmdLog carCmdLog = wxCarCmdLogService.getBySynId(map); - if(carCmdLog != null) { - logger.error("ETCP synId已入库: " + paramMap.toString()); - return true; - } - - try { - wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); - } catch (Exception e) { - logger.error("etcpParkInCallback: 入库错误 " + e.getMessage() + "\n" + paramMap.toString()); - return true; - } - - String phoneStrs = ""; - - // 停车发券 - if (!StringUtils.isBlank(carNumber)) { - // 根据车牌查找用户 - WxCUserCar userCarQ = new WxCUserCar(); - userCarQ.setTenantId(tenantId); - userCarQ.setCarNumber(carNumber); - userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); - // TODO 可能多用户关联同一张车牌 - List userCarList = wxCUserCarService.getList(userCarQ); - boolean bFirst = true; - for (WxCUserCar userCar : userCarList) { - wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); - WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); - if(cUser != null){ - if(bFirst) { - phoneStrs = cUser.getPhone(); - bFirst = false; - } else { - phoneStrs += "," + cUser.getPhone(); - } - } - } - } - - try { - // 保存WxCarPayRecord - WxCarPayRecord record = new WxCarPayRecord(); - record.setVendorType(wxCarCmdLog.getVendorType()); - record.setSynId(synId); - record.setParkId(parkId); - record.setParkName(parkName); - record.setUserType(userType); - record.setPlateNumber(carNumber); - if(StringUtils.isNotBlank(entranceTime)) { - record.setEntranceTime(dateFormat.parse(entranceTime)); - } - record.setFixParkingId(fixParkingId); - record.setRemainingDays(remainingDays); - record.setPhone(phoneStrs); - record.setTenantId(tenantId); - - WxCarPayRecord query = new WxCarPayRecord(); - query.setSynId(synId); - PageInfo 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) { - e.printStackTrace(); - logger.error("WxCarPayRecord: 入库错误 ",e); - logger.error("WxCarPayRecord: 入库错误 "+e.getMessage()+"," + paramMap.toString()); - return true; - } - return false; - } - /** * ETCP 车辆出场通知 * { @@ -221,86 +108,6 @@ public class WxCarCallBackController extends BaseController { return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); } - private boolean doEtcpParkOut(@RequestBody Map paramMap) { - Date currentDate = new Date(); - - WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); - wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); - wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); - wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); - wxCarCmdLog.setCreateDate(currentDate); - wxCarCmdLog.setUpdateDate(currentDate); - - String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); - String tenantId = null; - WxPark parkQ = new WxPark(); - parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); - parkQ.setParkingId(etcpParkId); - WxPark park = wxParkService.getByObj(parkQ); - if (park == null) { - logger.error("etcpParkOutCallback: ETCP车场未找到 " + etcpParkId); - // return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId); - } else { - tenantId = park.getTenantId(); - wxCarCmdLog.setTenantId(tenantId); - } - - try { - wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); - } catch (Exception e) { - logger.error("etcpParkOutCallback: 入库错误 " + e.getMessage() + "\n" + paramMap.toString()); - return true; - } - - String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); - String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME); - String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME); - String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); - String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); - String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); - String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); - String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); - String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); - String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); - - try { - // 保存WxCarPayRecord - WxCarPayRecord record = new WxCarPayRecord(); - record.setSynId(synId); - if(StringUtils.isNotBlank(exitTime)) { - record.setExitTime(dateFormat.parse(exitTime)); - } - if(StringUtils.isNotBlank(stayedTime)) { - record.setStayedTime(Long.parseLong(stayedTime)); - } - record.setVendorType(wxCarCmdLog.getVendorType()); - record.setSynId(synId); - record.setParkId(parkId); - record.setParkName(parkName); - record.setUserType(userType); - record.setPlateNumber(carNumber); - if(StringUtils.isNotBlank(entranceTime)) { - record.setEntranceTime(dateFormat.parse(entranceTime)); - } - record.setFixParkingId(fixParkingId); - record.setRemainingDays(remainingDays); - //record.setPhone(phoneStrs); - record.setTenantId(tenantId); - - WxCarPayRecord query = new WxCarPayRecord(); - query.setSynId(synId); - PageInfo 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()); - return true; - } - return false; - } - /** * ETCP 车辆解绑通知 * { @@ -471,105 +278,196 @@ public class WxCarCallBackController extends BaseController { return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); } + // @Async + private boolean doEtcpParkIn(@RequestBody Map paramMap) { + Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); - /** - * TJD 车辆入场通知 - * { - * "tradeId": "5836b8b52ada463ebc6199579f029565", - * "outCarId": "45454545454", - * "carNum": "京A45413", - * "carNumColor ": "blue", - * "inDt": "20170319202020", - * "parkName": "测试停车场", - * "parkId": "5836b8b52ada463ebc6199579f029561", - * "lon": "74.000272", - * "lat": "159.768703", - * "wLon": "123.523032", - * "wLat": "35.430735", - * "payUrl": "http://prep.tingjiandan.com/tcweixin/letter/prePay/payInPark.html?prePayType=16&channel=10001", - * "canFindCar": "0" - * } - */ - @RequestMapping(value = "/tjdParkInCallback") - public Map tjdParkInCallback(@RequestBody Map paramMap) { - logger.info("["+getIpAddr()+"tjdParkInCallback: " + paramMap.toString()); - Map map = new HashMap(); - - - String tjdParkId = paramMap.get("parkId"); + wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); + wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); + wxCarCmdLog.setCreateDate(currentDate); + wxCarCmdLog.setUpdateDate(currentDate); + String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String tenantId = null; WxPark parkQ = new WxPark(); - parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode()); - parkQ.setParkId(tjdParkId); + parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + parkQ.setParkingId(etcpParkId); WxPark park = wxParkService.getByObj(parkQ); if (park == null) { - logger.error("tjdParkInCallback: 停简单车场未找到" + tjdParkId); - map.put("isSuccess", "0"); - map.put("errorMsg", "停简单车场未找到" + tjdParkId); - return map; + logger.error("etcpParkInCallback: ETCP车场未找到" + etcpParkId); + //return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId); + } else { + tenantId = park.getTenantId(); + wxCarCmdLog.setTenantId(park.getTenantId()); + } + + String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); + String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); + String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); + String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); + String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); + String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); + String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); + + // 检查是否有重复数据 + HashMap map = new HashMap(); + map.put("synId", synId); + map.put("cmdType", EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); + if(tenantId != null) { + map.put("tenantId", tenantId); + } + WxCarCmdLog carCmdLog = wxCarCmdLogService.getBySynId(map); + if(carCmdLog != null) { + logger.error("ETCP synId已入库: " + paramMap.toString()); + return true; } - Date currentDate = new Date(); - WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); - wxCarCmdLog.setTenantId(park.getTenantId()); - wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode()); - wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); - wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); - wxCarCmdLog.setCreateDate(currentDate); - wxCarCmdLog.setUpdateDate(currentDate); try { wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); } catch (Exception e) { - logger.error("tjdParkInCallback: 入库错误" + paramMap.toString()); - map.put("isSuccess", "0"); - map.put("errorMsg", "入库错误" + paramMap.toString()); - return map; + logger.error("etcpParkInCallback: 入库错误 " + e.getMessage() + "\n" + paramMap.toString()); + return true; } - map.put("isSuccess", "0"); - map.put("errorMsg", ""); - return map; - } + String phoneStrs = ""; - /** - * TJD 车辆出场通知 - * { - * "tradeId": "5836b8b52ada463ebc6199579f029565", - * "outDt": "20170319232020", - * "lon": "74.000272", - * "lat": "159.768703", - * "wLon": "123.523032", - * "wLat": "35.430735", - * "parkAmount": "5.20" - * } - */ - @RequestMapping(value = "/tjdParkoutCallback") - public Map tjdParkOutCallback(@RequestBody Map paramMap) { - logger.info("["+getIpAddr()+"tjdParkoutCallback: " + paramMap.toString()); - Map map = new HashMap(); + // 停车发券 + if (!StringUtils.isBlank(carNumber)) { + // 根据车牌查找用户 + WxCUserCar userCarQ = new WxCUserCar(); + userCarQ.setTenantId(tenantId); + userCarQ.setCarNumber(carNumber); + userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + // TODO 可能多用户关联同一张车牌 + List userCarList = wxCUserCarService.getList(userCarQ); + boolean bFirst = true; + for (WxCUserCar userCar : userCarList) { + wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); + WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); + if(cUser != null){ + if(bFirst) { + phoneStrs = cUser.getPhone(); + bFirst = false; + } else { + phoneStrs += "," + cUser.getPhone(); + } + } + } + } + try { + // 保存WxCarPayRecord + WxCarPayRecord record = new WxCarPayRecord(); + record.setVendorType(wxCarCmdLog.getVendorType()); + record.setSynId(synId); + record.setParkId(parkId); + record.setParkName(parkName); + record.setUserType(userType); + record.setPlateNumber(carNumber); + if(StringUtils.isNotBlank(entranceTime)) { + record.setEntranceTime(dateFormat.parse(entranceTime)); + } + record.setFixParkingId(fixParkingId); + record.setRemainingDays(remainingDays); + record.setPhone(phoneStrs); + record.setTenantId(tenantId); - String tradeId = paramMap.get("tradeId"); + WxCarPayRecord query = new WxCarPayRecord(); + query.setSynId(synId); + PageInfo 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) { + e.printStackTrace(); + logger.error("WxCarPayRecord: 入库错误 ",e); + logger.error("WxCarPayRecord: 入库错误 "+e.getMessage()+"," + paramMap.toString()); + return true; + } + return false; + } + private boolean doEtcpParkOut(@RequestBody Map paramMap) { Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); wxCarCmdLog.setCreateDate(currentDate); wxCarCmdLog.setUpdateDate(currentDate); + + String etcpParkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String tenantId = null; + WxPark parkQ = new WxPark(); + parkQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + parkQ.setParkingId(etcpParkId); + WxPark park = wxParkService.getByObj(parkQ); + if (park == null) { + logger.error("etcpParkOutCallback: ETCP车场未找到 " + etcpParkId); + // return new Result(ErrorCode.CAR_PARK_NOT_FOUND.getCode(), "ETCP车场未找到"+ etcpParkId); + } else { + tenantId = park.getTenantId(); + wxCarCmdLog.setTenantId(tenantId); + } + try { wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); } catch (Exception e) { - logger.error("tjdParkoutCallback: 入库错误" + paramMap.toString()); - map.put("isSuccess", "0"); - map.put("errorMsg", "入库错误" + paramMap.toString()); - return map; + logger.error("etcpParkOutCallback: 入库错误 " + e.getMessage() + "\n" + paramMap.toString()); + return true; } - map.put("isSuccess", "0"); - map.put("errorMsg", ""); - return map; - } + String synId = paramMap.get(ETCPUtil.ETCP_SYN_ID); + String exitTime = paramMap.get(ETCPUtil.ETCP_EXIT_TIME); + String stayedTime = paramMap.get(ETCPUtil.ETCP_STAYED_TIME); + String carNumber = paramMap.get(ETCPUtil.ETCP_CAR_NUMBER); + String parkId = paramMap.get(ETCPUtil.ETCP_PARK_ID); + String parkName = paramMap.get(ETCPUtil.ETCP_PARK_NAME); + String userType = paramMap.get(ETCPUtil.ETCP_USER_TYPE); + String entranceTime = paramMap.get(ETCPUtil.ETCP_ENTRANCE_TIME); + String fixParkingId = paramMap.get(ETCPUtil.ETCP_FIX_PARKING_ID); + String remainingDays = paramMap.get(ETCPUtil.ETCP_REMAINING_DAYS); + + try { + // 保存WxCarPayRecord + WxCarPayRecord record = new WxCarPayRecord(); + record.setSynId(synId); + if(StringUtils.isNotBlank(exitTime)) { + record.setExitTime(dateFormat.parse(exitTime)); + } + if(StringUtils.isNotBlank(stayedTime)) { + record.setStayedTime(Long.parseLong(stayedTime)); + } + record.setVendorType(wxCarCmdLog.getVendorType()); + record.setSynId(synId); + record.setParkId(parkId); + record.setParkName(parkName); + record.setUserType(userType); + record.setPlateNumber(carNumber); + if(StringUtils.isNotBlank(entranceTime)) { + record.setEntranceTime(dateFormat.parse(entranceTime)); + } + record.setFixParkingId(fixParkingId); + record.setRemainingDays(remainingDays); + //record.setPhone(phoneStrs); + record.setTenantId(tenantId); -} + WxCarPayRecord query = new WxCarPayRecord(); + query.setSynId(synId); + PageInfo 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()); + return true; + } + return false; + } + } diff --git a/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java new file mode 100644 index 000000000..176030b78 --- /dev/null +++ b/mallinkCallback/src/main/java/com/iformall/controller/callback/WxCarTJDCallBackController.java @@ -0,0 +1,296 @@ +package com.iformall.controller.callback; + +import com.alibaba.fastjson.JSON; +import com.github.pagehelper.PageInfo; +import com.iformall.common.ErrorCode; +import com.iformall.common.Result; +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.enums.EnumETCPCode; +import com.iformall.service.*; +import com.iformall.utils.DateUtils; +import com.iformall.utils.car.ETCPUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("/carCallback") +public class WxCarTJDCallBackController extends BaseController { + private final Logger logger = LoggerFactory.getLogger(this.getClass()); + + @Autowired + WxParkService wxParkService; + + @Autowired + WxCUserCarService wxCUserCarService; + + @Autowired + WxMerchantService wxMerchantService; + + @Autowired + WxCarCmdLogService wxCarCmdLogService; + + @Autowired + WxCouponSendService wxCouponSendService; + + @Autowired + WxCarPayRecordService wxCarPayRecordService; + + @Autowired + WxCUserService wxCUserService; + + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + /** + * 注册车牌 + * @param paramMap + * @return + * { + * "service": "parkhub.car.register", + * "partner": "5836b8b51ada463ebc6199579f029566", "sign": "3347b109a1e44f3fd5baa78b74184948", "signType": "md5", + * "charset": "utf-8", + * "version": "1.0", + * "timestamp": "2016-05-26 11:30:10", + * "carNum": "京A12345", + * "carNumColor": "blue", + * "phone": "13612341234", + * "outCarId": "432d85d7441316d29504f480e6a734a8" + * } + * { + * "timestamp": "1464235239561", + * "returnCode": "T", + * "returnMsg": "OK", + * "isSuccess": "0", + * "errorMSG": "", + * "carId": "11ce3dca34124e97830ad466e532eda7" + * } + */ + @RequestMapping(value = "/tjdRegisterCallback") + public Map tjdRegisterCallback(@RequestBody Map paramMap) { + Map map = new HashMap(); + return map; + } + /** + * 进场通知 + * { + * "parkId": "f3f11a46f3a14056953aed97944242d4", "parkName": "测试停车场", + * "carNum": "京A12345", + * "carNumColor ": "blue", + * "tradeId": "5836b8b52ada463ebc6199579f029565", + * "outCarId": "", + * "inDt": "20170319202020", + * "payUrl": + * "http://prep.tingjiandan.com/tcweixin/letter/prePay/pagePayInPark?prePayType=16&channel=10001&isShowDetail=true&orderId=5836b8b52ada463ebc6199579f029565&returnUrl=", + * "miniProgram": "{ + * \"path\": \"pages/pre_pay/index/main\", + * \"extraData\": { + * \"prePayType\": \"16\", + * \"channel\": \"10001\", + * \"isShowDetail\": \"true\", + * \"orderId\": \"5836b8b52ada463ebc6199579f029565\" + * }}", + * "canFindCar": "0", + * "city": "北京市", + * "district": "海淀区", + * "address": "五道口", + * "lon": "74.000272", + * "lat": "159.768703", + * "wLon": "123.523032", + * "wLat": "35.430735" + * } + */ + @RequestMapping(value = "/tjdParkInCallback") + public Map tjdParkInCallback(@RequestBody Map paramMap) { + logger.info("["+getIpAddr()+"tjdParkInCallback: " + paramMap.toString()); + Map map = new HashMap(); + + + String tjdParkId = paramMap.get("parkId"); + + WxPark parkQ = new WxPark(); + parkQ.setVendorType(EnumCarVendor.CAR_TJD.getCode()); + parkQ.setParkId(tjdParkId); + WxPark park = wxParkService.getByObj(parkQ); + if (park == null) { + logger.error("tjdParkInCallback: 停简单车场未找到" + tjdParkId); + map.put("isSuccess", "0"); + map.put("errorMsg", "停简单车场未找到" + tjdParkId); + return map; + } + + Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + wxCarCmdLog.setTenantId(park.getTenantId()); + wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode()); + wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_IN.getCode()); + wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); + wxCarCmdLog.setCreateDate(currentDate); + wxCarCmdLog.setUpdateDate(currentDate); + try { + wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); + } catch (Exception e) { + logger.error("tjdParkInCallback: 入库错误" + paramMap.toString()); + map.put("isSuccess", "0"); + map.put("errorMsg", "入库错误" + paramMap.toString()); + return map; + } + + map.put("isSuccess", "0"); + map.put("errorMsg", ""); + return map; + } + + /** + * 离场通知 + * { + * "parkId": "f3f11a46f3a14056953aed97944242d4", + * "parkName": "测试停车场", + * "carNum": "京A12345", + * "carNumColor ": "blue", + * "tradeId": "5836b8b52ada463ebc6199579f029565", + * "inDt": "20170319232020", + * "outDt": "20170319232020", + * "parkAmount": "5.20", + * "lon": "74.000272", + * "lat": "159.768703", + * "wLon": "123.523032", + * "wLat": "35.430735" + * } + */ + @RequestMapping(value = "/tjdParkoutCallback") + public Map tjdParkOutCallback(@RequestBody Map paramMap) { + logger.info("["+getIpAddr()+"tjdParkoutCallback: " + paramMap.toString()); + Map map = new HashMap(); + + + String tradeId = paramMap.get("tradeId"); + + Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + wxCarCmdLog.setVendorType(EnumCarVendor.CAR_TJD.getCode()); + wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); + wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); + wxCarCmdLog.setCreateDate(currentDate); + wxCarCmdLog.setUpdateDate(currentDate); + try { + wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); + } catch (Exception e) { + logger.error("tjdParkoutCallback: 入库错误" + paramMap.toString()); + map.put("isSuccess", "0"); + map.put("errorMsg", "入库错误" + paramMap.toString()); + return map; + } + + map.put("isSuccess", "0"); + map.put("errorMsg", ""); + return map; + } + + /** + * 支付通知 + * { + * "parkId ": "77a3424e06e64248b4cf9e490c8c682d", + * "parkName ": "测试停车场", + * "carNum": "京A12345", + * "carNumColor": "blue", + * "tradeId": "6d697f7579724345881633a00ed3a671", + * "payAmount": "5.00", + * "payDt": "20180516225701", + * "lon": "74.000272", + * "lat": "159.768703", + * "wLon": "123.523032", + * "wLat": "35.430735" + * } + */ + @RequestMapping(value = "/tjdPaidCallback") + public Map tjdPaidCallback(@RequestBody Map paramMap) { + logger.info("["+getIpAddr()+"tjdPaidCallback: " + paramMap.toString()); + Map map = new HashMap(); + + + String tradeId = paramMap.get("tradeId"); + + Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); + wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); + wxCarCmdLog.setCreateDate(currentDate); + wxCarCmdLog.setUpdateDate(currentDate); + try { + wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); + } catch (Exception e) { + logger.error("tjdParkoutCallback: 入库错误" + paramMap.toString()); + map.put("isSuccess", "0"); + map.put("errorMsg", "入库错误" + paramMap.toString()); + return map; + } + + map.put("isSuccess", "0"); + map.put("errorMsg", ""); + return map; + } + + /** + * 退款通知 (仅当接入方作为第一收款方时适用) + * { + * "parkId ": "77a3424e06e64248b4cf9e490c8c682d", + * "parkName ": "测试停车场", + * "carNum": "京A12345", + * "carNumColor": "blue", + * "tradeId": "6d697f7579724345881633a00ed3a671", + * "payAmount": "5.00", + * "payDt": "20180516225701", + * "lon": "74.000272", + * "lat": "159.768703", + * "wLon": "123.523032", + * "wLat": "35.430735" + * } + */ + @RequestMapping(value = "/tjdRefundCallback") + public Map tjdRefundCallback(@RequestBody Map paramMap) { + logger.info("["+getIpAddr()+"tjdRefundCallback: " + paramMap.toString()); + Map map = new HashMap(); + + + String tradeId = paramMap.get("tradeId"); + + Date currentDate = new Date(); + WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); + wxCarCmdLog.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); + wxCarCmdLog.setCmdType(EnumCarCmd.CAR_ETCP_CALLBACK_PARK_OUT.getCode()); + wxCarCmdLog.setCmdJson(JSON.toJSONString(paramMap)); + wxCarCmdLog.setCreateDate(currentDate); + wxCarCmdLog.setUpdateDate(currentDate); + try { + wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); + } catch (Exception e) { + logger.error("tjdRefundCallback: 入库错误" + paramMap.toString()); + map.put("isSuccess", "0"); + map.put("errorMsg", "入库错误" + paramMap.toString()); + return map; + } + + map.put("isSuccess", "0"); + map.put("errorMsg", ""); + return map; + } + +} diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumCarCmd.java b/mallinkService/src/main/java/com/iformall/enums/EnumCarCmd.java index 562b3772c..39e72840f 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumCarCmd.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumCarCmd.java @@ -11,8 +11,11 @@ public enum EnumCarCmd { CAR_ETCP_CALLBACK_UNBIND(603, "ETCP车辆解绑通知"), CAR_ETCP_CALLBACK_PAY_MANUAL(604, "ETCP支付结果通知"), CAR_ETCP_CALLBACK_UNPAY(605, "ETCP停车费获取"), - CAR_TJD_CALLBACK_PARK_IN(610, "停简单入场通知"), - CAR_TJD_CALLBACK_PARK_OUT(611, "停简单出场通知"), + CAR_TJD_CALLBACK_REGISTER(610, "停简单注册车牌"), + CAR_TJD_CALLBACK_PARK_IN(611, "停简单进场通知"), + CAR_TJD_CALLBACK_PARK_OUT(612, "停简单离场通知"), + CAR_TJD_CALLBACK_PAID(613, "停简单支付通知"), + CAR_TJD_CALLBACK_REFUND(614, "停简单退款通知"), ; public static EnumCarCmd getEnum(Integer code) {