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

Merge branch 'release_toaliyun_real' of https://git.malls.iformall.com/server/formallProject into release_toaliyun_real

release_toaliyun_real
xhxu 4 лет назад
Родитель
Сommit
4497af3409
10 измененных файлов: 133 добавлений и 4 удалений
  1. +15
    -3
      mallinkCApi/src/main/java/com/iformall/controller/WxCarController.java
  2. +6
    -0
      mallinkService/src/main/java/com/iformall/service/park/ParkAdapterService.java
  3. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/bolink/BoLinkParkService.java
  4. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/cyf/CYFParkService.java
  5. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/dahua/DaHuaParkService.java
  6. +41
    -1
      mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishi/HaiKangWeiShiParkService.java
  7. +41
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishi/HaiKangWeiShiUtil.java
  8. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java
  9. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/shangan/ShangAnParkService.java
  10. +5
    -0
      mallinkService/src/main/java/com/iformall/service/park/impl/tjd/TJDParkService.java

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

@@ -367,8 +367,9 @@ public class WxCarController extends BaseController {
return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "券为空");
}
try {
if (null == used || (null != used && used.intValue() < 1)) {
ResultData rs = parkFactory.getParkService(park.getVendorType()).useCoupon(paramMap, park, userCar, coupon, carNumber);
boolean ignoreUseCouponCache = parkFactory.getParkService(park.getVendorType()).ignoreUseCouponCache();
if (ignoreUseCouponCache) {
ResultData rs = parkFactory.getParkService(park.getVendorType()).useCoupon(paramMap, park, userCar, coupon, carNumber);
if (rs.code == Result.SUCCESS) {
etcpHelper.updateWxCouponOrderUsed(userCar, park);
ParkCacheUtils.setCarCouponUsedCacheLock(redisTemplate, vendor.getMessage(), carNumber);
@@ -376,8 +377,19 @@ public class WxCarController extends BaseController {
}else {
return new ResultData(rs.code,rs.message);
}
}else {
if (null == used || (null != used && used.intValue() < 1)) {
ResultData rs = parkFactory.getParkService(park.getVendorType()).useCoupon(paramMap, park, userCar, coupon, carNumber);
if (rs.code == Result.SUCCESS) {
etcpHelper.updateWxCouponOrderUsed(userCar, park);
ParkCacheUtils.setCarCouponUsedCacheLock(redisTemplate, vendor.getMessage(), carNumber);
return new ResultData();
}else {
return new ResultData(rs.code,rs.message);
}
}
return new ResultData(Result.ERROR,"已经使用过优惠券, 不能重复使用.");
}
return new ResultData(Result.ERROR,"已经使用过优惠券, 不能重复使用.");
} catch (Exception e) {
logger.error("park getCoupon error",e);
return new ResultData(Result.ERROR,e.getMessage());


+ 6
- 0
mallinkService/src/main/java/com/iformall/service/park/ParkAdapterService.java Просмотреть файл

@@ -45,6 +45,12 @@ public interface ParkAdapterService {
*/
ResultData carStopFee(Map<String, String> paramMap, WxPark park) throws Exception;
/**
* 是否忽略使用券缓存,不忽略,则走系统,根据停车场出入场通知来控制。忽略,则不需要此判断来判定停车券是否已经使用
* @return
*/
boolean ignoreUseCouponCache();
/**
* 停车券使用, 给老的集成用
*/


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/bolink/BoLinkParkService.java Просмотреть файл

@@ -109,6 +109,11 @@ public class BoLinkParkService extends BaseParkService implements ParkAdapterSer
return null;
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}



}

+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/cyf/CYFParkService.java Просмотреть файл

@@ -195,4 +195,9 @@ public class CYFParkService extends BaseParkService implements ParkAdapterServic
return new ResultData();
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}

}

+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/dahua/DaHuaParkService.java Просмотреть файл

@@ -72,4 +72,9 @@ public class DaHuaParkService extends BaseParkService implements ParkAdapterServ
return new ResultData();
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}

}

+ 41
- 1
mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishi/HaiKangWeiShiParkService.java Просмотреть файл

