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 //}