|
|
@@ -6,13 +6,11 @@ import com.alibaba.fastjson.JSONObject; |
|
|
import com.simple.common.ErrorCode; |
|
|
import com.simple.common.ErrorCode; |
|
|
import com.simple.common.Result; |
|
|
import com.simple.common.Result; |
|
|
import com.simple.common.ResultData; |
|
|
import com.simple.common.ResultData; |
|
|
import com.simple.domain.po.WxCUser; |
|
|
|
|
|
import com.simple.domain.po.WxCUserCar; |
|
|
|
|
|
import com.simple.domain.po.WxCarCmdLogs; |
|
|
|
|
|
import com.simple.domain.po.WxPark; |
|
|
|
|
|
|
|
|
import com.simple.domain.po.*; |
|
|
import com.simple.enums.EnumCarVendor; |
|
|
import com.simple.enums.EnumCarVendor; |
|
|
import com.simple.service.WxCUserCarService; |
|
|
import com.simple.service.WxCUserCarService; |
|
|
import com.simple.service.WxCarCmdLogsService; |
|
|
import com.simple.service.WxCarCmdLogsService; |
|
|
|
|
|
import com.simple.service.WxMerchantService; |
|
|
import com.simple.service.WxParkService; |
|
|
import com.simple.service.WxParkService; |
|
|
import com.simple.utils.ETCPUtil; |
|
|
import com.simple.utils.ETCPUtil; |
|
|
import com.simple.utils.TJDCarUtil; |
|
|
import com.simple.utils.TJDCarUtil; |
|
|
@@ -45,6 +43,9 @@ public class WxCarController extends BaseController |
|
|
@Autowired |
|
|
@Autowired |
|
|
WxCUserCarService wxCUserCarService; |
|
|
WxCUserCarService wxCUserCarService; |
|
|
|
|
|
|
|
|
|
|
|
@Autowired |
|
|
|
|
|
WxMerchantService wxMerchantService; |
|
|
|
|
|
|
|
|
private WxPark getCurrentPark(WxCUser user) { |
|
|
private WxPark getCurrentPark(WxCUser user) { |
|
|
WxPark wxPark = wxParkService.getByTenantId(user.getTenantId()); |
|
|
WxPark wxPark = wxParkService.getByTenantId(user.getTenantId()); |
|
|
// 1, get mall's park |
|
|
// 1, get mall's park |
|
|
@@ -184,7 +185,15 @@ public class WxCarController extends BaseController |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@ApiOperation(value = "绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n" + |
|
|
@ApiOperation(value = "绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n" + |
|
|
"TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") |
|
|
|
|
|
|
|
|
"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") |
|
|
@PostMapping("/bindCar") |
|
|
@PostMapping("/bindCar") |
|
|
public ResultData bindCar(Map<String, String > paramMap) { |
|
|
public ResultData bindCar(Map<String, String > paramMap) { |
|
|
WxCUser user = getUser(); |
|
|
WxCUser user = getUser(); |
|
|
@@ -254,16 +263,6 @@ public class WxCarController extends BaseController |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
String ret = tjd.registerCar(url, partner, key, version, |
|
|
String ret = tjd.registerCar(url, partner, key, version, |
|
|
carNumber, carNumColor, null, outCarId); |
|
|
carNumber, carNumColor, null, outCarId); |
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"timestamp": "1464235239561", |
|
|
|
|
|
"returnCode": "T", |
|
|
|
|
|
"errorMsg": "", |
|
|
|
|
|
"returnMsg": "OK", |
|
|
|
|
|
"isSuccess": "0", |
|
|
|
|
|
"carId": "5836b8b52ada463ebc6199579f029561" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
retObj.put("vendor", park.getVendorType()); |
|
|
retObj.put("vendor", park.getVendorType()); |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
@@ -294,8 +293,19 @@ public class WxCarController extends BaseController |
|
|
* @param paramMap |
|
|
* @param paramMap |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@ApiOperation(value = "解绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n" + |
|
|
|
|
|
"TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") |
|
|
|
|
|
|
|
|
@ApiOperation(value = "解绑车牌", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n返回:\n" + |
|
|
|
|
|
"{\n" + |
|
|
|
|
|
" \"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") |
|
|
@PostMapping("/unbindCar") |
|
|
@PostMapping("/unbindCar") |
|
|
public ResultData unbindCar(Map<String, String > paramMap) { |
|
|
public ResultData unbindCar(Map<String, String > paramMap) { |
|
|
WxCUser user = getUser(); |
|
|
WxCUser user = getUser(); |
|
|
@@ -319,7 +329,6 @@ public class WxCarController extends BaseController |
|
|
String merchantKey = objParams.getString("merchantKey"); |
|
|
String merchantKey = objParams.getString("merchantKey"); |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
String ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber); |
|
|
String ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
if (retObj.getIntValue("code") == 0) { |
|
|
if (retObj.getIntValue("code") == 0) { |
|
|
@@ -355,17 +364,6 @@ public class WxCarController extends BaseController |
|
|
String key = objParams.getString("key"); |
|
|
String key = objParams.getString("key"); |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
String ret = tjd.writeOffCar(url, partner, key, version, carId); |
|
|
String ret = tjd.writeOffCar(url, partner, key, version, carId); |
|
|
|
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"timestamp": "1464235239561", |
|
|
|
|
|
"returnCode": "T", |
|
|
|
|
|
"errorMsg": "", |
|
|
|
|
|
"returnMsg": "OK", |
|
|
|
|
|
"isSuccess": "0", |
|
|
|
|
|
"carId": "5836b8b52ada463ebc6199579f029561" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
wxCUserCarService.deleteByObj(userCar); |
|
|
wxCUserCarService.deleteByObj(userCar); |
|
|
@@ -384,8 +382,41 @@ public class WxCarController extends BaseController |
|
|
* @param paramMap |
|
|
* @param paramMap |
|
|
* @return |
|
|
* @return |
|
|
*/ |
|
|
*/ |
|
|
@ApiOperation(value = "停车费", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n" + |
|
|
|
|
|
"TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}") |
|
|
|
|
|
|
|
|
@ApiOperation(value = "停车费", notes = "ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\"}\n输出\n{\n" + |
|
|
|
|
|
" \"carNumber\": \"渝****87\",\n" + |
|
|
|
|
|
" \"entranceTime\": \"2017-06-11 11:19:27\",\n" + |
|
|
|
|
|
" \"exitTime\": \"2017-06-11 11:59:47\",\n" + |
|
|
|
|
|
" \"orderId\": \"B9466E26-7420-4BDF-958D-E90106AB5F20\", \"parkingFee\": 2.00,\n" + |
|
|
|
|
|
" \"remainingServiceFee\": 0,\n" + |
|
|
|
|
|
" \"payedServiceFee\": 0,\n" + |
|
|
|
|
|
" \"remainingParkFee\": 2.00,\n" + |
|
|
|
|
|
" \"discountAmount\": 0,\n" + |
|
|
|
|
|
" \"parkingId\": 3126,\n" + |
|
|
|
|
|
" \"parkingName\": \"ETCP 停车场\",\n" + |
|
|
|
|
|
" \"remainingFee\": 2.00,\n" + |
|
|
|
|
|
" \"paidFee\": 0,\n" + |
|
|
|
|
|
" \"verificationInfo\": \"FSED9JvxgAU6XJUd8YRF5YH/LpfQYzCAfcPbAOKPV3BjKSatbgIsh7EBH2JBiRoGBe3btr gzKRMTfIoFuCn1XX7HUsJYlb7JSCBArnNmEVU4JuDLLjzoqB7qhQ8KnP16\"\n" + |
|
|
|
|
|
" }" + |
|
|
|
|
|
"TJD:={\"carNumber\":\"string\",\"carNumColor\":\"string\",\"outCarId\":\"string\"}\n输出\n{\n" + |
|
|
|
|
|
" \"inDt\": \"20160526112000\",\n" + |
|
|
|
|
|
" \"timestamp\": \"1464235239561\",\n" + |
|
|
|
|
|
" \"returnCode\": \"T\",\n" + |
|
|
|
|
|
" \"errorMsg\": \"\",\n" + |
|
|
|
|
|
" \"tradeId\": \"d49aeaedcf144f1faf569846d6b1667e\",\n" + |
|
|
|
|
|
" \"parkTime\": \"2439593\",\n" + |
|
|
|
|
|
" \"returnMsg\": \"OK\",\n" + |
|
|
|
|
|
" \"totalAmount\": \"0.03\",\n" + |
|
|
|
|
|
" \"isSuccess\": \"0\",\n" + |
|
|
|
|
|
" \"unPayAmount\": \"0.03\",\n" + |
|
|
|
|
|
" \"paidAmount\": \"0.00\",\n" + |
|
|
|
|
|
" \"freeThroughTime\": \"15\",\n" + |
|
|
|
|
|
" \"outDt\": \"20170321121212\",\n" + |
|
|
|
|
|
" \"payUrl\": \"http://prep.tingjiandan.com/tcweixin/letter/prePay/payInPark.html?\n" + |
|
|
|
|
|
" prePayType=16&channel=10001\",\n" + |
|
|
|
|
|
" \"accountId\": \"d49aeaedcf144f1faf569846d6b16671\",\n" + |
|
|
|
|
|
" \"freeMinsAmount\": \"0.00\",\n" + |
|
|
|
|
|
" \"pmParkId\": \"d49aeaedcf144f1faf569846d6b16670\"\n" + |
|
|
|
|
|
" }") |
|
|
@PostMapping("/getCarStopFee") |
|
|
@PostMapping("/getCarStopFee") |
|
|
public ResultData getCarStopFee(Map<String, String > paramMap) { |
|
|
public ResultData getCarStopFee(Map<String, String > paramMap) { |
|
|
WxCUser user = getUser(); |
|
|
WxCUser user = getUser(); |
|
|
@@ -411,27 +442,9 @@ public class WxCarController extends BaseController |
|
|
String ret = etcp.orderUnpay(url, appId, merchantNo, merchantKey, version, etcpToken, carNumber); |
|
|
String ret = etcp.orderUnpay(url, appId, merchantNo, merchantKey, version, etcpToken, carNumber); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
if (retObj.getIntValue("code") == 0) { |
|
|
if (retObj.getIntValue("code") == 0) { |
|
|
// TODO 停车费 |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"carNumber": "渝****87", |
|
|
|
|
|
"entranceTime": "2017-06-11 11:19:27", |
|
|
|
|
|
"exitTime": "2017-06-11 11:59:47", |
|
|
|
|
|
"orderId": "B9466E26-7420-4BDF-958D-E90106AB5F20", "parkingFee": 2.00, |
|
|
|
|
|
"remainingServiceFee": 0, |
|
|
|
|
|
"payedServiceFee": 0, |
|
|
|
|
|
"remainingParkFee": 2.00, |
|
|
|
|
|
"discountAmount": 0, |
|
|
|
|
|
"parkingId": 3126, |
|
|
|
|
|
"parkingName": "ETCP 停车场", |
|
|
|
|
|
"remainingFee": 2.00, |
|
|
|
|
|
"paidFee": 0, |
|
|
|
|
|
"verificationInfo": "FSED9JvxgAU6XJUd8YRF5YH/LpfQYzCAfcPbAOKPV3BjKSatbgIsh7EBH2JBiRoGBe3btr gzKRMTfIoFuCn1XX7HUsJYlb7JSCBArnNmEVU4JuDLLjzoqB7qhQ8KnP16" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
JSONObject feeObj = retObj.getJSONArray("data").getJSONObject(0); |
|
|
JSONObject feeObj = retObj.getJSONArray("data").getJSONObject(0); |
|
|
feeObj.put("vendor", park.getVendorType()); |
|
|
feeObj.put("vendor", park.getVendorType()); |
|
|
return new ResultData(feeObj); |
|
|
|
|
|
|
|
|
return new ResultData(Result.SUCCESS, "停车费获取成功", feeObj); |
|
|
} else { |
|
|
} else { |
|
|
return new ResultData(ErrorCode.ETCP_STOP_FEE_FAIL.getCode(), "停车费获取失败"); |
|
|
return new ResultData(ErrorCode.ETCP_STOP_FEE_FAIL.getCode(), "停车费获取失败"); |
|
|
} |
|
|
} |
|
|
@@ -441,7 +454,6 @@ public class WxCarController extends BaseController |
|
|
if (StringUtils.isBlank(carNumber)) { |
|
|
if (StringUtils.isBlank(carNumber)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空"); |
|
|
} |
|
|
} |
|
|
// TODO to get TJD carId |
|
|
|
|
|
String params = park.getVendorParams(); |
|
|
String params = park.getVendorParams(); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
String url = objParams.getString("url"); |
|
|
String url = objParams.getString("url"); |
|
|
@@ -449,31 +461,8 @@ public class WxCarController extends BaseController |
|
|
String key = objParams.getString("key"); |
|
|
String key = objParams.getString("key"); |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
String ret = tjd.infoForFreeMins(url, partner, key, version, carNumber); |
|
|
String ret = tjd.infoForFreeMins(url, partner, key, version, carNumber); |
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"inDt": "20160526112000", |
|
|
|
|
|
"timestamp": "1464235239561", |
|
|
|
|
|
"returnCode": "T", |
|
|
|
|
|
"errorMsg": "", |
|
|
|
|
|
"tradeId": "d49aeaedcf144f1faf569846d6b1667e", |
|
|
|
|
|
"parkTime": "2439593", |
|
|
|
|
|
"returnMsg": "OK", |
|
|
|
|
|
"totalAmount": "0.03", |
|
|
|
|
|
"isSuccess": "0", |
|
|
|
|
|
"unPayAmount": "0.03", |
|
|
|
|
|
"paidAmount": "0.00", |
|
|
|
|
|
"freeThroughTime": "15", |
|
|
|
|
|
"outDt": "20170321121212", |
|
|
|
|
|
"payUrl": "http://prep.tingjiandan.com/tcweixin/letter/prePay/payInPark.html? |
|
|
|
|
|
prePayType=16&channel=10001", |
|
|
|
|
|
"accountId": "d49aeaedcf144f1faf569846d6b16671", |
|
|
|
|
|
"freeMinsAmount": "0.00", |
|
|
|
|
|
"pmParkId": "d49aeaedcf144f1faf569846d6b16670" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
// TODO remove carNumber |
|
|
|
|
|
return new ResultData(retObj); |
|
|
return new ResultData(retObj); |
|
|
} else { |
|
|
} else { |
|
|
return new ResultData(ErrorCode.TJD_STOP_FEE_FAIL.getCode(), "停车费获取失败"); |
|
|
return new ResultData(ErrorCode.TJD_STOP_FEE_FAIL.getCode(), "停车费获取失败"); |
|
|
@@ -486,7 +475,14 @@ public class WxCarController extends BaseController |
|
|
* 停车费抵扣 |
|
|
* 停车费抵扣 |
|
|
* |
|
|
* |
|
|
*/ |
|
|
*/ |
|
|
@ApiOperation("停车费抵扣") |
|
|
|
|
|
|
|
|
@ApiOperation(value = "停车费抵扣", notes = "{\"tradeId\":\"string\",\"deductionAmount\":\"string\",\"accountId\":\"string\",\"orderId\":\"string\"}\nresult\n{\n" + |
|
|
|
|
|
" \"timestamp\": \"1464235239561\",\n" + |
|
|
|
|
|
" \"returnCode\": \"T\",\n" + |
|
|
|
|
|
" \"errorMsg\": \"\",\n" + |
|
|
|
|
|
" \"returnMsg\": \"OK\",\n" + |
|
|
|
|
|
" \"isSuccess\": \"0\",\n" + |
|
|
|
|
|
" \"carId\": \"5836b8b52ada463ebc6199579f029561\"\n" + |
|
|
|
|
|
" }") |
|
|
@PostMapping("/deductionFee") |
|
|
@PostMapping("/deductionFee") |
|
|
public ResultData deductionFee(Map<String, String > paramMap) { |
|
|
public ResultData deductionFee(Map<String, String > paramMap) { |
|
|
WxCUser user = getUser(); |
|
|
WxCUser user = getUser(); |
|
|
@@ -495,21 +491,20 @@ public class WxCarController extends BaseController |
|
|
if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { |
|
|
if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) { |
|
|
String tradeId = paramMap.get("tradeId"); |
|
|
String tradeId = paramMap.get("tradeId"); |
|
|
String deductionAmount = paramMap.get("deductionAmount"); |
|
|
String deductionAmount = paramMap.get("deductionAmount"); |
|
|
// TODO out wx_records id |
|
|
|
|
|
String outTradeNo = paramMap.get("outTradeNo"); |
|
|
|
|
|
String accountId = paramMap.get("accountId"); |
|
|
String accountId = paramMap.get("accountId"); |
|
|
|
|
|
String outTradeNo = paramMap.get("orderId"); |
|
|
if (StringUtils.isBlank(tradeId)) { |
|
|
if (StringUtils.isBlank(tradeId)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "tradeId为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "tradeId为空"); |
|
|
} |
|
|
} |
|
|
if (StringUtils.isBlank(deductionAmount)) { |
|
|
if (StringUtils.isBlank(deductionAmount)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "deductionAmount为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "deductionAmount为空"); |
|
|
} |
|
|
} |
|
|
if (StringUtils.isBlank(outTradeNo)) { |
|
|
|
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "outTradeNo为空"); |
|
|
|
|
|
} |
|
|
|
|
|
if (StringUtils.isBlank(accountId)) { |
|
|
if (StringUtils.isBlank(accountId)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "accountId为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "accountId为空"); |
|
|
} |
|
|
} |
|
|
|
|
|
if (StringUtils.isBlank(outTradeNo)) { |
|
|
|
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "orderId为空"); |
|
|
|
|
|
} |
|
|
String params = park.getVendorParams(); |
|
|
String params = park.getVendorParams(); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
String url = objParams.getString("url"); |
|
|
String url = objParams.getString("url"); |
|
|
@@ -517,19 +512,8 @@ public class WxCarController extends BaseController |
|
|
String key = objParams.getString("key"); |
|
|
String key = objParams.getString("key"); |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
String ret = tjd.deductionNotSettle(url, partner, key, version, tradeId, deductionAmount, outTradeNo, accountId); |
|
|
String ret = tjd.deductionNotSettle(url, partner, key, version, tradeId, deductionAmount, outTradeNo, accountId); |
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"timestamp": "1464235239561", |
|
|
|
|
|
"returnCode": "T", |
|
|
|
|
|
"errorMsg": "", |
|
|
|
|
|
"returnMsg": "OK", |
|
|
|
|
|
"isSuccess": "0", |
|
|
|
|
|
"carId": "5836b8b52ada463ebc6199579f029561" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
if (retObj.getString("returnCode") == "T") { |
|
|
// TODO remove carNumber |
|
|
|
|
|
return new ResultData(); |
|
|
return new ResultData(); |
|
|
} else { |
|
|
} else { |
|
|
return new ResultData(ErrorCode.TJD_DEDUCE_FEE_FAIL.getCode(), "停车费抵扣失败"); |
|
|
return new ResultData(ErrorCode.TJD_DEDUCE_FEE_FAIL.getCode(), "停车费抵扣失败"); |
|
|
@@ -538,76 +522,26 @@ public class WxCarController extends BaseController |
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费抵扣失败"); |
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费抵扣失败"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// 优免券模板 |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"id": 4974, //优免券模板 ID |
|
|
|
|
|
"parkId": "fbqXUlfVvfc=", //车场标识 |
|
|
|
|
|
"businessId": "ZcWQ26TeJuQ=", //商家标识 |
|
|
|
|
|
title -- "businessName": "天洋广场", //商家名称 |
|
|
|
|
|
subtitle -- "name": "商家 1 小时优免券", //优免券名称 |
|
|
|
|
|
"category": "1", //优免券类型 1:小时优惠券,2:金额优惠券,3:折扣优惠券,4:免费券 |
|
|
|
|
|
price -- "categoryValue": "1.00", //优免券价值 |
|
|
|
|
|
total -- "amount": 100000, //优免券数量 |
|
|
|
|
|
valid_start_date -- "effectiveStart": "2018-02-01", //生效开始时间 |
|
|
|
|
|
valid_end_date -- "effectiveEnd": "2028-02-01",//生效结束时间 |
|
|
|
|
|
-"couponType": "0",//优惠券类型 |
|
|
|
|
|
number 库存 -- "avaliavleNum": 99993 //可用优惠券 |
|
|
|
|
|
}, |
|
|
|
|
|
*/ |
|
|
|
|
|
@ApiOperation("优免券模板") |
|
|
|
|
|
@PostMapping("/quanTemplate") |
|
|
|
|
|
public ResultData quanTemplate(Map<String, String > paramMap) { |
|
|
|
|
|
WxCUser user = getUser(); |
|
|
|
|
|
/// 1, get mall's park |
|
|
|
|
|
WxPark park = getCurrentPark(user); |
|
|
|
|
|
if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) { |
|
|
|
|
|
String params = park.getVendorParams(); |
|
|
|
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
|
|
|
String url = objParams.getString("url"); |
|
|
|
|
|
String merchantNo = objParams.getString("merchantNo"); |
|
|
|
|
|
String merchantKey = objParams.getString("merchantKey"); |
|
|
|
|
|
String version = objParams.getString("version"); |
|
|
|
|
|
String parkId = objParams.getString("parkId"); |
|
|
|
|
|
// bussinessId from 参数信息 |
|
|
|
|
|
String businessId = paramMap.get("businessId"); |
|
|
|
|
|
if (StringUtils.isBlank(businessId)) { |
|
|
|
|
|
// TODO 1期只有一个虚拟商户,可以写在商场配置里 |
|
|
|
|
|
businessId = objParams.getString("businessId"); |
|
|
|
|
|
} |
|
|
|
|
|
String ret = etcp.getBCouponList(url, merchantNo, merchantKey, version, parkId, businessId); |
|
|
|
|
|
JSONObject retObj = JSON.parseObject(ret); |
|
|
|
|
|
if (retObj.getIntValue("code") == 0) { |
|
|
|
|
|
/* |
|
|
|
|
|
"data": { |
|
|
|
|
|
"count": 4, "couponPlatformModels": [ |
|
|
|
|
|
{ |
|
|
|
|
|
"id": 4974, //优免券模板 ID |
|
|
|
|
|
"parkId": "fbqXUlfVvfc=", //车场标识 "businessId": "ZcWQ26TeJuQ=", //商家标识 "businessName": "天洋广场", //商家名称 "name": "商家 1 小时优免券", //优免券名称 "category": "1", //优免券类型 |
|
|
|
|
|
1:小时优惠券,2:金额优惠券,3:折扣优惠券,4:免费券 "categoryValue": "1.00", //优免券价值 |
|
|
|
|
|
"amount": 100000, //优免券数量 |
|
|
|
|
|
"effectiveStart": "2018-02-01", //生效开始时间 |
|
|
|
|
|
"effectiveEnd": "2028-02-01",//生效结束时间 |
|
|
|
|
|
"couponType": "0",//优惠券类型 |
|
|
|
|
|
"avaliavleNum": 99993 //可用优惠券 |
|
|
|
|
|
}, |
|
|
|
|
|
{...}, |
|
|
|
|
|
{...} |
|
|
|
|
|
] |
|
|
|
|
|
*/ |
|
|
|
|
|
return new ResultData(retObj.getJSONObject("data")); |
|
|
|
|
|
} else { |
|
|
|
|
|
return new ResultData(ErrorCode.ETCP_QUAN_TEMP_FAIL.getCode(), "优免券模板未发现"); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
private String getETCPBusinessID(String merchantIdStr) { |
|
|
|
|
|
String businessId; |
|
|
|
|
|
Long merchantId = 0L; |
|
|
|
|
|
try { |
|
|
|
|
|
merchantId = Long.valueOf(merchantIdStr); |
|
|
|
|
|
} catch (NumberFormatException e) { |
|
|
|
|
|
logger.error(e.getMessage()); |
|
|
} |
|
|
} |
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券模板失败"); |
|
|
|
|
|
|
|
|
WxMerchant wxMerchant = wxMerchantService.getById(merchantId); |
|
|
|
|
|
String carParams = wxMerchant.getCarParams(); |
|
|
|
|
|
JSONObject objParams1 = JSON.parseObject(carParams); |
|
|
|
|
|
businessId = objParams1.getString("businessId"); |
|
|
|
|
|
return businessId; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* 优免券领取 |
|
|
* 优免券领取 |
|
|
* 优免券不可退 |
|
|
* 优免券不可退 |
|
|
*/ |
|
|
*/ |
|
|
@ApiOperation(value = "优免券领取", notes="ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\",\"couponFreeId\":\"string\"}") |
|
|
|
|
|
|
|
|
@ApiOperation(value = "优免券领取", notes="ETCP:={\"etcpToken\":\"string\",\"carNumber\":\"string\",\"couponFreeId\":\"string\"},输出\n{}") |
|
|
@PostMapping("/getCoupon") |
|
|
@PostMapping("/getCoupon") |
|
|
public ResultData getCoupon(Map<String, String > paramMap) { |
|
|
public ResultData getCoupon(Map<String, String > paramMap) { |
|
|
WxCUser user = getUser(); |
|
|
WxCUser user = getUser(); |
|
|
@@ -617,6 +551,7 @@ public class WxCarController extends BaseController |
|
|
String etcpToken = paramMap.get("etcpToken"); |
|
|
String etcpToken = paramMap.get("etcpToken"); |
|
|
String carNumber = paramMap.get("carNumber"); |
|
|
String carNumber = paramMap.get("carNumber"); |
|
|
String couponFreeId = paramMap.get("couponFreeId"); |
|
|
String couponFreeId = paramMap.get("couponFreeId"); |
|
|
|
|
|
String merchantIdStr = paramMap.get("merchantId"); |
|
|
if (StringUtils.isBlank(etcpToken)) { |
|
|
if (StringUtils.isBlank(etcpToken)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空"); |
|
|
} |
|
|
} |
|
|
@@ -629,6 +564,9 @@ public class WxCarController extends BaseController |
|
|
if (StringUtils.isBlank(couponFreeId)) { |
|
|
if (StringUtils.isBlank(couponFreeId)) { |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "couponFreeId为空"); |
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "couponFreeId为空"); |
|
|
} |
|
|
} |
|
|
|
|
|
if (StringUtils.isBlank(merchantIdStr)) { |
|
|
|
|
|
return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "merchantId为空"); |
|
|
|
|
|
} |
|
|
String params = park.getVendorParams(); |
|
|
String params = park.getVendorParams(); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
JSONObject objParams = JSON.parseObject(params); |
|
|
String url = objParams.getString("url"); |
|
|
String url = objParams.getString("url"); |
|
|
@@ -636,9 +574,11 @@ public class WxCarController extends BaseController |
|
|
String merchantKey = objParams.getString("merchantKey"); |
|
|
String merchantKey = objParams.getString("merchantKey"); |
|
|
String version = objParams.getString("version"); |
|
|
String version = objParams.getString("version"); |
|
|
String parkId = objParams.getString("parkId"); |
|
|
String parkId = objParams.getString("parkId"); |
|
|
String businessId = paramMap.get("businessId"); |
|
|
|
|
|
|
|
|
String businessId = ""; |
|
|
|
|
|
// 优先从从商户表里取 |
|
|
|
|
|
businessId = getETCPBusinessID(merchantIdStr); |
|
|
if (StringUtils.isBlank(businessId)) { |
|
|
if (StringUtils.isBlank(businessId)) { |
|
|
// TODO 1期只有一个虚拟商户,可以写在商场配置里 |
|
|
|
|
|
|
|
|
// 1期只有一个虚拟商户,可以写在商场配置里 |
|
|
businessId = objParams.getString("businessId"); |
|
|
businessId = objParams.getString("businessId"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@@ -653,116 +593,4 @@ public class WxCarController extends BaseController |
|
|
} |
|
|
} |
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败"); |
|
|
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败"); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// callback |
|
|
|
|
|
// ETCP 车辆入场通知 |
|
|
|
|
|
@RequestMapping(value = "/etcpParkInCallback") |
|
|
|
|
|
public Result etcpParkInCallback(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"synId": "4ebd80ff-cfcf-462a-94cb-727e9fa9547c", |
|
|
|
|
|
"plateNumber": "渝 ATX061", |
|
|
|
|
|
"parkName": "ETCP 智慧停车场", |
|
|
|
|
|
"parkId": "1", |
|
|
|
|
|
"entranceTime": "2017-08-20 12:59:54", |
|
|
|
|
|
"userType": "76", |
|
|
|
|
|
"pushTime": "2017-08-20 12:59:57", |
|
|
|
|
|
"fixParkingId": "U7", |
|
|
|
|
|
"remainingDays": "11" } |
|
|
|
|
|
*/ |
|
|
|
|
|
return new Result(0, "ok"); |
|
|
|
|
|
} |
|
|
|
|
|
// ETCP 车辆出场通知 |
|
|
|
|
|
@RequestMapping(value = "/etcpParkOutCallback") |
|
|
|
|
|
public Result etcpParkOutCallback(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"synId": "fd92f645-880e-4c2a-9d7d-7081a2488181", |
|
|
|
|
|
"plateNumber": "渝 ATX061", |
|
|
|
|
|
"parkName": "ETCP 智慧停车场", |
|
|
|
|
|
"parkId": "1", |
|
|
|
|
|
"entranceTime": "2017-08-17 18:44:19", |
|
|
|
|
|
"userType": "76", |
|
|
|
|
|
"pushTime": "2017-08-20 11:57:51", |
|
|
|
|
|
"exitTime": "2017-08-19 12:07:19", |
|
|
|
|
|
"stayedTime": 148980, |
|
|
|
|
|
"receivableFee": 0, |
|
|
|
|
|
"paidServiceFee": 0, |
|
|
|
|
|
"fixParkingId": "U7", |
|
|
|
|
|
"remainingDays": "12" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
return new Result(0, "ok"); |
|
|
|
|
|
} |
|
|
|
|
|
// ETCP 车辆解绑通知 |
|
|
|
|
|
@RequestMapping(value = "/etcpUnbindCarCallBack") |
|
|
|
|
|
public Result etcpUnbindCarCallBack(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"plateNumber": "渝 ATX061", |
|
|
|
|
|
"time": "2017-08-20 11:57:51" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
return new Result(0, "ok"); |
|
|
|
|
|
} |
|
|
|
|
|
// ETCP 主动支付结果通知 |
|
|
|
|
|
@RequestMapping(value = "/etcpPaidCallback") |
|
|
|
|
|
public Result etcpPaidCallback(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"plateNumber": "渝 ATX061", |
|
|
|
|
|
"orderId": "fd92f645-880e-4c2a-9d7d-7081a2488181", |
|
|
|
|
|
"fee": 7.65, |
|
|
|
|
|
"paidServiceFee": 0.07, |
|
|
|
|
|
"coupon": 0, |
|
|
|
|
|
"time": "2017-08-20 11:57:51" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
return new Result(0, "ok"); |
|
|
|
|
|
} |
|
|
|
|
|
// TJD 车辆入场通知 |
|
|
|
|
|
@RequestMapping(value = "/tjdParkInCallback") |
|
|
|
|
|
public Map tjdParkInCallback(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"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" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
Map map = new HashMap(); |
|
|
|
|
|
map.put("isSuccess", "0"); |
|
|
|
|
|
map.put("errorMsg", ""); |
|
|
|
|
|
return map; |
|
|
|
|
|
} |
|
|
|
|
|
// TJD 车辆出场通知 |
|
|
|
|
|
@RequestMapping(value = "/tjdParkoutCallback") |
|
|
|
|
|
public Map tjdParkOutCallback(@RequestParam Map<String,String> param) { |
|
|
|
|
|
/* |
|
|
|
|
|
{ |
|
|
|
|
|
"tradeId": "5836b8b52ada463ebc6199579f029565", |
|
|
|
|
|
"outDt": "20170319232020", |
|
|
|
|
|
"lon": "74.000272", |
|
|
|
|
|
"lat": "159.768703", |
|
|
|
|
|
"wLon": "123.523032", |
|
|
|
|
|
"wLat": "35.430735", |
|
|
|
|
|
"parkAmount": "5.20" |
|
|
|
|
|
} |
|
|
|
|
|
*/ |
|
|
|
|
|
Map map = new HashMap(); |
|
|
|
|
|
map.put("isSuccess", "0"); |
|
|
|
|
|
map.put("errorMsg", ""); |
|
|
|
|
|
return map; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |