Revert " feat(db): 给UserGacha添加只读库和相关操作"

This reverts commit 8bcac0c7fe943033570d5c341e18ab90ff423f14.
This commit is contained in:
luying
2023-05-08 09:58:07 +08:00
parent f7d3ed6db2
commit c6348e1da7
5 changed files with 25 additions and 33 deletions

View File

@@ -2,7 +2,7 @@ import { Application, BackendSession, HandlerService, } from "pinus";
import { resResult, shouldRefresh, getRandSingleEelm, getGachaRemainFloor } from "../../../pubUtils/util";
import { STATUS, GACHA_TYPE, HERO_QUALITY_TYPE, TASK_TYPE, ITEM_CHANGE_REASON, } from "../../../consts";
import { gameData } from "../../../pubUtils/data";
import UserGacha, { UserGachaModel } from "../../../db/UserGacha";
import { UserGachaModel } from "../../../db/UserGacha";
import { refreshGacha, getGachaList, getVisitedHeroList, GachaPull, GachaResults, getDicGachaByGachaCnt, getNormalGachaId, getDicGachas } from "../../../services/activity/gachaService";
import Role from "../../../db/Role";
import Hero from "../../../db/Hero";
@@ -59,7 +59,7 @@ export class GachaHandler {
let dicGacha = gameData.gacha.get(gachaId);
if (!dicGacha) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let userGacha = await UserGacha.findByRole(roleId, gachaId, activityId);
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, activityId);
userGacha = await refreshGacha(dicGacha, userGacha);
let { freeCount, pickHero, count: historyCount, hope, floor } = userGacha;
if ((dicGacha.gachaType == GACHA_TYPE.ASSIGN || dicGacha.gachaType == GACHA_TYPE.ACTIVITY) && !pickHero) return resResult(STATUS.GACHA_NOT_ASSIGN);
@@ -106,7 +106,7 @@ export class GachaHandler {
let { heroes, resultHeroes } = await createHeroes(roleId, roleName, sid, serverId, heroInfo);
await addItems(roleId, roleName, sid, items, ITEM_CHANGE_REASON.GACHA_ITEMS);
// 更新数据
userGacha = await UserGacha.updateInfo(roleId, gachaId, activityId, {
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, {
freeCount, hope, floor, count: historyCount + count
});
let newDicGacha = getDicGachaByGachaCnt(dicGacha, userGacha.count);
@@ -142,7 +142,7 @@ export class GachaHandler {
}
}
}
let userGacha = await UserGacha.findByRole(roleId, gachaId, 0);
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, 0);
let { hope: userHope = []} = await refreshGacha(gameData.gacha.get(gachaId), userGacha);
for (let { id, hid } of hope) {
let curHope = userHope.find(cur => cur.id == id);
@@ -157,7 +157,7 @@ export class GachaHandler {
userHope.push({ id, hid, hasGet: false })
}
}
userGacha = await UserGacha.updateInfo(roleId, gachaId, 0, { hope: userHope });
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, 0, { hope: userHope });
return resResult(STATUS.SUCCESS, {
gachaId,
@@ -179,7 +179,7 @@ export class GachaHandler {
const serverId: number = session.get('serverId');
let userGacha = await UserGacha.findByRole(roleId, gachaId, 0);
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, 0);
let { point, turntable, costPoint } = userGacha;
if (point < RECRUIT.RECRUIT_BONUS_RECRUIT) return resResult(STATUS.GACHA_TURNTABLE_POINT_NOT_ENOUGH);
@@ -218,7 +218,7 @@ export class GachaHandler {
}
myTurntable.hasGet = true;
// 扣除积分
userGacha = await UserGacha.updateInfo(roleId, gachaId, 0, { turntable, costPoint: costPoint + 1 });
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, 0, { turntable, costPoint: costPoint + 1 });
return resResult(STATUS.SUCCESS, {
gachaId,
@@ -252,7 +252,7 @@ export class GachaHandler {
if(!data.isPickHero(pickHero)) return resResult(STATUS.GACHA_CAN_NOT_PICK);
}
let userGacha = await UserGacha.updateInfo(roleId, gachaId, activityId, { pickHero });
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { pickHero });
return resResult(STATUS.SUCCESS, {
gachaId,
@@ -298,7 +298,7 @@ export class GachaHandler {
let { pieceId } = dicHero;
let gachaId = getNormalGachaId();
let { visitedHero, refVisitedTime } = await UserGacha.findByRole(roleId, gachaId, 0);
let { visitedHero, refVisitedTime } = await UserGachaModel.findByRole(roleId, gachaId, 0);
if (shouldRefresh(refVisitedTime, new Date())) {
visitedHero = [];
refVisitedTime = getZeroPointD();
@@ -311,7 +311,7 @@ export class GachaHandler {
}
visitedHero.push(hid);
let userGacha = await UserGacha.updateInfo(roleId, gachaId, 0, { visitedHero, refVisitedTime });
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, 0, { visitedHero, refVisitedTime });
let goods = await addItems(roleId, roleName, sid, [{ id: pieceId, count: RECRUIT.RECRUIT_SHARD_LIMIT }], ITEM_CHANGE_REASON.VISIT_HERO);
return resResult(STATUS.SUCCESS, {
@@ -371,10 +371,10 @@ export class GachaHandler {
let gachaPull = new GachaPull(dicGacha);
let { resultList } = gachaPull.pull(count, userHeroes);
let userGacha = await UserGacha.updateInfo(roleId, gachaId, activityId, { guideResultList: resultList }, { pullCnt: 1 });
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { guideResultList: resultList }, { pullCnt: 1 });
playerData.setPlayerData(userGacha);
if(playerData.autoSave()) { // 最后几次自动保存
await UserGacha.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
await UserGachaModel.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
}
return resResult(STATUS.SUCCESS, {
@@ -405,7 +405,7 @@ export class GachaHandler {
let result = playerData.setCandidate(id);
if(!result) return resResult(STATUS.GACHA_GUIDE_NOT_DO)
let userGacha = await UserGacha.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
playerData.setPlayerData(userGacha);
return resResult(STATUS.SUCCESS, {
@@ -443,7 +443,7 @@ export class GachaHandler {
results.addBySimpleResult(candidate.list);
let { items, heroInfo, resultList } = results.transferToFinalResult(userHeroes);
let userGacha = await UserGacha.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
let userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, { candidates: playerData.candidates });
playerData.setPlayerData(userGacha);
// 给东西

View File

@@ -1,6 +1,6 @@
import { Floor as UserFloor, Hope as UserHope, GachaListReturn, GachaResultIndb } from "../../domain/activityField/gachaField";;
import { DicGacha } from "../../pubUtils/dictionary/DicGacha";
import UserGacha, { UserGachaType } from "../../db/UserGacha";
import { UserGachaType, UserGachaModel } from "../../db/UserGacha";
import { shouldRefresh, getRandEelm, getRandEelmWithWeight, getRandSingleIndex, getRandSingleEelm } from "../../pubUtils/util";
import { REFRESH_TIME, GACHA_FLOOR_TYPE, HERO_QUALITY_TYPE, IT_TYPE, ITID, CONSUME_TYPE, SPECIAL_ATTR, TIME_OUTPUT_TYPE, GACHA_TYPE, GACHA_PLAN_TYPE } from "../../consts";
import { getTimeFunD, getZeroPointD } from "../../pubUtils/timeUtil";
@@ -19,7 +19,7 @@ import { isGoodsHidden, isHeroHidden } from "../dataService";
* @param roleId
*/
export async function getGachaList(roleId: string) {
let userGachaList = await UserGacha.findAllByRole(roleId);
let userGachaList = await UserGachaModel.findAllByRole(roleId);
let list: GachaListReturn[] = [];
for (let [id, dicGacha] of gameData.gacha) {
if(!dicGacha.showInMainPage) continue;
@@ -55,12 +55,12 @@ export async function refreshGacha(dicGacha: DicGacha, userGacha: UserGachaType)
let { roleId, gachaId, refFreeTime, refHopeTime, hope } = userGacha;
if (shouldRefresh(refFreeTime, new Date(), REFRESH_TIME, day)) {
let ref = <Date>getTimeFunD().getAfterDayByGap(refFreeTime, day);
userGacha = await UserGacha.refreshFreeCount(roleId, gachaId, 0, ref);
userGacha = await UserGachaModel.refreshFreeCount(roleId, gachaId, 0, ref);
}
if (shouldRefresh(refHopeTime, new Date(), REFRESH_TIME)) {
hope = hope.map(cur => { return { ...cur, hasGet: false } });
let ref = getZeroPointD();
userGacha = await UserGacha.refreshHopeCount(roleId, gachaId, 0, hope, ref);
userGacha = await UserGachaModel.refreshHopeCount(roleId, gachaId, 0, hope, ref);
}
return userGacha
}
@@ -68,7 +68,7 @@ export async function refreshGacha(dicGacha: DicGacha, userGacha: UserGachaType)
export async function getVisitedHeroList(roleId: string) {
let gachaId = getNormalGachaId();
let { visitedHero, refVisitedTime } = await UserGacha.findByRole(roleId, gachaId, 0);
let { visitedHero, refVisitedTime } = await UserGachaModel.findByRole(roleId, gachaId, 0);
if (shouldRefresh(refVisitedTime, new Date())) {
visitedHero = [];
}
@@ -567,7 +567,7 @@ export async function getGuideGachaData(serverId: number, activityId: number, ro
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new GuideGachaData(activityData, createTime, serverTime);
let userGacha = await UserGacha.findByRole(roleId, playerData.gachaId, activityId);
let userGacha = await UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
playerData.setPlayerData(userGacha);
if(playerData.hasChoosen || playerData.neverChoose()) return null;
return playerData;

View File

@@ -1,7 +1,7 @@
import { ACTIVITY_TYPE } from '../../consts';
import { ActivityNewHeroGiftModel, ActivityNewHeroGiftModelType } from '../../db/ActivityNewHeroGift';
import { ActivityNewHeroGKModel, ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK';
import UserGacha, { UserGachaType } from '../../db/UserGacha';
import { UserGachaModel, UserGachaType } from '../../db/UserGacha';
import { NewHeroGachaData } from '../../domain/activityField/newHeroGachaField';
import { NewHeroGiftData } from '../../domain/activityField/newHeroGiftField';
import { NewHeroGKData } from '../../domain/activityField/newHeroGKField';
@@ -25,11 +25,11 @@ import { refreshGacha } from './gachaService';
let createTime = await getRoleCreateTime(roleId);
let serverTime = await getServerCreateTime(serverId);
let playerData = new NewHeroGachaData(activityData, createTime, serverTime);
let userGacha: UserGachaType = await UserGacha.findByRole(roleId, playerData.gachaId, activityId);
let userGacha: UserGachaType = await UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
let dicGacha = gameData.gacha.get(playerData.gachaId);
userGacha = await refreshGacha(dicGacha, userGacha);
if(!userGacha.pickHero) {
userGacha = await UserGacha.updateInfo(roleId, playerData.gachaId, activityId, { pickHero: playerData.getDefaultHero() })
userGacha = await UserGachaModel.updateInfo(roleId, playerData.gachaId, activityId, { pickHero: playerData.getDefaultHero() })
}
playerData.setPlayerRecords(userGacha, dicGacha);

View File

@@ -1,5 +1,5 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions, ReturnModelType, mongoose } from '@typegoose/typegoose';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
import { getZeroPointD } from '../pubUtils/timeUtil';
import { RECRUIT } from '../pubUtils/dicParam';
import { Candidate, SimpleResult } from '../domain/activityField/guideGachaField';
@@ -103,7 +103,7 @@ export default class UserGacha extends BaseModel {
candidates: Candidate[]; // 预抽卡候选
public static async findAllByRole(roleId: string) {
let rec: UserGachaType[] = await UserGachaROModel.find({ roleId }).lean({ virtuals: true });
let rec: UserGachaType[] = await UserGachaModel.find({ roleId }).lean({ virtuals: true });
return rec;
}
@@ -142,11 +142,5 @@ export default class UserGacha extends BaseModel {
export const UserGachaModel = getModelForClass(UserGacha);
export let UserGachaROModel: ReturnModelType<typeof UserGacha, {}>;
export function loadUserGachaROModel(connect: mongoose.Connection) {
UserGachaROModel = getModelForClass(UserGacha, {
existingConnection: connect
});
}
export interface UserGachaType extends Pick<DocumentType<UserGacha>, keyof UserGacha> { }
export type UserGachaParam = Partial<UserGachaType>;

View File

@@ -18,7 +18,6 @@ import { loadRoleROModel } from "./Role";
import { loadHeroROModel } from "./Hero";
import { loadItemROModel } from "./Item";
import { loadUserGachaRecROModel } from "./UserGachaRec";
import { loadUserGachaROModel } from "./UserGacha";
export function loadGmDb(connect: mongoose.Connection) {
// console.log('************')
@@ -48,5 +47,4 @@ export function loadRODb(connect: mongoose.Connection) {
loadHeroROModel(connect);
loadItemROModel(connect);
loadUserGachaRecROModel(connect);
loadUserGachaROModel(connect);
}