diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java index 1d7362e63..1ccfb1843 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java @@ -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 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 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 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 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 paramMap, WxPark park) { @@ -478,6 +474,26 @@ public class WxCarController extends BaseController { } } + private ResultData unbindCar(Map 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 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(), "停车费获取失败"); diff --git a/mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java b/mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java index cca87fd1d..e188c6a83 100644 --- a/mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java +++ b/mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java @@ -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 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 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 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); /*{