Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion src/usercenter/dto/create-usercenter.dto.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { IsEmail, IsString, Length, Matches } from 'class-validator';
import { IsEmail, IsString, Length, Matches, IsOptional, IsInt, Min, Max } from 'class-validator';

export class CreateUsercenterDto {
@IsString()
Expand All @@ -18,4 +18,10 @@ export class CreateUsercenterDto {

@IsEmail({}, { message: '无效的邮箱格式' })
userEmail: string; // 用户邮箱

@IsOptional()
@IsInt({ message: '性别必须是整数' })
@Min(0, { message: '性别值必须大于等于0' })
@Max(2, { message: '性别值必须小于等于2' })
sex?: number; // 性别,0未知,1男,2女
}
11 changes: 11 additions & 0 deletions src/usercenter/dto/query-usercenter.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,15 @@ export class QueryUsercenterDto {
@Min(1, { message: '用户角色最小值为1' })
@Max(2, { message: '用户角色最大值为2' })
role?: number;

/**
* 性别
* 0: 未知, 1: 男, 2: 女
*/
@IsOptional()
@Type(() => Number)
@IsInt({ message: '性别必须是整数' })
@Min(0, { message: '性别值最小为0' })
@Max(2, { message: '性别值最大为2' })
sex?: number;
}
8 changes: 8 additions & 0 deletions src/usercenter/entities/usercenter.entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,14 @@ export class UserEntity {
})
userName: string; // 用户名

@Column({
type: 'int',
name: 'sex',
nullable: false,
default: 0, // 默认0未知,1男,2女
})
sex: number; // 性别

@Column({
type: 'varchar',
length: 30,
Expand Down
10 changes: 8 additions & 2 deletions src/usercenter/usercenter.service.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,7 @@ export class UsercenterService {
...userData,
userAuth: 1, // 默认为普通用户
userStatus: 1, // 默认为正常状态
sex: userData.sex || 0, // 默认为0(未知)
createTime: new Date(),
updateTime: new Date(),
createBy: createUsercenterDto.userName, // 创建人为用户自己
Expand Down Expand Up @@ -83,8 +84,8 @@ export class UsercenterService {
* @param query 查询参数,包含页码、每页条数和角色
* @returns 返回用户列表和总数
*/
async findUsersByRole(query: { page: number; limit: number; role?: number }) {
const { page, limit, role } = query;
async findUsersByRole(query: { page: number; limit: number; role?: number; sex?: number }) {
const { page, limit, role, sex } = query;
const skip = (page - 1) * limit; // 计算跳过的记录数

// 创建查询构建器
Expand All @@ -95,6 +96,11 @@ export class UsercenterService {
queryBuilder.andWhere('user.userAuth = :role', { role });
}

// 如果指定了性别,添加性别筛选条件
if (sex !== undefined) {
queryBuilder.andWhere('user.sex = :sex', { sex });
}

// 执行查询并获取结果
const [data, total] = await queryBuilder
.orderBy('user.createTime', 'DESC')
Expand Down
Loading