拍卖行:接口定义
This commit is contained in:
32
game-server/app/servers/battle/handler/auctionHandler.ts
Normal file
32
game-server/app/servers/battle/handler/auctionHandler.ts
Normal 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) {
|
||||
|
||||
}
|
||||
}
|
||||
26
game-server/app/services/auctionService.ts
Normal file
26
game-server/app/services/auctionService.ts
Normal 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
29
shared/db/Dividend.ts
Normal 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
43
shared/db/Lot.ts
Normal 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>;
|
||||
@@ -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; // 总分红
|
||||
}
|
||||
Reference in New Issue
Block a user