From c7e01848e4af1134edef4eb19eb8800b2e61bc2c Mon Sep 17 00:00:00 2001 From: "autumn.g@foxmail.com" Date: Tue, 10 Oct 2023 10:32:19 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=BD=A6=E7=89=8C=E5=8F=B7=20Vin=20?= =?UTF-8?q?=E5=94=AF=E4=B8=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jsowell/api/uniapp/MemberController.java | 4 ++ .../com/jsowell/service/MemberService.java | 21 ++++---- .../MemberPlateNumberRelationMapper.java | 13 +++-- .../IMemberPlateNumberRelationService.java | 7 ++- .../MemberPlateNumberRelationServiceImpl.java | 50 +++++++++++++++++-- .../pile/MemberPlateNumberRelationMapper.xml | 15 ++++-- 6 files changed, 87 insertions(+), 23 deletions(-) diff --git a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java index 24d019c3e..4e95909a5 100644 --- a/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java +++ b/jsowell-admin/src/main/java/com/jsowell/api/uniapp/MemberController.java @@ -267,6 +267,10 @@ public class MemberController extends BaseController { logger.info("用户绑定车牌号 param:{}", JSONObject.toJSONString(dto)); RestApiResponse response = null; try { + // 参数校验 + if (StringUtils.isBlank(dto.getCarNo())) { + throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); + } String memberId = getMemberIdByAuthorization(request); dto.setMemberId(memberId); memberService.memberBindingCarNo(dto); diff --git a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java index a78fec72a..88c27734c 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/MemberService.java @@ -15,6 +15,7 @@ import com.jsowell.adapay.config.AbstractAdapayConfig; import com.jsowell.adapay.factory.AdapayConfigFactory; import com.jsowell.common.constant.CacheConstants; import com.jsowell.common.constant.Constants; +import com.jsowell.common.constant.UserConstants; import com.jsowell.common.core.page.PageResponse; import com.jsowell.common.core.redis.RedisCache; import com.jsowell.common.enums.TitleTypeEnum; @@ -439,23 +440,19 @@ public class MemberService { // 判断当前车牌号是否已经绑定 (2023.8.24 不做校验) MemberPlateNumberRelation relation = new MemberPlateNumberRelation(); relation.setMemberId(dto.getMemberId()); - if (StringUtils.isBlank(dto.getCarNo())) { - throw new BusinessException(ReturnCodeEnum.CODE_PARAM_NOT_NULL_ERROR); - } relation.setLicensePlateNumber(dto.getCarNo()); - // List list = memberPlateNumberRelationService.selectMemberPlateNumberRelationList(relation); - // if (CollectionUtils.isNotEmpty(list)) { - // // 不为空说明该用户绑定过此车牌号 - // throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARNO_HAS_BEEN_BINDING); - // } + // 判断当前车牌号是否被绑定 + if (UserConstants.NOT_UNIQUE.equals(memberPlateNumberRelationService.checkPlateNumberUnique(dto.getCarNo()))) { + // 不为空说明该用户绑定过此车牌号 + throw new BusinessException(ReturnCodeEnum.CODE_THIS_CARNO_HAS_BEEN_BINDING); + } // 校验该车牌号是否为新能源车牌 - // relation.setPhoneNumber(dto.getPhoneNumber()); + relation.setPhoneNumber(dto.getPhoneNumber()); if (StringUtils.isNotBlank(dto.getVinCode())) { // 判断当前vin是否被绑定 - MemberPlateNumberRelation memberPlateInfoByVinCode = memberPlateNumberRelationService.getMemberPlateInfoByVinCode(dto.getVinCode()); - if (memberPlateInfoByVinCode != null) { + if (UserConstants.NOT_UNIQUE.equals(memberPlateNumberRelationService.checkVinCodeUnique(dto.getVinCode()))) { throw new BusinessException(ReturnCodeEnum.CODE_THIS_VIN_HAS_BEEN_BINDING); } relation.setVinCode(dto.getVinCode().toUpperCase(Locale.ROOT)); @@ -468,7 +465,7 @@ public class MemberService { * 用户绑定鉴权卡 * @param dto */ - public int memberBindCard(BindingCardDTO dto){ + public int memberBindCard(BindingCardDTO dto) { // 校验短信验证码 MemberRegisterAndLoginDTO registerAndLoginDTO = MemberRegisterAndLoginDTO.builder() .mobileNumber(dto.getPhoneNumber()) diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberPlateNumberRelationMapper.java b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberPlateNumberRelationMapper.java index 65ee248fd..37962dae7 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberPlateNumberRelationMapper.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/mapper/MemberPlateNumberRelationMapper.java @@ -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); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberPlateNumberRelationService.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberPlateNumberRelationService.java index 87a14b5b0..8fced8082 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberPlateNumberRelationService.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/IMemberPlateNumberRelationService.java @@ -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); } diff --git a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java index ce5f915dd..af9233ca5 100644 --- a/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java +++ b/jsowell-pile/src/main/java/com/jsowell/pile/service/impl/MemberPlateNumberRelationServiceImpl.java @@ -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; + } } diff --git a/jsowell-pile/src/main/resources/mapper/pile/MemberPlateNumberRelationMapper.xml b/jsowell-pile/src/main/resources/mapper/pile/MemberPlateNumberRelationMapper.xml index bdd094332..d386d6000 100644 --- a/jsowell-pile/src/main/resources/mapper/pile/MemberPlateNumberRelationMapper.xml +++ b/jsowell-pile/src/main/resources/mapper/pile/MemberPlateNumberRelationMapper.xml @@ -102,12 +102,19 @@ where id = #{id,jdbcType=INTEGER} - select 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} + + + \ No newline at end of file