diff --git a/src/main/java/com/yolo/keyborad/mapper/KeyboardUserQuotaTotalMapper.java b/src/main/java/com/yolo/keyborad/mapper/KeyboardUserQuotaTotalMapper.java new file mode 100644 index 0000000..1e014ba --- /dev/null +++ b/src/main/java/com/yolo/keyborad/mapper/KeyboardUserQuotaTotalMapper.java @@ -0,0 +1,12 @@ +package com.yolo.keyborad.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal; + +/* +* @author: ziin +* @date: 2025/12/16 16:00 +*/ + +public interface KeyboardUserQuotaTotalMapper extends BaseMapper { +} \ No newline at end of file diff --git a/src/main/java/com/yolo/keyborad/model/entity/KeyboardUserQuotaTotal.java b/src/main/java/com/yolo/keyborad/model/entity/KeyboardUserQuotaTotal.java new file mode 100644 index 0000000..e3975b4 --- /dev/null +++ b/src/main/java/com/yolo/keyborad/model/entity/KeyboardUserQuotaTotal.java @@ -0,0 +1,64 @@ +package com.yolo.keyborad.model.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import java.util.Date; +import lombok.Data; + +/* +* @author: ziin +* @date: 2025/12/16 16:00 +*/ + +/** + * 用户免费功能永久总次数额度表(所有功能共用) + */ +@Schema(description="用户免费功能永久总次数额度表(所有功能共用)") +@Data +@TableName(value = "keyboard_user_quota_total") +public class KeyboardUserQuotaTotal { + /** + * 用户唯一ID,对应系统用户 + */ + @TableId(value = "user_id", type = IdType.AUTO) + @Schema(description="用户唯一ID,对应系统用户") + private Long userId; + + /** + * 免费体验的永久总次数上限(可通过运营活动增加) + */ + @TableField(value = "total_quota") + @Schema(description="免费体验的永久总次数上限(可通过运营活动增加)") + private Integer totalQuota; + + /** + * 已消耗的免费次数 + */ + @TableField(value = "used_quota") + @Schema(description="已消耗的免费次数") + private Integer usedQuota; + + /** + * 乐观锁版本号(并发控制预留字段) + */ + @TableField(value = "version") + @Schema(description="乐观锁版本号(并发控制预留字段)") + private Integer version; + + /** + * 首次创建额度记录的时间(通常为注册时间) + */ + @TableField(value = "created_at") + @Schema(description="首次创建额度记录的时间(通常为注册时间)") + private Date createdAt; + + /** + * 最近一次额度发生变化的时间(消耗或赠送) + */ + @TableField(value = "updated_at") + @Schema(description="最近一次额度发生变化的时间(消耗或赠送)") + private Date updatedAt; +} \ No newline at end of file diff --git a/src/main/java/com/yolo/keyborad/service/KeyboardUserQuotaTotalService.java b/src/main/java/com/yolo/keyborad/service/KeyboardUserQuotaTotalService.java new file mode 100644 index 0000000..faae03d --- /dev/null +++ b/src/main/java/com/yolo/keyborad/service/KeyboardUserQuotaTotalService.java @@ -0,0 +1,13 @@ +package com.yolo.keyborad.service; + +import com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal; +import com.baomidou.mybatisplus.extension.service.IService; + /* +* @author: ziin +* @date: 2025/12/16 16:00 +*/ + +public interface KeyboardUserQuotaTotalService extends IService{ + + +} diff --git a/src/main/java/com/yolo/keyborad/service/impl/KeyboardUserQuotaTotalServiceImpl.java b/src/main/java/com/yolo/keyborad/service/impl/KeyboardUserQuotaTotalServiceImpl.java new file mode 100644 index 0000000..7bfa1e2 --- /dev/null +++ b/src/main/java/com/yolo/keyborad/service/impl/KeyboardUserQuotaTotalServiceImpl.java @@ -0,0 +1,18 @@ +package com.yolo.keyborad.service.impl; + +import org.springframework.stereotype.Service; +import org.springframework.beans.factory.annotation.Autowired; +import java.util.List; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yolo.keyborad.model.entity.KeyboardUserQuotaTotal; +import com.yolo.keyborad.mapper.KeyboardUserQuotaTotalMapper; +import com.yolo.keyborad.service.KeyboardUserQuotaTotalService; +/* +* @author: ziin +* @date: 2025/12/16 16:00 +*/ + +@Service +public class KeyboardUserQuotaTotalServiceImpl extends ServiceImpl implements KeyboardUserQuotaTotalService{ + +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index f86a8b1..3971298 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -76,6 +76,12 @@ mailgun: from-email: no-reply@yourdomain.com # 发件人邮箱 from-name: Key Of Love # 发件人名称(可选) +# 用户注册配置 +user: + register: + # 新用户注册时的免费体验额度 + free-trial-credits: 5 + ############## Sa-Token 配置 (文档: https://sa-token.cc) ############## diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index d0a1dbe..383137a 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -28,3 +28,9 @@ logging: max-size: 10MB # 保留的日志文件数量 max-history: 30 + +# 用户注册配置 +user: + register: + # 新用户注册时的免费体验额度 + free-trial-credits: 5 diff --git a/src/main/resources/mapper/KeyboardUserQuotaTotalMapper.xml b/src/main/resources/mapper/KeyboardUserQuotaTotalMapper.xml new file mode 100644 index 0000000..be854c6 --- /dev/null +++ b/src/main/resources/mapper/KeyboardUserQuotaTotalMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + user_id, total_quota, used_quota, version, created_at, updated_at + + \ No newline at end of file