Commit 5554c9b6 by xieshixiang

增加提示

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