Просмотр исходного кода

[停车][新增]:尚安停车接口及停简单接口整理

release_toaliyun_real
Stormeye Wu 6 лет назад
Родитель
Сommit
7246fa7ba5
6 измененных файлов: 100 добавлений и 16 удалений
  1. +44
    -5
      mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java
  2. +2
    -0
      mallinkService/src/main/java/com/iformall/common/ErrorCode.java
  3. +1
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCarVendor.java
  4. +37
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumCouponUnit.java
  5. +9
    -2
      mallinkService/src/main/java/com/iformall/utils/car/ShangAnUtil.java
  6. +7
    -9
      mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java

+ 44
- 5
mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java Просмотреть файл

@@ -15,12 +15,14 @@ import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.utils.car.DaHuaUtil; import com.iformall.utils.car.DaHuaUtil;
import com.iformall.utils.car.ETCPUtil; import com.iformall.utils.car.ETCPUtil;
import com.iformall.utils.car.ShangAnUtil;
import com.iformall.utils.car.TJDUtil; import com.iformall.utils.car.TJDUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.jni.Error;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -698,8 +700,11 @@ public class WxCarController extends BaseController {
* 优免券领取 * 优免券领取
* 优免券不可退 * 优免券不可退
*/ */
@ApiOperation(value = "停车券使用", notes = "ETCP:={\"etcpToken\":\"string(ETCP专用)\",\"carNumber\":\"string\",\"couponOrderId\"=\"String\"},输出\n{}\n" +
"TJD:{\"carNumber\":\"string\",\"tradeId\":\"string\",\"accountId\":\"string\",\"couponOrderId\":\"string\"}")
@ApiOperation(value = "停车券使用",
notes = "ETCP:={\"etcpToken\":\"string(ETCP专用)\",\"carNumber\":\"string\",\"couponOrderId\"=\"String\"},输出\n{}\n" +
"TJD:{\"carNumber\":\"string\",\"tradeId\":\"string\",\"accountId\":\"string\",\"couponOrderId\":\"string\"}" +
"ShangAn:{\"carNumber\":\"string\",\"couponOrderId\":\"string\"}"
)
@PostMapping("/getCoupon") @PostMapping("/getCoupon")
public ResultData getCoupon(@RequestBody Map<String, String> paramMap) { public ResultData getCoupon(@RequestBody Map<String, String> paramMap) {
/// 1, get mall's park /// 1, get mall's park
@@ -731,7 +736,7 @@ public class WxCarController extends BaseController {
userCar = list.get(0); userCar = list.get(0);
} }


if (park.getVendorType() == EnumCarVendor.CAR_ETCP.getCode()) {
if (park.getVendorType().equals(EnumCarVendor.CAR_ETCP.getCode())) {
String etcpToken = paramMap.get("etcpToken"); String etcpToken = paramMap.get("etcpToken");
if (StringUtils.isBlank(etcpToken)) { if (StringUtils.isBlank(etcpToken)) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "etcpToken为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "etcpToken为空");
@@ -783,7 +788,7 @@ public class WxCarController extends BaseController {
} else { } else {
return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), retObj.getString("message")); return new ResultData(ErrorCode.ETCP_QUAN_SEND_FAIL.getCode(), retObj.getString("message"));
} }
} else if (park.getVendorType() == EnumCarVendor.CAR_TJD.getCode()) {
} else if (park.getVendorType().equals(EnumCarVendor.CAR_TJD.getCode())) {
String tradeId = paramMap.get("tradeId"); String tradeId = paramMap.get("tradeId");
String accountId = paramMap.get("accountId"); String accountId = paramMap.get("accountId");
if (StringUtils.isBlank(tradeId)) { if (StringUtils.isBlank(tradeId)) {
@@ -803,14 +808,48 @@ public class WxCarController extends BaseController {
String key = objParams.getString(TJDUtil.TJD_ACCOUNT_KEY); String key = objParams.getString(TJDUtil.TJD_ACCOUNT_KEY);
String version = objParams.getString(TJDUtil.TJD_VERSION); String version = objParams.getString(TJDUtil.TJD_VERSION);


String amount = "";
if (coupon.getUnit().equals(EnumCouponUnit.MONEY.getCode())) {
amount = coupon.getPriceStr();
} else {
amount = String.valueOf(coupon.getPrice()* 60);
}

String ret = tjd.deductionForDetail(url, partner, key, version, String ret = tjd.deductionForDetail(url, partner, key, version,
tradeId, accountId, userCar, coupon);
tradeId, accountId, String.valueOf(userCar.getId()),
coupon.getUnit().toString(), amount);
JSONObject retObj = JSON.parseObject(ret); JSONObject retObj = JSON.parseObject(ret);
if (retObj.getString(TJDUtil.TJD_RETURN_CODE).equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) { if (retObj.getString(TJDUtil.TJD_RETURN_CODE).equalsIgnoreCase(EnumTJDCode.SUCCESS.getMessage())) {
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(), "停车费抵扣失败");
} }
} else if (park.getVendorType().equals(EnumCarVendor.CAR_SHANGAN.getCode())) {
WxCoupon coupon = couponService.getById(userCar.getCouponId());
if (coupon == null) {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "券为空");
}
String params = park.getVendorParams();
JSONObject objParams = JSON.parseObject(params);
String url = objParams.getString(ShangAnUtil.SHANGAN_URL);
String key = objParams.getString(ShangAnUtil.SHANGAN_KEY);
String parkNumber = objParams.getString(ShangAnUtil.SHANGAN_PARK_NUMBER);

String couponModelId = coupon.getUnit().toString();
String position = "";
if (coupon.getUnit().equals(EnumCouponUnit.MONEY.getCode())) {
position = coupon.getPrice().toString();
} else {
position = String.valueOf(coupon.getPrice()* 60);
}

String ret = ShangAnUtil.couponSend(url, key, parkNumber, couponModelId, userCar.getExpiredTime(), carNumber, position);
JSONObject retObj = JSON.parseObject(ret);
if (retObj.getString(ShangAnUtil.SHANGAN_STATUS).equalsIgnoreCase(ShangAnUtil.SHANGAN_SUCCESS)) {
return new ResultData();
} else {
return new ResultData(ErrorCode.SHANGAN_COUPON_FAIL.getCode(), retObj.getString(ShangAnUtil.SHANGAN_ERROR_CODE));
}
} }
return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败"); return new ResultData(ErrorCode.CAR_VENDOR_NOT_SUPPORT.getCode(), "优免券领取失败");
} }


