Commit 5554c9b6 by xieshixiang

增加提示

parent 42af403e
......@@ -29,14 +29,14 @@ public interface IBindService extends IService<ParkBindInfo> {
* @author: xsx
* @date: 2020/6/19 10:32
*/
Response bind( ParkBindInfo info);
Result bind( ParkBindInfo info);
/**
* 信息解绑
* @param req
* @return
*/
Response unbindInfo( UnBindReq req );
Result unbindInfo( UnBindReq req );
/**
* 查询用户绑定信息
......@@ -51,7 +51,7 @@ public interface IBindService extends IService<ParkBindInfo> {
* @param query
* @return
*/
Response yearCheckInfo( H5BindInfoQuery query);
Result yearCheckInfo( H5BindInfoQuery query);
/**
* 保险信息查询接口
......@@ -68,7 +68,7 @@ public interface IBindService extends IService<ParkBindInfo> {
* @author: xsx
* @date: 2020/6/19 16:06
*/
Response violationInfo( H5BindInfoQuery query);
Result violationInfo( H5BindInfoQuery query);
/**
* 驾照信息查询接口
......@@ -78,6 +78,6 @@ public interface IBindService extends IService<ParkBindInfo> {
* @author: xsx
* @date: 2020/6/19 16:29
*/
Response<DrivingLicenseInfoRes> drivingLicenseInfo( H5BindInfoQuery query);
Result<DrivingLicenseInfoRes> drivingLicenseInfo( H5BindInfoQuery query);
}
......@@ -5,9 +5,6 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hikcreate.common.sdk.response.apiparam.Response;
import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator;
import com.hikcreate.common.sdk.response.statuscode.StatusCode;
import com.hikcreate.edl.common.distributed.lock.annotation.DistributedLock;
import com.hikcreate.edl.pub.web.mobile.domain.IBindService;
import com.hikcreate.edl.pub.web.mobile.infra.core.Result.Result;
......@@ -92,15 +89,16 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Override
@Transactional(rollbackFor = Exception.class)
@DistributedLock(key = "'park:extend:lock:bind:userId:'+#info.userId+':timestamp:'+#info.timestamp", expireTime = 3000, waitTime = 2000, retryTimes = 50)
public Response bind(ParkBindInfo info) {
@DistributedLock(key = "'park:extend:lock:bind:userId:'+#info.userId+':timestamp:'+#info.timestamp", expireTime =
3000, waitTime = 2000, retryTimes = 50)
public Result bind(ParkBindInfo info) {
//判断规则1:用户已绑定的车辆不超过3辆,包括已解绑但未过一个月的车辆
QueryWrapper<ParkBindInfo> boundQuery = new QueryWrapper();
boundQuery.eq("user_id", info.getUserId());
boundQuery.eq("status", "1");
List<ParkBindInfo> list = mapper.selectList(boundQuery);
if (list != null && list.size() >= 3) {
return ResponseGenerator.fail(StatusCode.BUSINESS_ERROR, "同一用户下,最多绑定3辆车");
return ResultGenerator.fail(ResultCode.BIND_NUM_ERROR);
}
/**
* 规则:30天内,同一客户解绑超过10次不能再进行绑定
......@@ -111,14 +109,14 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
unbindQuery.eq("status", "0");
Integer integer = mapper.selectCount(unbindQuery);
if (integer >= unBindCount) {
return ResponseGenerator.fail(StatusCode.BUSINESS_ERROR, StrUtil.format("{}天内,同一用户解绑超过{}次不能再进行绑定", unBindTime/24, unBindCount));
return ResultGenerator.fail(StrUtil.format("{}天内,同一用户解绑超过{}次不能再进行绑定", unBindTime / 24, unBindCount));
}
//规则:一个客户只能绑定一个电话号码
if (list != null && !list.isEmpty()) {
boolean equals = list.get(0).getPhone().equals(info.getPhone());
if (!equals) {
return ResponseGenerator.fail(StatusCode.BUSINESS_ERROR, "当前客户手机号与历史绑定手机号不一致");
return ResultGenerator.fail("当前客户手机号与历史绑定手机号不一致");
}
}
......@@ -130,7 +128,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
if (phones != null && !phones.isEmpty()) {
boolean phoneExist = phones.get(0).getUserId().equals(info.getUserId());
if (!phoneExist) {
return ResponseGenerator.fail(StatusCode.BUSINESS_ERROR, "当前手机号已被其他客户绑定");
return ResultGenerator.fail("当前手机号已被其他客户绑定");
}
}
......@@ -140,7 +138,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
req.setPlateNum(info.getPlateNum());
List<VehicleRes> byPlateNum = vechicleCache.getByPlateNum(req);
if (byPlateNum == null || byPlateNum.size() == 0) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "车辆信息不存在");
return ResultGenerator.fail(ResultCode.CAR_MESSAGE_UNKNOWN);
}
for (VehicleRes res : byPlateNum) {
......@@ -149,7 +147,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
}
}
if (info.getPlateType() == null || "".equals(info.getPlateType())) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "当前手机号,与车辆备案手机号不一致");
return ResultGenerator.fail(ResultCode.CAR_PHONE_UNMATCHED);
}
//规则3:判断当前车牌号是否已绑定
......@@ -159,14 +157,14 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
queryWrapper.eq("status", "1");
ParkBindInfo bindExist = mapper.selectOne(queryWrapper);
if (bindExist != null) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "此车牌号已绑定");
return ResultGenerator.fail(ResultCode.CAR_HAVE_BIND);
}
info.setUnqId(unqIdUtil.getUnqId());
info.setGmtBindTime(new Date());
bindCache.insert(info);
return ResponseGenerator.success(new BindInfoRes(info.getUnqId()));
return ResultGenerator.success(new BindInfoRes(info.getUnqId()));
}
/**
......@@ -177,19 +175,20 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
*/
@Override
@Transactional(rollbackFor = Exception.class)
@DistributedLock(key = "'park:extend:lock:unbind:unqId:'+#req.unqId+':userId:'+#req.userId+':timestamp:'+#req.timestamp", expireTime = 3000, waitTime = 2000, retryTimes = 50)
public Response unbindInfo(UnBindReq req) {
@DistributedLock(key = "'park:extend:lock:unbind:unqId:'+#req.unqId+':userId:'+#req.userId+':timestamp:'+#req" +
".timestamp", expireTime = 3000, waitTime = 2000, retryTimes = 50)
public Result unbindInfo(UnBindReq req) {
ParkBindInfo bindInfo = bindCache.getById(req.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
}
if (!bindCache.unBind(req.getUnqId(), req.getUserId())) {
//手动回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return ResponseGenerator.fail(StatusCode.SYSTEM_ERROR, "解绑失败");
return ResultGenerator.fail("解绑失败");
}
return ResponseGenerator.success();
return ResultGenerator.success();
}
/**
......@@ -217,17 +216,17 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
}
@Override
public Response<YearCheckInfoRes> yearCheckInfo(H5BindInfoQuery query) {
public Result<YearCheckInfoRes> yearCheckInfo(H5BindInfoQuery query) {
ParkBindInfo bindInfo = bindCache.getById(query.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
}
PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq();
req.setPlateNum(bindInfo.getPlateNum());
req.setPlateType(bindInfo.getPlateType());
VehicleRes vehicleRes = vechicleCache.getByPlateNumAndType(req);
if (Objects.isNull(vehicleRes)) {
return ResponseGenerator.success();
return ResultGenerator.success();
}
YearCheckInfoRes yearCheckInfoRes = new YearCheckInfoRes();
yearCheckInfoRes.setPlateNum(bindInfo.getPlateNum());
......@@ -240,11 +239,11 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
yearCheckInfoRes.setStatus("已到期");
}
}
return ResponseGenerator.success(yearCheckInfoRes);
return ResultGenerator.success(yearCheckInfoRes);
}
@Override
public Result<InsuranceInfoRes> insuranceInfo( H5BindInfoQuery query) {
public Result<InsuranceInfoRes> insuranceInfo(H5BindInfoQuery query) {
ParkBindInfo bindInfo = bindCache.getById(query.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
......@@ -279,13 +278,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Override
public Response<ResultList<ViolationInfoRes>> violationInfo(H5BindInfoQuery query) {
public Result<ResultList<ViolationInfoRes>> violationInfo(H5BindInfoQuery query) {
/**
* 校验当前的绑定信息是否存在
*/
ParkBindInfo bindInfo = bindCache.getById(query.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
}
/**
......@@ -312,17 +311,17 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
info.setTime(res.getDate());
violationInfoResList.add(info);
}
return ResponseGenerator.success(new ResultList<>(violationInfoResList));
return ResultGenerator.success(new ResultList<>(violationInfoResList));
}
@Override
public Response<DrivingLicenseInfoRes> drivingLicenseInfo(H5BindInfoQuery query) {
public Result<DrivingLicenseInfoRes> drivingLicenseInfo(H5BindInfoQuery query) {
/**
* 校验当前的绑定信息是否存在
*/
ParkBindInfo bindInfo = bindCache.getById(query.getUnqId());
if (bindInfo == null || "0".equals(bindInfo.getStatus())) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
return ResultGenerator.fail(ResultCode.BIND_INFO_UNKNOWN);
}
/**
......@@ -331,7 +330,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
ParkVerifyInfo verify = verifyInfo.checkValidity(query.getPhone(), query.getUserId(),
DateUtil.offsetDay(DateTime.now(), -1));
if (verify == null) {
return ResponseGenerator.fail(StatusCode.PERMISSION_DENIED);
return ResultGenerator.fail(ResultCode.PERMISSION_DENIED);
}
/**
......@@ -342,7 +341,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
vechicleInfoReq.setPlateNum(bindInfo.getPlateNum());
VehicleRes byPlateNumAndType = vechicleCache.getByPlateNumAndType(vechicleInfoReq);
if (byPlateNumAndType.getSfzmhm() == null) {
return ResponseGenerator.fail(StatusCode.ALERT_ERROR,"车主身份证信息不存在");
return ResultGenerator.fail(ResultCode.DRIVING_LICENSE_UNKNOWN);
}
/**
......@@ -352,7 +351,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
idCardQueryReq.setIdCard(byPlateNumAndType.getSfzmhm());
DrivingLicenseRes drivingLicenseRes = drivingLicenseCache.getByIdCard(idCardQueryReq);
if (drivingLicenseRes == null) {
return ResponseGenerator.fail(StatusCode.ALERT_ERROR,"车主驾照信息不存在");
return ResultGenerator.fail(ResultCode.DRIVING_LICENSE_UNKNOWN);
}
/**
......@@ -369,7 +368,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
result.setStatus(status);
result.setSurplusGrade(String.valueOf(12 - Integer.parseInt(drivingLicenseRes.getLjjf())));
return ResponseGenerator.success(result);
return ResultGenerator.success(result);
}
......
......@@ -2,6 +2,9 @@ package com.hikcreate.edl.pub.web.mobile.infra.core.Result;
import com.hikcreate.common.sdk.response.statuscode.StatusCode;
/**
*
*/
public class ResultGenerator {
public static <T> Result<T> success() {
......@@ -43,6 +46,7 @@ public class ResultGenerator {
return result;
}
public static <T> Result<T> fail(long code, String msg) {
Result<T> result = new Result<>();
result.setSuccess(false);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment