company_approval_message.go 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package company_approval_message
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type CompanyApprovalMessage struct {
  7. Id int `orm:"column(id);pk"`
  8. CreateUserId int `description:"申请者id"`
  9. ReceiveUserId int `description:"审批者id"`
  10. MessageStatus int `description:"消息状态:0未读,1:已读,2:作废"`
  11. SourceType int `description:"消息来源类型,1:客户,2:合同,3:用印"`
  12. Remark string `description:"备注信息"`
  13. Content string `description:"消息内容"`
  14. CompanyId int `description:"客户id"`
  15. CompanyName string `description:"客户名称"`
  16. CreateTime time.Time `description:"创建时间"`
  17. ModifyTime time.Time `description:"修改时间"`
  18. CompanyApprovalId int `description:"审批单id"`
  19. ApprovalStatus int `description:"审批结果:1:待审批,2:已审批,3:已驳回"`
  20. OperationStatus int `description:"消息状态:1:待审批,2:已审批"`
  21. MessageType int `description:"1:申请消息,2:审批结果"`
  22. MessageInfo string `description:"消息主要内容,json数据"`
  23. }
  24. //添加审批消息
  25. func AddCompanyApprovalMessage(item *CompanyApprovalMessage) (err error) {
  26. o := orm.NewOrm()
  27. _, err = o.Insert(item)
  28. return
  29. }
  30. //修改审批消息
  31. func ModifyCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) {
  32. o := orm.NewOrm()
  33. sql := `UPDATE company_approval_message SET operation_status=2,modify_time=NOW()
  34. WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 `
  35. _, err = o.Raw(sql, companyApprovalId, sourceType).Exec()
  36. return
  37. }
  38. //消息列表结果
  39. type CompanyApprovalMessageList struct {
  40. Id int `orm:"column(id);pk"`
  41. CreateUserId int `description:"申请者id"`
  42. MessageStatus int `description:"消息状态:0未读,1:已读,2:作废"`
  43. MessageType int `description:"1:申请消息,2:审批结果,3:文字消息"`
  44. ApprovalStatus int `description:"审批结果:1:待审批,2:已审批,3:已驳回"`
  45. SourceType int `description:"消息来源类型,1:客户,2:合同,3:用印"`
  46. Remark string `description:"备注信息"`
  47. Content string `description:"消息内容"`
  48. CompanyName string `description:"客户名称"`
  49. CreateTime time.Time `description:"创建时间"`
  50. RealName string `description:"销售名称"`
  51. CompanyApprovalId int `description:"审批单id"`
  52. MessageInfo string `description:"消息主要内容,json数据" json:"-"`
  53. ApprovalInfo ApprovalInfo `description:"审批单信息"`
  54. }
  55. //消息审批单信息
  56. type ApprovalInfo struct {
  57. ApplyName string `description:"申请人姓名"`
  58. Type string `description:"类型"`
  59. Title string `description:"主题内容"`
  60. Content string `description:"主体内容"`
  61. CompanyName string `description:"客户信息"`
  62. ApplyTime time.Time `description:"提交时间"`
  63. ApprovalTime time.Time `description:"审批时间"`
  64. }
  65. type CompanyApprovalMessageListResp struct {
  66. List []*CompanyApprovalMessageList
  67. Total int `description:"总数据条数"`
  68. }
  69. //待办消息列表
  70. type CompanyApprovalMessageListV2Resp struct {
  71. Company CompanyApprovalMessageListResp `description:"客户"`
  72. Contract CompanyApprovalMessageListResp `description:"合同"`
  73. }
  74. //获取消息列表总数据
  75. func GetCompanyApprovalMessageCount(sysUserId, sourceType int) (count int, err error) {
  76. sql := `SELECT COUNT(1) AS count FROM company_approval_message AS a
  77. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  78. WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 AND a.source_type=? `
  79. o := orm.NewOrm()
  80. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&count)
  81. return
  82. }
  83. //消息列表页
  84. func GetCompanyApprovalMessageList(sysUserId, sourceType, startSize, pageSize int) (items []*CompanyApprovalMessageList, err error) {
  85. sql := `SELECT a.*,b.real_name FROM company_approval_message AS a
  86. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  87. WHERE receive_user_id=? AND message_status !=2 AND a.source_type=? `
  88. sql += ` ORDER BY create_time DESC LIMIT ?,? `
  89. o := orm.NewOrm()
  90. _, err = o.Raw(sql, sysUserId, sourceType, startSize, pageSize).QueryRows(&items)
  91. return
  92. }
  93. //获取最近一条消息
  94. func GetLastMessage(sysUserId, sourceType int) (item *CompanyApprovalMessageList, err error) {
  95. sql := `SELECT a.*,b.real_name FROM company_approval_message AS a
  96. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  97. WHERE receive_user_id=? AND message_status !=2 AND source_type=?`
  98. sql += ` ORDER BY create_time DESC `
  99. o := orm.NewOrm()
  100. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&item)
  101. return
  102. }
  103. //获取未读消息数
  104. func GetNotReadMessageTotal(sysUserId, sourceType int) (total int64, err error) {
  105. sql := `SELECT count(*) total FROM company_approval_message AS a
  106. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  107. WHERE receive_user_id=? AND a.operation_status=1 AND a.message_status =0 AND source_type=?`
  108. o := orm.NewOrm()
  109. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&total)
  110. return
  111. }
  112. //申请服务更新请求参数
  113. type CompanyApprovalMessageReadReq struct {
  114. Id int `description:"消息id"`
  115. }
  116. // MessageInfo 消息主要内容
  117. type MessageInfo struct {
  118. CompanyName string `json:"company_name"`
  119. ProductId int `json:"product_id"`
  120. CompanyProductStatus string `json:"company_product_status"`
  121. Title string `json:"title"`
  122. Content string `json:"content"`
  123. UserId uint64 `json:"user_id"`
  124. UserName string `json:"user_name"`
  125. }
  126. //变更为消息已读状态
  127. func ModifyCompanyApprovalMessageStatus(companyApprovalMessageId int) (err error) {
  128. o := orm.NewOrm()
  129. sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?`
  130. _, err = o.Raw(sql, companyApprovalMessageId).Exec()
  131. return
  132. }
  133. //变更当前类型下所有未读消息为消息已读状态
  134. func ModifyAllCompanyApprovalMessageStatus(receiveUserId, sourceType int) (err error) {
  135. o := orm.NewOrm()
  136. sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE receive_user_id = ? and source_type=? and message_status=0`
  137. _, err = o.Raw(sql, receiveUserId, sourceType).Exec()
  138. return
  139. }
  140. // CancelCompanyApprovalMessage 消息作废
  141. func CancelCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) {
  142. o := orm.NewOrm()
  143. sql := `UPDATE company_approval_message SET message_status=2,modify_time=NOW()
  144. WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 `
  145. //sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?`
  146. _, err = o.Raw(sql, companyApprovalId, sourceType).Exec()
  147. return
  148. }