@@ -186,13 +186,48 @@ public class HaiKangWeiShiParkService extends BaseParkService implements ParkAda
if (null == valueMap) {
return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"当前停车券没有关联停车场优惠券配置。"+coupon.getTitle());
}
String orderNo = paramMap.get("parkOrderId");
String planNo = valueMap.get("couponNo");
if (StringUtils.isBlank(planNo)) {
return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"当前停车券没有关联停车场优惠券配置[planNo]。"+coupon.getTitle());
return new ResultData(ErrorCode.COUPON_IS_EMPTY.getCode(),"当前停车券没有关联停车场优惠券配置[ruleId]。"+coupon.getTitle());
}
//查询临停信息,判断缓存是否已经存在
String inRecordSyscode = "";
JSONObject stopInfo = haikang.getCarStopInfo(park, getCacheToken(park), haikang.getAuthorization(park,getCacheToken(park)), carNumber);
if (stopInfo.getString("code").equals("0")){
JSONObject dataobject = stopInfo.getJSONObject("data");
if (null == dataobject) {
return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "当前未查询海康威视临停信息["+carNumber+"]");
}
JSONArray listobject = dataobject.getJSONArray("list");
if (null == listobject || listobject.size() <= 0 ) {
return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "当前未查询海康威视临停信息["+carNumber+"]");
}
JSONObject currentStopInfo = listobject.getJSONObject(0);
inRecordSyscode = currentStopInfo.getString("inRecordSyscode");
if (StringUtils.isBlank(inRecordSyscode)) {
return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "当前未查询海康威视临停信息["+carNumber+"]");
}
Integer used = RedisCacheUtils.getCacheInteger(redisTemplate, "carStop:haikangStopInfoUseCoupon:"+carNumber+":"+inRecordSyscode);
if (null == used || (null != used && used.intValue() < 1) ) {
//do nothing
}else {
return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "已经使用过优惠券, 不能重复使用.");
}
}else {
logger.error("haikangweishi stopInfo error. paramMap: {} . haikangResult: {}",JSON.toJSONString(paramMap),stopInfo);
String msg = stopInfo.getString("msg");
return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "当前查询海康威视临停信息失败:["+stopInfo.getString("code")+"]"+msg);
}
JSONObject retObj = haikang.useCoupon(park,planNo,carNumber,orderNo, getCacheToken(park),haikang.getAuthorization(park,getCacheToken(park)));
if (retObj.getString("code").equals("0")){
RedisCacheUtils.cache(redisTemplate, "carStop:haikangStopInfoUseCoupon:"+carNumber+":"+inRecordSyscode, 1, 24*3600);
return new ResultData();
}else {
logger.error("haikangweishi useCoupon error. paramMap: {} . haikangResult: {}",JSON.toJSONString(paramMap),retObj);
@@ -205,6 +240,11 @@ public class HaiKangWeiShiParkService extends BaseParkService implements ParkAda
public ResultData getParkStatus(WxPark park) throws Exception{
return new ResultData();
}

@Override
public boolean ignoreUseCouponCache() {
return true;
}

}

+ 41
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishi/HaiKangWeiShiUtil.java Просмотреть файл

@@ -61,6 +61,7 @@ public class HaiKangWeiShiUtil {
public static final String GET_FEE = "https://open.hikyun.com/artemis/api/pmsc/v1/pay/quickGetVehicleBill";
public static final String COUPON_USE = "https://open.hikyun.com/artemis/api/pmsc/v1/coupon/addition";
public static final String SUBSCRIPTION = "https://open.hikyun.com/artemis/api/pmsc/v1/sub/subscription";
public static final String CAR_STOP_INFO = "https://open.hikyun.com/artemis/api/pmsc/v1/tempCarInRecords/page";

/**
@@ -211,6 +212,45 @@ public class HaiKangWeiShiUtil {
return attribute;
}
/**
* 3.5.7 查询停车信息
*
* "inRecordSyscode": "h45h45h45ghhn45tg245g45r",
"parkId": "6534543543554",
"parkName": "停车库 1",
"plateNo": "浙 A12345",
"plateNoPicId": "hj53h4h45t45t45t3t234t2t2t45t45t",
"vehiclePicId": "u65h45g45yh56y54y34y34y345y3"
"inTime": "2018-07-26T15:00:00+08:00",
"parkTime": "3 小时 10 分钟"
*/
public JSONObject getCarStopInfo(WxPark wxPark,String token,String Authrozitaion,String carNumber) {
String vendroParams = wxPark.getVendorParams();
JSONObject vp = JSON.parseObject(vendroParams);
Map<String,Object> params = new HashMap<String,Object>();
params.put("pageNo", 1);
params.put("pageSize", 1);
params.put("parkId", wxPark.getParkingId());//商户编号
params.put("plateNo", carNumber);
String retCode = ProcBussiness(CAR_STOP_INFO, params,token,Authrozitaion);
if (StringUtils.isBlank(retCode)) {
throw new MallinkException(ErrorCode.SYS_SERVER_ERROR.getCode(), "haikang getCarStopInfo error. has no result");
}
JSONObject result = JSON.parseObject(retCode);
Integer errStatus = result.getInteger("status");
if (null != errStatus) {
throw new MallinkException(errStatus,"haikang getCarStopInfo error.["+result.getString("error")+"]"+result.getString("message"));
}
if (!result.getString("code").equals("0") ) {
String message = result.getString("msg");
throw new MallinkException(result.getInteger("code"), "haikang getCarStopInfo error."+message);
}
return result;
}
/**
* 2、有优惠券方式
发优惠券的时候是会返回一个优惠券id(3.5.9.1),
@@ -223,6 +263,7 @@ public class HaiKangWeiShiUtil {
public JSONObject useCoupon(WxPark wxPark,String couponNo,String carNumber,String orderNo,String token,String Authrozitaion){
String vendroParams = wxPark.getVendorParams();
JSONObject vp = JSON.parseObject(vendroParams);
Map<String,Object> params = new HashMap<String,Object>();
Map couponmap = new HashMap();
couponmap.put("plateNo", carNumber);


+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/jieshun/JieShunParkService.java Просмотреть файл

@@ -334,4 +334,9 @@ public class JieShunParkService extends BaseParkService implements ParkAdapterSe
return new ResultData();
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}

}

+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/shangan/ShangAnParkService.java Просмотреть файл

@@ -90,4 +90,9 @@ public class ShangAnParkService extends BaseParkService implements ParkAdapterSe
public ResultData getParkStatus(WxPark park) {
return null;
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}
}

+ 5
- 0
mallinkService/src/main/java/com/iformall/service/park/impl/tjd/TJDParkService.java Просмотреть файл

@@ -254,4 +254,9 @@ public class TJDParkService extends BaseParkService implements ParkAdapterServic
public ResultData getParkStatus(WxPark park) {
return null;
}

@Override
public boolean ignoreUseCouponCache() {
return false;
}
}

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