From fe46d911a19c77d56d4f9ddc41fa834fb0339c48 Mon Sep 17 00:00:00 2001 From: chenlin Date: Thu, 10 Jul 2025 14:53:24 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E5=88=A0=E9=99=A4=E6=8E=A5=E5=8F=A3=EF=BC=9B?= =?UTF-8?q?=202=E3=80=81=E4=BF=9D=E8=AF=81=E9=87=91=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0"=E5=AE=A1=E6=A0=B8?= =?UTF-8?q?=E6=97=B6=E9=97=B4"=E7=AD=9B=E9=80=89=EF=BC=9B=203=E3=80=81?= =?UTF-8?q?=E6=B6=88=E6=81=AF=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E9=A1=B5=E7=A0=81=E5=92=8C=E6=AF=8F=E9=A1=B5=E6=95=B0?= =?UTF-8?q?=E9=87=8F=E7=9A=84=E5=AD=97=E6=AE=B5=EF=BC=9B=204=E3=80=81?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=B6=88=E6=81=AF=E5=88=97=E8=A1=A8=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=A2=9E=E5=8A=A0"=E6=8E=A5=E6=94=B6=E6=97=B6?= =?UTF-8?q?=E9=97=B4"=E5=AD=97=E6=AE=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/apis/message/user_message.go | 65 +++++++++++++++++++- app/admin/models/message.go | 65 +++++++++++--------- app/admin/models/user.go | 27 +++++++-- app/admin/router/message.go | 1 + docs/docs.go | 83 ++++++++++++++++++++++---- docs/swagger.json | 83 ++++++++++++++++++++++---- docs/swagger.yaml | 64 ++++++++++++++++---- 7 files changed, 314 insertions(+), 74 deletions(-) diff --git a/app/admin/apis/message/user_message.go b/app/admin/apis/message/user_message.go index a08cf4a..d58449d 100644 --- a/app/admin/apis/message/user_message.go +++ b/app/admin/apis/message/user_message.go @@ -66,6 +66,7 @@ func UserMessageList(c *gin.Context) { for _, msg := range messages { item := models.UserMessageDetailRespItem{ ID: uint(msg.ID), + CreatedAt: msg.CreatedAt, UserID: msg.UserID, MessageConfigID: msg.MessageConfigID, MessageType: msg.MessageType, @@ -141,11 +142,11 @@ func UserMessageSetStatus(c *gin.Context) { if req.ReadAll { // 全部设为已读 } else { - if req.ID == 0 { + if len(req.ID) == 0 { app.Error(c, http.StatusBadRequest, nil, "参数错误: 未提供消息ID") return } - query = query.Where("id = ?", req.ID) + query = query.Where("id IN ?", req.ID) } err := query.Updates(map[string]interface{}{ @@ -159,3 +160,63 @@ func UserMessageSetStatus(c *gin.Context) { app.OK(c, nil, "设置成功") } + +// UserMessageDelete 用户消息-删除(支持单条、批量或全部) +// @Summary 用户消息-删除(支持单条、批量或全部) +// @Description 删除指定消息、批量消息或全部消息(逻辑删除,限当前用户) +// @Tags 消息中心,V1.5.0 +// @Accept json +// @Produce json +// @Param data body models.UserMessageDeleteReq true "删除参数" +// @Success 200 {object} app.Response +// @Router /api/v1/user_message/delete [post] +func UserMessageDelete(c *gin.Context) { + var req models.UserMessageDeleteReq + if err := c.ShouldBindJSON(&req); err != nil { + app.Error(c, http.StatusBadRequest, nil, "参数错误: "+err.Error()) + return + } + + userID := tools.GetUserId(c) + query := orm.Eloquent.Model(&models.SystemUserMessage{}). + Where("user_id = ?", userID). + Where("is_visible = ?", true) + + if req.DeleteAll { + // 删除当前用户的所有可见消息 + } else { + if len(req.IDs) == 0 { + app.Error(c, http.StatusBadRequest, nil, "参数错误: 未提供消息ID列表") + return + } + + // 校验消息是否都属于当前用户 + var count int64 + err := orm.Eloquent. + Model(&models.SystemUserMessage{}). + Where("id IN ?", req.IDs). + Where("user_id = ?", userID). + Count(&count).Error + if err != nil { + app.Error(c, http.StatusInternalServerError, nil, "校验失败: "+err.Error()) + return + } + + if count != int64(len(req.IDs)) { + app.Error(c, http.StatusForbidden, nil, "删除失败:包含不属于当前用户的消息") + return + } + + query = query.Where("id IN ?", req.IDs) + } + + err := query.Updates(map[string]interface{}{ + "is_visible": false, + }).Error + if err != nil { + app.Error(c, http.StatusInternalServerError, nil, "删除失败: "+err.Error()) + return + } + + app.OK(c, nil, "删除成功") +} diff --git a/app/admin/models/message.go b/app/admin/models/message.go index 3548d14..afc7f7c 100644 --- a/app/admin/models/message.go +++ b/app/admin/models/message.go @@ -128,16 +128,16 @@ type SysMessageListReq struct { DisplayMode uint8 `form:"display_mode"` // 展示方式:1=弹窗,2=滚动,3=弹窗+滚动 Status uint8 `form:"status"` // 状态:0=草稿,1=启用,2=禁用,3=已过期 TargetType uint8 `form:"target_type"` // 从接收对象配置表中筛选 - Page int `form:"page,default=1"` // 页码 + Page int `form:"page_index,default=1"` // 页码 PageSize int `form:"page_size,default=10"` // 每页条数 } // SysMessageListResp 公告消息列表-出参 type SysMessageListResp struct { List []SysAnnouncementItem `json:"list"` - Total int64 `json:"total"` // 总条数 - Page int `json:"page"` // 页码 - PageSize int `json:"page_size"` // 每页条数 + Total int64 `json:"total"` // 总条数 + Page int `json:"page_index"` // 页码 + PageSize int `json:"page_size"` // 每页条数 } // SysAnnouncementItem 公告消息展示结构体 @@ -190,21 +190,22 @@ type SysMessageDetailResp struct { // UserMessageListReq 用户消息列表-入参 type UserMessageListReq struct { - IsRead int `json:"is_read"` // 0-全部;1-已读;2-未读 - Page int `json:"page"` // 页码 - PageSize int `json:"page_size"` // 每页数量 + IsRead int `json:"is_read"` // 0-全部;1-已读;2-未读 + Page int `json:"page_index"` // 页码 + PageSize int `json:"page_size"` // 每页数量 } // UserMessageListResp 用户消息列表-出参 type UserMessageListResp struct { List []UserMessageDetailRespItem `json:"list"` Total int64 `json:"total"` - Page int `json:"page"` + Page int `json:"page_index"` PageSize int `json:"page_size"` } type UserMessageDetailRespItem struct { ID uint `json:"id"` + CreatedAt time.Time `json:"created_at"` // 接收时间 UserID int64 `json:"user_id"` // 接收用户ID MessageConfigID uint `json:"message_config_id"` // 对应消息配置ID,可为空(被删时保留记录) MessageType uint8 `json:"message_type"` // 消息类型:1=公告,2=业务 @@ -221,8 +222,8 @@ type UserMessageDetailRespItem struct { // UserMessageSetStatusReq 用户阅读消息-入参 type UserMessageSetStatusReq struct { - ID uint `json:"id"` // 消息ID(可选,read_all 为 false 时必传) - ReadAll bool `json:"read_all"` // 是否设为全部已读 + ID []uint `json:"id"` // 消息ID(可选,read_all 为 false 时必传) + ReadAll bool `json:"read_all"` // 是否设为全部已读 } // BusMessageCreateReq 新增业务消息-入参 @@ -242,19 +243,19 @@ type BusMessageCreateResp struct { // BusMessageListReq 业务消息列表 - 入参 type BusMessageListReq struct { - BizType string `json:"biz_type"` // 业务类型 - Event string `json:"event"` // 事件类型 - Status uint8 `json:"status"` // 状态:1启用,2禁用 - RoleID []int64 `json:"role_id"` // 角色ID - Page int `json:"page"` // 页码 - PageSize int `json:"page_size"` // 每页条数 + BizType string `json:"biz_type"` // 业务类型 + Event string `json:"event"` // 事件类型 + Status uint8 `json:"status"` // 状态:1启用,2禁用 + RoleID []int64 `json:"role_id"` // 角色ID + Page int `json:"page_index"` // 页码 + PageSize int `json:"page_size"` // 每页条数 } // BusMessageListResp 业务消息列表 - 出参 type BusMessageListResp struct { List []BusMessageItem `json:"list"` Total int64 `json:"total"` - Page int `json:"page"` + Page int `json:"page_index"` PageSize int `json:"page_size"` } @@ -302,16 +303,16 @@ type BusMessageDetailReq struct { // BizTypeListReq 查询业务类型列表 - 入参 type BizTypeListReq struct { - Page int `json:"page"` + Page int `json:"page_index"` PageSize int `json:"page_size"` } // BizTypeListResp 查询业务类型列表 - 出参 type BizTypeListResp struct { - List []BizTypeItem `json:"list"` // 业务类型列表 - Total int64 `json:"total"` // 总数 - Page int `json:"page"` // 当前页 - PageSize int `json:"page_size"` // 页大小 + List []BizTypeItem `json:"list"` // 业务类型列表 + Total int64 `json:"total"` // 总数 + Page int `json:"page_index"` // 当前页 + PageSize int `json:"page_size"` // 页大小 } // BizTypeItem 单条业务类型展示项 @@ -323,7 +324,7 @@ type BizTypeItem struct { // EventListReq 查询事件类型列表 - 入参 type EventListReq struct { BizType string `json:"biz_type" binding:"required"` - Page int `json:"page"` + Page int `json:"page_index"` PageSize int `json:"page_size"` } @@ -331,7 +332,7 @@ type EventListReq struct { type EventListResp struct { List []EventItem `json:"list"` Total int64 `json:"total"` - Page int `json:"page"` + Page int `json:"page_index"` PageSize int `json:"page_size"` } @@ -345,16 +346,16 @@ type EventItem struct { type TemplateVarReq struct { BizType string `json:"biz_type" binding:"required"` // 业务类型 Event string `json:"event" binding:"required"` // 事件类型 - Page int `json:"page"` // 当前页 + Page int `json:"page_index"` // 当前页 PageSize int `json:"page_size"` // 每页大小 } // TemplateVarListResp 查询模板变量字段列表 - 出参 type TemplateVarListResp struct { - List []TemplateVariable `json:"list"` // 模板变量列表 - Total int64 `json:"total"` // 总数 - Page int `json:"page"` // 当前页 - PageSize int `json:"page_size"` // 每页条数 + List []TemplateVariable `json:"list"` // 模板变量列表 + Total int64 `json:"total"` // 总数 + Page int `json:"page_index"` // 当前页 + PageSize int `json:"page_size"` // 每页条数 } // TemplateVariable 模板变量项 @@ -363,6 +364,12 @@ type TemplateVariable struct { Desc string `json:"desc"` // 模板变量描述 } +// UserMessageDeleteReq 用户消息-删除 请求参数 +type UserMessageDeleteReq struct { + IDs []uint `json:"ids"` // 消息ID列表(DeleteAll=false时必填) + DeleteAll bool `json:"delete_all"` // 是否删除全部 +} + // ValidateBizEventAndTemplate 校验业务类型、事件类型以及模板变量是否合法 func ValidateBizEventAndTemplate(bizType, event, contentTemplate string) error { var registry SystemEventRegistry diff --git a/app/admin/models/user.go b/app/admin/models/user.go index b6c0741..b7d958f 100644 --- a/app/admin/models/user.go +++ b/app/admin/models/user.go @@ -2773,10 +2773,12 @@ func GetSysUserInfoById(id uint32) (SysUser, error) { type UserDepositRefundRecordListReq struct { //StoreId uint32 `json:"store_id"` // 门店id - Uid uint32 `json:"uid"` // 用户id - PageNum int `json:"pageIndex"` - PageSize int `json:"pageSize"` - Status uint32 `json:"status"` + Uid uint32 `json:"uid"` // 用户id + PageNum int `json:"pageIndex"` + PageSize int `json:"pageSize"` + Status uint32 `json:"status"` + AuditTimeStart string `json:"audit_time_start"` // 审核开始时间 + AuditTimeEnd string `json:"audit_time_end"` // 审核结束时间 } type UserDepositRefundRecordListResp struct { List []DepositRefundRecord `json:"list"` @@ -2793,6 +2795,23 @@ func (m *UserDepositRefundRecordListReq) DepositRefundRecordList() (*UserDeposit if m.Uid != 0 { qs = qs.Where("uid=?", m.Uid) } + if m.AuditTimeStart != "" { + parse, err := time.Parse(QueryTimeFormat, m.AuditTimeStart) + if err != nil { + logger.Errorf("DepositRefundRecordList err:", err) + return nil, err + } + qs = qs.Where("confirm_time >= ?", parse) + } + if m.AuditTimeEnd != "" { + parse, err := time.Parse(QueryTimeFormat, m.AuditTimeEnd) + if err != nil { + logger.Errorf("DepositRefundRecordList err:", err) + return nil, err + } + //parse = parse.AddDate(0, 0, 1) + qs = qs.Where("confirm_time <= ?", parse) + } resp := &UserDepositRefundRecordListResp{ PageIndex: m.PageNum, PageSize: m.PageSize, diff --git a/app/admin/router/message.go b/app/admin/router/message.go index 2c36052..bc6b73e 100644 --- a/app/admin/router/message.go +++ b/app/admin/router/message.go @@ -39,5 +39,6 @@ func registerMessageCenterRouter(v1 *gin.RouterGroup, authMiddleware *jwt.GinJWT { r3.POST("list", message.UserMessageList) // 列表 r3.POST("set_status", message.UserMessageSetStatus) // 阅读 + r3.POST("delete", message.UserMessageDelete) // 删除消息 } } diff --git a/docs/docs.go b/docs/docs.go index 4733a75..c98ad28 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -8192,6 +8192,40 @@ const docTemplate = `{ } } }, + "/api/v1/user_message/delete": { + "post": { + "description": "删除指定消息、批量消息或全部消息(逻辑删除,限当前用户)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "消息中心,V1.5.0" + ], + "summary": "用户消息-删除(支持单条、批量或全部)", + "parameters": [ + { + "description": "删除参数", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/models.UserMessageDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + } + } + }, "/api/v1/user_message/list": { "post": { "description": "获取当前用户的消息记录", @@ -8850,7 +8884,7 @@ const docTemplate = `{ "models.BizTypeListReq": { "type": "object", "properties": { - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -8868,7 +8902,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.BizTypeItem" } }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -9058,7 +9092,7 @@ const docTemplate = `{ "description": "事件类型", "type": "string" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -9088,7 +9122,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.BusMessageItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -15872,7 +15906,7 @@ const docTemplate = `{ "biz_type": { "type": "string" }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -15889,7 +15923,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.EventItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -22478,7 +22512,7 @@ const docTemplate = `{ "description": "消息等级:1=普通,2=重要,3=紧急", "type": "integer" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -22509,7 +22543,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.SysAnnouncementItem" } }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -23061,7 +23095,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.TemplateVariable" } }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -23090,7 +23124,7 @@ const docTemplate = `{ "description": "事件类型", "type": "string" }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -23535,6 +23569,22 @@ const docTemplate = `{ } } }, + "models.UserMessageDeleteReq": { + "type": "object", + "properties": { + "delete_all": { + "description": "是否删除全部", + "type": "boolean" + }, + "ids": { + "description": "消息ID列表(DeleteAll=false时必填)", + "type": "array", + "items": { + "type": "integer" + } + } + } + }, "models.UserMessageDetailRespItem": { "type": "object", "properties": { @@ -23542,6 +23592,10 @@ const docTemplate = `{ "description": "渲染后内容", "type": "string" }, + "created_at": { + "description": "接收时间", + "type": "string" + }, "display_mode": { "description": "公告消息字段,展示方式:1=弹窗,2=滚动,3=弹窗+滚动", "type": "integer" @@ -23598,7 +23652,7 @@ const docTemplate = `{ "description": "0-全部;1-已读;2-未读", "type": "integer" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -23617,7 +23671,7 @@ const docTemplate = `{ "$ref": "#/definitions/models.UserMessageDetailRespItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -23633,7 +23687,10 @@ const docTemplate = `{ "properties": { "id": { "description": "消息ID(可选,read_all 为 false 时必传)", - "type": "integer" + "type": "array", + "items": { + "type": "integer" + } }, "read_all": { "description": "是否设为全部已读", diff --git a/docs/swagger.json b/docs/swagger.json index a7c7f45..bb7b43d 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -8181,6 +8181,40 @@ } } }, + "/api/v1/user_message/delete": { + "post": { + "description": "删除指定消息、批量消息或全部消息(逻辑删除,限当前用户)", + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "tags": [ + "消息中心,V1.5.0" + ], + "summary": "用户消息-删除(支持单条、批量或全部)", + "parameters": [ + { + "description": "删除参数", + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/models.UserMessageDeleteReq" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/app.Response" + } + } + } + } + }, "/api/v1/user_message/list": { "post": { "description": "获取当前用户的消息记录", @@ -8839,7 +8873,7 @@ "models.BizTypeListReq": { "type": "object", "properties": { - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -8857,7 +8891,7 @@ "$ref": "#/definitions/models.BizTypeItem" } }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -9047,7 +9081,7 @@ "description": "事件类型", "type": "string" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -9077,7 +9111,7 @@ "$ref": "#/definitions/models.BusMessageItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -15861,7 +15895,7 @@ "biz_type": { "type": "string" }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -15878,7 +15912,7 @@ "$ref": "#/definitions/models.EventItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -22467,7 +22501,7 @@ "description": "消息等级:1=普通,2=重要,3=紧急", "type": "integer" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -22498,7 +22532,7 @@ "$ref": "#/definitions/models.SysAnnouncementItem" } }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -23050,7 +23084,7 @@ "$ref": "#/definitions/models.TemplateVariable" } }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -23079,7 +23113,7 @@ "description": "事件类型", "type": "string" }, - "page": { + "page_index": { "description": "当前页", "type": "integer" }, @@ -23524,6 +23558,22 @@ } } }, + "models.UserMessageDeleteReq": { + "type": "object", + "properties": { + "delete_all": { + "description": "是否删除全部", + "type": "boolean" + }, + "ids": { + "description": "消息ID列表(DeleteAll=false时必填)", + "type": "array", + "items": { + "type": "integer" + } + } + } + }, "models.UserMessageDetailRespItem": { "type": "object", "properties": { @@ -23531,6 +23581,10 @@ "description": "渲染后内容", "type": "string" }, + "created_at": { + "description": "接收时间", + "type": "string" + }, "display_mode": { "description": "公告消息字段,展示方式:1=弹窗,2=滚动,3=弹窗+滚动", "type": "integer" @@ -23587,7 +23641,7 @@ "description": "0-全部;1-已读;2-未读", "type": "integer" }, - "page": { + "page_index": { "description": "页码", "type": "integer" }, @@ -23606,7 +23660,7 @@ "$ref": "#/definitions/models.UserMessageDetailRespItem" } }, - "page": { + "page_index": { "type": "integer" }, "page_size": { @@ -23622,7 +23676,10 @@ "properties": { "id": { "description": "消息ID(可选,read_all 为 false 时必传)", - "type": "integer" + "type": "array", + "items": { + "type": "integer" + } }, "read_all": { "description": "是否设为全部已读", diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 7621952..7d50bac 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -378,7 +378,7 @@ definitions: type: object models.BizTypeListReq: properties: - page: + page_index: type: integer page_size: type: integer @@ -390,7 +390,7 @@ definitions: items: $ref: '#/definitions/models.BizTypeItem' type: array - page: + page_index: description: 当前页 type: integer page_size: @@ -527,7 +527,7 @@ definitions: event: description: 事件类型 type: string - page: + page_index: description: 页码 type: integer page_size: @@ -548,7 +548,7 @@ definitions: items: $ref: '#/definitions/models.BusMessageItem' type: array - page: + page_index: type: integer page_size: type: integer @@ -5483,7 +5483,7 @@ definitions: properties: biz_type: type: string - page: + page_index: type: integer page_size: type: integer @@ -5496,7 +5496,7 @@ definitions: items: $ref: '#/definitions/models.EventItem' type: array - page: + page_index: type: integer page_size: type: integer @@ -10243,7 +10243,7 @@ definitions: level: description: 消息等级:1=普通,2=重要,3=紧急 type: integer - page: + page_index: description: 页码 type: integer page_size: @@ -10265,7 +10265,7 @@ definitions: items: $ref: '#/definitions/models.SysAnnouncementItem' type: array - page: + page_index: description: 页码 type: integer page_size: @@ -10665,7 +10665,7 @@ definitions: items: $ref: '#/definitions/models.TemplateVariable' type: array - page: + page_index: description: 当前页 type: integer page_size: @@ -10683,7 +10683,7 @@ definitions: event: description: 事件类型 type: string - page: + page_index: description: 当前页 type: integer page_size: @@ -11011,11 +11011,25 @@ definitions: description: 总条数 type: integer type: object + models.UserMessageDeleteReq: + properties: + delete_all: + description: 是否删除全部 + type: boolean + ids: + description: 消息ID列表(DeleteAll=false时必填) + items: + type: integer + type: array + type: object models.UserMessageDetailRespItem: properties: content: description: 渲染后内容 type: string + created_at: + description: 接收时间 + type: string display_mode: description: 公告消息字段,展示方式:1=弹窗,2=滚动,3=弹窗+滚动 type: integer @@ -11057,7 +11071,7 @@ definitions: is_read: description: 0-全部;1-已读;2-未读 type: integer - page: + page_index: description: 页码 type: integer page_size: @@ -11070,7 +11084,7 @@ definitions: items: $ref: '#/definitions/models.UserMessageDetailRespItem' type: array - page: + page_index: type: integer page_size: type: integer @@ -11081,7 +11095,9 @@ definitions: properties: id: description: 消息ID(可选,read_all 为 false 时必传) - type: integer + items: + type: integer + type: array read_all: description: 是否设为全部已读 type: boolean @@ -16582,6 +16598,28 @@ paths: summary: 查询会员手机号 tags: - 用户信息 + /api/v1/user_message/delete: + post: + consumes: + - application/json + description: 删除指定消息、批量消息或全部消息(逻辑删除,限当前用户) + parameters: + - description: 删除参数 + in: body + name: data + required: true + schema: + $ref: '#/definitions/models.UserMessageDeleteReq' + produces: + - application/json + responses: + "200": + description: OK + schema: + $ref: '#/definitions/app.Response' + summary: 用户消息-删除(支持单条、批量或全部) + tags: + - 消息中心,V1.5.0 /api/v1/user_message/list: post: consumes: