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)
+
+