用户模块

This commit is contained in:
2025-05-07 04:14:21 +08:00
parent e1b1bfc721
commit 6e0576df5b
42 changed files with 1882 additions and 96 deletions

View File

@ -0,0 +1,54 @@
package com.greenorange.promotion.model.dto.projectDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 项目明细添加请求体
*/
@Data
@Schema(description = "项目明细添加请求体", requiredProperties = {
"projectDetailName",
"projectSettlementPrice",
"maxCommissionRate",
"projectId",
})
public class ProjectDetailAddRequest implements Serializable {
/**
* 项目明细名称
*/
@NotBlank(message = "项目明细名称不能为空")
@Schema(description = "项目明细名称", example = "")
private String projectDetailName;
/**
* 项目结算价
*/
@Schema(description = "项目结算价", example = "")
private BigDecimal projectSettlementPrice;
/**
* 最大抽佣比例
*/
@Schema(description = "最大抽佣比例", example = "")
private Integer maxCommissionRate;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,58 @@
package com.greenorange.promotion.model.dto.projectDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import com.greenorange.promotion.common.PageRequest;
/**
* 项目明细查询请求体,继承自分页请求 PageRequest
*/
@Data
@Schema(description = "项目明细查询请求体", requiredProperties = {"current", "pageSize"})
public class ProjectDetailQueryRequest extends PageRequest implements Serializable {
/**
* 项目明细ID
*/
@Min(value = 1L, message = "项目明细ID ID不能小于1")
@Schema(description = "项目明细ID", example = "")
private Long id;
/**
* 项目明细名称
*/
@NotBlank(message = "项目明细名称不能为空")
@Schema(description = "项目明细名称", example = "")
private String projectDetailName;
/**
* 项目结算价
*/
@Schema(description = "项目结算价", example = "")
private BigDecimal projectSettlementPrice;
/**
* 最大抽佣比例
*/
@Schema(description = "最大抽佣比例", example = "")
private Integer maxCommissionRate;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,61 @@
package com.greenorange.promotion.model.dto.projectDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 项目明细更新请求体
*/
@Data
@Schema(description = "项目明细更新请求体", requiredProperties = {
"id",
"projectDetailName",
"projectSettlementPrice",
"maxCommissionRate",
"projectId",
})
public class ProjectDetailUpdateRequest implements Serializable {
/**
* 项目明细ID
*/
@Min(value = 1L, message = "项目明细ID ID不能小于1")
@Schema(description = "项目明细ID", example = "")
private Long id;
/**
* 项目明细名称
*/
@NotBlank(message = "项目明细名称不能为空")
@Schema(description = "项目明细名称", example = "")
private String projectDetailName;
/**
* 项目结算价
*/
@Schema(description = "项目结算价", example = "")
private BigDecimal projectSettlementPrice;
/**
* 最大抽佣比例
*/
@Schema(description = "最大抽佣比例", example = "")
private Integer maxCommissionRate;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,47 @@
package com.greenorange.promotion.model.dto.projectNotification;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 项目通知添加请求体
*/
@Data
@Schema(description = "项目通知添加请求体", requiredProperties = {
"notificationTitle",
"notificationContent",
"projectId",
})
public class ProjectNotificationAddRequest implements Serializable {
/**
* 通知标题
*/
@NotBlank(message = "通知标题不能为空")
@Schema(description = "通知标题", example = "")
private String notificationTitle;
/**
* 通知内容
*/
@NotBlank(message = "通知内容不能为空")
@Schema(description = "通知内容", example = "")
private String notificationContent;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,51 @@
package com.greenorange.promotion.model.dto.projectNotification;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import com.greenorange.promotion.common.PageRequest;
/**
* 项目通知查询请求体,继承自分页请求 PageRequest
*/
@Data
@Schema(description = "项目通知查询请求体", requiredProperties = {"current", "pageSize"})
public class ProjectNotificationQueryRequest extends PageRequest implements Serializable {
/**
* 通知ID
*/
@Min(value = 1L, message = "通知ID ID不能小于1")
@Schema(description = "通知ID", example = "")
private Long id;
/**
* 通知标题
*/
@NotBlank(message = "通知标题不能为空")
@Schema(description = "通知标题", example = "")
private String notificationTitle;
/**
* 通知内容
*/
@NotBlank(message = "通知内容不能为空")
@Schema(description = "通知内容", example = "")
private String notificationContent;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,54 @@
package com.greenorange.promotion.model.dto.projectNotification;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
/**
* 项目通知更新请求体
*/
@Data
@Schema(description = "项目通知更新请求体", requiredProperties = {
"id",
"notificationTitle",
"notificationContent",
"projectId",
})
public class ProjectNotificationUpdateRequest implements Serializable {
/**
* 通知ID
*/
@Min(value = 1L, message = "通知ID ID不能小于1")
@Schema(description = "通知ID", example = "")
private Long id;
/**
* 通知标题
*/
@NotBlank(message = "通知标题不能为空")
@Schema(description = "通知标题", example = "")
private String notificationTitle;
/**
* 通知内容
*/
@NotBlank(message = "通知内容不能为空")
@Schema(description = "通知内容", example = "")
private String notificationContent;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -46,7 +46,7 @@ public class UserInfoAddRequest implements Serializable {
* 账号
*/
@NotBlank(message = "账号不能为空")
@Size(min = 6, max = 10, message = "账号长度在 6 到 10 个字符")
@Size(min = 6, max = 11, message = "账号长度在 6 到 11 个字符")
@Schema(description = "账号", example = "qingcheng")
private String userAccount;

View File

@ -18,7 +18,7 @@ public class UserInfoLoginRequest implements Serializable {
* 账号
*/
@NotBlank(message = "账号不能为空")
@Size(min = 6, max = 10, message = "账号长度在 6 到 10 个字符")
@Size(min = 6, max = 11, message = "账号长度在 6 到 11 个字符")
@Schema(description = "账号", example = "qingcheng")
private String userAccount;

View File

@ -53,7 +53,7 @@ public class UserInfoUpdateRequest implements Serializable {
* 账号
*/
@NotBlank(message = "账号不能为空")
@Size(min = 6, max = 10, message = "账号长度在 6 到 10 个字符")
@Size(min = 6, max = 11, message = "账号长度在 6 到 11 个字符")
@Schema(description = "账号", example = "qingcheng")
private String userAccount;

View File

@ -0,0 +1,82 @@
package com.greenorange.promotion.model.dto.userMainInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 用户主要信息添加请求体
*/
@Data
@Schema(description = "用户主要信息添加请求体", requiredProperties = {
"teamSize",
"parentEarnings",
"currentBalance",
"withdrawalAmount",
"withdrawnAmount",
"totalIncome",
"userId",
"inviteQrCode",
})
public class UserMainInfoAddRequest implements Serializable {
/**
* 团队人数(不包括自己)
*/
@Schema(description = "团队人数(不包括自己)", example = "")
private Integer teamSize;
/**
* 给上级带来的收益
*/
@Schema(description = "给上级带来的收益", example = "")
private BigDecimal parentEarnings;
/**
* 当前余额
*/
@Schema(description = "当前余额", example = "")
private BigDecimal currentBalance;
/**
* 提现中的金额
*/
@Schema(description = "提现中的金额", example = "")
private BigDecimal withdrawalAmount;
/**
* 已提现的金额
*/
@Schema(description = "已提现的金额", example = "")
private BigDecimal withdrawnAmount;
/**
* 累计收入
*/
@Schema(description = "累计收入", example = "")
private BigDecimal totalIncome;
/**
* 用户id
*/
@Min(value = 1L, message = "用户id ID不能小于1")
@Schema(description = "用户id", example = "")
private Long userId;
/**
* 邀请二维码
*/
@NotBlank(message = "邀请二维码不能为空")
@Schema(description = "邀请二维码", example = "")
private String inviteQrCode;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,82 @@
package com.greenorange.promotion.model.dto.userMainInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import com.greenorange.promotion.common.PageRequest;
/**
* 用户主要信息查询请求体,继承自分页请求 PageRequest
*/
@Data
@Schema(description = "用户主要信息查询请求体", requiredProperties = {"current", "pageSize"})
public class UserMainInfoQueryRequest extends PageRequest implements Serializable {
/**
* 主键ID
*/
@Min(value = 1L, message = "主键ID ID不能小于1")
@Schema(description = "主键ID", example = "")
private Long id;
/**
* 团队人数(不包括自己)
*/
@Schema(description = "团队人数(不包括自己)", example = "")
private Integer teamSize;
/**
* 给上级带来的收益
*/
@Schema(description = "给上级带来的收益", example = "")
private BigDecimal parentEarnings;
/**
* 当前余额
*/
@Schema(description = "当前余额", example = "")
private BigDecimal currentBalance;
/**
* 提现中的金额
*/
@Schema(description = "提现中的金额", example = "")
private BigDecimal withdrawalAmount;
/**
* 已提现的金额
*/
@Schema(description = "已提现的金额", example = "")
private BigDecimal withdrawnAmount;
/**
* 累计收入
*/
@Schema(description = "累计收入", example = "")
private BigDecimal totalIncome;
/**
* 用户id
*/
@Min(value = 1L, message = "用户id ID不能小于1")
@Schema(description = "用户id", example = "")
private Long userId;
/**
* 邀请二维码
*/
@NotBlank(message = "邀请二维码不能为空")
@Schema(description = "邀请二维码", example = "")
private String inviteQrCode;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,89 @@
package com.greenorange.promotion.model.dto.userMainInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 用户主要信息更新请求体
*/
@Data
@Schema(description = "用户主要信息更新请求体", requiredProperties = {
"id",
"teamSize",
"parentEarnings",
"currentBalance",
"withdrawalAmount",
"withdrawnAmount",
"totalIncome",
"userId",
"inviteQrCode",
})
public class UserMainInfoUpdateRequest implements Serializable {
/**
* 主键ID
*/
@Min(value = 1L, message = "主键ID ID不能小于1")
@Schema(description = "主键ID", example = "")
private Long id;
/**
* 团队人数(不包括自己)
*/
@Schema(description = "团队人数(不包括自己)", example = "")
private Integer teamSize;
/**
* 给上级带来的收益
*/
@Schema(description = "给上级带来的收益", example = "")
private BigDecimal parentEarnings;
/**
* 当前余额
*/
@Schema(description = "当前余额", example = "")
private BigDecimal currentBalance;
/**
* 提现中的金额
*/
@Schema(description = "提现中的金额", example = "")
private BigDecimal withdrawalAmount;
/**
* 已提现的金额
*/
@Schema(description = "已提现的金额", example = "")
private BigDecimal withdrawnAmount;
/**
* 累计收入
*/
@Schema(description = "累计收入", example = "")
private BigDecimal totalIncome;
/**
* 用户id
*/
@Min(value = 1L, message = "用户id ID不能小于1")
@Schema(description = "用户id", example = "")
private Long userId;
/**
* 邀请二维码
*/
@NotBlank(message = "邀请二维码不能为空")
@Schema(description = "邀请二维码", example = "")
private String inviteQrCode;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,62 @@
package com.greenorange.promotion.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 java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 项目明细表
* @TableName project_detail
*/
@TableName(value ="project_detail")
@Data
public class ProjectDetail implements Serializable {
/**
* 项目明细ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 项目明细名称
*/
private String projectDetailName;
/**
* 项目结算价
*/
private BigDecimal projectSettlementPrice;
/**
* 最大抽佣比例
*/
private Integer maxCommissionRate;
/**
* 项目ID
*/
private Long projectId;
/**
* 是否删除
*/
private Integer isDelete;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,56 @@
package com.greenorange.promotion.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 java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 项目通知表
* @TableName project_notification
*/
@TableName(value ="project_notification")
@Data
public class ProjectNotification implements Serializable {
/**
* 通知ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 通知标题
*/
private String notificationTitle;
/**
* 通知内容
*/
private String notificationContent;
/**
* 项目ID
*/
private Long projectId;
/**
* 是否删除
*/
private Integer isDelete;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,82 @@
package com.greenorange.promotion.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 java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.Data;
/**
* 用户主要信息表
* @TableName user_main_info
*/
@TableName(value ="user_main_info")
@Data
public class UserMainInfo implements Serializable {
/**
* 主键ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 团队人数(不包括自己)
*/
private Integer teamSize;
/**
* 给上级带来的收益
*/
private BigDecimal parentEarnings;
/**
* 当前余额
*/
private BigDecimal currentBalance;
/**
* 提现中的金额
*/
private BigDecimal withdrawalAmount;
/**
* 已提现的金额
*/
private BigDecimal withdrawnAmount;
/**
* 累计收入
*/
private BigDecimal totalIncome;
/**
* 用户id
*/
private Long userId;
/**
* 邀请二维码
*/
private String inviteQrCode;
/**
* 是否删除
*/
private Integer isDelete;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,50 @@
package com.greenorange.promotion.model.vo.projectDetail;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 项目明细 视图对象
*/
@Data
@Schema(description = "项目明细 视图对象")
public class ProjectDetailVO implements Serializable {
/**
* 项目明细ID
*/
@Schema(description = "项目明细ID", example = "1")
private Long id;
/**
* 项目明细名称
*/
@Schema(description = "项目明细名称", example = "${field.example}")
private String projectDetailName;
/**
* 项目结算价
*/
@Schema(description = "项目结算价", example = "${field.example}")
private BigDecimal projectSettlementPrice;
/**
* 最大抽佣比例
*/
@Schema(description = "最大抽佣比例", example = "${field.example}")
private Integer maxCommissionRate;
/**
* 项目ID
*/
@Schema(description = "项目ID", example = "${field.example}")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,44 @@
package com.greenorange.promotion.model.vo.projectNotification;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 项目通知 视图对象
*/
@Data
@Schema(description = "项目通知 视图对象")
public class ProjectNotificationVO implements Serializable {
/**
* 项目通知ID
*/
@Schema(description = "项目通知ID", example = "1")
private Long id;
/**
* 通知标题
*/
@Schema(description = "通知标题", example = "${field.example}")
private String notificationTitle;
/**
* 通知内容
*/
@Schema(description = "通知内容", example = "${field.example}")
private String notificationContent;
/**
* 项目ID
*/
@Schema(description = "项目ID", example = "${field.example}")
private Long projectId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,74 @@
package com.greenorange.promotion.model.vo.userMainInfo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 用户主要信息 视图对象
*/
@Data
@Schema(description = "用户主要信息 视图对象")
public class UserMainInfoVO implements Serializable {
/**
* 用户主要信息ID
*/
@Schema(description = "用户主要信息ID", example = "1")
private Long id;
/**
* 团队人数(不包括自己)
*/
@Schema(description = "团队人数(不包括自己)", example = "${field.example}")
private Integer teamSize;
/**
* 给上级带来的收益
*/
@Schema(description = "给上级带来的收益", example = "${field.example}")
private BigDecimal parentEarnings;
/**
* 当前余额
*/
@Schema(description = "当前余额", example = "${field.example}")
private BigDecimal currentBalance;
/**
* 提现中的金额
*/
@Schema(description = "提现中的金额", example = "${field.example}")
private BigDecimal withdrawalAmount;
/**
* 已提现的金额
*/
@Schema(description = "已提现的金额", example = "${field.example}")
private BigDecimal withdrawnAmount;
/**
* 累计收入
*/
@Schema(description = "累计收入", example = "${field.example}")
private BigDecimal totalIncome;
/**
* 用户id
*/
@Schema(description = "用户id", example = "${field.example}")
private Long userId;
/**
* 邀请二维码
*/
@Schema(description = "邀请二维码", example = "${field.example}")
private String inviteQrCode;
@Serial
private static final long serialVersionUID = 1L;
}