| @@ -10,8 +10,6 @@ import com.iformall.enums.EnumCarVendor; | |||
| import com.iformall.enums.EnumCouponSendSendType; | |||
| import com.iformall.enums.EnumETCPCode; | |||
| import com.iformall.service.*; | |||
| import com.iformall.utils.ETCPUtil; | |||
| import com.iformall.utils.TJDCarUtil; | |||
| import org.apache.commons.lang3.StringUtils; | |||
| import org.slf4j.Logger; | |||
| import org.slf4j.LoggerFactory; | |||
| @@ -32,10 +30,6 @@ import java.util.Map; | |||
| public class WxCarCallBackController extends BaseController { | |||
| private final Logger logger = LoggerFactory.getLogger(this.getClass()); | |||
| ETCPUtil etcp = new ETCPUtil(); | |||
| TJDCarUtil tjd = new TJDCarUtil(); | |||
| @Autowired | |||
| WxParkService wxParkService; | |||
| @@ -57,6 +51,8 @@ public class WxCarCallBackController extends BaseController { | |||
| @Autowired | |||
| WxCUserService wxCUserService; | |||
| SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); | |||
| /** | |||
| * ETCP 车辆入场通知 | |||
| * { | |||
| @@ -74,6 +70,14 @@ public class WxCarCallBackController extends BaseController { | |||
| @PostMapping(value = "/etcpParkInCallback") | |||
| public Result etcpParkInCallback(@RequestBody Map<String, String> paramMap) { | |||
| 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(); | |||
| WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | |||
| @@ -101,13 +105,21 @@ public class WxCarCallBackController extends BaseController { | |||
| wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | |||
| } catch (Exception e) { | |||
| 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 carNumber = paramMap.get("plateNumber"); | |||
| if (!StringUtils.isBlank(carNumber)) { | |||
| // 根据车牌查找用户 | |||
| WxCUserCar userCarQ = new WxCUserCar(); | |||
| @@ -116,44 +128,44 @@ public class WxCarCallBackController extends BaseController { | |||
| userCarQ.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); | |||
| // TODO 可能多用户关联同一张车牌 | |||
| List<WxCUserCar> 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){ | |||
| 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 { | |||
| // 保存WxCarPayRecord | |||
| WxCarPayRecord record = new WxCarPayRecord(); | |||
| 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.setTenantId(park.getTenantId()); | |||
| wxCarPayRecordService.saveOrUpdate(record); | |||
| } catch (Exception e) { | |||
| e.printStackTrace(); | |||
| 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") | |||
| public Result etcpParkOutCallback(@RequestBody Map<String, String> paramMap) { | |||
| 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(); | |||
| WxCarCmdLog wxCarCmdLog = new WxCarCmdLog(); | |||
| @@ -202,7 +221,7 @@ public class WxCarCallBackController extends BaseController { | |||
| wxCarCmdLogService.saveOrUpdate(wxCarCmdLog); | |||
| } catch (Exception e) { | |||
| logger.error("etcpParkOutCallback: 入库错误 " + paramMap.toString()); | |||
| return new Result(ErrorCode.DB_FAIL.getCode(), "入库错误" + paramMap.toString()); | |||
| return true; | |||
| } | |||
| try { | |||
| @@ -219,12 +238,9 @@ public class WxCarCallBackController extends BaseController { | |||
| } catch (Exception e) { | |||
| e.printStackTrace(); | |||
| 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; | |||
| } | |||
| /** | |||