membercard与member-reguster合并,能进行编译和启动

This commit is contained in:
时舟年
2026-05-27 16:51:05 +08:00
parent 53624fc259
commit 7c08c685d0
42 changed files with 631 additions and 100 deletions
@@ -0,0 +1,61 @@
package cn.novalon.gym.manage.member.dto
;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 创建会员卡类型请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class CreateMemberCardRequest {
/**
* 会员卡名称
*/
@NotBlank(message = "会员卡名称不能为空")
private String memberCardName;
/**
* 会员卡类型:TIME_CARD-时长卡, COUNT_CARD-次卡, STORED_VALUE_CARD-储值卡
*/
@NotBlank(message = "会员卡类型不能为空")
private String memberCardType;
/**
* 会员卡价格
*/
@NotNull(message = "会员卡价格不能为空")
private BigDecimal memberCardPrice;
/**
* 有效天数(时长卡用)
*/
private Integer memberCardValidityDays;
/**
* 总次数(次卡用)
*/
private Integer memberCardTotalTimes;
/**
* 面额(储值卡用)
*/
private BigDecimal memberCardAmount;
/**
* 状态:0-下架, 1-上架
*/
private Integer memberCardStatus = 1;
/**
* 扩展配置(JSON格式)
*/
private String extraConfig;
}
@@ -0,0 +1,32 @@
package cn.novalon.gym.manage.member.dto;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
/**
* 购买会员卡请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class PurchaseCardRequest {
/**
* 会员ID
*/
@NotNull(message = "会员ID不能为空")
private Long memberId;
/**
* 会员卡类型ID
*/
@NotNull(message = "会员卡类型ID不能为空")
private Long memberCardId;
/**
* 来源订单ID
*/
private Long sourceOrderId;
}
@@ -0,0 +1,21 @@
package cn.novalon.gym.manage.member.dto;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
/**
* 退款申请请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class RefundCardRequest {
/**
* 退款原因
*/
@NotBlank(message = "退款原因不能为空")
private String reason;
}
@@ -0,0 +1,35 @@
package cn.novalon.gym.manage.member.dto;
import lombok.Data;
import jakarta.validation.constraints.NotNull;
/**
* 续费会员卡请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class RenewCardRequest {
/**
* 增加的次数
*/
private Integer addTimes;
/**
* 增加的金额
*/
private Double addAmount;
/**
* 增加的天数
*/
private Integer addDays;
/**
* 来源订单ID
*/
private Long sourceOrderId;
}
@@ -0,0 +1,60 @@
package cn.novalon.gym.manage.member.dto;
import lombok.Data;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
/**
* 更新会员卡类型请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class UpdateMemberCardRequest {
/**
* 会员卡名称
*/
@NotBlank(message = "会员卡名称不能为空")
private String memberCardName;
/**
* 会员卡类型:TIME_CARD-时长卡, COUNT_CARD-次卡, STORED_VALUE_CARD-储值卡
*/
@NotBlank(message = "会员卡类型不能为空")
private String memberCardType;
/**
* 会员卡价格
*/
@NotNull(message = "会员卡价格不能为空")
private BigDecimal memberCardPrice;
/**
* 有效天数(时长卡用)
*/
private Integer memberCardValidityDays;
/**
* 总次数(次卡用)
*/
private Integer memberCardTotalTimes;
/**
* 面额(储值卡用)
*/
private BigDecimal memberCardAmount;
/**
* 状态:0-下架, 1-上架
*/
private Integer memberCardStatus;
/**
* 扩展配置(JSON格式)
*/
private String extraConfig;
}
@@ -0,0 +1,23 @@
package cn.novalon.gym.manage.member.dto;
import lombok.Data;
/**
* 使用会员卡请求 DTO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
public class UseCardRequest {
/**
* 扣减的次数
*/
private Integer deductTimes;
/**
* 扣减的金额
*/
private Double deductAmount;
}
@@ -1,6 +1,5 @@
package cn.novalon.gym.manage.member.card.entity;
package cn.novalon.gym.manage.member.entity;
import cn.novalon.gym.manage.member.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -1,7 +1,6 @@
package cn.novalon.gym.manage.member.card.entity;
package cn.novalon.gym.manage.member.entity;
import cn.novalon.gym.manage.member.card.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.entity.BaseEntity;
import cn.novalon.gym.manage.member.enums.MemberCardRecordStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -1,6 +1,5 @@
package cn.novalon.gym.manage.member.card.entity;
package cn.novalon.gym.manage.member.entity;
import cn.novalon.gym.manage.member.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -1,7 +1,6 @@
package cn.novalon.gym.manage.member.card.entity;
package cn.novalon.gym.manage.member.entity;
import cn.novalon.gym.manage.member.card.enums.RefundStatus;
import cn.novalon.gym.manage.member.entity.BaseEntity;
import cn.novalon.gym.manage.member.enums.RefundStatus;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 会员卡流水关联业务类型枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 会员卡状态机事件枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 会员卡记录状态枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 会员卡类型枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 退款申请状态枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.enums;
package cn.novalon.gym.manage.member.enums;
/**
* 会员卡流水操作类型枚举
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@@ -1,8 +1,7 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCard;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.service.IMemberCardService;
import cn.novalon.gym.manage.member.entity.MemberCard;
import cn.novalon.gym.manage.member.service.IMemberCardService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.extern.slf4j.Slf4j;
@@ -1,8 +1,8 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.service.IMemberCardRecordService;
import cn.novalon.gym.manage.member.card.service.IMemberCardService;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.service.IMemberCardRecordService;
import cn.novalon.gym.manage.member.service.IMemberCardService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.Data;
@@ -1,9 +1,7 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.enums.CardEvent;
import cn.novalon.gym.manage.member.card.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.card.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.enums.CardEvent;
import cn.novalon.gym.manage.member.repository.MemberCardRecordRepository;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled;
@@ -1,8 +1,8 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.enums.CardEvent;
import cn.novalon.gym.manage.member.card.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.enums.CardEvent;
import cn.novalon.gym.manage.member.enums.MemberCardRecordStatus;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import reactor.core.publisher.Mono;
@@ -1,9 +1,9 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.hutool.db.PageResult;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.card.enums.TransactionType;
import cn.novalon.gym.manage.member.card.service.IMemberCardTransactionService;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.enums.TransactionType;
import cn.novalon.gym.manage.member.service.IMemberCardTransactionService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.validation.Validator;
@@ -1,12 +1,12 @@
package cn.novalon.gym.manage.member.card.handler;
package cn.novalon.gym.manage.member.handler;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.card.enums.CardEvent;
import cn.novalon.gym.manage.member.card.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.card.enums.TransactionType;
import cn.novalon.gym.manage.member.card.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.card.service.IMemberCardTransactionService;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.enums.CardEvent;
import cn.novalon.gym.manage.member.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.enums.TransactionType;
import cn.novalon.gym.manage.member.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.service.IMemberCardTransactionService;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.repository;
package cn.novalon.gym.manage.member.repository;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import org.springframework.data.domain.Pageable;
import org.springframework.data.r2dbc.repository.Modifying;
import org.springframework.data.r2dbc.repository.Query;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.repository;
package cn.novalon.gym.manage.member.repository;
import cn.novalon.gym.manage.member.card.entity.MemberCard;
import cn.novalon.gym.manage.member.entity.MemberCard;
import org.springframework.data.domain.Pageable;
import org.springframework.data.r2dbc.repository.Modifying;
import org.springframework.data.r2dbc.repository.Query;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.repository;
package cn.novalon.gym.manage.member.repository;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import org.springframework.data.domain.Pageable;
import org.springframework.data.r2dbc.repository.Modifying;
import org.springframework.data.r2dbc.repository.Query;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.repository;
package cn.novalon.gym.manage.member.repository;
import cn.novalon.gym.manage.member.card.entity.RefundApplication;
import cn.novalon.gym.manage.member.entity.RefundApplication;
import org.springframework.data.r2dbc.repository.Query;
import org.springframework.data.r2dbc.repository.R2dbcRepository;
import org.springframework.stereotype.Repository;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.service;
package cn.novalon.gym.manage.member.service;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import org.springframework.data.domain.Pageable;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -1,7 +1,7 @@
package cn.novalon.gym.manage.member.card.service;
package cn.novalon.gym.manage.member.service;
import cn.novalon.gym.manage.member.card.entity.MemberCard;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCard;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import org.springframework.data.domain.Pageable;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -1,7 +1,7 @@
package cn.novalon.gym.manage.member.card.service;
package cn.novalon.gym.manage.member.service;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.card.enums.TransactionType;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.enums.TransactionType;
import org.springframework.data.domain.Pageable;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
@@ -1,6 +1,6 @@
package cn.novalon.gym.manage.member.card.service;
package cn.novalon.gym.manage.member.service;
import cn.novalon.gym.manage.member.card.entity.RefundApplication;
import cn.novalon.gym.manage.member.entity.RefundApplication;
import reactor.core.publisher.Mono;
/**
@@ -1,8 +1,8 @@
package cn.novalon.gym.manage.member.card.service.impl;
package cn.novalon.gym.manage.member.service.impl;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.card.service.IMemberCardRecordService;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.service.IMemberCardRecordService;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Flux;
@@ -1,20 +1,20 @@
package cn.novalon.gym.manage.member.card.service.impl;
package cn.novalon.gym.manage.member.service.impl;
import cn.novalon.gym.manage.member.card.entity.MemberCard;
import cn.novalon.gym.manage.member.card.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.card.enums.CardEvent;
import cn.novalon.gym.manage.member.card.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.card.enums.MemberCardType;
import cn.novalon.gym.manage.member.card.enums.TransactionType;
import cn.novalon.gym.manage.member.card.handler.DistributedLockService;
import cn.novalon.gym.manage.member.card.handler.ExpirationReminderService;
import cn.novalon.gym.manage.member.card.handler.MemberCardStateMachine;
import cn.novalon.gym.manage.member.card.handler.RefundSagaHandler;
import cn.novalon.gym.manage.member.card.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.card.repository.MemberCardRepository;
import cn.novalon.gym.manage.member.card.service.IMemberCardService;
import cn.novalon.gym.manage.member.card.service.IMemberCardTransactionService;
import cn.novalon.gym.manage.member.entity.MemberCard;
import cn.novalon.gym.manage.member.entity.MemberCardRecord;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.enums.CardEvent;
import cn.novalon.gym.manage.member.enums.MemberCardRecordStatus;
import cn.novalon.gym.manage.member.enums.MemberCardType;
import cn.novalon.gym.manage.member.enums.TransactionType;
import cn.novalon.gym.manage.member.handler.DistributedLockService;
import cn.novalon.gym.manage.member.handler.ExpirationReminderService;
import cn.novalon.gym.manage.member.handler.MemberCardStateMachine;
import cn.novalon.gym.manage.member.handler.RefundSagaHandler;
import cn.novalon.gym.manage.member.repository.MemberCardRecordRepository;
import cn.novalon.gym.manage.member.repository.MemberCardRepository;
import cn.novalon.gym.manage.member.service.IMemberCardService;
import cn.novalon.gym.manage.member.service.IMemberCardTransactionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@@ -1,9 +1,9 @@
package cn.novalon.gym.manage.member.card.service.impl;
package cn.novalon.gym.manage.member.service.impl;
import cn.novalon.gym.manage.member.card.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.card.enums.TransactionType;
import cn.novalon.gym.manage.member.card.repository.MemberCardTransactionRepository;
import cn.novalon.gym.manage.member.card.service.IMemberCardTransactionService;
import cn.novalon.gym.manage.member.entity.MemberCardTransaction;
import cn.novalon.gym.manage.member.enums.TransactionType;
import cn.novalon.gym.manage.member.repository.MemberCardTransactionRepository;
import cn.novalon.gym.manage.member.service.IMemberCardTransactionService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
@@ -1,9 +1,9 @@
package cn.novalon.gym.manage.member.card.service.impl;
package cn.novalon.gym.manage.member.service.impl;
import cn.novalon.gym.manage.member.card.entity.RefundApplication;
import cn.novalon.gym.manage.member.card.enums.RefundStatus;
import cn.novalon.gym.manage.member.card.repository.RefundApplicationRepository;
import cn.novalon.gym.manage.member.card.service.IRefundApplicationService;
import cn.novalon.gym.manage.member.entity.RefundApplication;
import cn.novalon.gym.manage.member.enums.RefundStatus;
import cn.novalon.gym.manage.member.repository.RefundApplicationRepository;
import cn.novalon.gym.manage.member.service.IRefundApplicationService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import reactor.core.publisher.Mono;
@@ -1,4 +1,4 @@
package cn.novalon.gym.manage.member.card.util;
package cn.novalon.gym.manage.member.util;
import cn.hutool.core.bean.BeanUtil;
import org.springframework.stereotype.Component;
@@ -0,0 +1,71 @@
package cn.novalon.gym.manage.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 会员卡记录响应 VO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardRecordVO {
/**
* 会员卡记录ID
*/
private Long memberCardRecordId;
/**
* 会员ID
*/
private Long memberId;
/**
* 会员卡类型ID
*/
private Long memberCardId;
/**
* 会员卡名称
*/
private String memberCardName;
/**
* 状态:ACTIVE-有效, USED_UP-用完, EXPIRED-过期, REFUNDED-已退款
*/
private String status;
/**
* 剩余次数
*/
private Integer remainingTimes;
/**
* 剩余金额
*/
private Double remainingAmount;
/**
* 到期时间
*/
private LocalDateTime expireTime;
/**
* 购买时间
*/
private LocalDateTime purchaseTime;
/**
* 创建时间
*/
private LocalDateTime createdAt;
}
@@ -0,0 +1,81 @@
package cn.novalon.gym.manage.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.time.LocalDateTime;
/**
* 会员卡交易流水响应 VO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardTransactionVO {
/**
* 交易ID
*/
private Long id;
/**
* 会员卡记录ID
*/
private Long memberCardRecordId;
/**
* 会员ID
*/
private Long memberId;
/**
* 会员卡类型ID
*/
private Long memberCardId;
/**
* 操作类型:PURCHASE-购买, DEDUCT-扣次/扣费, RENEW-续费, REFUND-退款, EXPIRE-过期
*/
private String operationType;
/**
* 变动次数
*/
private Integer changeAmount;
/**
* 变动金额
*/
private Double changeBalance;
/**
* 变动后剩余次数
*/
private Integer afterRemainingCount;
/**
* 变动后剩余金额
*/
private Double afterRemainingBalance;
/**
* 关联业务类型
*/
private String relatedBizType;
/**
* 备注
*/
private String remark;
/**
* 创建时间
*/
private LocalDateTime createdAt;
}
@@ -0,0 +1,77 @@
package cn.novalon.gym.manage.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 会员卡类型响应 VO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class MemberCardVO {
/**
* 会员卡ID
*/
private Long memberCardId;
/**
* 会员卡名称
*/
private String memberCardName;
/**
* 会员卡类型:TIME_CARD-时长卡, COUNT_CARD-次卡, STORED_VALUE_CARD-储值卡
*/
private String memberCardType;
/**
* 会员卡价格
*/
private BigDecimal memberCardPrice;
/**
* 有效天数(时长卡用)
*/
private Integer memberCardValidityDays;
/**
* 总次数(次卡用)
*/
private Integer memberCardTotalTimes;
/**
* 面额(储值卡用)
*/
private BigDecimal memberCardAmount;
/**
* 状态:0-下架, 1-上架
*/
private Integer memberCardStatus;
/**
* 扩展配置(JSON格式)
*/
private String extraConfig;
/**
* 创建时间
*/
private LocalDateTime createdAt;
/**
* 更新时间
*/
private LocalDateTime updatedAt;
}
@@ -0,0 +1,77 @@
package cn.novalon.gym.manage.member.vo;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 退款申请响应 VO
*
* @author 付嘉
* @date 2026-05-27
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class RefundApplicationVO {
/**
* 申请ID
*/
private Long id;
/**
* 会员卡记录ID
*/
private Long recordId;
/**
* 会员ID
*/
private Long memberId;
/**
* 状态:PENDING-待审核, APPROVED-已批准, REJECTED-已拒绝, PROCESSING-处理中, SUCCESS-成功, FAILED-失败
*/
private String status;
/**
* 退款原因
*/
private String reason;
/**
* 申请时间
*/
private LocalDateTime applyTime;
/**
* 审核时间
*/
private LocalDateTime auditTime;
/**
* 审核人ID
*/
private Long auditorId;
/**
* 审核备注
*/
private String auditRemark;
/**
* 退款金额
*/
private BigDecimal refundAmount;
/**
* 创建时间
*/
private LocalDateTime createdAt;
}
@@ -2,9 +2,9 @@ package cn.novalon.gym.manage.app.config;
import cn.novalon.gym.manage.file.handler.SysFileHandler;
import cn.novalon.gym.manage.member.card.handler.MemberCardHandler;
import cn.novalon.gym.manage.member.card.handler.MemberCardRecordHandler;
import cn.novalon.gym.manage.member.card.handler.MemberCardTransactionHandler;
import cn.novalon.gym.manage.member.handler.MemberCardHandler;
import cn.novalon.gym.manage.member.handler.MemberCardRecordHandler;
import cn.novalon.gym.manage.member.handler.MemberCardTransactionHandler;
import cn.novalon.gym.manage.member.handler.MemberHandler;
import cn.novalon.gym.manage.member.handler.WechatAuthHandler;
import cn.novalon.gym.manage.notify.handler.SysNoticeHandler;