You've already forked FrameTour-BE
feat(voucher): 优化优惠券打印逻辑
- 添加景区配置管理器验证逻辑,确保只有指定的代理可以打印优惠券 -优化代码结构,提高可读性和可维护性
This commit is contained in:
@@ -82,6 +82,14 @@ public class VoucherPrintServiceImpl implements VoucherPrintService {
|
|||||||
// 验证faceId是否属于当前用户
|
// 验证faceId是否属于当前用户
|
||||||
validateFaceOwnership(request.getFaceId(), currentUserId);
|
validateFaceOwnership(request.getFaceId(), currentUserId);
|
||||||
|
|
||||||
|
ScenicConfigManager config = scenicRepository.getScenicConfigManager(face.getScenicId());
|
||||||
|
Long brokerId = config.getLong("voucher_broker_id");
|
||||||
|
if (brokerId != null) {
|
||||||
|
if (!request.getBrokerId().equals(brokerId)) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 使用Redis分布式锁防止重复打印
|
// 使用Redis分布式锁防止重复打印
|
||||||
String lockKey = String.format(PRINT_LOCK_KEY, request.getFaceId(), request.getBrokerId(), request.getScenicId());
|
String lockKey = String.format(PRINT_LOCK_KEY, request.getFaceId(), request.getBrokerId(), request.getScenicId());
|
||||||
String lockValue = UUID.randomUUID().toString();
|
String lockValue = UUID.randomUUID().toString();
|
||||||
|
Reference in New Issue
Block a user