From 440ff09a8b9ac25d90fbd6062834c7bb949e4ff8 Mon Sep 17 00:00:00 2001 From: sxu <602087911@qq.com> Date: Wed, 7 May 2025 12:24:52 +0800 Subject: [PATCH] bug 5902 --- .../canteen/core/account/mapper/AccCardMapper.java | 2 ++ .../account/service/impl/AccCardServiceImpl.java | 14 ++++++++++++-- .../resources/mapper/account/AccCardMapper.xml | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccCardMapper.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccCardMapper.java index 65a4b0a..392c49f 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccCardMapper.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/mapper/AccCardMapper.java @@ -13,6 +13,8 @@ public interface AccCardMapper { public int selectAccCardCountByUserId(Long userId); + public int selectAccCardCountByCardSerialNum(String serialNum); + /** * 查询人员卡片资料 * diff --git a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccCardServiceImpl.java b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccCardServiceImpl.java index 04d84ab..23ae389 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccCardServiceImpl.java +++ b/bonus-modules/bonus-smart-canteen/src/main/java/com/bonus/canteen/core/account/service/impl/AccCardServiceImpl.java @@ -78,10 +78,15 @@ public class AccCardServiceImpl implements IAccCardService { accCard.setUserId(accInfo.getUserId()); accCard.setCardStatus(CardStatusEnum.NORMAL.getKey()); accCard.setCardType(CardTypeEnum.IC_CARD.getKey()); - // 发卡前校验是否卡已存在, 已退卡的可以再发放 + // 发卡前校验是否此用户已有卡, 已退卡、已过期的可以再发放 int cardCountByUserId= accCardMapper.selectAccCardCountByUserId(accInfo.getUserId()); if (cardCountByUserId > 0) { - throw new ServiceException("用户(user_id=" + accInfo.getUserId() + ")已有卡, 不能再次发放"); + throw new ServiceException("此用户已有卡, 不能再次发放"); + } + // 发卡前校验是否卡号已存在, 卡号不能重复 + int cardCountByCardSerialNum= accCardMapper.selectAccCardCountByCardSerialNum(accCard.getSerialNum()); + if (cardCountByCardSerialNum > 0) { + throw new ServiceException("卡号已存在, 卡号不能重复"); } int count = accCardMapper.insertAccCard(accCard); saveAccCardChangeRecord(accCard); @@ -131,6 +136,11 @@ public class AccCardServiceImpl implements IAccCardService { accCard.setUpdateBy(SecurityUtils.getUsername()); accCard.setUpdateTime(DateUtils.getNowDate()); try { + // 发卡前校验是否卡号已存在, 卡号不能重复 + int cardCountByCardSerialNum= accCardMapper.selectAccCardCountByCardSerialNum(accCard.getSerialNum()); + if (cardCountByCardSerialNum > 0) { + throw new ServiceException("卡号已存在, 卡号不能重复"); + } AccInfo accInfo = accInfoMapper.selectAccInfoById(accCard.getAccId()); checkAccInfoAndStatus(accInfo); int count = accCardMapper.updateAccCard(accCard); diff --git a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccCardMapper.xml b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccCardMapper.xml index 8fdcc1b..0b2866d 100644 --- a/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccCardMapper.xml +++ b/bonus-modules/bonus-smart-canteen/src/main/resources/mapper/account/AccCardMapper.xml @@ -70,6 +70,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where user_id = #{userId} and card_status in (1,4,5) + +