123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213 |
- package models
- import (
- "eta_gn/eta_api/global"
- "eta_gn/eta_api/utils"
- "fmt"
- "strings"
- "time"
- "github.com/rdlucklib/rdluck_tools/paging"
- )
- const (
- ReportMessageTypeWriteNotice = 1 // 撰写通知
- ReportMessageTypeApprovePass = 2 // 审批通过
- ReportMessageTypeApproveRefuse = 3 // 审批驳回
- )
- type ReportMessage struct {
- Id int `gorm:"primaryKey;column:id;type:int(10) unsigned;not null"`
- SendUserId int `gorm:"column:send_user_id" description:"发送人ID"`
- ReceiveUserId int `gorm:"column:receive_user_id" description:"接受者ID"`
- Content string `gorm:"column:content" description:"消息内容"`
- Remark string `gorm:"column:remark" description:"备注信息"`
- ExtraContent string `gorm:"column:extra_content" description:"额外信息-JSON"`
- ReportType int `gorm:"column:report_type" description:"报告类型:1-研报;2-PPT"`
- ReportId int `gorm:"column:report_id" description:"报告/PPT-ID"`
- MessageType int `gorm:"column:message_type" description:"消息类型:1-撰写通知;2-审批通过;3-审批驳回"`
- IsRead int `gorm:"column:is_read" description:"是否已读:0-未读;1-已读"`
- CreateTime time.Time `gorm:"column:create_time" description:"消息时间"`
- ModifyTime time.Time `gorm:"column:modify_time" description:"更新时间"`
- }
- var ReportMessageCols = struct {
- Id string
- SendUserId string
- ReceiveUserId string
- Content string
- Remark string
- ExtraContent string
- ReportType string
- ReportId string
- MessageType string
- IsRead string
- CreateTime string
- }{
- Id: "id",
- SendUserId: "send_user_id",
- ReceiveUserId: "receive_user_id",
- Content: "content",
- Remark: "remark",
- ExtraContent: "extra_content",
- ReportType: "report_type",
- ReportId: "report_id",
- MessageType: "message_type",
- IsRead: "is_read",
- CreateTime: "create_time",
- }
- func (m *ReportMessage) TableName() string {
- return "report_message"
- }
- func (m *ReportMessage) PrimaryId() string {
- return ReportMessageCols.Id
- }
- func (m *ReportMessage) Create() (err error) {
- err = global.DmSQL["rddp"].Create(m).Error
- return
- }
- func (m *ReportMessage) CreateMulti(items []*ReportMessage) (err error) {
- if len(items) == 0 {
- return
- }
- err = global.DmSQL["rddp"].CreateInBatches(items, utils.MultiAddNum).Error
- return
- }
- func (m *ReportMessage) Update(cols []string) (err error) {
- err = global.DmSQL["rddp"].Select(cols).Updates(m).Error
- return
- }
- func (m *ReportMessage) Del() (err error) {
- sql := fmt.Sprintf(`DELETE FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
- err = global.DmSQL["rddp"].Exec(sql, m.Id).Error
- return
- }
- func (m *ReportMessage) MultiDel(menuIds []int) (err error) {
- if len(menuIds) == 0 {
- return
- }
- sql := fmt.Sprintf(`DELETE FROM %s WHERE %s IN (%s)`, m.TableName(), m.PrimaryId(), utils.GetOrmInReplace(len(menuIds)))
- err = global.DmSQL["rddp"].Exec(sql, menuIds).Error
- return
- }
- func (m *ReportMessage) GetItemById(id int) (item *ReportMessage, err error) {
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
- err = global.DmSQL["rddp"].Raw(sql, id).First(&item).Error
- return
- }
- func (m *ReportMessage) GetItemByCondition(condition string, pars []interface{}, orderRule string) (item *ReportMessage, err error) {
- order := ``
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s %s LIMIT 1`, m.TableName(), condition, order)
- err = global.DmSQL["rddp"].Raw(sql, pars...).First(&item).Error
- return
- }
- func (m *ReportMessage) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
- sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
- err = global.DmSQL["rddp"].Raw(sql, pars...).Scan(&count).Error
- return
- }
- func (m *ReportMessage) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*ReportMessage, err error) {
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := `ORDER BY create_time DESC`
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
- err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
- return
- }
- func (m *ReportMessage) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*ReportMessage, err error) {
- fields := strings.Join(fieldArr, ",")
- if len(fieldArr) == 0 {
- fields = `*`
- }
- order := `ORDER BY create_time DESC`
- if orderRule != "" {
- order = ` ORDER BY ` + orderRule
- }
- sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
- pars = append(pars, startSize)
- pars = append(pars, pageSize)
- err = global.DmSQL["rddp"].Raw(sql, pars...).Find(&items).Error
- return
- }
- // ReportMessageItem 报告消息
- type ReportMessageItem struct {
- Id int
- SendUserId int `description:"发送人ID"`
- ReceiveUserId int `description:"接收者ID"`
- Content string `description:"消息内容"`
- Remark string `description:"备注信息"`
- ReportType int `description:"报告类型:1-研报;2-PPT"`
- ReportId int `description:"报告/PPT-ID"`
- ReportState int `description:"报告当前状态"`
- MessageType int `description:"消息类型:1-撰写通知;2-审批通过;3-审批驳回"`
- IsRead int `description:"是否已读:0-未读;1-已读"`
- CreateTime string `description:"消息时间"`
- ApproveMsg *ReportMessageApproveItem `description:"审批信息"`
- }
- // ReportMessageApproveItem 报告消息审批内容
- type ReportMessageApproveItem struct {
- Title string `description:"报告标题"`
- ApproveType int `description:"审批类型:1-通过;2-驳回"`
- ApproveUserId int `description:"审批人ID"`
- ApproveUserName string `description:"审批人"`
- ApproveRemark string `description:"审批备注(驳回意见)"`
- }
- // FormatReportMessage2Item 格式化报告消息
- func FormatReportMessage2Item(origin *ReportMessage) (item *ReportMessageItem) {
- item = new(ReportMessageItem)
- if origin == nil {
- return
- }
- item.Id = origin.Id
- item.SendUserId = origin.SendUserId
- item.ReceiveUserId = origin.ReceiveUserId
- item.Content = origin.Content
- item.Remark = origin.Remark
- item.ReportType = origin.ReportType
- item.ReportId = origin.ReportId
- item.MessageType = origin.MessageType
- item.IsRead = origin.IsRead
- item.CreateTime = utils.TimeTransferString(utils.FormatDateTime, origin.CreateTime)
- return
- }
- // ReportMessageListReq 消息列表请求参数
- type ReportMessageListReq struct {
- PageSize int `form:"PageSize"`
- CurrentIndex int `form:"CurrentIndex"`
- }
- // ReportMessageListResp 消息列表响应体
- type ReportMessageListResp struct {
- List []*ReportMessageItem
- Paging *paging.PagingItem `description:"分页数据"`
- UnreadTotal int `description:"消息未读数"`
- }
- // ReportMessageReadReq 消息已读请求体
- type ReportMessageReadReq struct {
- MessageId int `description:"消息ID"`
- }
|