sms.go 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. package controllers
  2. import (
  3. "fmt"
  4. "hongze/hongze_robot/models"
  5. "hongze/hongze_robot/utils"
  6. "strconv"
  7. "time"
  8. "github.com/blinkbean/dingtalk"
  9. )
  10. //短信管理
  11. type SmsController struct {
  12. BaseCommonController
  13. }
  14. // @Title 短信转发接口
  15. // @Description 短信转发接口
  16. // @Param request body company.CompanyApplyApproveReq true "type json string"
  17. // @Success Ret=200 转发成功
  18. // @router /send [post]
  19. func (this *SmsController) SmsSend() {
  20. br := new(models.BaseResponse).Init()
  21. var err error
  22. defer func() {
  23. if err != nil {
  24. utils.FileLog.Info("send msg err: %s", err.Error())
  25. }
  26. this.Data["json"] = br
  27. this.ServeJSON()
  28. }()
  29. sign := this.GetString("Sign")
  30. address := this.GetString("Address")
  31. body := this.GetString("Body")
  32. name := this.GetString("Name")
  33. date := this.GetString("Date")
  34. utils.FileLog.Info("send msg: %s; %s; %s; %s; %s", sign, address, body, name, date)
  35. count, err := models.GetSmsRecordCount(address, date)
  36. if err != nil && err.Error() != utils.ErrNoRow() {
  37. br.Msg = "失败,请联系技术"
  38. br.ErrMsg = "失败;Err:" + err.Error()
  39. return
  40. }
  41. //判断记录是否存在
  42. if count <= 0 {
  43. var dingToken = []string{"5f9ae772343b20af806e1f8a6c27a3d8c1b57d8c36f468ab0a12d7eca1cf423c"}
  44. var smsDateTime string
  45. if date != "" {
  46. smsDateInt64, _ := strconv.ParseInt(date, 10, 64)
  47. tm := time.Unix(smsDateInt64/1e3, 0)
  48. smsDateTime = tm.Format(utils.FormatDateTime)
  49. }
  50. if smsDateTime == "" {
  51. smsDateTime = date
  52. }
  53. msg := []string{
  54. "### " + address,
  55. "---",
  56. "- <font color=#00ff00 size=6>" + body + "</font>",
  57. "- " + smsDateTime,
  58. }
  59. cli := dingtalk.InitDingTalk(dingToken, "hongze")
  60. //cli.SendTextMessage("content", dingtalk.WithAtAll())
  61. err = cli.SendMarkDownMessageBySlice("华瑞信息", msg)
  62. if err != nil {
  63. br.Msg = "失败,请联系技术"
  64. br.ErrMsg = "发送钉钉消息失败;Err:" + err.Error()
  65. return
  66. }
  67. record := new(models.SmsRecord)
  68. record.CreateTime = time.Now()
  69. record.Mobile = address
  70. record.SmsDate = date
  71. record.Body = body
  72. _, err = models.AddSmsRecord(record)
  73. if err != nil {
  74. br.Msg = "失败,请联系技术"
  75. br.ErrMsg = "新增记录失败;Err:" + err.Error()
  76. return
  77. }
  78. }
  79. br.Ret = 200
  80. br.Success = true
  81. br.Msg = "发送成功"
  82. }
  83. //func init() {
  84. // fmt.Println("start")
  85. // smsDate:=`1620290685894`
  86. // int64, err := strconv.ParseInt(smsDate, 10, 64)
  87. // fmt.Println(err)
  88. // tm:=time.Unix(int64/1e3,0)
  89. // fmt.Println(tm)
  90. // fmt.Println(tm.Format(utils.FormatDateTime))
  91. // fmt.Println("end")
  92. //}