edb_inspection_message.go 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. package edb_inspection
  2. import (
  3. "eta/eta_api/global"
  4. "eta/eta_api/utils"
  5. "time"
  6. "github.com/rdlucklib/rdluck_tools/paging"
  7. )
  8. // EdbInspectionMessage
  9. // @Description: 巡检消息表
  10. type EdbInspectionMessage struct {
  11. MessageId int64 `gorm:"column:message_id;primaryKey;autoIncrement"`
  12. InspectionRecordId int64 `gorm:"column:inspection_record_id"`
  13. AdminId int64 `gorm:"column:admin_id"`
  14. Message string `gorm:"column:message"`
  15. IsRead int8 `gorm:"column:is_read"`
  16. Source int8 `gorm:"column:source"`
  17. TerminalCode string `gorm:"column:terminal_code"`
  18. InspectionTime time.Time `gorm:"column:inspection_time"`
  19. CreateTime time.Time `gorm:"column:create_time"`
  20. ModifyTime time.Time `gorm:"column:modify_time"`
  21. }
  22. // Add
  23. // @Description: 添加巡检消息
  24. // @receiver m
  25. // @return err error
  26. func (m *EdbInspectionMessage) Add() (err error) {
  27. m.CreateTime = time.Now()
  28. m.ModifyTime = time.Now()
  29. err = global.DbMap[utils.DbNameIndex].Create(m).Error
  30. return
  31. }
  32. // Update
  33. // @Description: 更新巡检消息
  34. // @receiver m
  35. // @param cols []string
  36. // @return err error
  37. func (m *EdbInspectionMessage) Update(cols []string) (err error) {
  38. m.ModifyTime = time.Now()
  39. err = global.DbMap[utils.DbNameIndex].Select(cols).Updates(m).Error
  40. return
  41. }
  42. // GetById
  43. // @Description: 根据ID获取巡检消息
  44. // @param messageId int64
  45. // @return item *EdbInspectionMessage
  46. // @return err error
  47. func GetMessageById(messageId int64) (item *EdbInspectionMessage, err error) {
  48. sql := `SELECT * FROM edb_inspection_message WHERE message_id = ?`
  49. err = global.DbMap[utils.DbNameIndex].Raw(sql, messageId).First(&item).Error
  50. return
  51. }
  52. // GetListByInspectionRecordId
  53. // @Description: 根据巡检记录ID获取巡检消息列表
  54. // @param inspectionRecordId int64
  55. // @return list []*EdbInspectionMessage
  56. // @return err error
  57. func GetMessageListByInspectionRecordId(inspectionRecordId int64) (list []*EdbInspectionMessage, err error) {
  58. sql := `SELECT * FROM edb_inspection_message WHERE inspection_record_id = ? ORDER BY create_time DESC`
  59. err = global.DbMap[utils.DbNameIndex].Raw(sql, inspectionRecordId).Find(&list).Error
  60. return
  61. }
  62. // GetListBySendStatus
  63. // @Description: 根据发送状态获取巡检消息列表
  64. // @param sendStatus int8
  65. // @return list []*EdbInspectionMessage
  66. // @return err error
  67. func GetMessageListBySendStatus(sendStatus int8) (list []*EdbInspectionMessage, err error) {
  68. sql := `SELECT * FROM edb_inspection_message WHERE send_status = ? ORDER BY create_time DESC`
  69. err = global.DbMap[utils.DbNameIndex].Raw(sql, sendStatus).Find(&list).Error
  70. return
  71. }
  72. // UpdateSendStatus
  73. // @Description: 更新消息发送状态
  74. // @receiver m
  75. // @param sendStatus int8
  76. // @return err error
  77. func (m *EdbInspectionMessage) UpdateSendStatus(sendStatus int8) (err error) {
  78. sql := `UPDATE edb_inspection_message SET send_status = ?, modify_time = ? WHERE message_id = ?`
  79. err = global.DbMap[utils.DbNameIndex].Exec(sql, sendStatus, time.Now(), m.MessageId).Error
  80. return
  81. }
  82. // GetCountByCondition
  83. // @Description: 根据条件获取巡检消息数量
  84. // @param cond string
  85. // @param pars []interface{}
  86. // @return int64
  87. // @return err error
  88. func (m *EdbInspectionMessage) GetCountByCondition(cond string, pars []interface{}) (count int64, err error) {
  89. sql := `SELECT COUNT(*) FROM edb_inspection_message WHERE 1=1` + cond
  90. err = global.DbMap[utils.DbNameIndex].Raw(sql, pars...).Scan(&count).Error
  91. return
  92. }
  93. type EdbInspectionMessageResp struct {
  94. MessageId int64
  95. AdminId int64
  96. InspectionRecordId int64
  97. Content string
  98. Remark string
  99. IsRead int8
  100. Source int8
  101. TerminalCode string
  102. InspectionTime string
  103. }
  104. type EdbInspectionMessageListResp struct {
  105. List []*EdbInspectionMessageResp
  106. Paging *paging.PagingItem
  107. UnreadTotal int
  108. }
  109. type EdbInspectionMessageReadReq struct {
  110. MessageId int64
  111. }
  112. func BatchModifyEdbInspectionMessageIsRead(ids []int64, adminId int) (err error) {
  113. if len(ids) == 0 {
  114. return
  115. }
  116. o := global.DbMap[utils.DbNameIndex]
  117. sql := `UPDATE edb_inspection_message SET is_read =1, modify_time = ? WHERE admin_id =? AND is_read = 0 AND message_id IN (` + utils.GetOrmInReplace(len(ids)) + `)`
  118. err = o.Exec(sql, time.Now(), adminId, ids).Error
  119. return
  120. }
  121. func GetEdbInspectionMessageById(id int) (item *EdbInspectionMessage, err error) {
  122. o := global.DbMap[utils.DbNameIndex]
  123. sql := "SELECT * FROM edb_inspection_message WHERE message_id =?"
  124. err = o.Raw(sql, id).First(&item).Error
  125. return
  126. }
  127. func GetEdbInspectionMessageByAdminId(adminId int) (items []*EdbInspectionMessage, err error) {
  128. o := global.DbMap[utils.DbNameIndex]
  129. sql := "SELECT * FROM edb_inspection_message WHERE admin_id =? AND is_read = 0 ORDER BY create_time DESC"
  130. err = o.Raw(sql, adminId).Find(&items).Error
  131. return
  132. }
  133. func GetEdbInspectionMessageUnreadCountByAdminId(adminId int) (count int, err error) {
  134. o := global.DbMap[utils.DbNameIndex]
  135. sql := "SELECT COUNT(*) FROM edb_inspection_message WHERE admin_id =? AND is_read = 0 ORDER BY is_read ASC, create_time DESC"
  136. err = o.Raw(sql, adminId).Scan(&count).Error
  137. return
  138. }
  139. func GetEdbInspectionMessageCountByAdminId(adminId int) (count int, err error) {
  140. o := global.DbMap[utils.DbNameIndex]
  141. sql := "SELECT COUNT(*) FROM edb_inspection_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC"
  142. err = o.Raw(sql, adminId).Scan(&count).Error
  143. return
  144. }
  145. func GetEdbInspectionMessagePageByAdminId(adminId, startSize, pageSize int) (items []*EdbInspectionMessage, err error) {
  146. o := global.DbMap[utils.DbNameIndex]
  147. sql := "SELECT * FROM edb_inspection_message WHERE admin_id =? ORDER BY is_read ASC, create_time DESC LIMIT ?,?"
  148. err = o.Raw(sql, adminId, startSize, pageSize).Find(&items).Error
  149. return
  150. }
  151. func GetUnreadInspectionMessageList(adminIds []int) (items []*EdbInspectionMessage, err error) {
  152. o := global.DbMap[utils.DbNameIndex]
  153. sql := "SELECT * FROM edb_inspection_message WHERE admin_id IN (?) AND is_read = 0 ORDER BY create_time DESC, message_id DESC"
  154. err = o.Raw(sql, adminIds).Find(&items).Error
  155. return
  156. }
  157. func GetUnreadInspectionMessageListByAdminId(adminId int) (items []*EdbInspectionMessage, err error) {
  158. o := global.DbMap[utils.DbNameIndex]
  159. sql := "SELECT * FROM edb_inspection_message WHERE admin_id =? AND is_read = 0 ORDER BY create_time DESC, message_id DESC"
  160. err = o.Raw(sql, adminId).Find(&items).Error
  161. return
  162. }
  163. func SetEdbInspectionMessageRead(messageId []int64) (err error) {
  164. o := global.DbMap[utils.DbNameIndex]
  165. sql := "UPDATE edb_inspection_message SET is_read = 1, modify_time = ? WHERE message_id IN (?) AND is_read = 0"
  166. err = o.Exec(sql, time.Now(), messageId).Error
  167. return
  168. }