✨ feat(公告): 公告添加子包标识
This commit is contained in:
@@ -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;
|
||||
|
||||
}
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user