+ 2
- 0
mallinkService/src/main/java/com/iformall/common/ErrorCode.java Просмотреть файл

@@ -156,6 +156,8 @@ public enum ErrorCode{
TJD_STOP_FEE_FAIL(2062, "TJD停车费失败"), TJD_STOP_FEE_FAIL(2062, "TJD停车费失败"),
TJD_DEDUCE_FEE_FAIL(2063, "TJD停车费抵扣失败"), TJD_DEDUCE_FEE_FAIL(2063, "TJD停车费抵扣失败"),


SHANGAN_COUPON_FAIL(2070, "优惠券失败"),



/** /**
* 游戏 * 游戏


+ 1
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCarVendor.java Просмотреть файл

@@ -10,6 +10,7 @@ public enum EnumCarVendor {
CAR_ETCP(1, "ETCP"), CAR_ETCP(1, "ETCP"),
CAR_TJD(2, "TJD"), CAR_TJD(2, "TJD"),
CAR_DAHUA(3, "DAHUA"), CAR_DAHUA(3, "DAHUA"),
CAR_SHANGAN(4, "ShangAn"),
; ;


public static EnumCarVendor getEnum(Integer code) { public static EnumCarVendor getEnum(Integer code) {


+ 37
- 0
mallinkService/src/main/java/com/iformall/enums/EnumCouponUnit.java Просмотреть файл

@@ -0,0 +1,37 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumCouponUnit {

// 0:rmb分 1:小时
MONEY(0, "单位:分(人民币)"),
HOUR(1, "单位;小时")
;

public static EnumCouponUnit getEnum(Integer code) {
for (EnumCouponUnit value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumCouponUnit(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 9
- 2
mallinkService/src/main/java/com/iformall/utils/car/ShangAnUtil.java Просмотреть файл

@@ -28,16 +28,23 @@ import java.util.Map;
* 尚安停车 * 尚安停车
*/ */
public class ShangAnUtil { public class ShangAnUtil {

private final static Logger logger = LoggerFactory.getLogger(ShangAnUtil.class); private final static Logger logger = LoggerFactory.getLogger(ShangAnUtil.class);


public static final String SHANGAN_URL = "url";
public static final String SHANGAN_KEY = "key";
public static final String SHANGAN_PARK_NUMBER = "parkNumber";

public static final String KEY = "NzMFFDDJDIFACACCM2zAezDz"; public static final String KEY = "NzMFFDDJDIFACACCM2zAezDz";


public static final String PARK_NUMBER = "p190829183435"; public static final String PARK_NUMBER = "p190829183435";


public static final String URL = "http://www.p-share.com/shangan-yhq/web/api/outcoupon"; public static final String URL = "http://www.p-share.com/shangan-yhq/web/api/outcoupon";


public static final String SUCCESS = "success";
public static final String SHANGAN_STATUS = "status";
public static final String SHANGAN_SUCCESS = "success";
public static final String SHANGAN_FAIL = "fail";
public static final String SHANGAN_ERROR_CODE = "errorCode";



public static final SimpleDateFormat dateInFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); public static final SimpleDateFormat dateInFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");




+ 7
- 9
mallinkService/src/main/java/com/iformall/utils/car/TJDUtil.java Просмотреть файл

@@ -3,8 +3,7 @@ package com.iformall.utils.car;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.iformall.domain.po.WxCoupon;
import com.iformall.domain.po.WxCouponOrder;
import com.iformall.enums.EnumCouponUnit;
import com.iformall.utils.MapUtil; import com.iformall.utils.MapUtil;
import org.apache.http.Consts; import org.apache.http.Consts;
import org.apache.http.HttpEntity; import org.apache.http.HttpEntity;
@@ -378,7 +377,7 @@ public class TJDUtil {
public static String deductionForDetail( public static String deductionForDetail(
String url, String partner, String key, String version, String url, String partner, String key, String version,
String tradeId, String accountId, String tradeId, String accountId,
WxCouponOrder couponOrder, WxCoupon coupon) {
String couponOrderId, String couponType, String reduceAmount) {
// 为指定订单抵扣停车费,如果此时车辆已经出场,返回isSuccess错误码为3,停简单系统不再接收此笔抵扣信息,对方系统 需要给用户发起退款。 // 为指定订单抵扣停车费,如果此时车辆已经出场,返回isSuccess错误码为3,停简单系统不再接收此笔抵扣信息,对方系统 需要给用户发起退款。
String service = "parkhub.order.deductionForDetail"; String service = "parkhub.order.deductionForDetail";
Map<String, String> paramMap = MapUtil.getOrderMap(); Map<String, String> paramMap = MapUtil.getOrderMap();
@@ -388,17 +387,16 @@ public class TJDUtil {


JSONArray detailArr = new JSONArray(); JSONArray detailArr = new JSONArray();
JSONObject detailObj = new JSONObject(); JSONObject detailObj = new JSONObject();
detailObj.put(TJD_OUT_TRADE_NO, String.valueOf(couponOrder.getId()));
detailObj.put(TJD_OUT_TRADE_NO, couponOrderId);
detailObj.put(TJD_TYPE, TJD_TYPE_COUPON); detailObj.put(TJD_TYPE, TJD_TYPE_COUPON);
detailObj.put(TJD_CHANNEL, "2204"); detailObj.put(TJD_CHANNEL, "2204");
String memo = "会员优惠券"; String memo = "会员优惠券";
if (coupon.getUnit().equals(0)) {
detailObj.put(TJD_COUPON_TYPE, "0");
detailObj.put(TJD_AMOUNT, coupon.getPriceStr());
detailObj.put(TJD_COUPON_TYPE, couponType);
if (couponType.equals(String.valueOf(EnumCouponUnit.MONEY.getCode()))) {
detailObj.put(TJD_AMOUNT, reduceAmount);
memo += "-金额"; memo += "-金额";
} else { } else {
detailObj.put(TJD_COUPON_TYPE, "1");
detailObj.put(TJD_MINUTES, String.valueOf(coupon.getPrice()*60));
detailObj.put(TJD_MINUTES, reduceAmount);
memo += "-时长"; memo += "-时长";
} }
detailObj.put(TJD_MEMO, memo); detailObj.put(TJD_MEMO, memo);


Загрузка…
Отмена
Сохранить