Commit 1bb7a11d by lixian7

Merge branch 'dev' into 'test'

Dev

See merge request !2
parents af94e7d5 f4f43501
...@@ -66,7 +66,6 @@ public class BindInfoControlller extends BaseController { ...@@ -66,7 +66,6 @@ public class BindInfoControlller extends BaseController {
*/ */
@PostMapping("unbind") @PostMapping("unbind")
@BodyDecryptAnnotation @BodyDecryptAnnotation
@ResponseEncryptAnnotation
public Response unbindInfo(@RequestBody @Validated UnBindReq req) { public Response unbindInfo(@RequestBody @Validated UnBindReq req) {
return service.unbindInfo(req) ? ResponseGenerator.success() : ResponseGenerator.fail("解绑失败"); return service.unbindInfo(req) ? ResponseGenerator.success() : ResponseGenerator.fail("解绑失败");
} }
......
...@@ -10,14 +10,14 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -10,14 +10,14 @@ import org.springframework.web.bind.annotation.RestController;
/** /**
* 工具 * 工具
* @menu 工具接口 * @menu 工具
* @author lixian * @author lixian
* @description * @description
* @date 2020/6/18 17:57 * @date 2020/6/18 17:57
**/ **/
@Slf4j @Slf4j
@RestController @RestController
@RequestMapping( "/test" ) @RequestMapping( "/tool" )
public class ToolController { public class ToolController {
@Autowired @Autowired
SignKeyConfigBean signKeyConfigBean; SignKeyConfigBean signKeyConfigBean;
...@@ -32,4 +32,12 @@ public class ToolController { ...@@ -32,4 +32,12 @@ public class ToolController {
return EncryptStringAes.encryptAes(plain, signKeyConfigBean.getKey()); return EncryptStringAes.encryptAes(plain, signKeyConfigBean.getKey());
} }
/**
* 获取时间戳
* @return
*/
@GetMapping( value = "timestamp" )
public String timestamp() {
return String.valueOf(System.currentTimeMillis());
}
} }
...@@ -9,13 +9,11 @@ import com.hikcreate.common.sdk.response.apiparam.Response; ...@@ -9,13 +9,11 @@ import com.hikcreate.common.sdk.response.apiparam.Response;
import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator; import com.hikcreate.common.sdk.response.apiparam.ResponseGenerator;
import com.hikcreate.common.sdk.response.statuscode.StatusCode; import com.hikcreate.common.sdk.response.statuscode.StatusCode;
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.util.UnqIdUtil;
import com.hikcreate.edl.pub.web.mobile.infra.data.cache.BindCache; import com.hikcreate.edl.pub.web.mobile.infra.data.cache.BindCache;
import com.hikcreate.edl.pub.web.mobile.infra.data.cache.DrivingLicenseCache; import com.hikcreate.edl.pub.web.mobile.infra.data.cache.DrivingLicenseCache;
import com.hikcreate.edl.pub.web.mobile.infra.data.cache.VechicleCache; import com.hikcreate.edl.pub.web.mobile.infra.data.cache.VechicleCache;
import com.hikcreate.edl.pub.web.mobile.infra.data.cache.ViolationCache; import com.hikcreate.edl.pub.web.mobile.infra.data.cache.ViolationCache;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.DrivingLicenseFeign;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.VechicleFeign;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.ViolationFeign;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.IdCardQueryReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.IdCardQueryReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumAndTypeQueryReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumAndTypeQueryReq;
import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumQueryReq; import com.hikcreate.edl.pub.web.mobile.infra.data.feign.dcp_service_vehicle.param.request.PlateNumQueryReq;
...@@ -30,12 +28,14 @@ import com.hikcreate.edl.pub.web.mobile.infra.model.entity.ParkVerifyInfo; ...@@ -30,12 +28,14 @@ import com.hikcreate.edl.pub.web.mobile.infra.model.entity.ParkVerifyInfo;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.BindInfoQueryReq; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.BindInfoQueryReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.H5BindInfoQuery; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.H5BindInfoQuery;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.UnBindReq; import com.hikcreate.edl.pub.web.mobile.infra.model.param.request.UnBindReq;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.BindInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.DrivingLicenseInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.InsuranceInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.InsuranceInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ResultList; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ResultList;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ViolationInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.ViolationInfoRes;
import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.YearCheckInfoRes; import com.hikcreate.edl.pub.web.mobile.infra.model.param.response.YearCheckInfoRes;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -60,14 +60,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -60,14 +60,8 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
@Resource @Resource
BindInfoMapper mapper; BindInfoMapper mapper;
@Resource @Resource
VechicleFeign vechicle;
@Resource
ViolationFeign violatio;
@Resource
VerifyInfoMapper verifyInfo; VerifyInfoMapper verifyInfo;
@Resource @Resource
DrivingLicenseFeign drivingLicense;
@Resource
BindCache bindCache; BindCache bindCache;
@Resource @Resource
VechicleCache vechicleCache; VechicleCache vechicleCache;
...@@ -75,13 +69,12 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -75,13 +69,12 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
ViolationCache violationCache; ViolationCache violationCache;
@Resource @Resource
DrivingLicenseCache drivingLicenseCache; DrivingLicenseCache drivingLicenseCache;
@Autowired
UnqIdUtil unqIdUtil;
@Override @Override
public Response bind( ParkBindInfo info) { public Response bind(ParkBindInfo info) {
info.setUnqId(UUID.randomUUID().toString());
info.setGmtBindTime(DateTime.now().toString());
//判断规则1:用户已绑定的车辆不超过3辆,包括已解绑但未过一个月的车辆 //判断规则1:用户已绑定的车辆不超过3辆,包括已解绑但未过一个月的车辆
QueryWrapper boundQuery = new QueryWrapper(); QueryWrapper boundQuery = new QueryWrapper();
boundQuery.eq("user_id", info.getUserId()); boundQuery.eq("user_id", info.getUserId());
...@@ -98,6 +91,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -98,6 +91,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
if (byPlateNum == null || byPlateNum.size() == 0) { if (byPlateNum == null || byPlateNum.size() == 0) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "车辆信息不存在"); return ResponseGenerator.fail(StatusCode.DATA_ERROR, "车辆信息不存在");
} }
for (VehicleRes res : byPlateNum) { for (VehicleRes res : byPlateNum) {
if (info.getPhone().equals(res.getSjhm())) { if (info.getPhone().equals(res.getSjhm())) {
info.setPlateType(res.getHpzl()); info.setPlateType(res.getHpzl());
...@@ -116,11 +110,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -116,11 +110,13 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
ParkBindInfo bindExist = mapper.selectOne(queryWrapper); ParkBindInfo bindExist = mapper.selectOne(queryWrapper);
if (bindExist != null) { if (bindExist != null) {
return ResponseGenerator.fail(StatusCode.DATA_ERROR, "此车牌号已绑定"); return ResponseGenerator.fail(StatusCode.DATA_ERROR, "此车牌号已绑定");
} else {
info.setUnqId(UUID.randomUUID().toString());
mapper.insert(info);
} }
return ResponseGenerator.success(info.getUnqId());
info.setUnqId(unqIdUtil.getUnqId());
info.setGmtBindTime(DateTime.now().toString());
mapper.insert(info);
return ResponseGenerator.success(new BindInfoRes(info.getUnqId()));
} }
/** /**
...@@ -142,9 +138,10 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -142,9 +138,10 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
Integer integer = mapper.selectCount(queryWrapper); Integer integer = mapper.selectCount(queryWrapper);
if (integer >= 10) { if (integer >= 10) {
return false; return false;
} else {
return bindCache.unBind(req.getUnqId(), req.getUserId());
} }
return bindCache.unBind(req.getUnqId(), req.getUserId());
} }
/** /**
...@@ -154,7 +151,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -154,7 +151,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
* @return * @return
*/ */
@Override @Override
public List<ParkBindInfo> selectByQuery( BindInfoQueryReq query) { public List<ParkBindInfo> selectByQuery(BindInfoQueryReq query) {
return bindCache.selectByQuery(query.getUserId()); return bindCache.selectByQuery(query.getUserId());
} }
...@@ -189,7 +186,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -189,7 +186,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
public Response<InsuranceInfoRes> insuranceInfo(H5BindInfoQuery query) { public Response<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 ResponseGenerator.fail(StatusCode.DATA_ERROR,"绑定信息不存在"); return ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
} }
PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq(); PlateNumAndTypeQueryReq req = new PlateNumAndTypeQueryReq();
req.setPlateNum(bindInfo.getPlateNum()); req.setPlateNum(bindInfo.getPlateNum());
...@@ -227,7 +224,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -227,7 +224,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
*/ */
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 ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
} }
/** /**
...@@ -263,7 +260,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i ...@@ -263,7 +260,7 @@ public class BindServiceImpl extends ServiceImpl<BindInfoMapper, ParkBindInfo> i
*/ */
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 ResponseGenerator.fail(StatusCode.DATA_ERROR, "绑定信息不存在");
} }
/** /**
......
package com.hikcreate.edl.pub.web.mobile.infra.core.util;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.concurrent.TimeUnit;
/**
* 唯一建工具类
*
* @author lixian
* @description
* @date 2020/6/22 16:24
**/
@Component
public class UnqIdUtil {
@Autowired
StringRedisTemplate redisTemplate;
String redisKey = "park:unqid:random";
public static void main( String[] args ) {
long random = 11114432543l;
random = random % 10000000;
System.out.println(StrUtil.fillBefore(String.valueOf(random), '0', 8));
}
/**
* 获取唯一建
* 16(日期)+8(随机数)
*
* @return
*/
public String getUnqId() {
String id = "";
id = id.concat(DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_FORMAT));
long random = redisTemplate.opsForValue().increment(redisKey, 1);
if( random==1 ) {
redisTemplate.expire(redisKey, 60l, TimeUnit.SECONDS);
}
random = random % 10000000;
id = id.concat(StrUtil.fillBefore(String.valueOf(random), '0', 8));
System.out.println("id:"+id);
return id;
}
}
package com.hikcreate.edl.pub.web.mobile.infra.model.param.response;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 绑定操作返回结果封装
* @author: xieshixiang
* @time:2020/6/22 17:04
**/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BindInfoRes {
/**
* 唯一键
*/
private String unqId;
}
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