✨ feat(37): 根据子包信息获取大区地址的接口和后台
This commit is contained in:
@@ -24,6 +24,10 @@ export const STATUS = {
|
||||
UPDATE_INFO_ERR: {code: 1004, simStr: '热更新配置错误'},
|
||||
DEBUG_FUNCTION_ERR: {code: 1005, simStr: '功能逻辑已改,debug接口不再提供'},
|
||||
DEVELOP_ONLY: {code: 1006, simStr: '只有测试环境才可以使用该接口'},
|
||||
PACKAGE_NOT_FOUND: {code: 1007, simStr: '您的版本未被支持,请前往应用商店重新下载或联系客服解决'},
|
||||
REGION_NOT_FOUND: {code: 1008, simStr: '未找到此版本对应区服'},
|
||||
PACKAGE_CREATE_FAILED: {code: 1009, simStr: '创建子包失败'},
|
||||
PACKAGE_UPDATE_FAILED: {code: 1010, simStr: '更新子包失败'},
|
||||
|
||||
// http请求
|
||||
REQUEST_TIME_OUT: { code: 2000, simStr: '请求超时' },
|
||||
|
||||
95
shared/db/Package.ts
Normal file
95
shared/db/Package.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType, mongoose, ReturnModelType } from '@typegoose/typegoose';
|
||||
import { genCode } from '../pubUtils/util';
|
||||
|
||||
/**
|
||||
* 推广包数据
|
||||
*/
|
||||
@index({ gid: 1, pid: 1 })
|
||||
|
||||
export default class Package extends BaseModel {
|
||||
@prop({ required: true })
|
||||
regionId: number; // 大区id
|
||||
|
||||
// @prop({ required: true })
|
||||
// regionName: string; // 大区名
|
||||
|
||||
@prop({ required: true })
|
||||
packageCode: string; // 包唯一 id
|
||||
|
||||
@prop({ required: true })
|
||||
gid: string; // 37 childGameId
|
||||
|
||||
@prop({ required: true })
|
||||
pid: string; // 37 platformId
|
||||
|
||||
@prop({ required: true })
|
||||
pkgName: string; // 包名
|
||||
|
||||
@prop({ required: true })
|
||||
pkgDesc: string; // 包描述
|
||||
|
||||
@prop({ required: true, default: false })
|
||||
isOpen: boolean; // 是否开启
|
||||
|
||||
public static async createNewPackage(params: PackageUpdate, uid = 1) {
|
||||
const { gid, pid } = params;
|
||||
let rec: PackageType | null = await PackageModel.findOne({ gid, pid }).lean();
|
||||
if (rec) {
|
||||
return rec;
|
||||
}
|
||||
const packageCode = genCode(6);
|
||||
rec = await PackageModel.findOneAndUpdate({ gid, pid }, { $setOnInsert: { ...params, packageCode, createdBy: uid}, $set: { updatedBy: uid } }, { new: true, upsert: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
// 更新推广包的可更新字段
|
||||
public static async updatePackage(params: PackageUpdate, uid = 1) {
|
||||
const { gid, pid, regionId } = params;
|
||||
if (!gid || !pid || !regionId) {
|
||||
return null;
|
||||
}
|
||||
const rec: PackageType | null = await PackageModel.findOneAndUpdate({ gid, pid, regionId }, { $set: { ...params, updatedBy: uid } }, { new: true }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
public static async getPackageByGidPid(gid: string, pid: string, isOpen = true) {
|
||||
const rec: PackageType | null = await PackageModel.findOne({ gid, pid, isOpen }).lean();
|
||||
return rec;
|
||||
}
|
||||
|
||||
// 获取所有包
|
||||
public static async getAllPackages() {
|
||||
const recs: PackageType[] = await PackageModel.find().lean();
|
||||
return recs;
|
||||
}
|
||||
|
||||
// 根据大区id获取所有包
|
||||
public static async getAllPackagesByRegionId(regionId: number) {
|
||||
const recs: PackageType[] = await PackageModel.find({ regionId }).lean();
|
||||
return recs;
|
||||
}
|
||||
|
||||
// 获取符合查询条件的子包
|
||||
public static async getPackagesByQuery(params: PackageUpdate) {
|
||||
const queryParams = Object.keys(params).reduce((acc, key) => {
|
||||
if (!!params[key]) {
|
||||
acc[key] = params[key];
|
||||
}
|
||||
return acc;
|
||||
}, {});
|
||||
const recs: PackageType[] = await PackageModel.find(queryParams).lean();
|
||||
return recs;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export let PackageModel: ReturnModelType<typeof Package, {}>;
|
||||
export function loadPackageModel(connect: mongoose.Connection) {
|
||||
PackageModel = getModelForClass(Package, {
|
||||
existingConnection: connect
|
||||
});
|
||||
}
|
||||
|
||||
export interface PackageType extends Pick<DocumentType<Package>, keyof Package> { };
|
||||
export type PackageUpdate = Partial<PackageType>; // 将所有字段变成可选项
|
||||
@@ -12,6 +12,7 @@ import { loadActivityGroup } from "./ActivityGroup";
|
||||
import { loadActivityGroupType } from "./ActivityGroupType";
|
||||
import { loadActivityTaskPoint } from "./ActivityTaskPoint";
|
||||
import { loadChannelInfo } from "./ChannelInfo";
|
||||
import { loadPackageModel } from "./Package";
|
||||
|
||||
export function loadGmDb(connect: mongoose.Connection) {
|
||||
// console.log('************')
|
||||
@@ -28,4 +29,5 @@ export function loadGmDb(connect: mongoose.Connection) {
|
||||
loadMarqueeModel(connect);
|
||||
loadActivityTaskPoint(connect);
|
||||
loadChannelInfo(connect);
|
||||
loadPackageModel(connect);
|
||||
}
|
||||
@@ -950,5 +950,27 @@
|
||||
"name": "武将所有装备强化、升品、升星到当前最高",
|
||||
"module": "user",
|
||||
"type": "update"
|
||||
},
|
||||
{
|
||||
"id": 137,
|
||||
"api": "/api/game/getpackages",
|
||||
"name": "获取大区的子包",
|
||||
"module": "server",
|
||||
"type": "find"
|
||||
},
|
||||
{
|
||||
"id": 138,
|
||||
"api": "/api/game/createnewpackage",
|
||||
"name": "创建一个新的子包",
|
||||
"module": "server",
|
||||
"type": "find"
|
||||
},
|
||||
{
|
||||
"id": 139,
|
||||
"api": "/api/game/editpackage",
|
||||
"name": "编辑子包",
|
||||
"module": "server",
|
||||
"type": "find"
|
||||
}
|
||||
|
||||
]
|
||||
Reference in New Issue
Block a user