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