123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- package controllers
- import (
- "encoding/json"
- "hongze/hongze_robot/models"
- "hongze/hongze_robot/services"
- "hongze/hongze_robot/utils"
- "strconv"
- "strings"
- "time"
- )
- // 短信管理
- type SmsController struct {
- BaseCommonController
- }
- // @Title 短信转发接口
- // @Description 短信转发接口
- // @Param request body company.CompanyApplyApproveReq true "type json string"
- // @Success Ret=200 转发成功
- // @router /send [post]
- func (this *SmsController) SmsSend() {
- br := new(models.BaseResponse).Init()
- var err error
- defer func() {
- if err != nil {
- utils.FileLog.Info("send msg err: " + err.Error())
- }
- this.Data["json"] = br
- this.ServeJSON()
- }()
- reqBody := this.Ctx.Input.RequestBody
- utils.FileLog.Info("send body:" + string(reqBody))
- req := make([]*models.SmsReq, 0)
- err = json.Unmarshal(reqBody, &req)
- if err != nil {
- br.Msg = "参数解析异常!"
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
- return
- }
- addList := make([]*models.SmsRecord, 0)
- for _, v := range req {
- v.Address = strings.Trim(v.Address, " ")
- if v.Sign != utils.Sign {
- br.Msg = "签名错误"
- br.ErrMsg = "签名错误;get sign:" + v.Sign + ";check sign:" + utils.Sign
- return
- }
- unionCode := utils.MD5(v.Address + v.Body + v.Date)
- count, err := models.GetSmsRecordCount(unionCode)
- if err != nil && err.Error() != utils.ErrNoRow() {
- br.Msg = "失败,请联系技术"
- br.ErrMsg = "失败;Err:" + err.Error()
- return
- }
- //判断记录是否存在
- if count <= 0 {
- var tm time.Time
- if v.Date != "" {
- smsDateInt64, _ := strconv.ParseInt(v.Date, 10, 64)
- tm = time.Unix(smsDateInt64/1e3, 0)
- }
- record := new(models.SmsRecord)
- record.CreateTime = time.Now()
- record.ModifyTime = time.Now()
- if strings.Contains(v.Body, "测试") || strings.Contains(v.Body, "河南应急") || strings.Contains(v.Body, "公益短信") ||
- strings.Contains(v.Body, "河南省卫生健康委") || strings.Contains(v.Body, "账单提醒") || strings.Contains(v.Body, "花呗") ||
- strings.Contains(v.Body, "温馨提醒") || strings.Contains(v.Body, "河南") || strings.Contains(v.Body, "河南省人社厅") ||
- strings.Contains(v.Body, "河南省公安厅") || strings.Contains(v.Body, "河南省反诈中心") || strings.Contains(v.Body, "中共河南省委金融委员会办公室") {
- record.IsSend = 1
- } else {
- record.IsSend = 0
- }
- record.SmsDateTime = tm
- record.Mobile = v.Address
- record.SmsDate = v.Date
- record.Body = v.Body
- record.UnionCode = unionCode
- addList = append(addList, record)
- }
- }
- if len(addList) > 0 {
- _, err = models.AddSmsRecordMulti(addList)
- if err != nil {
- br.Msg = "失败,请联系技术"
- br.ErrMsg = "新增记录失败;Err:" + err.Error()
- return
- }
- time.Sleep(1 * time.Second)
- go services.SendSms()
- }
- br.Ret = 200
- br.Success = true
- br.Msg = "发送成功"
- }
- //func init() {
- // fmt.Println("start")
- // smsDate:=`1620290685894`
- // int64, err := strconv.ParseInt(smsDate, 10, 64)
- // fmt.Println(err)
- // tm:=time.Unix(int64/1e3,0)
- // fmt.Println(tm)
- // fmt.Println(tm.Format(utils.FormatDateTime))
- // fmt.Println("end")
- //}
- //func init() {
- // fmt.Println("start")
- // services.SendSms()
- // fmt.Println("end")
- // return
- //}
|