fix: 修复创建分享接口报错
This commit is contained in:
@@ -7,22 +7,38 @@ import {
|
||||
Index,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import { ShareParticipant } from './share-participant.entity';
|
||||
import { ShareConfig } from './share-config.entity';
|
||||
import { Level } from '../../wechat-game/entities/level.entity';
|
||||
|
||||
/**
|
||||
* 分享挑战内的单关进度。
|
||||
*
|
||||
* (share_config_id, participant_id, level_id) 三元组保证:
|
||||
* 同一用户在不同分享挑战中对同一关的记录互不干扰。
|
||||
*
|
||||
* participant_id 直接存储 wx_users.id(用户 UUID),不再引用 share_participants。
|
||||
*/
|
||||
@Entity('share_level_progress')
|
||||
@Unique('uq_participant_level', ['participantId', 'levelId'])
|
||||
@Unique('uq_share_participant_level', [
|
||||
'shareConfigId',
|
||||
'participantId',
|
||||
'levelId',
|
||||
])
|
||||
export class ShareLevelProgress {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string;
|
||||
|
||||
@Index('idx_slp_participant_id')
|
||||
@Column({ type: 'char', length: 36, name: 'participant_id' })
|
||||
participantId!: string;
|
||||
@Index('idx_slp_share_config_id')
|
||||
@Column({ type: 'varchar', length: 191, name: 'share_config_id' })
|
||||
shareConfigId!: string;
|
||||
|
||||
@ManyToOne(() => ShareParticipant)
|
||||
@JoinColumn({ name: 'participant_id' })
|
||||
participant!: ShareParticipant;
|
||||
@ManyToOne(() => ShareConfig)
|
||||
@JoinColumn({ name: 'share_config_id' })
|
||||
shareConfig!: ShareConfig;
|
||||
|
||||
@Index('idx_slp_participant_id')
|
||||
@Column({ type: 'varchar', length: 191, name: 'participant_id' })
|
||||
participantId!: string;
|
||||
|
||||
@Index('idx_slp_level_id')
|
||||
@Column({ type: 'char', length: 191, name: 'level_id' })
|
||||
|
||||
@@ -1,33 +1,34 @@
|
||||
import {
|
||||
Entity,
|
||||
PrimaryGeneratedColumn,
|
||||
Column,
|
||||
PrimaryColumn,
|
||||
CreateDateColumn,
|
||||
ManyToOne,
|
||||
JoinColumn,
|
||||
Index,
|
||||
Unique,
|
||||
} from 'typeorm';
|
||||
import { User } from '../../auth/entities/user.entity';
|
||||
import { ShareConfig } from './share-config.entity';
|
||||
|
||||
/**
|
||||
* 分享挑战参与者关联表。
|
||||
*
|
||||
* 该表为纯关联表,没有独立主键 id:
|
||||
* - 主键由 (share_config_id, participant_id) 组成
|
||||
* - participant_id 直接存储 wx_users.id(用户 UUID)
|
||||
*/
|
||||
@Entity('share_participants')
|
||||
@Unique('uq_share_participant', ['shareConfigId', 'participantId'])
|
||||
export class ShareParticipant {
|
||||
@PrimaryGeneratedColumn('uuid')
|
||||
id!: string;
|
||||
|
||||
@PrimaryColumn({ type: 'varchar', length: 191, name: 'share_config_id' })
|
||||
@Index('idx_share_config_id')
|
||||
@Column({ type: 'varchar', length: 191, name: 'share_config_id' })
|
||||
shareConfigId!: string;
|
||||
|
||||
@PrimaryColumn({ type: 'varchar', length: 191, name: 'participant_id' })
|
||||
participantId!: string;
|
||||
|
||||
@ManyToOne(() => ShareConfig, (sc) => sc.participants)
|
||||
@JoinColumn({ name: 'share_config_id' })
|
||||
shareConfig!: ShareConfig;
|
||||
|
||||
@Column({ type: 'varchar', length: 191, name: 'participant_id' })
|
||||
participantId!: string;
|
||||
|
||||
@ManyToOne(() => User)
|
||||
@JoinColumn({ name: 'participant_id' })
|
||||
participant!: User;
|
||||
|
||||
Reference in New Issue
Block a user