update 车牌号 Vin 唯一校验

This commit is contained in:
2023-10-10 10:32:19 +08:00
parent 250af6aad3
commit c7e01848e4
6 changed files with 87 additions and 23 deletions

View File

@@ -1,11 +1,11 @@
package com.jsowell.pile.mapper;
import java.util.List;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* 用户车牌对应关系Mapper接口
*
@@ -86,5 +86,12 @@ public interface MemberPlateNumberRelationMapper {
* @param vinCode
* @return
*/
MemberPlateNumberRelation getMemberPlateInfoByVinCode(@Param("vinCode") String vinCode);
MemberPlateNumberRelation queryByVinCode(@Param("vinCode") String vinCode);
/**
* 通过vin码查询信息
* @param vinCode
* @return
*/
MemberPlateNumberRelation queryByPlateNumber(@Param("plateNumber") String plateNumber);
}

View File

@@ -1,8 +1,9 @@
package com.jsowell.pile.service;
import java.util.List;
import com.jsowell.pile.domain.MemberPlateNumberRelation;
import java.util.List;
/**
* 用户车牌对应关系Service接口
*
@@ -83,4 +84,8 @@ public interface IMemberPlateNumberRelationService
* @return
*/
MemberPlateNumberRelation getMemberPlateInfoByVinCode(String vinCode);
String checkVinCodeUnique(String vinCode);
String checkPlateNumberUnique(String plateNumber);
}

View File

@@ -1,6 +1,9 @@
package com.jsowell.pile.service.impl;
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.pile.domain.MemberPlateNumberRelation;
import com.jsowell.pile.mapper.MemberPlateNumberRelationMapper;
@@ -70,10 +73,25 @@ public class MemberPlateNumberRelationServiceImpl implements IMemberPlateNumberR
@Override
public int updatePlateNumber(MemberPlateNumberRelation memberPlateNumberRelation) {
if (StringUtils.isNotBlank(memberPlateNumberRelation.getLicensePlateNumber())) {
String plateNumber = memberPlateNumberRelation.getLicensePlateNumber().toUpperCase(Locale.ROOT);
String licensePlateNumber = memberPlateNumberRelation.getLicensePlateNumber();
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);
}
// 校验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);
}
@@ -126,8 +144,34 @@ public class MemberPlateNumberRelationServiceImpl implements IMemberPlateNumberR
return null;
}
vinCode = vinCode.trim();
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationMapper.getMemberPlateInfoByVinCode(vinCode);
MemberPlateNumberRelation plateInfo = memberPlateNumberRelationMapper.queryByVinCode(vinCode);
log.info("通过vin码查询数据库绑定用户信息 vinCode:{}, result:{}", vinCode, JSON.toJSONString(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;
}
}

View File

@@ -102,12 +102,19 @@
where id = #{id,jdbcType=INTEGER}
</update>
<select id="getMemberPlateInfoByVinCode" resultMap="MemberLicensePlateNumberRelationResult">
<select id="queryByVinCode" resultMap="MemberLicensePlateNumberRelationResult">
select
<include refid="Base_Column_List"/>
from member_plate_number_relation
where
vin_code = #{vinCode,jdbcType=VARCHAR}
and del_flag = '0'
where del_flag = '0'
and vin_code = #{vinCode,jdbcType=VARCHAR}
</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>
</mapper>