company_approval_message.go 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. package company_approval_message
  2. import (
  3. "rdluck_tools/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:合同"`
  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. }
  23. //添加审批消息
  24. func AddCompanyApprovalMessage(item *CompanyApprovalMessage) (err error) {
  25. o := orm.NewOrm()
  26. _, err = o.Insert(item)
  27. return
  28. }
  29. //修改审批消息
  30. func ModifyCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) {
  31. o := orm.NewOrm()
  32. sql := `UPDATE company_approval_message SET operation_status=2,modify_time=NOW()
  33. WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 `
  34. _, err = o.Raw(sql, companyApprovalId, sourceType).Exec()
  35. return
  36. }
  37. //消息列表结果
  38. type CompanyApprovalMessageList struct {
  39. Id int `orm:"column(id);pk"`
  40. CreateUserId int `description:"申请者id"`
  41. MessageStatus int `description:"消息状态:0未读,1:已读,2:作废"`
  42. MessageType int `description:"1:申请消息,2:审批结果"`
  43. ApprovalStatus int `description:"审批结果:1:待审批,2:已审批,3:已驳回"`
  44. SourceType int `description:"消息来源类型,1:客户,2:合同,3:用印"`
  45. Remark string `description:"备注信息"`
  46. Content string `description:"消息内容"`
  47. CompanyName string `description:"客户名称"`
  48. CreateTime string `description:"创建时间"`
  49. RealName string `description:"销售名称"`
  50. CompanyApprovalId int `description:"审批单id"`
  51. }
  52. type CompanyApprovalMessageListResp struct {
  53. List []*CompanyApprovalMessageList
  54. Total int `description:"总数据条数"`
  55. }
  56. //待办消息列表
  57. type CompanyApprovalMessageListV2Resp struct {
  58. Company CompanyApprovalMessageListResp `description:"客户"`
  59. Contract CompanyApprovalMessageListResp `description:"合同"`
  60. }
  61. //获取消息列表总数据
  62. func GetCompanyApprovalMessageCount(sysUserId, sourceType int) (count int, err error) {
  63. sql := `SELECT COUNT(1) AS count FROM company_approval_message AS a
  64. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  65. WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 AND a.source_type=? `
  66. o := orm.NewOrm()
  67. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&count)
  68. return
  69. }
  70. //消息列表页
  71. func GetCompanyApprovalMessageList(sysUserId, sourceType, startSize, pageSize int) (items []*CompanyApprovalMessageList, err error) {
  72. sql := `SELECT a.*,b.real_name FROM company_approval_message AS a
  73. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  74. WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 AND a.source_type=? `
  75. sql += ` ORDER BY create_time DESC LIMIT ?,? `
  76. o := orm.NewOrm()
  77. _, err = o.Raw(sql, sysUserId, sourceType, startSize, pageSize).QueryRows(&items)
  78. return
  79. }
  80. //获取最近一条消息
  81. func GetLastMessage(sysUserId, sourceType int) (item *CompanyApprovalMessageList, err error) {
  82. sql := `SELECT a.*,b.real_name FROM company_approval_message AS a
  83. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  84. WHERE receive_user_id=? AND a.operation_status=1 AND message_status !=2 AND source_type=?`
  85. sql += ` ORDER BY create_time DESC `
  86. o := orm.NewOrm()
  87. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&item)
  88. return
  89. }
  90. //获取未读消息数
  91. func GetNotReadMessageTotal(sysUserId, sourceType int) (total int64, err error) {
  92. sql := `SELECT count(*) total FROM company_approval_message AS a
  93. INNER JOIN admin AS b ON a.create_user_id=b.admin_id
  94. WHERE receive_user_id=? AND a.operation_status=1 AND a.message_status =0 AND source_type=?`
  95. o := orm.NewOrm()
  96. err = o.Raw(sql, sysUserId, sourceType).QueryRow(&total)
  97. return
  98. }
  99. //申请服务更新请求参数
  100. type CompanyApprovalMessageReadReq struct {
  101. Id int `description:"消息id"`
  102. }
  103. //变更为消息已读状态
  104. func ModifyCompanyApprovalMessageStatus(companyApprovalMessageId int) (err error) {
  105. o := orm.NewOrm()
  106. sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?`
  107. _, err = o.Raw(sql, companyApprovalMessageId).Exec()
  108. return
  109. }
  110. //消息作废
  111. func CancelCompanyApprovalMessage(companyApprovalId, sourceType int) (err error) {
  112. o := orm.NewOrm()
  113. sql := `UPDATE company_approval_message SET message_status=2,modify_time=NOW()
  114. WHERE company_approval_id=? AND source_type=? AND message_type=1 AND operation_status=1 `
  115. //sql := `UPDATE company_approval_message SET message_status=1,modify_time=NOW() WHERE id=?`
  116. _, err = o.Raw(sql, companyApprovalId, sourceType).Exec()
  117. return
  118. }