| @@ -241,16 +241,7 @@ public class WxCarController extends BaseController { | |||
| * @param paramMap | |||
| * @return | |||
| */ | |||
| @ApiOperation(value = "绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n" + | |||
| "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}\n返回\n" + | |||
| "{\n" + | |||
| " \"timestamp\": \"1464235239561\",\n" + | |||
| " \"returnCode\": \"T\",\n" + | |||
| " \"errorMsg\": \"\",\n" + | |||
| " \"returnMsg\": \"OK\",\n" + | |||
| " \"isSuccess\": \"0\",\n" + | |||
| " \"carId\": \"5836b8b52ada463ebc6199579f029561\"\n" + | |||
| "}\n") | |||
| @ApiOperation(value = "绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}, TJD:={\"carNumber\":\"string\"}") | |||
| @PostMapping("/bindCar") | |||
| public ResultData bindCar(@RequestBody Map<String, String > paramMap) { | |||
| // 1, get mall's park | |||
| @@ -258,11 +249,10 @@ public class WxCarController extends BaseController { | |||
| // 2. get vendor params | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| return etcpBindCar(paramMap, park); | |||
| } else { | |||
| // 内部操作 | |||
| return bindCar(paramMap, park); | |||
| } | |||
| else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { | |||
| return tjdBindCar(paramMap, park); | |||
| } | |||
| return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "绑车牌失败"); | |||
| } | |||
| private ResultData etcpBindCar(Map<String, String> paramMap, WxPark park) { | |||
| @@ -292,7 +282,7 @@ public class WxCarController extends BaseController { | |||
| } | |||
| JSONObject retObj = JSON.parseObject(ret); | |||
| if (retObj.getIntValue("code") == 0) { | |||
| addCarInfoToDB(carNumber); | |||
| addCarInfoToDB(carNumber, EnumCarVendor.CAR_ETCP); | |||
| JSONObject dataObj = retObj.getJSONObject("data"); | |||
| return new ResultData(dataObj); | |||
| } else { | |||
| @@ -302,14 +292,30 @@ public class WxCarController extends BaseController { | |||
| } | |||
| } | |||
| private void addCarInfoToDB(String carNumber) { | |||
| private ResultData bindCar(Map<String, String> paramMap, WxPark park) { | |||
| String carNumber = paramMap.get("carNumber"); | |||
| if (StringUtils.isBlank(carNumber)) { | |||
| logger.error("carNumber为空"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | |||
| } | |||
| try { | |||
| addCarInfoToDB(carNumber, EnumCarVendor.getEnum(park.getVendorType())); | |||
| } catch (MallinkException e) { | |||
| return new ResultData(e.getErrorCode(), e.getMessage()); | |||
| } catch (Exception e) { | |||
| return new ResultData(500, e.getMessage()); | |||
| } | |||
| return new ResultData(); | |||
| } | |||
| private void addCarInfoToDB(String carNumber, EnumCarVendor carVendor) { | |||
| // 插入车牌 | |||
| Date curr = new Date(); | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setCUserId(getUserId()); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCarNumber(carNumber); | |||
| userCar.setVendorType(EnumCarVendor.CAR_ETCP.getCode()); | |||
| userCar.setVendorType(carVendor.getCode()); | |||
| userCar.setCreateDate(curr); | |||
| userCar.setUpdateDate(curr); | |||
| wxCUserCarService.saveOrUpdate(userCar); | |||
| @@ -409,26 +415,16 @@ public class WxCarController extends BaseController { | |||
| " \"code\": 0,\n" + | |||
| " \"message\": \"ok\"" + | |||
| "}" + | |||
| "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}\n返回:\n" + | |||
| "{\n" + | |||
| " \"timestamp\": \"1464235239561\",\n" + | |||
| " \"returnCode\": \"T\",\n" + | |||
| " \"errorMsg\": \"\",\n" + | |||
| " \"returnMsg\": \"OK\",\n" + | |||
| " \"isSuccess\": \"0\",\n" + | |||
| "}\n") | |||
| "TJD:={\"carNumber\":\"string\"}") | |||
| @PostMapping("/unbindCar") | |||
| public ResultData unbindCar(@RequestBody Map<String, String > paramMap) { | |||
| // 1, get mall's park | |||
| WxPark park = getCurrentPark(getTenantId()); | |||
| if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { | |||
| if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) { | |||
| return etcpUnbindCar(paramMap, park); | |||
| } else { | |||
| return unbindCar(paramMap, park); | |||
| } | |||
| else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { | |||
| ResultData e = tjdUnbindCar(paramMap, park); | |||
| if (e != null) return e; | |||
| } | |||
| return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "解绑车牌失败"); | |||
| } | |||
| private ResultData etcpUnbindCar(Map<String, String> paramMap, WxPark park) { | |||
| @@ -478,6 +474,26 @@ public class WxCarController extends BaseController { | |||
| } | |||
| } | |||
| private ResultData unbindCar(Map<String, String> paramMap, WxPark park) { | |||
| String carNumber = paramMap.get("carNumber"); | |||
| if (StringUtils.isBlank(carNumber)) { | |||
| logger.error("carNumber为空"); | |||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "carNumber为空"); | |||
| } | |||
| try { | |||
| WxCUserCar userCar = new WxCUserCar(); | |||
| userCar.setTenantId(getTenantId()); | |||
| userCar.setCUserId(getUserId()); | |||
| userCar.setCarNumber(carNumber); | |||
| wxCUserCarService.deleteByObj(userCar); | |||
| } catch (Exception e) { | |||
| logger.error(e.getMessage()); | |||
| return new ResultData(ErrorCode.DB_FAIL.getCode(), "解绑车牌数据库错误, e:" + e.getMessage()); | |||
| } | |||
| return new ResultData(); | |||
| } | |||
| private ResultData tjdUnbindCar(@RequestBody Map<String, String> paramMap, WxPark park) { | |||
| String carNumber = paramMap.get("carNumber"); | |||
| if (StringUtils.isBlank(carNumber)) { | |||
| @@ -536,7 +552,7 @@ public class WxCarController extends BaseController { | |||
| " \"paidFee\": 0,\n" + | |||
| " \"verificationInfo\": \"FSED9JvxgAU6XJUd8YRF5YH/LpfQYzCAfcPbAOKPV3BjKSatbgIsh7EBH2JBiRoGBe3btr gzKRMTfIoFuCn1XX7HUsJYlb7JSCBArnNmEVU4JuDLLjzoqB7qhQ8KnP16\"\n" + | |||
| " }" + | |||
| "TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}\n输出\n{\n" + | |||
| "TJD:={\"carNumber\":\"string\"}\n输出\n{\n" + | |||
| " \"inDt\": \"20160526112000\",\n" + | |||
| " \"timestamp\": \"1464235239561\",\n" + | |||
| " \"returnCode\": \"T\",\n" + | |||
| @@ -628,13 +644,13 @@ public class WxCarController extends BaseController { | |||
| } | |||
| String params = park.getVendorParams(); | |||
| JSONObject objParams = JSON.parseObject(params); | |||
| String url = objParams.getString("url"); | |||
| String partner = objParams.getString("partner"); | |||
| String key = objParams.getString("key"); | |||
| String version = objParams.getString("version"); | |||
| String url = objParams.getString(TJDUtil.TJD_URL); | |||
| String partner = objParams.getString(TJDUtil.TJD_ACCOUNT); | |||
| String key = objParams.getString(TJDUtil.TJD_ACCOUNT_KEY); | |||
| String version = objParams.getString(TJDUtil.TJD_VERSION); | |||
| String ret = tjd.infoForFreeMins(url, partner, key, version, carNumber); | |||
| JSONObject retObj = JSON.parseObject(ret); | |||
| if (retObj.getString("returnCode").equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) { | |||
| if (retObj.getString(TJDUtil.TJD_RETURN_CODE).equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) { | |||
| return new ResultData(retObj); | |||
| } else { | |||
| return new ResultData(ErrorCode.TJD_STOP_FEE_FAIL.getCode(), "停车费获取失败"); | |||
| @@ -30,6 +30,17 @@ import java.util.Map; | |||
| @Component | |||
| public class TJDUtil { | |||
| public static final String TJD_URL = "url"; | |||
| public static final String TJD_ACCOUNT = "partner"; | |||
| public static final String TJD_ACCOUNT_KEY = "key"; | |||
| public static final String TJD_VERSION = "version"; | |||
| public static final String TJD_CHARSET = "charset"; | |||
| public static final String TJD_RETURN_CODE = "returnCode"; | |||
| public static final String TJD_RETURN_SUCC = "T"; | |||
| public static final String TJD_RETURN_FAIL = "F"; | |||
| public static final String TJD_IS_SUC = "isSuccess"; | |||
| public static final String TJD_ERR_MSG = "errorMSG"; | |||
| public static final String TJD_SUC = "0"; | |||
| @@ -44,6 +55,7 @@ public class TJDUtil { | |||
| public static final String TJD_PARK_AMT = "parkAmount"; | |||
| public static final String TJD_PAY_AMT = "payAmount"; | |||
| public static final String TJD_PAY_DT = "payDt"; | |||
| public static final String TJD_FREE_MINS = "freeMins"; | |||
| private final static Logger logger = LoggerFactory.getLogger(TJDUtil.class); | |||
| @@ -54,6 +66,10 @@ public class TJDUtil { | |||
| private static String key = "bc2f09be8f5b4227898346cf6fe451c2"; | |||
| private static String version = "1.0"; | |||
| // | |||
| // {"url":"http://prep.tingjiandan.com/openapi/gateway","partnerId":"fb21a5b2f7064ff5afb8288d5bb48ca8","key":"bc2f09be8f5b4227898346cf6fe451c2","parkId":"7715622dff834b34a44448b801c27607", "version":"1.0.0"} | |||
| // | |||
| public static void main(String[] args) throws Exception { | |||
| String carNumber = "京XAZMF1"; | |||
| @@ -67,9 +83,9 @@ public class TJDUtil { | |||
| paramMap1.put("deductionAmount", obj.getString("totalAmount")); | |||
| paramMap1.put("outTradeNo", "utf-8"); | |||
| paramMap1.put("accountId", obj.getString("accountId")); | |||
| paramMap1.put("charset", "utf-8"); | |||
| paramMap1.put("partner", partner); | |||
| paramMap1.put("version", version); | |||
| paramMap1.put(TJD_CHARSET, "utf-8"); | |||
| paramMap1.put(TJD_ACCOUNT, partner); | |||
| paramMap1.put(TJD_VERSION, version); | |||
| deductionNotSettle(baseurl, key, paramMap1); | |||
| */ | |||
| @@ -159,9 +175,9 @@ public class TJDUtil { | |||
| if (outCarId != null) { | |||
| paramMap.put("outCardId", outCarId); | |||
| } | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| @@ -202,9 +218,9 @@ public class TJDUtil { | |||
| Map<String, String> paramMap = MapUtil.getOrderMap(); | |||
| paramMap.put("carId", carId); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| @@ -244,14 +260,14 @@ public class TJDUtil { | |||
| String freeMins = "0"; | |||
| Map<String, String> paramMap = MapUtil.getOrderMap(); | |||
| paramMap.put("carNum", carNum); | |||
| paramMap.put(TJD_CAR_NUMBER, carNum); | |||
| //paramMap.put("carNumColor", ""); | |||
| //paramMap.put("pmParkId", ""); | |||
| paramMap.put("freeMins", freeMins); | |||
| paramMap.put(TJD_FREE_MINS, freeMins); | |||
| //paramMap.put("tradeId", ""); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| @@ -314,9 +330,9 @@ public class TJDUtil { | |||
| paramMap.put("deductionAmount", deductionAmount); | |||
| paramMap.put("outTradeNo", outTradeNo); | |||
| paramMap.put("accountId", accountId); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| /* | |||
| @@ -362,9 +378,9 @@ public class TJDUtil { | |||
| paramMap.put("deductionAmount", deductionAmount); | |||
| paramMap.put("outTradeNo", outTradeNo); | |||
| paramMap.put("accountId", accountId); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| /* | |||
| @@ -413,9 +429,9 @@ public class TJDUtil { | |||
| paramMap.put("prePayType", prePayType); | |||
| paramMap.put("minutes", minutes); | |||
| paramMap.put("memo", memo); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| /*{ | |||
| @@ -469,9 +485,9 @@ public class TJDUtil { | |||
| paramMap.put("EndDt", EndDt); | |||
| paramMap.put("expireDt", expireDt); | |||
| paramMap.put("memo", memo); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| /*{ | |||
| @@ -512,9 +528,9 @@ public class TJDUtil { | |||
| Map<String, String> paramMap = MapUtil.getOrderMap(); | |||
| paramMap.put("tradeId", tradeId); | |||
| paramMap.put("ticketid", ticketid); | |||
| paramMap.put("charset", "utf-8"); | |||
| paramMap.put("partner", partner); | |||
| paramMap.put("version", version); | |||
| paramMap.put(TJD_CHARSET, "utf-8"); | |||
| paramMap.put(TJD_ACCOUNT, partner); | |||
| paramMap.put(TJD_VERSION, version); | |||
| String result = Proc(url, key, service, paramMap); | |||
| /*{ | |||