diff --git a/doc/api.md b/doc/api.md index 78cf405..4a7fb5f 100644 --- a/doc/api.md +++ b/doc/api.md @@ -763,4 +763,35 @@ } ``` -> 说明, 这里获取的answer是使用 当前比赛session_当前题目的id_答案_jcfw中的sessionid, 计算md5 \ No newline at end of file +> 说明, 这里获取的answer是使用 当前比赛session_当前题目的id_答案_jcfw中的sessionid, 计算md5 +> + +### 22. 公告列表 + +1. Method: POST +2. URI: /api/:accountId/announces + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| accountid | 帐号id | + +> POST参数 + + +| 字段 | 说明 | +| -------- | -------------------------------------- | +| sid | 店铺id | +| ids | 已读的公告id数组 | + +3. Response: JSON + +```js +{ +"id": "60c1d800646792f5f3764e93", // 公告id +"content": "22", // 公告内容, 最好用ubb富文本来显示 +"endTime": 1623921267010, // 公告过期时间 +"sendTime": 1623316467010, // 公告发送时间 +"title": "111", // 公告标题 +"type": 2 // 公告类型 0: 普通 1: 店铺群发 2: 全体 +} +``` \ No newline at end of file diff --git a/src/admin/controllers/announce.controller.ts b/src/admin/controllers/announce.controller.ts index 8a99c70..43c86ef 100644 --- a/src/admin/controllers/announce.controller.ts +++ b/src/admin/controllers/announce.controller.ts @@ -47,12 +47,12 @@ export default class AnnounceController extends BaseController { @permission(['shopannounce:publish']) @router('post /api/announce/publish') async publish(req: any) { - let { id, active } = req.params + let { id, publish } = req.params let record = await SysAnnounce.findById(id) if (!record) { throw new ZError(11, 'record not found') } - record.publish = active + record.publish = publish await record.save() return record.toJson() } diff --git a/src/api/controllers/mail.controller.ts b/src/api/controllers/mail.controller.ts index 5c3d9df..f03d486 100644 --- a/src/api/controllers/mail.controller.ts +++ b/src/api/controllers/mail.controller.ts @@ -5,6 +5,7 @@ import { SysMail } from '../../models/content/SysMail' import { ZError } from '../../common/ZError' import { UserReward } from '../../models/user/UserReward' import { Shop } from '../../models/shop/Shop' +import { SysAnnounce } from '../../models/content/SysAnnounce' class MailController extends BaseController { @role('anon') @@ -89,4 +90,28 @@ class MailController extends BaseController { } return results } + + @role('anon') + @router('post /api/:accountId/announces') + async announce_list(req: any) { + const { accountId, sid, ids } = req.params + if (!sid) { + throw new ZError(10, '缺少必要参数: sid') + } + const shop = await Shop.fetchByID(sid) + if (!shop) { + throw new ZError(11, '无法找到对应店铺') + } + let records = await SysAnnounce.findRecords(accountId, shop.id, ids) + return records.map(o => { + return { + id: o._id, + title: o.title, + content: o.content, + type: o.type, + sendTime: o.sendTime, + endTime: o.endTime, + } + }) + } } diff --git a/src/models/content/SysAnnounce.ts b/src/models/content/SysAnnounce.ts index 126d2d1..b6b454f 100644 --- a/src/models/content/SysAnnounce.ts +++ b/src/models/content/SysAnnounce.ts @@ -22,17 +22,20 @@ export class SysAnnounceClass extends BaseModule { /** * 类型 - * @type {number} 0: 普通邮件 1: 店铺群发 2: 全体 + * @type {number} 0: 普通 1: 店铺群发 2: 全体 */ @prop() public type: number + @noJson() @prop({ default: false }) public publish: boolean + @noJson() @prop({ type: () => [String] }) public accounts: string[] + @noJson() @prop({ type: () => [String] }) public shops: string[] @@ -51,6 +54,7 @@ export class SysAnnounceClass extends BaseModule { * 创建人 * @type {string} */ + @noJson() @prop() public createdBy: string