company_approval_message.go 3.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. package services
  2. import (
  3. "fmt"
  4. "hongze/hongze_mobile_admin/models/tables/company_approval_message"
  5. "hongze/hongze_mobile_admin/services/alarm_msg"
  6. "hongze/hongze_mobile_admin/utils"
  7. "time"
  8. )
  9. // AddCompanyApprovalMessage 添加待办消息
  10. func AddCompanyApprovalMessage(createUserId, receiveUserId, companyId, companyApprovalId, msgType, sourceType, approvalStatus int, companyName, remark, content, mobile string) (err error) {
  11. defer func() {
  12. if err != nil {
  13. fmt.Println("异常提醒:"+utils.RunMode, "给用户发送消息失败,ERR:"+err.Error()+"", utils.EmailSendToUsers)
  14. //go utils.SendEmail("异常提醒:"+utils.RunMode, "给用户发送消息失败,ERR:"+err.Error()+"", utils.EmailSendToUsers)
  15. go alarm_msg.SendAlarmMsg("给用户发送消息失败,ERR:"+err.Error(), 3)
  16. }
  17. }()
  18. if msgType == 2 {
  19. company_approval_message.ModifyCompanyApprovalMessage(companyApprovalId, sourceType)
  20. }
  21. msgItem := new(company_approval_message.CompanyApprovalMessage)
  22. msgItem.CreateUserId = createUserId
  23. msgItem.ReceiveUserId = receiveUserId
  24. msgItem.MessageStatus = 0 //消息状态:0未读,1:已读,2:作废
  25. msgItem.Remark = remark
  26. msgItem.Content = content
  27. msgItem.CompanyId = companyId
  28. msgItem.CompanyName = companyName
  29. msgItem.CreateTime = time.Now()
  30. msgItem.ModifyTime = time.Now()
  31. msgItem.CompanyApprovalId = companyApprovalId
  32. msgItem.OperationStatus = 1 //消息状态:1:待审批,2:已审批
  33. msgItem.MessageType = msgType //1:申请消息,2:审批结果,3:消息通知
  34. msgItem.SourceType = sourceType //消息来源,1:客户,2:合同,3:用印
  35. msgItem.ApprovalStatus = approvalStatus //审批状态,1:待审批,2:已审批,3:已驳回
  36. err = company_approval_message.AddCompanyApprovalMessage(msgItem)
  37. if mobile != "" {
  38. //跳转地址
  39. redirectUrl := ""
  40. //微信小程序路径
  41. wxAppPath := ``
  42. //微信消息map数据
  43. wxMsgMap := make(map[int]string)
  44. switch msgType {
  45. case 1:
  46. wxMsgMap[0] = "Hi,您有新的审批单待处理"
  47. case 2:
  48. wxMsgMap[0] = "Hi,您有新的审批单已处理"
  49. case 3:
  50. wxMsgMap[0] = "Hi,有新的消息待查看"
  51. wxAppPath = "pages-todomessages/list/list?type=" + fmt.Sprint(sourceType)
  52. }
  53. //审批类型
  54. switch sourceType {
  55. case 2:
  56. wxMsgMap[1] = "合同审批"
  57. case 3:
  58. wxMsgMap[1] = "用印审批"
  59. default:
  60. wxMsgMap[1] = "客户审批"
  61. }
  62. //产生时间
  63. wxMsgMap[2] = time.Now().Format(utils.FormatDateTime)
  64. //任务描述
  65. wxMsgMap[3] = content
  66. //pages-todomessages/list/list?type=1(1:客户,2:合同,3:用印)
  67. if sourceType == 1 { //目前只有客户审批才有手机端审核页面
  68. redirectUrl = utils.TemplateCompanyApplyRedirectUrl
  69. }
  70. if wxAppPath == "" {
  71. //小程序跳转路径map;下标是:来源_消息类型
  72. wxAppPathMap := map[string]string{
  73. "1_1": "pages-approve/custome/list",
  74. "1_2": "pages-approve/custome/detail?id=" + fmt.Sprint(companyApprovalId),
  75. "2_1": "pages-approve/contract/list",
  76. "2_2": "pages-approve/contract/detail?ContractApprovalId=0&ContractId=0&ContractApprovalRecordId=" + fmt.Sprint(companyApprovalId),
  77. "3_1": "pages-approve/seal/list",
  78. "3_2": "pages-approve/seal/detail?ContractApprovalId=0&SealId=0&ContractApprovalRecordId=" + fmt.Sprint(companyApprovalId),
  79. }
  80. key := fmt.Sprint(sourceType, "_", msgType)
  81. if tmpWxAppPath, ok := wxAppPathMap[key]; ok {
  82. wxAppPath = tmpWxAppPath
  83. }
  84. }
  85. go SendCompanyApplyWxTemplateMsg(mobile, redirectUrl, wxAppPath, wxMsgMap)
  86. }
  87. return
  88. }