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

This commit is contained in:
liangtongchuan
2023-05-06 18:28:06 +08:00
parent 8985065b0e
commit b7a2367219
5 changed files with 33 additions and 25 deletions
@@ -1,6 +1,6 @@
import { Floor as UserFloor, Hope as UserHope, GachaListReturn, GachaResultIndb } from "../../domain/activityField/gachaField";;
import { DicGacha } from "../../pubUtils/dictionary/DicGacha";
import { UserGachaType, UserGachaModel } from "../../db/UserGacha";
import UserGacha, { UserGachaType } 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 UserGachaModel.findAllByRole(roleId);
let userGachaList = await UserGacha.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 UserGachaModel.refreshFreeCount(roleId, gachaId, 0, ref);
userGacha = await UserGacha.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 UserGachaModel.refreshHopeCount(roleId, gachaId, 0, hope, ref);
userGacha = await UserGacha.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 UserGachaModel.findByRole(roleId, gachaId, 0);
let { visitedHero, refVisitedTime } = await UserGacha.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 UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
let userGacha = await UserGacha.findByRole(roleId, playerData.gachaId, activityId);
playerData.setPlayerData(userGacha);
if(playerData.hasChoosen || playerData.neverChoose()) return null;
return playerData;
@@ -1,7 +1,7 @@
import { ACTIVITY_TYPE } from '../../consts';
import { ActivityNewHeroGiftModel, ActivityNewHeroGiftModelType } from '../../db/ActivityNewHeroGift';
import { ActivityNewHeroGKModel, ActivityNewHeroGKModelType } from '../../db/ActivityNewHeroGK';
import { UserGachaModel, UserGachaType } from '../../db/UserGacha';
import UserGacha, { 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 UserGachaModel.findByRole(roleId, playerData.gachaId, activityId);
let userGacha: UserGachaType = await UserGacha.findByRole(roleId, playerData.gachaId, activityId);
let dicGacha = gameData.gacha.get(playerData.gachaId);
userGacha = await refreshGacha(dicGacha, userGacha);
if(!userGacha.pickHero) {
userGacha = await UserGachaModel.updateInfo(roleId, playerData.gachaId, activityId, { pickHero: playerData.getDefaultHero() })
userGacha = await UserGacha.updateInfo(roleId, playerData.gachaId, activityId, { pickHero: playerData.getDefaultHero() })
}
playerData.setPlayerRecords(userGacha, dicGacha);