feat(users): 添加用户每日健康数据步数字段,支持步数记录和更新
This commit is contained in:
@@ -59,6 +59,12 @@ export class UpdateDailyHealthDto {
|
|||||||
@IsNumber()
|
@IsNumber()
|
||||||
@Min(0)
|
@Min(0)
|
||||||
stressLevel?: number;
|
stressLevel?: number;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ description: '步数' })
|
||||||
|
@IsOptional()
|
||||||
|
@IsNumber()
|
||||||
|
@Min(0)
|
||||||
|
steps?: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -98,6 +104,9 @@ export class DailyHealthDataDto {
|
|||||||
@ApiPropertyOptional({ description: '压力 (ms,保留一位小数)' })
|
@ApiPropertyOptional({ description: '压力 (ms,保留一位小数)' })
|
||||||
stressLevel: number | null;
|
stressLevel: number | null;
|
||||||
|
|
||||||
|
@ApiPropertyOptional({ description: '步数' })
|
||||||
|
steps: number | null;
|
||||||
|
|
||||||
@ApiProperty({ description: '创建时间' })
|
@ApiProperty({ description: '创建时间' })
|
||||||
createdAt: Date;
|
createdAt: Date;
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,13 @@ export class UserDailyHealth extends Model {
|
|||||||
})
|
})
|
||||||
declare stressLevel: number | null;
|
declare stressLevel: number | null;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
type: DataType.INTEGER,
|
||||||
|
allowNull: true,
|
||||||
|
comment: '步数',
|
||||||
|
})
|
||||||
|
declare steps: number | null;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
type: DataType.DATE,
|
type: DataType.DATE,
|
||||||
defaultValue: DataType.NOW,
|
defaultValue: DataType.NOW,
|
||||||
|
|||||||
@@ -3027,6 +3027,7 @@ export class UsersService {
|
|||||||
if (updateDto.sleepMinutes !== undefined) updateFields.sleepMinutes = updateDto.sleepMinutes;
|
if (updateDto.sleepMinutes !== undefined) updateFields.sleepMinutes = updateDto.sleepMinutes;
|
||||||
if (updateDto.bloodOxygen !== undefined) updateFields.bloodOxygen = updateDto.bloodOxygen;
|
if (updateDto.bloodOxygen !== undefined) updateFields.bloodOxygen = updateDto.bloodOxygen;
|
||||||
if (updateDto.stressLevel !== undefined) updateFields.stressLevel = Math.round(updateDto.stressLevel * 10) / 10; // 保留一位小数
|
if (updateDto.stressLevel !== undefined) updateFields.stressLevel = Math.round(updateDto.stressLevel * 10) / 10; // 保留一位小数
|
||||||
|
if (updateDto.steps !== undefined) updateFields.steps = updateDto.steps;
|
||||||
|
|
||||||
// 使用 upsert 实现创建或更新
|
// 使用 upsert 实现创建或更新
|
||||||
const [record, created] = await this.userDailyHealthModel.findOrCreate({
|
const [record, created] = await this.userDailyHealthModel.findOrCreate({
|
||||||
@@ -3060,6 +3061,7 @@ export class UsersService {
|
|||||||
sleepMinutes: record.sleepMinutes,
|
sleepMinutes: record.sleepMinutes,
|
||||||
bloodOxygen: record.bloodOxygen,
|
bloodOxygen: record.bloodOxygen,
|
||||||
stressLevel: record.stressLevel,
|
stressLevel: record.stressLevel,
|
||||||
|
steps: record.steps,
|
||||||
createdAt: record.createdAt,
|
createdAt: record.createdAt,
|
||||||
updatedAt: record.updatedAt,
|
updatedAt: record.updatedAt,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user