This commit is contained in:
sxu 2025-05-05 11:47:09 +08:00
parent 8322745260
commit b96f1e0098
3 changed files with 16 additions and 1 deletions

View File

@ -10,6 +10,9 @@ import com.bonus.canteen.core.account.domain.AccCard;
* @date 2025-04-20
*/
public interface AccCardMapper {
public int selectAccCardCountByUserId(Long userId);
/**
* 查询人员卡片资料
*

View File

@ -21,6 +21,7 @@ import org.springframework.stereotype.Service;
import com.bonus.canteen.core.account.mapper.AccCardMapper;
import com.bonus.canteen.core.account.domain.AccCard;
import com.bonus.canteen.core.account.service.IAccCardService;
import org.springframework.util.CollectionUtils;
import static com.bonus.canteen.core.order.constants.OrderStateEnum.CANCEL;
@ -77,6 +78,11 @@ 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("此用户" + accInfo.getUserId() + "已有卡, 不能再次发放");
}
int count = accCardMapper.insertAccCard(accCard);
saveAccCardChangeRecord(accCard);
return count;

View File

@ -63,7 +63,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="cardSourceType != null and cardSourceType != ''"> and ac.card_source_type = #{cardSourceType}</if>
</where>
</select>
<select id="selectAccCardCountByUserId" parameterType="Long" resultType="Integer">
select count(1)
from acc_card
where user_id = #{userId} and card_status in (1,4,5)
</select>
<select id="selectAccCardById" parameterType="Long" resultMap="AccCardResult">
<include refid="selectAccCardVo"/>
where ac.id = #{id}