sms.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. package controllers
  2. import (
  3. "encoding/json"
  4. "hongze/hongze_robot/cache"
  5. "hongze/hongze_robot/models"
  6. "hongze/hongze_robot/services"
  7. "hongze/hongze_robot/utils"
  8. "strconv"
  9. "strings"
  10. "time"
  11. )
  12. //短信管理
  13. type SmsController struct {
  14. BaseCommonController
  15. }
  16. // @Title 短信转发接口
  17. // @Description 短信转发接口
  18. // @Param request body company.CompanyApplyApproveReq true "type json string"
  19. // @Success Ret=200 转发成功
  20. // @router /send [post]
  21. func (this *SmsController) SmsSend() {
  22. br := new(models.BaseResponse).Init()
  23. var err error
  24. defer func() {
  25. if err != nil {
  26. utils.FileLog.Info("send msg err: %s", err.Error())
  27. }
  28. this.Data["json"] = br
  29. this.ServeJSON()
  30. }()
  31. reqBody := this.Ctx.Input.RequestBody
  32. utils.FileLog.Info("%s", string(reqBody))
  33. req := make([]*models.SmsReq, 0)
  34. err = json.Unmarshal(reqBody, &req)
  35. if err != nil {
  36. br.Msg = "参数解析异常!"
  37. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  38. return
  39. }
  40. addList := make([]*models.SmsRecord, 0)
  41. for _, v := range req {
  42. count, err := models.GetSmsRecordCount(v.Address, v.Date)
  43. if err != nil && err.Error() != utils.ErrNoRow() {
  44. br.Msg = "失败,请联系技术"
  45. br.ErrMsg = "失败;Err:" + err.Error()
  46. return
  47. }
  48. item, err := cache.GetSmsConfigByCache("mobile")
  49. if err != nil {
  50. br.Msg = "失败,请联系技术"
  51. br.ErrMsg = "获取配置信息失败;Err:" + err.Error()
  52. return
  53. }
  54. if item.ConfigValue == "" {
  55. br.Msg = "失败,请联系技术"
  56. br.ErrMsg = "配置信息为空"
  57. return
  58. }
  59. //判断记录是否存在
  60. if count <= 0 && strings.Contains(item.ConfigValue, v.Address) {
  61. var tm time.Time
  62. if v.Date != "" {
  63. smsDateInt64, _ := strconv.ParseInt(v.Date, 10, 64)
  64. tm = time.Unix(smsDateInt64/1e3, 0)
  65. }
  66. record := new(models.SmsRecord)
  67. record.CreateTime = time.Now()
  68. record.ModifyTime = time.Now()
  69. record.IsSend = 0
  70. record.SmsDateTime = tm
  71. record.Mobile = v.Address
  72. record.SmsDate = v.Date
  73. record.Body = v.Body
  74. addList = append(addList, record)
  75. }
  76. }
  77. if len(addList) > 0 {
  78. _, err = models.AddSmsRecordMulti(addList)
  79. if err != nil {
  80. br.Msg = "失败,请联系技术"
  81. br.ErrMsg = "新增记录失败;Err:" + err.Error()
  82. return
  83. }
  84. time.Sleep(1 * time.Second)
  85. go services.SendSms()
  86. }
  87. br.Ret = 200
  88. br.Success = true
  89. br.Msg = "发送成功"
  90. }
  91. //func init() {
  92. // fmt.Println("start")
  93. // smsDate:=`1620290685894`
  94. // int64, err := strconv.ParseInt(smsDate, 10, 64)
  95. // fmt.Println(err)
  96. // tm:=time.Unix(int64/1e3,0)
  97. // fmt.Println(tm)
  98. // fmt.Println(tm.Format(utils.FormatDateTime))
  99. // fmt.Println("end")
  100. //}