|
- package com.simple.controller;
-
- import com.alibaba.fastjson.JSON;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.simple.common.ErrorCode;
- import com.simple.common.Result;
- import com.simple.common.ResultData;
- import com.simple.domain.po.*;
- import com.simple.enums.EnumCarVendor;
- import com.simple.service.WxCUserCarService;
- import com.simple.service.WxCarCmdLogsService;
- import com.simple.service.WxMerchantService;
- import com.simple.service.WxParkService;
- import com.simple.utils.ETCPUtil;
- import com.simple.utils.TJDCarUtil;
- import io.swagger.annotations.ApiImplicitParam;
- import io.swagger.annotations.ApiImplicitParams;
- import io.swagger.annotations.ApiOperation;
- import org.apache.commons.lang3.StringUtils;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
-
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
-
- @RestController
- @RequestMapping("/api/car")
- public class WxCarController extends BaseController
- {
- private Logger logger = Logger.getLogger(WxCarController.class);
-
- ETCPUtil etcp = new ETCPUtil();
-
- TJDCarUtil tjd = new TJDCarUtil();
-
- @Autowired
- WxParkService wxParkService;
-
- @Autowired
- WxCUserCarService wxCUserCarService;
-
- @Autowired
- WxMerchantService wxMerchantService;
-
- private WxPark getCurrentPark(WxCUser user) {
- WxPark wxPark = wxParkService.getByTenantId(user.getTenantId());
- // 1, get mall's park
- // future use redis to optimize
- return wxPark;
- }
-
- @ApiOperation(value = "获取车场支持的厂家",notes="")
- @GetMapping("/getVendor")
- public ResultData getVendor() {
- WxCUser user = getUser();
- // 1, get mall's park
- WxPark park = getCurrentPark(user);
- Map map = new HashMap();
- map.put("vendor", park.getVendorType());
- return new ResultData(map);
- }
-
- /**
- * 初始化/etcp共同登录
- * @param paramMap
- * @return
- */
- @ApiOperation(value = "初始化/etcp共同登录",notes="{\"phone\":\"string\"}")
- @PostMapping("/init")
- public ResultData init(Map<String, String > paramMap) {
- WxCUser user = getUser();
- // 1, get mall's park
- WxPark park = getCurrentPark(user);
- // 2. get vendor params
- if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
- String phone = paramMap.get("phone");
- if (StringUtils.isBlank(phone)) {
- logger.error("手机号为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "phone为空");
- }
- String params = park.getVendorParams();
- JSONObject objParams = JSON.parseObject(params);
- String url = objParams.getString("url");
- String appId = objParams.getString("appId");
- String merchantNo = objParams.getString("merchantNo");
- String merchantKey = objParams.getString("merchantKey");
- String version = objParams.getString("version");
-
- String ret = etcp.userSignin(url, appId, merchantNo, merchantKey, version, phone);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getIntValue("code") == 0) {
- // 获取绑定的车牌
- JSONObject dataObj = retObj.getJSONObject("data");
- String etcpToken = dataObj.getString("token");
- JSONObject dataObj1 = syncCarNumbers(user.getId(), user.getTenantId(), park.getVendorType(),
- url, merchantNo, merchantKey, version,
- etcpToken);
- // c端必须保存此token
- return new ResultData(dataObj1);
- } else {
- logger.error("共同登录失败: "+phone);
- return new ResultData(ErrorCode.ETCP_LOGIN_FAIL.getCode(), "共同登录失败");
- }
- } else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()){
- // TJD不需要共同登录
- return new ResultData();
- }
-
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "登录失败");
- }
-
- private JSONObject syncCarNumbers(Long cUserId, String tenantId, int iVendorType,
- String url, String merchantNo, String merchantKey, String version,
- String etcpToken) {
- String ret;
- JSONObject retObj;
- ret = etcp.carNum(url, merchantNo, merchantKey, version, etcpToken);
- /*{"code": 0,"msg": "ok","data": {"number": 3,"carList": ["晋 BMZ105","云 C12345"]}} */
- retObj = JSON.parseObject(ret);
- JSONObject dataObj1 = retObj.getJSONObject("data");
- dataObj1.put("vendor", iVendorType);
- JSONArray arr = dataObj1.getJSONArray("carList");
- WxCUserCar queryUserCar = new WxCUserCar();
- queryUserCar.setCUserId(cUserId);
- List<WxCUserCar> uclist = wxCUserCarService.getList(queryUserCar);
- // 删除ETCP不存在
- for(WxCUserCar userCar: uclist) {
- boolean bExist = isExistInArray(arr, userCar.getCarNumber());
- if (!bExist) {
- wxCUserCarService.deleteById(userCar.getId());
- uclist.remove(userCar);
- }
- }
- // 添加ETCP的
- for(int i=0;i<arr.size();i++) {
- String _carNum = arr.getString(i);
- boolean bExist = isExistInList(uclist, _carNum);
- if(!bExist) {
- Date curr = new Date();
- WxCUserCar userCar = new WxCUserCar();
- userCar.setCUserId(cUserId);
- userCar.setTenantId(tenantId);
- userCar.setCarNumber(_carNum);
- userCar.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
- userCar.setCreateDate(curr);
- userCar.setUpdateDate(curr);
- wxCUserCarService.saveOrUpdate(userCar);
- }
- }
- return dataObj1;
- }
-
- private boolean isExistInArray(JSONArray arr, String carNumber) {
- boolean bExist = false;
- for(int i=0;i<arr.size();i++) {
- // check carNum+cUserId是否存在, 不存在新建
- String _carNum = arr.getString(i);
-
- if (carNumber.equals(_carNum)) {
- bExist = true;
- break;
- }
- }
- return bExist;
- }
-
- private boolean isExistInList(List<WxCUserCar> list, String carNumber) {
- boolean bExist = false;
- for(WxCUserCar userCar: list) {
- if(carNumber.equals(userCar.getCarNumber())) {
- bExist = true;
- break;
- }
- }
- return bExist;
- }
-
- /**
- * 绑车牌
- * @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")
- @PostMapping("/bindCar")
- public ResultData bindCar(Map<String, String > paramMap) {
- WxCUser user = getUser();
- // 1, get mall's park
- WxPark park = getCurrentPark(user);
- // 2. get vendor params
- if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
- String etcpToken = paramMap.get("etcpToken");
- if (StringUtils.isBlank(etcpToken)) {
- logger.error("etcpToken为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空");
- }
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(carNumber)) {
- logger.error("carNumber为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- 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 ret = etcp.bindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber, null);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getIntValue("code") == 0) {
- // 插入车牌
- Date curr = new Date();
- WxCUserCar userCar = new WxCUserCar();
- userCar.setCUserId(user.getId());
- userCar.setTenantId(user.getTenantId());
- userCar.setCarNumber(carNumber);
- userCar.setVendorType(EnumCarVendor.CAR_ETCP.getCode());
- userCar.setCreateDate(curr);
- userCar.setUpdateDate(curr);
- wxCUserCarService.saveOrUpdate(userCar);
- JSONObject dataObj = retObj.getJSONObject("data");
- dataObj.put("vendor", park.getVendorType());
- return new ResultData(dataObj);
- } else {
- logger.error("绑车牌失败: " + carNumber);
- return new ResultData(ErrorCode.ETCP_BIND_FAIL.getCode(), "绑车牌失败");
- }
- }
- else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) {
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(carNumber)) {
- logger.error("carNumber为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- String carNumColor = paramMap.get("carNumColor");
- if (StringUtils.isBlank(carNumColor)) {
- logger.error("carNumColor为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumColor为空");
- }
- String outCarId = paramMap.get("outCarId");
- if (StringUtils.isBlank(outCarId)) {
- logger.error("outCarId为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "outCarId为空");
- }
- 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 ret = tjd.registerCar(url, partner, key, version,
- carNumber, carNumColor, null, outCarId);
- JSONObject retObj = JSON.parseObject(ret);
- retObj.put("vendor", park.getVendorType());
- if (retObj.getString("returnCode") == "T") {
- String carId = retObj.getString("carId");
- // 插入车牌
- Date curr = new Date();
- WxCUserCar userCar = new WxCUserCar();
- userCar.setCUserId(user.getId());
- userCar.setTenantId(user.getTenantId());
- userCar.setCarNumber(carNumber);
- userCar.setVendorType(EnumCarVendor.CAR_TJD.getCode());
- JSONObject jo = new JSONObject();
- jo.put("carId", carId);
- userCar.setVendorParams(JSON.toJSONString(jo));
- userCar.setCreateDate(curr);
- userCar.setUpdateDate(curr);
- wxCUserCarService.saveOrUpdate(userCar);
- return new ResultData(retObj);
- } else {
- return new ResultData(ErrorCode.TJD_BIND_FAIL.getCode(), "绑车牌失败", retObj);
- }
- }
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "绑车牌失败");
- }
-
- /**
- * 解绑车牌
- * @param paramMap
- * @return
- */
- @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")
- public ResultData unbindCar(Map<String, String > paramMap) {
- WxCUser user = getUser();
- // 1, get mall's park
- WxPark park = getCurrentPark(user);
- if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
- String etcpToken = paramMap.get("etcpToken");
- if (StringUtils.isBlank(etcpToken)) {
- logger.error("etcpToken为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空");
- }
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(carNumber)) {
- logger.error("carNumber为空");
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- 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 ret = etcp.unbindCar(url, merchantNo, merchantKey, version, etcpToken, carNumber);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getIntValue("code") == 0) {
- WxCUserCar userCar = new WxCUserCar();
- userCar.setCUserId(user.getId());
- userCar.setTenantId(user.getTenantId());
- userCar.setCarNumber(carNumber);
- wxCUserCarService.deleteByObj(userCar);
- return new ResultData();
- } else {
- logger.error("解绑车牌失败");
- return new ResultData(ErrorCode.ETCP_UNBIND_FAIL.getCode(), "解绑车牌失败");
- }
- }
- else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) {
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(carNumber)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- WxCUserCar queryOne = new WxCUserCar();
- queryOne.setCarNumber(carNumber);
- queryOne.setTenantId(user.getTenantId());
- queryOne.setCUserId(user.getId());
- WxCUserCar userCar = wxCUserCarService.getOne(queryOne);
- if (userCar != null) {
- String params = userCar.getVendorParams();
- JSONObject objParams = JSON.parseObject(params);
- String carId = objParams.getString("carId");
-
- params = park.getVendorParams();
- String url = objParams.getString("url");
- String partner = objParams.getString("partner");
- String key = objParams.getString("key");
- String version = objParams.getString("version");
- String ret = tjd.writeOffCar(url, partner, key, version, carId);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getString("returnCode") == "T") {
- wxCUserCarService.deleteByObj(userCar);
- return new ResultData();
- } else {
- return new ResultData(ErrorCode.TJD_UNBIND_FAIL, "解绑车牌失败");
- }
- }
-
- }
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "解绑车牌失败");
- }
-
- /**
- * 停车费
- * @param paramMap
- * @return
- */
- @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")
- public ResultData getCarStopFee(Map<String, String > paramMap) {
- WxCUser user = getUser();
- // 1, get mall's park
- WxPark park = getCurrentPark(user);
- if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
- String etcpToken = paramMap.get("etcpToken");
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(etcpToken)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空");
- }
- if (StringUtils.isBlank(carNumber)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- String params = park.getVendorParams();
- JSONObject objParams = JSON.parseObject(params);
- String url = objParams.getString("url");
- String appId = objParams.getString("appId");
- String merchantNo = objParams.getString("merchantNo");
- String merchantKey = objParams.getString("merchantKey");
- String version = objParams.getString("version");
-
- String ret = etcp.orderUnpay(url, appId, merchantNo, merchantKey, version, etcpToken, carNumber);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getIntValue("code") == 0) {
- JSONObject feeObj = retObj.getJSONArray("data").getJSONObject(0);
- feeObj.put("vendor", park.getVendorType());
- return new ResultData(Result.SUCCESS, "停车费获取成功", feeObj);
- } else {
- return new ResultData(ErrorCode.ETCP_STOP_FEE_FAIL.getCode(), "停车费获取失败");
- }
- }
- else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) {
- String carNumber = paramMap.get("carNumber");
- if (StringUtils.isBlank(carNumber)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- 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 ret = tjd.infoForFreeMins(url, partner, key, version, carNumber);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getString("returnCode") == "T") {
- return new ResultData(retObj);
- } else {
- return new ResultData(ErrorCode.TJD_STOP_FEE_FAIL.getCode(), "停车费获取失败");
- }
- }
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费获取失败");
- }
-
- /**
- * 停车费抵扣
- *
- */
- @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")
- public ResultData deductionFee(Map<String, String > paramMap) {
- WxCUser user = getUser();
- /// 1, get mall's park
- WxPark park = getCurrentPark(user);
- if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) {
- String tradeId = paramMap.get("tradeId");
- String deductionAmount = paramMap.get("deductionAmount");
- String accountId = paramMap.get("accountId");
- String outTradeNo = paramMap.get("orderId");
- if (StringUtils.isBlank(tradeId)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "tradeId为空");
- }
- if (StringUtils.isBlank(deductionAmount)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "deductionAmount为空");
- }
- if (StringUtils.isBlank(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();
- 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 ret = tjd.deductionNotSettle(url, partner, key, version, tradeId, deductionAmount, outTradeNo, accountId);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getString("returnCode") == "T") {
- return new ResultData();
- } else {
- return new ResultData(ErrorCode.TJD_DEDUCE_FEE_FAIL.getCode(), "停车费抵扣失败");
- }
- }
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "停车费抵扣失败");
- }
-
- private String getETCPBusinessID(String merchantIdStr) {
- String businessId;
- Long merchantId = 0L;
- try {
- merchantId = Long.valueOf(merchantIdStr);
- } catch (NumberFormatException e) {
- logger.error(e.getMessage());
- }
- 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\"},输出\n{}")
- @PostMapping("/getCoupon")
- public ResultData getCoupon(Map<String, String > paramMap) {
- WxCUser user = getUser();
- /// 1, get mall's park
- WxPark park = getCurrentPark(user);
- if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
- String etcpToken = paramMap.get("etcpToken");
- String carNumber = paramMap.get("carNumber");
- String couponFreeId = paramMap.get("couponFreeId");
- String merchantIdStr = paramMap.get("merchantId");
- if (StringUtils.isBlank(etcpToken)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "etcpToken为空");
- }
- if (StringUtils.isBlank(carNumber)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- if (StringUtils.isBlank(carNumber)) {
- return new ResultData(ErrorCode.PARAMETER_NOT_NULL.getCode(), "carNumber为空");
- }
- if (StringUtils.isBlank(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();
- 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");
- String businessId = "";
- // 优先从从商户表里取
- businessId = getETCPBusinessID(merchantIdStr);
- if (StringUtils.isBlank(businessId)) {
- // 1期只有一个虚拟商户,可以写在商场配置里
- businessId = objParams.getString("businessId");
- }
-
- String ret = etcp.bCouponRecord(url, merchantNo, merchantKey, version,
- etcpToken, parkId, businessId, carNumber, couponFreeId);
- JSONObject retObj = JSON.parseObject(ret);
- if (retObj.getIntValue("code") == 0) {
- return new ResultData();
- } else {
- return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), "优免券领取失败");
- }
- }
- return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败");
- }
- }
|