100 lines
4.6 KiB
Go
100 lines
4.6 KiB
Go
// ==========================================================================
|
||
// GFast自动生成model操作代码。
|
||
// 生成日期:2024-04-11 16:56:36
|
||
// 生成路径: internal/app/system/model/notifications.go
|
||
// 生成人:gfast
|
||
// desc:通知信息
|
||
// company:云南奇讯科技有限公司
|
||
// ==========================================================================
|
||
|
||
package model
|
||
|
||
import (
|
||
"strings"
|
||
|
||
"github.com/gogf/gf/v2/os/gtime"
|
||
"github.com/gogf/gf/v2/util/gmeta"
|
||
"github.com/samber/lo"
|
||
)
|
||
|
||
// NotificationsInfoRes is the golang structure for table notifications.
|
||
type NotificationsInfoRes struct {
|
||
gmeta.Meta `orm:"table:notifications"`
|
||
Id uint `orm:"id,primary" json:"id"` //
|
||
CreatedAt *gtime.Time `orm:"created_at" json:"createdAt"` //
|
||
NotificationText string `orm:"notification_text" json:"notificationText"` // 通知正文
|
||
Route string `orm:"route" json:"route"` // 跳转的路由
|
||
NotificationTime string `orm:"notification_time" json:"notificationTime"` // 通知时间
|
||
Initiator int `orm:"initiator" json:"initiator"` // 发起人
|
||
ProjectId int `orm:"project_id" json:"projectId"` // 项目ID
|
||
Title string `orm:"title" json:"title"` // 标题
|
||
// 消息发起者名
|
||
InitiatorName string `json:"initiatorName" orm:"initiator_nickname"`
|
||
// recipients_nickname 收件人昵称
|
||
RecipientsNam string `json:"recipientsName" orm:"recipients_nickname"`
|
||
// positions
|
||
Position string `json:"positions" orm:"positions"`
|
||
}
|
||
|
||
func (m *NotificationsInfoRes) Positions() []string {
|
||
return lo.Compact(strings.Split(m.Position, ","))
|
||
}
|
||
|
||
func (m *NotificationsInfoRes) RecipientsName() []string {
|
||
return lo.Compact(strings.Split(m.RecipientsNam, ","))
|
||
}
|
||
|
||
type NotificationsListRes struct {
|
||
Id uint `json:"id"`
|
||
CreatedAt *gtime.Time `json:"createdAt"`
|
||
NotificationText string `json:"notificationText"`
|
||
Route string `json:"route"`
|
||
NotificationTime string `json:"notificationTime"`
|
||
Initiator int `json:"initiator"`
|
||
ProjectId int `json:"projectId"`
|
||
Title string `json:"title"`
|
||
// 消息发起者名
|
||
InitiatorName string `json:"initiatorName" orm:"initiator_nickname"`
|
||
RecipientsName []string `json:"recipientsName" orm:"recipients_nickname"`
|
||
Positions []string `json:"positions" orm:"positions"`
|
||
}
|
||
|
||
// 用户详情
|
||
type NotificationsGetRes struct {
|
||
Id uint `json:"id" orm:"recipient_id" dc:"用户ID"` // 用户ID
|
||
Avatar string `json:"avatar" orm:"avatar" dc:"头像"` // 头像
|
||
Username string `json:"username" orm:"user_nickname" dc:"用户名"` // 用户名
|
||
OrmMobile string `orm:"mobile"`
|
||
FacePhoto string `json:"facePhoto" orm:"pace_photo" dc:"实名人脸照"`
|
||
ReadTime string `json:"readTime" orm:"read_time" dc:"已读时间"` // 已读时间
|
||
NotificationStatus int `json:"notificationStatus" orm:"notification_status" dc:"0 未读 | 1 已读"` // 0 未读 | 1 已读
|
||
}
|
||
|
||
func (n *NotificationsGetRes) Avatars() string {
|
||
// if n.FacePhoto != "" {
|
||
// return n.FacePhoto
|
||
// }
|
||
// return n.Avatar
|
||
return n.FacePhoto
|
||
}
|
||
|
||
// model 通知信息
|
||
type Notifications struct {
|
||
Id string `p:"id" orm:"id"` // 消息ID
|
||
Route string `p:"route" orm:"route"` // 跳转的路由
|
||
NotificationTitle string `p:"title" orm:"title"` // 标题
|
||
NotificationText string `p:"notificationText" orm:"notification_text"` // 通知正文
|
||
NotificationTime string `p:"notificationTime" orm:"notification_time"` // 通知时间
|
||
NotificationStatus string `p:"notification_status" orm:"notification_status"` // 通知状态
|
||
Initiator string `p:"initiator" orm:"user_nickname" dc:"发起人"` // 发起人
|
||
Files []FileInfo `p:"files" orm:"files"` // 附件
|
||
Users []NotificationsGetRes `p:"users" orm:"users"` // 通知人员
|
||
}
|
||
|
||
type FileInfo struct {
|
||
Name string `orm:"file_name" json:"name" dc:"文件名"`
|
||
Url string `orm:"file_path" json:"url" dc:"文件路径"`
|
||
FileType string `orm:"file_type" json:"fileType" dc:"文件类型"`
|
||
Size uint64 `orm:"file_size" json:"size" dc:"文件大小"`
|
||
}
|