| @@ -10,8 +10,6 @@ import com.iformall.enums.EnumCarVendor; | |||||
| import com.iformall.enums.EnumCouponSendSendType; | import com.iformall.enums.EnumCouponSendSendType; | ||||
| import com.iformall.enums.EnumETCPCode; | import com.iformall.enums.EnumETCPCode; | ||||
| import com.iformall.service.*; | import com.iformall.service.*; | ||||
| import com.iformall.utils.ETCPUtil; | |||||
| import com.iformall.utils.TJDCarUtil; | |||||
| 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; | ||||
| @@ -32,10 +30,6 @@ import java.util.Map; | |||||
| public class WxCarCallBackController extends BaseController { | public class WxCarCallBackController extends BaseController { | ||||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | private final Logger logger = LoggerFactory.getLogger(this.getClass()); | ||||
| ETCPUtil etcp = new ETCPUtil(); | |||||
| TJDCarUtil tjd = new TJDCarUtil(); | |||||
| @Autowired | @Autowired | ||||
| WxParkService wxParkService; | WxParkService wxParkService; | ||||
| @@ -57,6 +51,8 @@ public class WxCarCallBackController extends BaseController { | |||||
| @Autowired | @Autowired | ||||
| WxCUserService wxCUserService; | WxCUserService wxCUserService; | ||||
| SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | |||||
| /** | /** | ||||
| * ETCP 车辆入场通知 | * ETCP 车辆入场通知 | ||||
| * { | * { | ||||
| @@ -74,6 +70,14 @@ public class WxCarCallBackController extends BaseController { | |||||
| @PostMapping(value = "/etcpParkInCallback") | @PostMapping(value = "/etcpParkInCallback") | ||||
| public Result etcpParkInCallback(@RequestBody Map<String, String> paramMap) { | public Result etcpParkInCallback(@RequestBody Map<String, String> paramMap) { | ||||
| logger.info("["+getIpAddr()+"] etcpParkInCallback: " + paramMap.toString()); | logger.info("["+getIpAddr()+"] etcpParkInCallback: " + paramMap.toString()); | ||||
| doEtcpParkIn(paramMap); | |||||
| return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); | |||||
| } | |||||
| // @Async | |||||
| public boolean doEtcpParkIn(@RequestBody Map<String, String> paramMap) { | |||||
| Date currentDate = new Date(); | Date currentDate = new Date(); | ||||
| WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | ||||
| @@ -101,13 +105,21 @@ public class WxCarCallBackController extends BaseController { | |||||
| wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("etcpParkInCallback: 入库错误 " + paramMap.toString()); | logger.error("etcpParkInCallback: 入库错误 " + paramMap.toString()); | ||||
| return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); | |||||
| return true; | |||||
| } | } | ||||
| String carNumber = paramMap.get("plateNumber"); | |||||
| String synId = paramMap.get("synId"); | |||||
| String parkId = paramMap.get("parkId"); | |||||
| String parkName = paramMap.get("parkName"); | |||||
| String userType = paramMap.get("userType"); | |||||
| String entranceTime = paramMap.get("entranceTime"); | |||||
| String fixParkingId = paramMap.get("fixParkingId"); | |||||
| String remainingDays = paramMap.get("remainingDays"); | |||||
| String phoneStrs = ""; | String phoneStrs = ""; | ||||
| // 停车发券 | // 停车发券 | ||||
| String carNumber = paramMap.get("plateNumber"); | |||||
| if (!StringUtils.isBlank(carNumber)) { | if (!StringUtils.isBlank(carNumber)) { | ||||
| // 根据车牌查找用户 | // 根据车牌查找用户 | ||||
| WxCUserCar userCarQ = new WxCUserCar(); | WxCUserCar userCarQ = new WxCUserCar(); | ||||
| @@ -116,44 +128,44 @@ public class WxCarCallBackController extends BaseController { | |||||
| userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); | userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); | ||||
| // TODO 可能多用户关联同一张车牌 | // TODO 可能多用户关联同一张车牌 | ||||
| List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ); | List<WxCUserCar> userCarList = wxCUserCarService.getList(userCarQ); | ||||
| boolean bFirst = true; | |||||
| for (WxCUserCar userCar : userCarList) { | for (WxCUserCar userCar : userCarList) { | ||||
| wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); | wxCouponSendService.sendCouponToUser(EnumCouponSendSendType.CAR_STOP, userCar); | ||||
| WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); | WxCUser cUser = wxCUserService.getById(userCar.getCUserId()); | ||||
| if(cUser != null){ | if(cUser != null){ | ||||
| phoneStrs += cUser.getPhone() + ","; | |||||
| if(bFirst) { | |||||
| phoneStrs = cUser.getPhone(); | |||||
| bFirst = false; | |||||
| } else { | |||||
| phoneStrs += "," + cUser.getPhone(); | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| } | } | ||||
| // 替换最后一个逗号 | |||||
| if(StringUtils.isNotBlank(phoneStrs)){ | |||||
| phoneStrs = phoneStrs.substring(0,phoneStrs.length() - 1); | |||||
| } | |||||
| try { | try { | ||||
| // 保存WxCarPayRecord | // 保存WxCarPayRecord | ||||
| WxCarPayRecord record = new WxCarPayRecord(); | WxCarPayRecord record = new WxCarPayRecord(); | ||||
| record.setVendorType(wxCarCmdLog.getVendorType()); | record.setVendorType(wxCarCmdLog.getVendorType()); | ||||
| Map<String,String> jsonMap = (Map)JSON.parseObject(wxCarCmdLog.getCmdJson()); | |||||
| record.setSynId(jsonMap.get("synId")); | |||||
| record.setParkId(jsonMap.get("parkId")); | |||||
| record.setParkName(jsonMap.get("parkName")); | |||||
| record.setUserType(jsonMap.get("userType")); | |||||
| record.setPlateNumber(jsonMap.get("plateNumber")); | |||||
| if(StringUtils.isNotBlank(jsonMap.get("entranceTime"))) { | |||||
| record.setEntranceTime(new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(jsonMap.get("entranceTime"))); | |||||
| 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(jsonMap.get("fixParkingId")); | |||||
| record.setRemainingDays(jsonMap.get("remainingDays")); | |||||
| record.setFixParkingId(fixParkingId); | |||||
| record.setRemainingDays(remainingDays); | |||||
| record.setPhone(phoneStrs); | record.setPhone(phoneStrs); | ||||
| record.setTenantId(park.getTenantId()); | record.setTenantId(park.getTenantId()); | ||||
| wxCarPayRecordService.saveOrUpdate(record); | wxCarPayRecordService.saveOrUpdate(record); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| e.printStackTrace(); | e.printStackTrace(); | ||||
| logger.error("WxCarPayRecord: 入库错误 " + paramMap.toString()); | logger.error("WxCarPayRecord: 入库错误 " + paramMap.toString()); | ||||
| return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); | |||||
| return true; | |||||
| } | } | ||||
| return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); | |||||
| return false; | |||||
| } | } | ||||
| /** | /** | ||||
| @@ -177,6 +189,13 @@ public class WxCarCallBackController extends BaseController { | |||||
| @PostMapping(value = "/etcpParkOutCallback") | @PostMapping(value = "/etcpParkOutCallback") | ||||
| public Result etcpParkOutCallback(@RequestBody Map<String, String> paramMap) { | public Result etcpParkOutCallback(@RequestBody Map<String, String> paramMap) { | ||||
| logger.info("["+getIpAddr()+"etcpParkOutCallback: " + paramMap.toString()); | logger.info("["+getIpAddr()+"etcpParkOutCallback: " + paramMap.toString()); | ||||
| doEtcpParkOut(paramMap); | |||||
| return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); | |||||
| } | |||||
| public boolean doEtcpParkOut(@RequestBody Map<String, String> paramMap) { | |||||
| Date currentDate = new Date(); | Date currentDate = new Date(); | ||||
| WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | ||||
| @@ -202,7 +221,7 @@ public class WxCarCallBackController extends BaseController { | |||||
| wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | ||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| logger.error("etcpParkOutCallback: 入库错误 " + paramMap.toString()); | logger.error("etcpParkOutCallback: 入库错误 " + paramMap.toString()); | ||||
| return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); | |||||
| return true; | |||||
| } | } | ||||
| try { | try { | ||||
| @@ -219,12 +238,9 @@ public class WxCarCallBackController extends BaseController { | |||||
| } catch (Exception e) { | } catch (Exception e) { | ||||
| e.printStackTrace(); | e.printStackTrace(); | ||||
| logger.error("WxCarPayRecord: 出场更新错误 " + paramMap.toString()); | logger.error("WxCarPayRecord: 出场更新错误 " + paramMap.toString()); | ||||
| return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); | |||||
| return true; | |||||
| } | } | ||||
| // TODO 如果此车关联了停车优免券,自动把优免券设为已使用 | |||||
| return new Result(EnumETCPCode.SUCCESS.getCode(), EnumETCPCode.SUCCESS.getMessage()); | |||||
| return false; | |||||
| } | } | ||||
| /** | /** | ||||