feat(db): 给GiftCode添加只读库支持

This commit is contained in:
liangtongchuan
2023-05-06 18:38:52 +08:00
parent b7a2367219
commit 6b7a205bf6
6 changed files with 31 additions and 21 deletions

View File

@@ -11,7 +11,7 @@ import { useGiftPackage } from "../../../services/activity/giftPackageService";
import { getAp, setAp, setApBuyTimes } from "../../../services/actionPointService"; import { getAp, setAp, setApBuyTimes } from "../../../services/actionPointService";
import { ActionPointModel } from "../../../db/ActionPoint"; import { ActionPointModel } from "../../../db/ActionPoint";
import { GiftCodeDetailModel } from "../../../db/GiftCodeDetail"; import { GiftCodeDetailModel } from "../../../db/GiftCodeDetail";
import { GiftCodeType, GiftCodeModel } from "../../../db/GiftCode"; import GiftCode from "../../../db/GiftCode";
import { nowSeconds } from "../../../pubUtils/timeUtil"; import { nowSeconds } from "../../../pubUtils/timeUtil";
import { AP } from "../../../pubUtils/dicParam"; import { AP } from "../../../pubUtils/dicParam";
import { GiftPackageFloorModel } from "../../../db/GiftPackageFloor"; import { GiftPackageFloorModel } from "../../../db/GiftPackageFloor";
@@ -172,7 +172,7 @@ export class ItemHandler {
if(!giftCodeDetail) { if(!giftCodeDetail) {
return resResult(STATUS.GIFT_CODE_NOT_FOUND); return resResult(STATUS.GIFT_CODE_NOT_FOUND);
} }
let giftCode = await GiftCodeModel.findByGiftId(giftCodeDetail.giftId); let giftCode = await GiftCode.findByGiftId(giftCodeDetail.giftId);
if(!giftCode) { if(!giftCode) {
return resResult(STATUS.GIFT_CODE_NOT_FOUND); return resResult(STATUS.GIFT_CODE_NOT_FOUND);
} }
@@ -198,7 +198,7 @@ export class ItemHandler {
await GiftCodeDetailModel.increaseUsedNum(code, roleId, roleName, serverId); await GiftCodeDetailModel.increaseUsedNum(code, roleId, roleName, serverId);
await GiftCodeModel.increaseUsedNum(giftCode.id); await GiftCode.increaseUsedNum(giftCode.id);
let goods = await addItems(roleId, roleName, sid, giftCode.goods, ITEM_CHANGE_REASON.USE_GIFT_CODE); let goods = await addItems(roleId, roleName, sid, giftCode.goods, ITEM_CHANGE_REASON.USE_GIFT_CODE);
return resResult(STATUS.SUCCESS, { goods }); return resResult(STATUS.SUCCESS, { goods });

View File

@@ -22,7 +22,7 @@ import { sendMessageToUserWithSuc } from "./pushService";
import { GuildLeader } from "../domain/rank"; import { GuildLeader } from "../domain/rank";
import { initTaLoggingMode } from "./sdk/ta"; import { initTaLoggingMode } from "./sdk/ta";
import { DicPushMessage } from "../pubUtils/dictionary/DicPushMessage"; import { DicPushMessage } from "../pubUtils/dictionary/DicPushMessage";
import { GiftCodeModel } from "../db/GiftCode"; import GiftCode from "../db/GiftCode";
import { GiftCodeDetailModel } from "../db/GiftCodeDetail"; import { GiftCodeDetailModel } from "../db/GiftCodeDetail";
// 检查私聊是否合法 // 检查私聊是否合法
@@ -331,7 +331,7 @@ export async function sendGiftCodeMail(message: string) {
let [roleId, _giftId] = message.split('|'); let [roleId, _giftId] = message.split('|');
let giftId = parseInt(_giftId); let giftId = parseInt(_giftId);
if(isNaN(giftId) || !roleId) return false; if(isNaN(giftId) || !roleId) return false;
let giftCode = await GiftCodeModel.findByGiftId(giftId); let giftCode = await GiftCode.findByGiftId(giftId);
if(!giftCode) { if(!giftCode) {
console.log('***** sendSurveyMail giftId not found', giftId); console.log('***** sendSurveyMail giftId not found', giftId);
return false; return false;

View File

@@ -8,7 +8,7 @@ import Item from '@db/Item';
import { gameData } from '@pubUtils/data'; import { gameData } from '@pubUtils/data';
import { smsModel } from '@db/Sms'; import { smsModel } from '@db/Sms';
import { isString } from 'underscore'; import { isString } from 'underscore';
import { GiftCodeModel } from '@db/GiftCode'; import GiftCode from '@db/GiftCode';
import GiftCodeDetail, { GiftCodeDetailModel } from '@db/GiftCodeDetail'; import GiftCodeDetail, { GiftCodeDetailModel } from '@db/GiftCodeDetail';
import { deletRole } from '@pubUtils/roleUtil'; import { deletRole } from '@pubUtils/roleUtil';
import { RScriptRecordModel } from '@db/RScriptRecord'; import { RScriptRecordModel } from '@db/RScriptRecord';
@@ -519,8 +519,8 @@ export default class GMUsers extends Service {
public async getGiftCodeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: SearchGiftCodeParam = {}) { public async getGiftCodeList(page: number, pageSize: number, sortField: string, sortOrder: string, form: SearchGiftCodeParam = {}) {
const { ctx } = this; const { ctx } = this;
const list = await GiftCodeModel.findByCondition(page, pageSize, sortField, sortOrder, form); const list = await GiftCode.findByCondition(page, pageSize, sortField, sortOrder, form);
const total = await GiftCodeModel.countByCondition( form ) const total = await GiftCode.countByCondition( form )
return ctx.service.utils.resResult(STATUS.SUCCESS, { return ctx.service.utils.resResult(STATUS.SUCCESS, {
list: list.map(cur => ({...cur, env: ctx.app.config.realEnv })), total list: list.map(cur => ({...cur, env: ctx.app.config.realEnv })), total
}); });
@@ -531,7 +531,7 @@ export default class GMUsers extends Service {
let params = new CreateGiftCode(obj); let params = new CreateGiftCode(obj);
if(!isNumber(count) || !params.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!isNumber(count) || !params.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let giftCode = await GiftCodeModel.createData(params); let giftCode = await GiftCode.createData(params);
await GiftCodeDetailModel.generateMany(giftCode, count, ctx.user?.uid); await GiftCodeDetailModel.generateMany(giftCode, count, ctx.user?.uid);
return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode); return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode);
} }
@@ -541,7 +541,7 @@ export default class GMUsers extends Service {
let params = new UpdateGiftCode(id, obj); let params = new UpdateGiftCode(id, obj);
if(!params.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!params.checkParams()) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
const result = await GiftCodeModel.updateData(id, params, ctx.user?.uid); const result = await GiftCode.updateData(id, params, ctx.user?.uid);
if(!result) return ctx.service.utils.resResult(STATUS.INTERNAL_ERR); if(!result) return ctx.service.utils.resResult(STATUS.INTERNAL_ERR);
return ctx.service.utils.resResult(STATUS.SUCCESS); return ctx.service.utils.resResult(STATUS.SUCCESS);
} }
@@ -550,7 +550,7 @@ export default class GMUsers extends Service {
const { ctx } = this; const { ctx } = this;
if(!isNumber(id) || !isNumber(count)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!isNumber(id) || !isNumber(count)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let giftCode = await GiftCodeModel.findByGiftId(id); let giftCode = await GiftCode.findByGiftId(id);
if(!giftCode) return ctx.service.utils.resResult(STATUS.DB_DATA_NOT_FOUND); if(!giftCode) return ctx.service.utils.resResult(STATUS.DB_DATA_NOT_FOUND);
await GiftCodeDetailModel.generateMany(giftCode, count, ctx.user?.uid); await GiftCodeDetailModel.generateMany(giftCode, count, ctx.user?.uid);
return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode); return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode);
@@ -560,16 +560,16 @@ export default class GMUsers extends Service {
const { ctx } = this; const { ctx } = this;
if(!isNumber(id)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!isNumber(id)) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let giftCode = await GiftCodeModel.findByGiftId(id); let giftCode = await GiftCode.findByGiftId(id);
if(!giftCode) return ctx.service.utils.resResult(STATUS.DB_DATA_NOT_FOUND); if(!giftCode) return ctx.service.utils.resResult(STATUS.DB_DATA_NOT_FOUND);
await GiftCodeModel.updateData(id, { isEnable }, ctx.user?.uid); await GiftCode.updateData(id, { isEnable }, ctx.user?.uid);
return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode); return ctx.service.utils.resResult(STATUS.SUCCESS, giftCode);
} }
public async getGiftCodeDetailFile(id: number, fileType: string) { public async getGiftCodeDetailFile(id: number, fileType: string) {
const { ctx } = this; const { ctx } = this;
let giftCode = await GiftCodeModel.findByGiftId(id); let giftCode = await GiftCode.findByGiftId(id);
if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS); if(!giftCode) return ctx.service.utils.resResult(STATUS.WRONG_PARMS);
let giftCodeDetails = await GiftCodeDetailModel.findAllCodeByGiftId(giftCode.id); let giftCodeDetails = await GiftCodeDetailModel.findAllCodeByGiftId(giftCode.id);

View File

@@ -1,5 +1,5 @@
import BaseModel from './BaseModel'; import BaseModel from './BaseModel';
import { getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose'; import { getModelForClass, prop, DocumentType, modelOptions, mongoose, ReturnModelType } from '@typegoose/typegoose';
import { CounterModel } from './Counter'; import { CounterModel } from './Counter';
import { COUNTER, GIFT_GENERATE_TYPE } from '../consts'; import { COUNTER, GIFT_GENERATE_TYPE } from '../consts';
import { SearchGiftCodeParam } from '../domain/backEndField/search'; import { SearchGiftCodeParam } from '../domain/backEndField/search';
@@ -60,7 +60,7 @@ export default class GiftCode extends BaseModel {
public static async findByGiftId(id: number) { public static async findByGiftId(id: number) {
let rec: GiftCodeType = await GiftCodeModel.findOne({ id }).lean(); let rec: GiftCodeType = await GiftCodeROModel.findOne({ id }).lean();
return rec; return rec;
} }
@@ -113,7 +113,7 @@ export default class GiftCode extends BaseModel {
sort[sortField] = -1; sort[sortField] = -1;
} }
} }
const result: GiftCodeType[] = await GiftCodeModel.find(searchObj, { _id: 0 }).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true }); const result: GiftCodeType[] = await GiftCodeROModel.find(searchObj, { _id: 0 }).limit(pageSize).skip((page - 1) * pageSize).sort(sort).lean({ getters: true, virtuals: true });
return result; return result;
} }
@@ -121,11 +121,19 @@ export default class GiftCode extends BaseModel {
public static async countByCondition(form: SearchGiftCodeParam = {}) { public static async countByCondition(form: SearchGiftCodeParam = {}) {
let searchObj = this.getSearchObj(form); let searchObj = this.getSearchObj(form);
const result = await GiftCodeModel.count(searchObj); const result = await GiftCodeROModel.count(searchObj);
return result; return result;
} }
} }
export let GiftCodeModel = getModelForClass(GiftCode); export let GiftCodeModel = getModelForClass(GiftCode);
export let GiftCodeROModel: ReturnModelType<typeof GiftCode, {}>;
export function loadGiftCodeROModel(connect: mongoose.Connection) {
GiftCodeROModel = getModelForClass(GiftCode, {
existingConnection: connect
});
}
export interface GiftCodeType extends Pick<DocumentType<GiftCode>, keyof GiftCode> { } export interface GiftCodeType extends Pick<DocumentType<GiftCode>, keyof GiftCode> { }
export type GiftCodeParam = Partial<GiftCodeType>; export type GiftCodeParam = Partial<GiftCodeType>;

