feat(公告): 公告添加子包标识

This commit is contained in:
luying
2023-06-14 17:50:44 +08:00
parent 2c37834e59
commit 118bef1e9d
2 changed files with 16 additions and 4 deletions

View File

@@ -8,6 +8,7 @@ import { CounterModel } from './Counter';
*/
@modelOptions({schemaOptions: {id: false}})
@index({ id: 1 })
@index({ packages: 1 })
export default class Notice extends BaseModel {
@prop({ required: true })
@@ -35,10 +36,12 @@ export default class Notice extends BaseModel {
@prop({ required: true, select: false })
isEnable: boolean;
@prop({ required: true, select: false, type: String })
packages: string[];
public static async getAllNotice() {
public static async getAllNotice(packageCode: string) {
let curTime = new Date();
let notices: NoticeType[] = await NoticeModel.find({ showStartTime: { $lte: curTime }, showEndTime: { $gte: curTime }, isEnable: true })
let notices: NoticeType[] = await NoticeModel.find({ showStartTime: { $lte: curTime }, showEndTime: { $gte: curTime }, isEnable: true, packages: packageCode })
.sort({ sort: -1, createTime: -1 })
.lean({ virtuals: true });
return notices;
@@ -76,7 +79,7 @@ export default class Notice extends BaseModel {
sort[sortField] = -1;
}
}
const result: NoticeType[] = await NoticeModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).select('+sort +showStartTime +showEndTime +isEnable').lean({ getters: true, virtuals: true });
const result: NoticeType[] = await NoticeModel.find(searchObj).limit(pageSize).skip((page - 1) * pageSize).sort(sort).select('+sort +showStartTime +showEndTime +isEnable +packages').lean({ getters: true, virtuals: true });
return result;
}

View File

@@ -146,8 +146,17 @@ export default class GameController extends Controller {
public async getnotice() {
const { ctx } = this;
const { pid, gid } = ctx.request.body;
let notice = await NoticeModel.getAllNotice();
let packageCode = 'default';
if(pid && gid) {
let pkg = await PackageModel.getPackageByGidPid(gid, pid);
if(pkg) packageCode = pkg?.packageCode;
}
let notice = await NoticeModel.getAllNotice(packageCode);
if(notice.length == 0) notice = await NoticeModel.getAllNotice('default');
let result = notice.map(cur => {
let { id, title, tag, type, content, time } = cur;
return {