mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-20 11:05:18 +08:00
update 车牌号 Vin 唯一校验
This commit is contained in:
@@ -267,6 +267,10 @@ public class MemberController extends BaseController {
|
|||||||
logger.info("用户绑定车牌号 param:{}", JSONObject.toJSONString(dto));
|
logger.info("用户绑定车牌号 param:{}", JSONObject.toJSONString(dto));
|
||||||
RestApiResponse<?> response = null;
|
RestApiResponse<?> response = null;
|
||||||
try {
|
try {
|
||||||
|
// 参数校验
|
||||||
|
if (StringUtils.isBlank(dto.getCarNo())) {
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
|
||||||
|
}
|
||||||
String memberId = getMemberIdByAuthorization(request);
|
String memberId = getMemberIdByAuthorization(request);
|
||||||
dto.setMemberId(memberId);
|
dto.setMemberId(memberId);
|
||||||
memberService.memberBindingCarNo(dto);
|
memberService.memberBindingCarNo(dto);
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import com.jsowell.adapay.config.AbstractAdapayConfig;
|
|||||||
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
import com.jsowell.adapay.factory.AdapayConfigFactory;
|
||||||
import com.jsowell.common.constant.CacheConstants;
|
import com.jsowell.common.constant.CacheConstants;
|
||||||
import com.jsowell.common.constant.Constants;
|
import com.jsowell.common.constant.Constants;
|
||||||
|
import com.jsowell.common.constant.UserConstants;
|
||||||
import com.jsowell.common.core.page.PageResponse;
|
import com.jsowell.common.core.page.PageResponse;
|
||||||
import com.jsowell.common.core.redis.RedisCache;
|
import com.jsowell.common.core.redis.RedisCache;
|
||||||
import com.jsowell.common.enums.TitleTypeEnum;
|
import com.jsowell.common.enums.TitleTypeEnum;
|
||||||
@@ -439,23 +440,19 @@ public class MemberService {
|
|||||||
// 判断当前车牌号是否已经绑定 (2023.8.24 不做校验)
|
// 判断当前车牌号是否已经绑定 (2023.8.24 不做校验)
|
||||||
MemberPlateNumberRelation relation = new MemberPlateNumberRelation();
|
MemberPlateNumberRelation relation = new MemberPlateNumberRelation();
|
||||||
relation.setMemberId(dto.getMemberId());
|
relation.setMemberId(dto.getMemberId());
|
||||||
if (StringUtils.isBlank(dto.getCarNo())) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR);
|
|
||||||
}
|
|
||||||
relation.setLicensePlateNumber(dto.getCarNo());
|
relation.setLicensePlateNumber(dto.getCarNo());
|
||||||
// List<MemberPlateNumberRelation> list = memberPlateNumberRelationService.selectMemberPlateNumberRelationList(relation);
|
// 判断当前车牌号是否被绑定
|
||||||
// if (CollectionUtils.isNotEmpty(list)) {
|
if (UserConstants.NOT_UNIQUE.equals(memberPlateNumberRelationService.checkPlateNumberUnique(dto.getCarNo()))) {
|
||||||
// // 不为空说明该用户绑定过此车牌号
|
// 不为空说明该用户绑定过此车牌号
|
||||||
// throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARNO_HAS_BEEN_BINDING);
|
throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARNO_HAS_BEEN_BINDING);
|
||||||
// }
|
}
|
||||||
|
|
||||||
// 校验该车牌号是否为新能源车牌
|
// 校验该车牌号是否为新能源车牌
|
||||||
|
|
||||||
// relation.setPhoneNumber(dto.getPhoneNumber());
|
relation.setPhoneNumber(dto.getPhoneNumber());
|
||||||
if (StringUtils.isNotBlank(dto.getVinCode())) {
|
if (StringUtils.isNotBlank(dto.getVinCode())) {
|
||||||
// 判断当前vin是否被绑定
|
// 判断当前vin是否被绑定
|
||||||
MemberPlateNumberRelation memberPlateInfoByVinCode = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(dto.getVinCode());
|
if (UserConstants.NOT_UNIQUE.equals(memberPlateNumberRelationService.checkVinCodeUnique(dto.getVinCode()))) {
|
||||||
if (memberPlateInfoByVinCode != null) {
|
|
||||||
throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING);
|
throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING);
|
||||||
}
|
}
|
||||||
relation.setVinCode(dto.getVinCode().toUpperCase(Locale.ROOT));
|
relation.setVinCode(dto.getVinCode().toUpperCase(Locale.ROOT));
|
||||||
@@ -468,7 +465,7 @@ public class MemberService {
|
|||||||
* 用户绑定鉴权卡
|
* 用户绑定鉴权卡
|
||||||
* @param dto
|
* @param dto
|
||||||
*/
|
*/
|
||||||
public int memberBindCard(BindingCardDTO dto){
|
public int memberBindCard(BindingCardDTO dto) {
|
||||||
// 校验短信验证码
|
// 校验短信验证码
|
||||||
MemberRegisterAndLoginDTO registerAndLoginDTO = MemberRegisterAndLoginDTO.builder()
|
MemberRegisterAndLoginDTO registerAndLoginDTO = MemberRegisterAndLoginDTO.builder()
|
||||||
.mobileNumber(dto.getPhoneNumber())
|
.mobileNumber(dto.getPhoneNumber())
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.jsowell.pile.mapper;
|
package com.jsowell.pile.mapper;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
import org.springframework.stereotype.Repository;
|
import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户车牌对应关系Mapper接口
|
* 用户车牌对应关系Mapper接口
|
||||||
*
|
*
|
||||||
@@ -86,5 +86,12 @@ public interface MemberPlateNumberRelationMapper {
|
|||||||
* @param vinCode
|
* @param vinCode
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
MemberPlateNumberRelation getMemberPlateInfoByVinCode(@Param("vinCode") String vinCode);
|
MemberPlateNumberRelation queryByVinCode(@Param("vinCode") String vinCode);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过vin码查询信息
|
||||||
|
* @param vinCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
MemberPlateNumberRelation queryByPlateNumber(@Param("plateNumber") String plateNumber);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
package com.jsowell.pile.service;
|
package com.jsowell.pile.service;
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户车牌对应关系Service接口
|
* 用户车牌对应关系Service接口
|
||||||
*
|
*
|
||||||
@@ -83,4 +84,8 @@ public interface IMemberPlateNumberRelationService
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
MemberPlateNumberRelation getMemberPlateInfoByVinCode(String vinCode);
|
MemberPlateNumberRelation getMemberPlateInfoByVinCode(String vinCode);
|
||||||
|
|
||||||
|
String checkVinCodeUnique(String vinCode);
|
||||||
|
|
||||||
|
String checkPlateNumberUnique(String plateNumber);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
package com.jsowell.pile.service.impl;
|
package com.jsowell.pile.service.impl;
|
||||||
|
|
||||||
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSON;
|
||||||
|
import com.jsowell.common.constant.UserConstants;
|
||||||
|
import com.jsowell.common.enums.ykc.ReturnCodeEnum;
|
||||||
|
import com.jsowell.common.exception.BusinessException;
|
||||||
import com.jsowell.common.util.StringUtils;
|
import com.jsowell.common.util.StringUtils;
|
||||||
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
import com.jsowell.pile.domain.MemberPlateNumberRelation;
|
||||||
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
|
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
|
||||||
@@ -70,10 +73,25 @@ public class MemberPlateNumberRelationServiceImpl implements IMemberPlateNumberR
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public int updatePlateNumber(MemberPlateNumberRelation memberPlateNumberRelation) {
|
public int updatePlateNumber(MemberPlateNumberRelation memberPlateNumberRelation) {
|
||||||
if (StringUtils.isNotBlank(memberPlateNumberRelation.getLicensePlateNumber())) {
|
String licensePlateNumber = memberPlateNumberRelation.getLicensePlateNumber();
|
||||||
String plateNumber = memberPlateNumberRelation.getLicensePlateNumber().toUpperCase(Locale.ROOT);
|
if (StringUtils.isNotBlank(licensePlateNumber)) {
|
||||||
|
// 判断当前车牌号是否被绑定
|
||||||
|
if (UserConstants.NOT_UNIQUE.equals(checkPlateNumberUnique(licensePlateNumber))) {
|
||||||
|
// 不为空说明该用户绑定过此车牌号
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARNO_HAS_BEEN_BINDING);
|
||||||
|
}
|
||||||
|
String plateNumber = licensePlateNumber.toUpperCase(Locale.ROOT);
|
||||||
memberPlateNumberRelation.setLicensePlateNumber(plateNumber);
|
memberPlateNumberRelation.setLicensePlateNumber(plateNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验vin
|
||||||
|
String vinCode = memberPlateNumberRelation.getVinCode();
|
||||||
|
if (StringUtils.isNotBlank(vinCode)) {
|
||||||
|
// 判断当前vin是否被绑定
|
||||||
|
if (UserConstants.NOT_UNIQUE.equals(checkVinCodeUnique(vinCode))) {
|
||||||
|
throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING);
|
||||||
|
}
|
||||||
|
}
|
||||||
return memberPlateNumberRelationMapper.updateMemberPlateNumberRelation(memberPlateNumberRelation);
|
return memberPlateNumberRelationMapper.updateMemberPlateNumberRelation(memberPlateNumberRelation);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,8 +144,34 @@ public class MemberPlateNumberRelationServiceImpl implements IMemberPlateNumberR
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
vinCode = vinCode.trim();
|
vinCode = vinCode.trim();
|
||||||
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationMapper.getMemberPlateInfoByVinCode(vinCode);
|
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationMapper.queryByVinCode(vinCode);
|
||||||
log.info("通过vin码查询数据库绑定用户信息 vinCode:{}, result:{}", vinCode, JSON.toJSONString(plateInfo));
|
log.info("通过vin码查询数据库绑定用户信息 vinCode:{}, result:{}", vinCode, JSON.toJSONString(plateInfo));
|
||||||
return plateInfo;
|
return plateInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验vin唯一
|
||||||
|
* @param vinCode
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String checkVinCodeUnique(String vinCode) {
|
||||||
|
MemberPlateNumberRelation info = memberPlateNumberRelationMapper.queryByVinCode(vinCode);
|
||||||
|
if (info == null) {
|
||||||
|
return UserConstants.UNIQUE;
|
||||||
|
}
|
||||||
|
return UserConstants.NOT_UNIQUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验车牌号唯一
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public String checkPlateNumberUnique(String plateNumber) {
|
||||||
|
MemberPlateNumberRelation info = memberPlateNumberRelationMapper.queryByPlateNumber(plateNumber);
|
||||||
|
if (info == null) {
|
||||||
|
return UserConstants.UNIQUE;
|
||||||
|
}
|
||||||
|
return UserConstants.NOT_UNIQUE;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -102,12 +102,19 @@
|
|||||||
where id = #{id,jdbcType=INTEGER}
|
where id = #{id,jdbcType=INTEGER}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<select id="getMemberPlateInfoByVinCode" resultMap="MemberLicensePlateNumberRelationResult">
|
<select id="queryByVinCode" resultMap="MemberLicensePlateNumberRelationResult">
|
||||||
select
|
select
|
||||||
<include refid="Base_Column_List"/>
|
<include refid="Base_Column_List"/>
|
||||||
from member_plate_number_relation
|
from member_plate_number_relation
|
||||||
where
|
where del_flag = '0'
|
||||||
vin_code = #{vinCode,jdbcType=VARCHAR}
|
and vin_code = #{vinCode,jdbcType=VARCHAR}
|
||||||
and del_flag = '0'
|
</select>
|
||||||
|
|
||||||
|
<select id="queryByPlateNumber" resultMap="MemberLicensePlateNumberRelationResult">
|
||||||
|
select
|
||||||
|
<include refid="Base_Column_List"/>
|
||||||
|
from member_plate_number_relation
|
||||||
|
where del_flag = '0'
|
||||||
|
and license_plate_number = #{plateNumber,jdbcType=VARCHAR}
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
Reference in New Issue
Block a user