|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122 |
- package sms
-
- import (
- "applet/app/db"
- "applet/app/lib/zhimeng"
- "applet/app/svc"
- "applet/app/utils/cache"
- "applet/app/utils/logx"
- "code.fnuoos.com/go_rely_warehouse/zyos_go_third_party_api.git/sms"
- "errors"
- "fmt"
- "github.com/tidwall/gjson"
-
- "github.com/gin-gonic/gin"
- )
-
- // NewZhimengSMS is 智盟的短信服务
- func NewZhimengSMS(c *gin.Context) *zhimeng.SDK {
- sms := new(zhimeng.SDK)
- key := svc.SysCfgGet(c, "third_zm_sms_key")
- secret := svc.SysCfgGet(c, "third_zm_sms_secret")
- if key == "" || secret == "" {
- _ = logx.Warn("短信服务配置错误")
- }
- sms.Init("send_msg", key, secret)
- return sms
- }
- func GetSmsPlatform(c *gin.Context) string {
- var smsPlatform = "ljioe"
- key := fmt.Sprintf("%s:sms_platform", c.GetString("mid"))
- smsPlatformTmp, _ := cache.GetString(key)
- if smsPlatformTmp == "" {
- smsPlatformTmp = svc.GetWebSiteAppSmsPlatform(c.GetString("mid"))
- if smsPlatformTmp != "" {
- cache.SetEx(key, smsPlatformTmp, 300)
- }
- }
- if smsPlatformTmp != "" {
- smsPlatform = smsPlatformTmp
- }
- return smsPlatform
- }
- func GetTplId(c *gin.Context, zone, types string) string {
- // 校验短信验证码
- tplId := ""
- if zone != "86" {
- tplId = svc.SysCfgGet(c, "mob_sms_sdk_international_template_id")
- } else {
- tplId = svc.SysCfgGet(c, "mob_sms_sdk_template_id")
- }
- if c.GetString("app_type") == "o2o" {
- tplId = db.SysCfgGet(c, "biz_mob_sms_sdk_template_id")
- }
- normal := gjson.Get(tplId, types).String()
- if normal == "" {
- normal = gjson.Get(tplId, "normal").String()
- }
- return normal
- }
- func GetSmsConfig(c *gin.Context, zone string, postData map[string]interface{}) error {
- m := db.SysCfgGet(c, "third_app_push_set")
- if c.GetString("app_type") == "o2o" {
- m = db.SysCfgGet(c, "biz_third_app_push_set")
- }
- key := gjson.Get(m, "mobAppKey").String()
- postData["is_mob"] = "1"
- postData["type"] = "mob"
- postData["sms_type"] = "putong"
- smsPlatform := GetSmsPlatform(c)
- if smsPlatform == "ljioe" {
- postData["is_mob"] = "0"
- postData["type"] = ""
- }
- token := c.GetHeader("Authorization")
- if zone == "" && token != "" {
- arkToken, _ := db.UserProfileFindByArkToken(svc.MasterDb(c), token)
- if arkToken != nil && arkToken.Uid > 0 {
- user, _ := db.UserFindByID(svc.MasterDb(c), arkToken.Uid)
- if user != nil && user.Uid > 0 {
- zone = user.Zone
- }
- }
- }
- if zone == "" {
- zone = "86"
- }
- if zone != "86" { //国际短信
- postData["is_sales"] = "2"
- postData["sms_type"] = "international"
- }
- postData["templateCode"] = GetTplId(c, zone, postData["templateCode"].(string))
- postData["zone"] = zone
- if key != "" {
- postData["smsmsg_key"] = key
- }
- if c.GetString("sms_type") == "1" { //新的
- postData["uid"] = c.GetString("mid")
- err := sms.SmsSend(db.Db, postData)
- if err != nil {
- return err
- }
- return nil
- }
- fmt.Println("===短信", postData, c.ClientIP())
- sdk, err := NewZhimengSMS(c).SelectFunction("msg_doing").WithSMSArgs(postData).Result()
- if err != nil {
- msg := gjson.Get(err.Error(), "msg").String()
- if msg == "" {
- msg = err.Error()
- }
- fmt.Println("===短信", err)
- errs := errors.New(msg)
- return errs
- }
- rmap := sdk.ToInterface().(map[string]interface{})
- fmt.Println("===短信", rmap)
-
- if rmap["status"] == "" {
- return err
- }
- return nil
- }
|