拍卖行:接口定义

This commit is contained in:
liangtongchuan
2021-03-15 21:02:13 +08:00
parent 7a7b5baf78
commit 1bb51d6adb
5 changed files with 176 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
import { Application, BackendSession, ChannelService } from "pinus";
export default function (app: Application) {
return new AuctionHandler(app);
}
export class AuctionHandler {
channelService: ChannelService;
constructor(private app: Application) {
this.channelService = app.get('channelService');
}
async getAuction(msg: {}, session: BackendSession) {
}
async offer(msg: { max: boolean }, session: BackendSession) {
}
async checkDividend(msg: {}, session: BackendSession) {
}
async getDividend(msg: {}, session: BackendSession) {
}
async myOffers(msg: { count: number }, session: BackendSession) {
}
}

View File

@@ -0,0 +1,26 @@
import { ItemReward } from "../domain/dbGeneral";
/**
* @description 生成拍卖数据
* @export
* @param {string} guildCode
* @param {number} sourceType
* @param {string} sourceCode
* @param {number} serverId
* @param {ItemReward[]} rewards
*/
export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: ItemReward[]) {
}
/**
* @description 获取活动参加者
* @export
* @param {string} guildCode
* @param {number} sourceType
* @param {string} sourceCode
*/
export async function participants(guildCode: string, sourceType: number, sourceCode: string) {
}

29
shared/db/Dividend.ts Normal file
View File

@@ -0,0 +1,29 @@
import { LotRec, DividendRec } from './../domain/dbGeneral';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
/**
* 分红记录表
**/
@modelOptions({ schemaOptions: { id: false } })
@index({ code: 1 })
@index({ guildCode: 1 })
export default class Dividend extends BaseModel {
@prop({ required: true, default: 0 })
type: number; // 0初始值1演武2蛮夷入侵3诸侯混战4粮草先行
@prop({ required: true, default: '' })
guildCode: string; // 军团编号
@prop({ required: true, default: '' })
sourceCode: string; // 来源的唯一标识,如活动编号
@prop({ required: true, type: LotRec, default: [] })
lots: LotRec[];
@prop({ required: true, default: 0 })
totalPrice: number; // 分红总金额
@prop({ required: true, type: DividendRec, default: [] })
dividends: DividendRec[];
}
export const DividendModel = getModelForClass(Dividend);
export interface DividendType extends Pick<DocumentType<Dividend>, keyof Dividend>{}
export type DividendParam = Partial<DividendType>;

43
shared/db/Lot.ts Normal file
View File

@@ -0,0 +1,43 @@
import { BidRec } from './../domain/dbGeneral';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
/**
* 竞拍物品表
**/
@modelOptions({ schemaOptions: { id: false } })
@index({ code: 1 })
@index({ guildCode: 1 })
export default class Lot extends BaseModel {
@prop({ required: true, default: 0 })
auctionStage: number; // 0初始添加1军团拍卖2世界拍卖3拍卖结束
@prop({ required: true, default: 0 })
type: number; // 0初始值1演武2蛮夷入侵3诸侯混战4粮草先行
@prop({ required: true, default: '' })
sourceCode: string; // 来源的唯一标识,如活动编号
@prop({ required: true, default: 0 })
serverId: number; // 区服编号
@prop({ required: true, default: '' })
guildCode: string; // 军团编号
@prop({ required: true, default: '' })
code: string; // 竞拍物品唯一标识
@prop({ required: true, default: 0 })
gid: number; // 物品 id
@prop({ required: true, default: 0 })
curPrice: number; // 当前出价
@prop({ required: true, default: '' })
curBuyer: string; // 当前出价最高者 RoleId
@prop({ required: true, default: 0 })
maxPrice: number; // 一口价,最高价格
@prop({ required: true, type: BidRec, default: [] })
bidRoles: BidRec[];
@prop({ required: true })
begin: Date; // 竞拍开始时间
@prop({ required: true })
end: Date; // 竞拍结束时间
}
export const LotModel = getModelForClass(Lot);
export interface LotType extends Pick<DocumentType<Lot>, keyof Lot>{}
export type LotParam = Partial<LotType>;

View File

@@ -228,3 +228,49 @@ export class Figure {
}
}
/**
* @description 出价记录
* @export
* @class BidRec
*/
export class BidRec {
@prop({ required: true, default: '' })
roleId: string; // 出价玩家
@prop({ required: true, default: 0 })
price: number; // 出价金额
@prop({ required: true })
time: Date; // 出价时间
}
/**
* @description 拍品记录
* @export
* @class LotRec
*/
export class LotRec {
@prop({ required: true, default: '' })
code: string; // 竞拍物品唯一标识
@prop({ required: true, default: 0 })
gid: number; // 物品 id
@prop({ required: true, default: 0 })
price: number; // 物品成交价
}
/**
* @description 分红记录
* @export
* @class DividendRec
*/
export class DividendRec {
@prop({ required: true, default: '' })
roleId: string;
@prop({ required: true, default: 0 })
baseNum: number; // 基础分红
@prop({ required: true, default: 0 })
posNum: number; // 职位分红
@prop({ required: true, default: 0 })
weekendNum: number; // 额外分红,周末
@prop({ required: true, default: 0 })
total: number; // 总分红
}