From 383f9c4a3162a672ffb0dc48a752ad623afa5d01 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Fri, 13 Feb 2026 20:06:02 +0800 Subject: [PATCH] =?UTF-8?q?refactor(pricing):=20=E5=B0=86=E5=88=B8?= =?UTF-8?q?=E7=A0=81=E7=B3=BB=E7=BB=9F=E4=B8=AD=E7=9A=84faceId=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E4=B8=BAuserId?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除AppVoucherController中的人脸相关依赖和验证逻辑 - 修改VoucherClaimReq和VoucherCodeQueryReq数据传输对象,将faceId字段替换为userId - 更新VoucherCodeResp和VoucherDetailResp响应对象中的用户标识字段 - 修改数据库实体PriceVoucherCode中领取人标识字段从faceId改为userId - 更新PriceVoucherCodeMapper中所有SQL查询的人脸ID参数为用户ID参数 - 修改VoucherCodeServiceImpl中券码领取和查询逻辑使用用户ID进行操作 - 更新VoucherServiceImpl中券码验证和使用记录的相关用户标识处理 - 统一数据库表字段和代码中的命名规范,确保用户标识一致性 --- .../mobile/AppVoucherController.java | 10 ---- .../VoucherManagementController.java | 6 +- .../pricing/dto/req/VoucherClaimReq.java | 1 - .../pricing/dto/req/VoucherCodeQueryReq.java | 2 +- .../pricing/dto/resp/VoucherCodeResp.java | 2 +- .../pricing/dto/resp/VoucherDetailResp.java | 4 +- .../pricing/entity/PriceVoucherCode.java | 4 +- .../mapper/PriceVoucherCodeMapper.java | 60 +++++++++---------- .../pricing/service/VoucherCodeService.java | 8 +-- .../service/impl/VoucherCodeServiceImpl.java | 36 +++++------ .../service/impl/VoucherServiceImpl.java | 10 ++-- .../service/ReusableVoucherServiceTest.java | 2 +- 12 files changed, 68 insertions(+), 77 deletions(-) diff --git a/src/main/java/com/ycwl/basic/controller/mobile/AppVoucherController.java b/src/main/java/com/ycwl/basic/controller/mobile/AppVoucherController.java index 7bfb53eb..9f677c5a 100644 --- a/src/main/java/com/ycwl/basic/controller/mobile/AppVoucherController.java +++ b/src/main/java/com/ycwl/basic/controller/mobile/AppVoucherController.java @@ -1,15 +1,12 @@ package com.ycwl.basic.controller.mobile; import com.ycwl.basic.constant.BaseContextHandler; -import com.ycwl.basic.exception.BaseException; -import com.ycwl.basic.model.pc.face.entity.FaceEntity; import com.ycwl.basic.pricing.dto.req.VoucherClaimReq; import com.ycwl.basic.pricing.dto.req.VoucherPrintReq; import com.ycwl.basic.pricing.dto.resp.VoucherCodeResp; import com.ycwl.basic.pricing.dto.resp.VoucherPrintResp; import com.ycwl.basic.pricing.service.VoucherCodeService; import com.ycwl.basic.pricing.service.VoucherPrintService; -import com.ycwl.basic.repository.FaceRepository; import com.ycwl.basic.utils.ApiResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -30,8 +27,6 @@ public class AppVoucherController { private VoucherPrintService voucherPrintService; @Autowired private VoucherCodeService voucherCodeService; - @Autowired - private FaceRepository faceRepository; /** * 打印小票 @@ -60,11 +55,6 @@ public class AppVoucherController { @PostMapping("/claim") public ApiResponse claimVoucher(@RequestBody VoucherClaimReq req) { - FaceEntity face = faceRepository.getFace(req.getFaceId()); - if (face == null) { - throw new BaseException("请选择人脸"); - } - req.setScenicId(face.getScenicId()); VoucherCodeResp result = voucherCodeService.claimVoucher(req); return ApiResponse.success(result); } diff --git a/src/main/java/com/ycwl/basic/pricing/controller/VoucherManagementController.java b/src/main/java/com/ycwl/basic/pricing/controller/VoucherManagementController.java index 851a3436..23abf9bc 100644 --- a/src/main/java/com/ycwl/basic/pricing/controller/VoucherManagementController.java +++ b/src/main/java/com/ycwl/basic/pricing/controller/VoucherManagementController.java @@ -1,6 +1,7 @@ package com.ycwl.basic.pricing.controller; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReq; import com.ycwl.basic.pricing.dto.req.VoucherBatchCreateReqV2; import com.ycwl.basic.pricing.dto.req.VoucherBatchQueryReq; @@ -96,8 +97,9 @@ public class VoucherManagementController { } @GetMapping("/mobile/my-codes") - public ApiResponse> getMyVoucherCodes(@RequestParam Long faceId) { - List codes = voucherCodeService.getMyVoucherCodes(faceId); + public ApiResponse> getMyVoucherCodes() { + Long userId = Long.valueOf(BaseContextHandler.getUserId()); + List codes = voucherCodeService.getMyVoucherCodes(userId); return ApiResponse.success(codes); } } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java index a3b8b0b9..7586ec15 100644 --- a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java +++ b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherClaimReq.java @@ -5,6 +5,5 @@ import lombok.Data; @Data public class VoucherClaimReq { private Long scenicId; - private Long faceId; private String code; } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherCodeQueryReq.java b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherCodeQueryReq.java index a0065c59..d3e201ac 100644 --- a/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherCodeQueryReq.java +++ b/src/main/java/com/ycwl/basic/pricing/dto/req/VoucherCodeQueryReq.java @@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode; public class VoucherCodeQueryReq extends BaseQueryParameterReq { private Long batchId; private Long scenicId; - private Long faceId; + private Long userId; private Integer status; private String code; } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherCodeResp.java b/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherCodeResp.java index ee9de462..359dc573 100644 --- a/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherCodeResp.java +++ b/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherCodeResp.java @@ -14,7 +14,7 @@ public class VoucherCodeResp { private String code; private Integer status; private String statusName; - private Long faceId; + private Long userId; private Date claimedTime; private Date usedTime; private String remark; diff --git a/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherDetailResp.java b/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherDetailResp.java index 62ec1d7d..6c60ca48 100644 --- a/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherDetailResp.java +++ b/src/main/java/com/ycwl/basic/pricing/dto/resp/VoucherDetailResp.java @@ -102,9 +102,9 @@ public class VoucherDetailResp { @Data public static class UserInfo { /** - * 用户人脸ID + * 用户ID */ - private Long faceId; + private Long userId; /** * 该用户已使用此券码的次数 diff --git a/src/main/java/com/ycwl/basic/pricing/entity/PriceVoucherCode.java b/src/main/java/com/ycwl/basic/pricing/entity/PriceVoucherCode.java index f2288cae..2cc3a796 100644 --- a/src/main/java/com/ycwl/basic/pricing/entity/PriceVoucherCode.java +++ b/src/main/java/com/ycwl/basic/pricing/entity/PriceVoucherCode.java @@ -39,9 +39,9 @@ public class PriceVoucherCode { private Integer status; /** - * 领取人faceId + * 领取人用户ID */ - private Long faceId; + private Long userId; /** * 领取时间 diff --git a/src/main/java/com/ycwl/basic/pricing/mapper/PriceVoucherCodeMapper.java b/src/main/java/com/ycwl/basic/pricing/mapper/PriceVoucherCodeMapper.java index 7fbaadc0..22cc27fd 100644 --- a/src/main/java/com/ycwl/basic/pricing/mapper/PriceVoucherCodeMapper.java +++ b/src/main/java/com/ycwl/basic/pricing/mapper/PriceVoucherCodeMapper.java @@ -15,109 +15,109 @@ import java.util.List; */ @Mapper public interface PriceVoucherCodeMapper extends BaseMapper { - + /** * 根据券码查询券码信息 * @param code 券码 * @return 券码信息 */ - @Select("SELECT id, batch_id, scenic_id, code, status, face_id, claimed_time, used_time, " + + @Select("SELECT id, batch_id, scenic_id, code, status, user_id, claimed_time, used_time, " + "current_use_count, last_used_time, remark, create_time, update_time, deleted, deleted_at " + "FROM price_voucher_code WHERE code = #{code} AND deleted = 0 LIMIT 1") PriceVoucherCode selectByCode(@Param("code") String code); - + /** - * 根据faceId和scenicId统计已领取的券码数量 - * @param faceId 用户faceId + * 根据userId和scenicId统计已领取的券码数量 + * @param userId 用户ID * @param scenicId 景区ID * @return 数量 */ - @Select("SELECT COUNT(1) FROM price_voucher_code WHERE face_id = #{faceId} AND scenic_id = #{scenicId} AND deleted = 0") - Integer countByFaceIdAndScenicId(@Param("faceId") Long faceId, @Param("scenicId") Long scenicId); - + @Select("SELECT COUNT(1) FROM price_voucher_code WHERE user_id = #{userId} AND scenic_id = #{scenicId} AND deleted = 0") + Integer countByUserIdAndScenicId(@Param("userId") Long userId, @Param("scenicId") Long scenicId); + /** * 查询用户在指定景区的可用券码列表 - * @param faceId 用户faceId + * @param userId 用户ID * @param scenicId 景区ID * @return 券码列表 */ - @Select("SELECT id, batch_id, scenic_id, code, status, face_id, claimed_time, used_time, " + + @Select("SELECT id, batch_id, scenic_id, code, status, user_id, claimed_time, used_time, " + "current_use_count, last_used_time, remark, create_time, update_time, deleted, deleted_at " + - "FROM price_voucher_code WHERE face_id = #{faceId} AND scenic_id = #{scenicId} AND status = 1 AND deleted = 0 " + + "FROM price_voucher_code WHERE user_id = #{userId} AND scenic_id = #{scenicId} AND status = 1 AND deleted = 0 " + "ORDER BY claimed_time DESC") - List selectAvailableVouchersByFaceIdAndScenicId(@Param("faceId") Long faceId, + List selectAvailableVouchersByUserIdAndScenicId(@Param("userId") Long userId, @Param("scenicId") Long scenicId); - + /** * 根据批次ID获取可领取的券码(未领取状态) * @param batchId 批次ID * @param limit 限制数量 * @return 券码列表 */ - @Select("SELECT id, batch_id, scenic_id, code, status, face_id, claimed_time, used_time, " + + @Select("SELECT id, batch_id, scenic_id, code, status, user_id, claimed_time, used_time, " + "current_use_count, last_used_time, remark, create_time, update_time, deleted, deleted_at " + "FROM price_voucher_code WHERE batch_id = #{batchId} AND status = 0 AND deleted = 0 LIMIT #{limit}") List selectUnclaimedVouchersByBatchId(@Param("batchId") Long batchId, @Param("limit") Integer limit); - + /** * 领取券码(更新状态为已领取) * @param id 券码ID - * @param faceId 用户faceId + * @param userId 用户ID * @param claimedTime 领取时间 * @return 影响行数 */ - @Update("UPDATE price_voucher_code SET status = 1, face_id = #{faceId}, claimed_time = #{claimedTime}, " + + @Update("UPDATE price_voucher_code SET status = 1, user_id = #{userId}, claimed_time = #{claimedTime}, " + "update_time = NOW() WHERE id = #{id} AND status = 0 AND deleted = 0") int claimVoucher(@Param("id") Long id, - @Param("faceId") Long faceId, + @Param("userId") Long userId, @Param("claimedTime") LocalDateTime claimedTime); - + /** * 根据批次ID查询券码列表(支持分页) * @param batchId 批次ID * @return 券码列表 */ - @Select("SELECT id, batch_id, scenic_id, code, status, face_id, claimed_time, used_time, " + + @Select("SELECT id, batch_id, scenic_id, code, status, user_id, claimed_time, used_time, " + "current_use_count, last_used_time, remark, create_time, update_time, deleted, deleted_at " + "FROM price_voucher_code WHERE batch_id = #{batchId} AND deleted = 0 ORDER BY create_time DESC") List selectByBatchId(@Param("batchId") Long batchId); - + /** * 查询用户的券码列表 - * @param faceId 用户faceId + * @param userId 用户ID * @param scenicId 景区ID(可选) * @return 券码列表 */ @Select("") - List selectUserVouchers(@Param("faceId") Long faceId, + List selectUserVouchers(@Param("userId") Long userId, @Param("scenicId") Long scenicId); - + /** * 根据批次ID查询第一个可用的券码 * @param batchId 批次ID * @return 可用券码 */ - @Select("SELECT id, batch_id, scenic_id, code, status, face_id, claimed_time, used_time, " + + @Select("SELECT id, batch_id, scenic_id, code, status, user_id, claimed_time, used_time, " + "current_use_count, last_used_time, remark, create_time, update_time, deleted, deleted_at " + "FROM price_voucher_code WHERE batch_id = #{batchId} AND status = 0 AND deleted = 0 LIMIT 1") PriceVoucherCode findFirstAvailableByBatchId(@Param("batchId") Long batchId); - + /** * 随机获取一个未被打印过的可用券码 * @param scenicId 景区ID * @return 可用券码 */ - @Select("SELECT pvc.id, pvc.batch_id, pvc.scenic_id, pvc.code, pvc.status, pvc.face_id, pvc.claimed_time, pvc.used_time, " + + @Select("SELECT pvc.id, pvc.batch_id, pvc.scenic_id, pvc.code, pvc.status, pvc.user_id, pvc.claimed_time, pvc.used_time, " + "pvc.current_use_count, pvc.last_used_time, pvc.remark, pvc.create_time, pvc.update_time, pvc.deleted, pvc.deleted_at " + "FROM price_voucher_code pvc WHERE pvc.scenic_id = #{scenicId} AND pvc.status = 0 AND pvc.deleted = 0 " + "AND NOT EXISTS (SELECT 1 FROM voucher_print_record vpr WHERE vpr.voucher_code_id = pvc.id AND vpr.deleted = 0) " + "ORDER BY RAND() LIMIT 1") PriceVoucherCode findRandomUnprintedVoucher(@Param("scenicId") Long scenicId); -} \ No newline at end of file +} diff --git a/src/main/java/com/ycwl/basic/pricing/service/VoucherCodeService.java b/src/main/java/com/ycwl/basic/pricing/service/VoucherCodeService.java index 83e7987f..7fdd089a 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/VoucherCodeService.java +++ b/src/main/java/com/ycwl/basic/pricing/service/VoucherCodeService.java @@ -15,9 +15,9 @@ public interface VoucherCodeService { PageInfo queryCodeList(VoucherCodeQueryReq req); - List getMyVoucherCodes(Long faceId); - + List getMyVoucherCodes(Long userId); + void markCodeAsUsed(Long codeId, String remark); - - boolean canClaimVoucher(Long faceId, Long scenicId); + + boolean canClaimVoucher(Long userId, Long scenicId); } \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java index 0054c773..6209afd6 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherCodeServiceImpl.java @@ -3,6 +3,7 @@ package com.ycwl.basic.pricing.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.ycwl.basic.constant.BaseContextHandler; import com.ycwl.basic.exception.BizException; import com.ycwl.basic.pricing.dto.req.VoucherClaimReq; import com.ycwl.basic.pricing.dto.req.VoucherCodeQueryReq; @@ -76,32 +77,31 @@ public VoucherCodeResp claimVoucher(VoucherClaimReq req) { if (req.getScenicId() == null) { throw new BizException(400, "景区ID不能为空"); } - if (req.getFaceId() == null) { - throw new BizException(400, "用户faceId不能为空"); - } if (!StringUtils.hasText(req.getCode())) { throw new BizException(400, "券码不能为空"); } - + + Long userId = Long.valueOf(BaseContextHandler.getUserId()); + // 验证券码是否存在且未被领取 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(PriceVoucherCode::getCode, req.getCode()) .eq(PriceVoucherCode::getScenicId, req.getScenicId()) .eq(PriceVoucherCode::getDeleted, 0); - + PriceVoucherCode voucherCode = voucherCodeMapper.selectOne(wrapper); if (voucherCode == null) { throw new BizException(400, "券码不存在或不属于该景区"); } - + if (!Objects.equals(voucherCode.getStatus(), VoucherCodeStatus.UNCLAIMED.getCode())) { throw new BizException(400, "券码已被领取或已使用"); } - - if (!canClaimVoucher(req.getFaceId(), req.getScenicId())) { + + if (!canClaimVoucher(userId, req.getScenicId())) { throw new BizException(400, "该用户在此景区已领取过券码"); } - + // 获取券码所属批次 PriceVoucherBatchConfig batch = voucherBatchMapper.selectById(voucherCode.getBatchId()); if (batch == null || batch.getDeleted() == 1) { @@ -109,18 +109,18 @@ public VoucherCodeResp claimVoucher(VoucherClaimReq req) { } // 更新券码状态 - voucherCode.setFaceId(req.getFaceId()); + voucherCode.setUserId(userId); voucherCode.setStatus(VoucherCodeStatus.CLAIMED_UNUSED.getCode()); voucherCode.setClaimedTime(new Date()); // 确保currentUseCount被初始化 if (voucherCode.getCurrentUseCount() == null) { voucherCode.setCurrentUseCount(0); } - + voucherCodeMapper.updateById(voucherCode); - + voucherBatchService.updateBatchClaimedCount(batch.getId()); - + return convertToResp(voucherCode, batch); } @@ -132,7 +132,7 @@ public VoucherCodeResp claimVoucher(VoucherClaimReq req) { wrapper.eq(PriceVoucherCode::getDeleted, 0) .eq(req.getBatchId() != null, PriceVoucherCode::getBatchId, req.getBatchId()) .eq(req.getScenicId() != null, PriceVoucherCode::getScenicId, req.getScenicId()) - .eq(req.getFaceId() != null, PriceVoucherCode::getFaceId, req.getFaceId()) + .eq(req.getUserId() != null, PriceVoucherCode::getUserId, req.getUserId()) .eq(req.getStatus() != null, PriceVoucherCode::getStatus, req.getStatus()) .like(StringUtils.hasText(req.getCode()), PriceVoucherCode::getCode, req.getCode()) .orderByDesc(PriceVoucherCode::getId); @@ -149,9 +149,9 @@ public VoucherCodeResp claimVoucher(VoucherClaimReq req) { } @Override - public List getMyVoucherCodes(Long faceId) { + public List getMyVoucherCodes(Long userId) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(PriceVoucherCode::getFaceId, faceId) + wrapper.eq(PriceVoucherCode::getUserId, userId) .eq(PriceVoucherCode::getDeleted, 0) .orderByDesc(PriceVoucherCode::getClaimedTime); @@ -193,8 +193,8 @@ public void markCodeAsUsed(Long codeId, String remark) { } @Override - public boolean canClaimVoucher(Long faceId, Long scenicId) { - Integer count = voucherCodeMapper.countByFaceIdAndScenicId(faceId, scenicId); + public boolean canClaimVoucher(Long userId, Long scenicId) { + Integer count = voucherCodeMapper.countByUserIdAndScenicId(userId, scenicId); return count == 0; } diff --git a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherServiceImpl.java b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherServiceImpl.java index ba5fb1e1..f47f5d95 100644 --- a/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherServiceImpl.java +++ b/src/main/java/com/ycwl/basic/pricing/service/impl/VoucherServiceImpl.java @@ -132,7 +132,7 @@ public class VoucherServiceImpl implements IVoucherService { if (faceId == null) { voucherInfo.setAvailable(false); voucherInfo.setUnavailableReason("用户信息缺失,无法验证券码权限"); - } else if (!faceId.equals(voucherCodeEntity.getFaceId())) { + } else if (!faceId.equals(voucherCodeEntity.getUserId())) { voucherInfo.setAvailable(false); voucherInfo.setUnavailableReason("券码已被其他用户领取"); } else { @@ -176,7 +176,7 @@ public class VoucherServiceImpl implements IVoucherService { return new ArrayList<>(); } - List voucherCodes = voucherCodeMapper.selectAvailableVouchersByFaceIdAndScenicId(faceId, scenicId); + List voucherCodes = voucherCodeMapper.selectAvailableVouchersByUserIdAndScenicId(faceId, scenicId); List voucherInfos = new ArrayList<>(); for (PriceVoucherCode voucherCode : voucherCodes) { @@ -234,7 +234,7 @@ public void markVoucherAsUsed(String voucherCode, String remark, String orderId, PriceVoucherUsageRecord usageRecord = new PriceVoucherUsageRecord(); usageRecord.setVoucherCodeId(voucherCodeEntity.getId()); usageRecord.setVoucherCode(voucherCode); - usageRecord.setFaceId(faceId != null ? faceId : voucherCodeEntity.getFaceId()); + usageRecord.setFaceId(faceId != null ? faceId : voucherCodeEntity.getUserId()); usageRecord.setScenicId(voucherCodeEntity.getScenicId()); usageRecord.setBatchId(voucherCodeEntity.getBatchId()); usageRecord.setUsageSequence(newUseCount); // 设置使用序号,表示这是该券码的第几次使用 @@ -279,7 +279,7 @@ public void markVoucherAsUsed(String voucherCode, String remark, String orderId, return false; } - Integer count = voucherCodeMapper.countByFaceIdAndScenicId(faceId, scenicId); + Integer count = voucherCodeMapper.countByUserIdAndScenicId(faceId, scenicId); return count == 0; } @@ -435,7 +435,7 @@ public void markVoucherAsUsed(String voucherCode, String remark, String orderId, // 设置用户信息 if (faceId != null) { VoucherDetailResp.UserInfo userInfo = new VoucherDetailResp.UserInfo(); - userInfo.setFaceId(faceId); + userInfo.setUserId(faceId); // 计算该用户使用此券码的次数 List userUsageRecords = usageRecordMapper.selectByVoucherCodeAndFaceId(voucherCodeEntity.getId(), faceId); diff --git a/src/test/java/com/ycwl/basic/pricing/service/ReusableVoucherServiceTest.java b/src/test/java/com/ycwl/basic/pricing/service/ReusableVoucherServiceTest.java index ef5c8026..b57dacbf 100644 --- a/src/test/java/com/ycwl/basic/pricing/service/ReusableVoucherServiceTest.java +++ b/src/test/java/com/ycwl/basic/pricing/service/ReusableVoucherServiceTest.java @@ -53,7 +53,7 @@ public class ReusableVoucherServiceTest { testVoucherCode.setCode("TEST123"); testVoucherCode.setBatchId(1L); testVoucherCode.setScenicId(1L); - testVoucherCode.setFaceId(1001L); + testVoucherCode.setUserId(1001L); testVoucherCode.setStatus(VoucherCodeStatus.CLAIMED_AVAILABLE.getCode()); testVoucherCode.setCurrentUseCount(1); testVoucherCode.setLastUsedTime(new Date());