拍卖行:添加接口返回和测试框架,调整个别字段
This commit is contained in:
@@ -1,4 +1,8 @@
|
|||||||
import { Application, BackendSession, ChannelService } from "pinus";
|
import { Application, BackendSession, ChannelService } from "pinus";
|
||||||
|
import { DEBUG_MAGIC_WORD, STATUS } from "../../../consts";
|
||||||
|
import { ItemReward } from "../../../domain/dbGeneral";
|
||||||
|
import { resResult } from "../../../pubUtils/util";
|
||||||
|
import { genAuction } from "../../../services/auctionService";
|
||||||
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
return new AuctionHandler(app);
|
return new AuctionHandler(app);
|
||||||
@@ -11,26 +15,49 @@ export class AuctionHandler {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async getAuction(msg: {}, session: BackendSession) {
|
async getAuction(msg: {}, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async offer(msg: { max: boolean }, session: BackendSession) {
|
async offer(msg: { max: boolean }, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async watchLot(msg: { code: string }, session: BackendSession) {
|
async watchLot(msg: { code: string }, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async checkDividend(msg: {}, session: BackendSession) {
|
async checkDividend(msg: {}, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getDividend(msg: {}, session: BackendSession) {
|
async getDividend(msg: {}, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
|
|
||||||
async myOffers(msg: { count: number }, session: BackendSession) {
|
async myOffers(msg: {}, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
async offerRecs(msg: { count: number }, session: BackendSession) {
|
||||||
|
return resResult(STATUS.SUCCESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ! 测试接口
|
||||||
|
async debugAddLots(msg: { magicWord: string, sourceType: number, sourceCode: string, rewards: ItemReward[]}, session: BackendSession) {
|
||||||
|
const { magicWord, sourceType, sourceCode, rewards } = msg;
|
||||||
|
if (magicWord !== DEBUG_MAGIC_WORD) {
|
||||||
|
return resResult(STATUS.TOKEN_ERR);
|
||||||
|
}
|
||||||
|
|
||||||
|
const guildCode: string = session.get('guildCode');
|
||||||
|
const serverId: number = session.get('serverId');
|
||||||
|
if (!guildCode) return resResult(STATUS.GUILD_NOT_FOUND)
|
||||||
|
|
||||||
|
const result = await genAuction(guildCode, sourceType, sourceCode, serverId, rewards);
|
||||||
|
if (!result) {
|
||||||
|
return resResult(STATUS.WRONG_PARMS);
|
||||||
|
}
|
||||||
|
|
||||||
|
return resResult(STATUS.SUCCESS, { result });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,13 +13,14 @@ import { LotModel, LotParam } from '../db/Lot';
|
|||||||
* @param {ItemReward[]} rewards
|
* @param {ItemReward[]} rewards
|
||||||
*/
|
*/
|
||||||
export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: ItemReward[]) {
|
export async function genAuction(guildCode: string, sourceType: number, sourceCode: string, serverId: number, rewards: ItemReward[]) {
|
||||||
|
const curTime = new Date();
|
||||||
const lots: LotParam[] = rewards.map(reward => {
|
const lots: LotParam[] = rewards.map(reward => {
|
||||||
const { id, count } = reward;
|
const { id, count } = reward;
|
||||||
const code = genCode(LOT_CODE_LEN);
|
const code = genCode(LOT_CODE_LEN);
|
||||||
return {
|
return {
|
||||||
auctionStage: AUCTION_STAGE.DEFAULT, sourceType,
|
auctionStage: AUCTION_STAGE.DEFAULT, sourceType,
|
||||||
sourceCode, serverId, guildCode, code, gid: id, count
|
sourceCode, serverId, guildCode, code, gid: id, count,
|
||||||
// maxPrice, begin, end
|
maxPrice: 100, begin: curTime, end: curTime, curPrice: 10, // ! 此行为临时数据
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const result = await LotModel.createRecs(lots);
|
const result = await LotModel.createRecs(lots);
|
||||||
|
|||||||
@@ -0,0 +1,102 @@
|
|||||||
|
import { AUCTION_SOURCE } from './../app/consts/constModules/auctionConst';
|
||||||
|
import { DEFAULT_MSG_PER_PAGE, MSG_TYPE, ON_PRIVATE_MSG_ROUTE, ON_GROUP_MSG_ROUTE, CHANNEL_PREFIX, DEBUG_MAGIC_WORD, STATUS, HERO_GROW_MAX, ABI_STAGE } from './../app/consts';
|
||||||
|
import { Client } from './Client';
|
||||||
|
import 'mocha';
|
||||||
|
import { PinusWSClient } from 'pinus-robot-plugin';
|
||||||
|
import { expect } from 'chai';
|
||||||
|
import { checkSuccessResponse } from './CheckPatten';
|
||||||
|
|
||||||
|
describe('拍卖行测试', function() {
|
||||||
|
let pinusClient: PinusWSClient;
|
||||||
|
let pinusClientT: PinusWSClient; // 用做测试队友
|
||||||
|
let roleInfo;
|
||||||
|
let roleInfoT;
|
||||||
|
|
||||||
|
beforeEach(function(done) {
|
||||||
|
const c = new Client();
|
||||||
|
const cT = new Client('13121622738');
|
||||||
|
const timer = setInterval(() => {
|
||||||
|
if (c.client && cT.client) {
|
||||||
|
pinusClient = c.client;
|
||||||
|
roleInfo = c.roleInfo;
|
||||||
|
pinusClientT = cT.client;
|
||||||
|
roleInfoT = cT.roleInfo;
|
||||||
|
clearInterval(timer);
|
||||||
|
done();
|
||||||
|
}
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
|
||||||
|
afterEach(function(done) {
|
||||||
|
pinusClient.disconnect();
|
||||||
|
pinusClientT.disconnect();
|
||||||
|
// disconnect 后等待 500ms,供服务器清理环境、退出频道等
|
||||||
|
setTimeout(() => {
|
||||||
|
done();
|
||||||
|
}, 500);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('添加拍品', function(done) {
|
||||||
|
const sourceCode = Math.random().toString(36).slice(-8);
|
||||||
|
pinusClient.request('battle.auctionHandler.debugAddLots', { magicWord: DEBUG_MAGIC_WORD, sourceType: AUCTION_SOURCE.GATE, sourceCode, rewards: [{ id: 1, count: 1 }, { id: 2, count: 2 }] }, (res) => {
|
||||||
|
checkSuccessResponse(res);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('获取拍卖行数据', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.getAuction', {}, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('出价', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.offer', { max: false }, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('出一口价', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.offer', { max: true }, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('关注', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.watchLot', { code: '' }, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('查看分红', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.checkDividend', {}, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('领取分红', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.getDividend', {}, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('查看我的关注', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.myOffers', {}, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it('查看我的拍卖纪录', function(done) {
|
||||||
|
pinusClient.request('battle.auctionHandler.getAuction', { count: 10 }, (res) => {
|
||||||
|
checkSuccessResponse(res, false);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -5,7 +5,7 @@ import { expect } from 'chai';
|
|||||||
import { checkSuccessResponse } from './CheckPatten';
|
import { checkSuccessResponse } from './CheckPatten';
|
||||||
import { BLOCK_OPEATE } from '../app/consts';
|
import { BLOCK_OPEATE } from '../app/consts';
|
||||||
|
|
||||||
describe('pvp测试', function() {
|
describe('好友测试测试', function() {
|
||||||
|
|
||||||
let pinusClient: PinusWSClient;
|
let pinusClient: PinusWSClient;
|
||||||
let pinusClientT: PinusWSClient; // 用做测试队友
|
let pinusClientT: PinusWSClient; // 用做测试队友
|
||||||
|
|||||||
+1
-1
@@ -28,7 +28,7 @@ export default class Lot extends BaseModel {
|
|||||||
count: number; // 物品数量
|
count: number; // 物品数量
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
curPrice: number; // 当前出价
|
curPrice: number; // 当前出价
|
||||||
@prop({ required: true, default: '' })
|
@prop({ required: false, default: '' })
|
||||||
curBuyer: string; // 当前出价最高者 RoleId
|
curBuyer: string; // 当前出价最高者 RoleId
|
||||||
@prop({ required: true, default: 0 })
|
@prop({ required: true, default: 0 })
|
||||||
maxPrice: number; // 一口价,最高价格
|
maxPrice: number; // 一口价,最高价格
|
||||||
|
|||||||
Reference in New Issue
Block a user