View File

@@ -19,6 +19,7 @@ import { loadHeroROModel } from "./Hero";
import { loadItemROModel } from "./Item"; import { loadItemROModel } from "./Item";
import { loadUserGachaRecROModel } from "./UserGachaRec"; import { loadUserGachaRecROModel } from "./UserGachaRec";
import { loadUserGachaROModel } from "./UserGacha"; import { loadUserGachaROModel } from "./UserGacha";
import { loadGiftCodeROModel } from "./GiftCode";
export function loadGmDb(connect: mongoose.Connection) { export function loadGmDb(connect: mongoose.Connection) {
// console.log('************') // console.log('************')
@@ -49,4 +50,5 @@ export function loadRODb(connect: mongoose.Connection) {
loadItemROModel(connect); loadItemROModel(connect);
loadUserGachaRecROModel(connect); loadUserGachaRecROModel(connect);
loadUserGachaROModel(connect); loadUserGachaROModel(connect);
loadGiftCodeROModel(connect);
} }

View File

@@ -17,7 +17,7 @@ import moment = require('moment');
import { RegionModel } from '@db/Region'; import { RegionModel } from '@db/Region';
import { ActivityPublicAccountCodeModel } from '@db/ActivityPublicAccountCode'; import { ActivityPublicAccountCodeModel } from '@db/ActivityPublicAccountCode';
import { GiftCodeDetailModel } from '@db/GiftCodeDetail'; import { GiftCodeDetailModel } from '@db/GiftCodeDetail';
import { GiftCodeModel } from '@db/GiftCode'; import GiftCode from '@db/GiftCode';
/** /**
* Test Service * Test Service
@@ -450,7 +450,7 @@ export default class Sdk extends Service {
if(!giftCodeDetail) { if(!giftCodeDetail) {
return resResult(SDK_37_ACTIVITY_CODE.GIFT_NOT_FOUND); return resResult(SDK_37_ACTIVITY_CODE.GIFT_NOT_FOUND);
} }
let giftCode = await GiftCodeModel.findByGiftId(giftCodeDetail.giftId); let giftCode = await GiftCode.findByGiftId(giftCodeDetail.giftId);
if(!giftCode) { if(!giftCode) {
return resResult(SDK_37_ACTIVITY_CODE.GIFT_NOT_FOUND); return resResult(SDK_37_ACTIVITY_CODE.GIFT_NOT_FOUND);
} }
@@ -475,7 +475,7 @@ export default class Sdk extends Service {
} }
await GiftCodeDetailModel.increaseUsedNum(giftCodeDetail.code, role.roleId, role.roleName, role.serverId, params.order_id); await GiftCodeDetailModel.increaseUsedNum(giftCodeDetail.code, role.roleId, role.roleName, role.serverId, params.order_id);
await GiftCodeModel.increaseUsedNum(giftCode.id); await GiftCode.increaseUsedNum(giftCode.id);
await ctx.service.utils.pushGiftCodeChannel(role.roleId, giftCode.id); await ctx.service.utils.pushGiftCodeChannel(role.roleId, giftCode.id);
} }