✨ feat(公告): 公告添加子包标识
This commit is contained in:
@@ -8,6 +8,7 @@ import { CounterModel } from './Counter';
|
|||||||
*/
|
*/
|
||||||
@modelOptions({schemaOptions: {id: false}})
|
@modelOptions({schemaOptions: {id: false}})
|
||||||
@index({ id: 1 })
|
@index({ id: 1 })
|
||||||
|
@index({ packages: 1 })
|
||||||
export default class Notice extends BaseModel {
|
export default class Notice extends BaseModel {
|
||||||
|
|
||||||
@prop({ required: true })
|
@prop({ required: true })
|
||||||
@@ -35,10 +36,12 @@ export default class Notice extends BaseModel {
|
|||||||
@prop({ required: true, select: false })
|
@prop({ required: true, select: false })
|
||||||
isEnable: boolean;
|
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 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 })
|
.sort({ sort: -1, createTime: -1 })
|
||||||
.lean({ virtuals: true });
|
.lean({ virtuals: true });
|
||||||
return notices;
|
return notices;
|
||||||
@@ -76,7 +79,7 @@ export default class Notice extends BaseModel {
|
|||||||
sort[sortField] = -1;
|
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;
|
return result;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -146,8 +146,17 @@ export default class GameController extends Controller {
|
|||||||
|
|
||||||
public async getnotice() {
|
public async getnotice() {
|
||||||
const { ctx } = this;
|
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 result = notice.map(cur => {
|
||||||
let { id, title, tag, type, content, time } = cur;
|
let { id, title, tag, type, content, time } = cur;
|
||||||
return {
|
return {
|
||||||
|
|||||||
Reference in New Issue
Block a user