123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { Entity, Column } from 'typeorm';
- import { BaseModel } from '../../frame/BaseModel';
- import dayjs = require('dayjs');
- import tz = require('dayjs/plugin/timezone');
- import utc = require('dayjs/plugin/utc');
- dayjs.extend(utc);
- dayjs.extend(tz);
- dayjs.tz.setDefault('Asia/Shanghai');
- /**
- * 选手状态"
- * 0:待审核: 报名阶段: 报名信息审核中; 初审阶段:进入初审,但没有开始比赛; 决赛阶段: 进入决赛,但未确认是否参加决赛;
- * 1:已通过: 报名阶段: 报名信息已通过审核; 初审阶段:进入初审,已通过初审(有分,且已被选中参加决赛); 决赛阶段: 进入决赛,已确认且完成决赛(确认参加,有分)
- * 2:已退回: 报名阶段: 报名信息有问题,被主办方退回的状态; 初审阶段:进入初审,但未通过初审(有分,但未被选中参加决赛); 决赛阶段: 进入决赛,但是不参加决赛(不确认)
- */
- /**
- * final_score_details:[
- * {
- * name:string,
- * score:number,
- * details:[{
- * title,
- * score,
- * },...],
- * }
- * ]
- */
- //赛事
- @Entity('matchRegistration', { comment: '赛事报名' })
- export class MatchRegistration extends BaseModel {
- @Column({ type: 'integer', comment: '赛事id' })
- match_id: number;
- @Column({ type: 'integer', comment: '用户id' })
- user_id: number;
- @Column({ type: 'jsonb', nullable: true, comment: '报名信息' })
- info: Array<any>;
- @Column({ type: 'character varying', nullable: true, comment: '流程状态', default: '0' })
- ext_status: string;
- @Column({ type: 'character varying', nullable: true, comment: '选手状态', default: '0' })
- status: string;
- @Column({ type: 'character varying', nullable: true, comment: '项目编号: ${match_id}-${user_id}-${该赛事第x位}' })
- no: string;
- @Column({ type: 'timestamp without time zone', nullable: true, comment: '时间', transformer: { from: value => (value ? dayjs(value).format('YYYY-MM-DD HH:mm:ss') : value), to: value => value } })
- time: Date;
- @Column({ type: 'integer', nullable: true, comment: '顺序' })
- order_no: number;
- @Column({ type: 'integer', nullable: true, comment: '分数' })
- score: number;
- @Column({ type: 'timestamp without time zone', nullable: true, comment: '初审开始时间', transformer: { from: value => (value ? dayjs(value).format('YYYY-MM-DD HH:mm:ss') : value), to: value => value } })
- start_time: Date;
- @Column({ type: 'character varying', nullable: true, comment: '是否确认参加决赛', default: '1' })
- final_confirm: string;
- @Column({ type: 'integer', nullable: true, comment: '决赛顺序' })
- final_order_no: number;
- @Column({ type: 'integer', nullable: true, comment: '决赛总分数' })
- final_score: number;
- @Column({ type: 'jsonb', nullable: true, comment: '决赛分数详情' })
- final_score_details: Array<any>;
- @Column({ type: 'timestamp without time zone', nullable: true, comment: '决赛开始时间', transformer: { from: value => (value ? dayjs(value).format('YYYY-MM-DD HH:mm:ss') : value), to: value => value } })
- final_start_time: Date;
- @Column({ type: 'integer', nullable: true, comment: '最终排名' })
- last_order_no: number;
- // 决赛名次根据分数生成
- }
|