소스 검색

feat:xiugai

wangchuanjin 2 달 전
부모
커밋
d80d67c28f
10개의 변경된 파일47개의 추가작업 그리고 46개의 파일을 삭제
  1. 5 5
      src/config.json
  2. 1 1
      src/config/config.go
  3. 1 2
      src/go.mod
  4. 0 2
      src/go.sum
  5. 0 1
      src/logic/logic.go
  6. 13 13
      src/main.go
  7. 1 1
      src/main_test.go
  8. 5 5
      src/service/service.go
  9. 11 9
      src/service/weiwangtonglian.go
  10. 10 7
      src/service/yunpian.go

+ 5 - 5
src/config.json

@@ -1,6 +1,6 @@
 {
   "port": "932",
-  "model": 1,
+  "model": ["微网通联","云片"],
   "reTry": 3,
   "poolSize": 10,
   "weiwangtonglian": {
@@ -10,7 +10,7 @@
     "productId": 1012888,
     "fixEncryptKey": "SMmsEncryptKey",
     "idToTpl": {
-      "01": 134220,
+      "01": 1342201,
       "02": 139702,
       "03": 149347,
       "04": 150559
@@ -35,17 +35,17 @@
   },
   "yunpian": {
     "url": "https://sms.yunpian.com/v2/sms/tpl_batch_send.json",
-    "key": "950090a3dfefb4f821ed8f0221482fcd",
+    "key": "61452fc9ce6322c3c9ee7c7098d87d8d",
     "idToTpl": {
       "01": {
-        "id": 2828060,
+        "id": 6133096,
         "variable": [
           "code"
         ]
       }
     }
   },
-  "warn": "http://172.17.4.195:19281/_send/_mail?program=Sms_Service&to=wangchuanjin@topnet.net.cn,renzheng@topnet.net.cn,zhaoyujian@topnet.net.cn&title=短信服务程序报警&body=%s",
+  "warn": "http://172.17.4.195:19281/_send/_mail?program=Sms_Service&to=wangchuanjin@topnet.net.cn&title=短信服务程序报警&body=%s",
   "mysql": {
     "base": {
       "dBName": "base_service",

+ 1 - 1
src/config/config.go

@@ -57,7 +57,7 @@ var (
 
 type config struct {
 	Port            string
-	Model           int
+	Model           []string
 	ReTry           int
 	PoolSize        int
 	Weiwangtonglian struct {

+ 1 - 2
src/go.mod

@@ -4,12 +4,11 @@ go 1.20
 
 require (
 	app.yhyue.com/moapp/jybase v0.0.0-20240626030750-115a3c0929fb
-	app.yhyue.com/moapp/jylogx v0.0.0-20230522075659-ae6fbedb92bc
+	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545
 	github.com/zeromicro/go-zero v1.5.2
 )
 
 require (
-	app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 // indirect
 	github.com/fatih/color v1.15.0 // indirect
 	github.com/fsnotify/fsnotify v1.6.0 // indirect
 	github.com/garyburd/redigo v1.6.2 // indirect

+ 0 - 2
src/go.sum

@@ -3,8 +3,6 @@ app.yhyue.com/moapp/jybase v0.0.0-20240626030750-115a3c0929fb h1:LstR4tQbICqo2MO
 app.yhyue.com/moapp/jybase v0.0.0-20240626030750-115a3c0929fb/go.mod h1:XHNATN6tsJKHdCB0DbUtFdPPHXexTUFyB3RlO+lUUoM=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545 h1:+Lak4m1zgsigQloOsvp8AJ+0XeX/+PGp9QP550xlbBQ=
 app.yhyue.com/moapp/jylog v0.0.0-20230522075550-05d7230ca545/go.mod h1:uFrsdUBFbETiJlEmr4PtJWPsZlUpPj2bHQRhryu6ggk=
-app.yhyue.com/moapp/jylogx v0.0.0-20230522075659-ae6fbedb92bc h1:QEwc+V6ZTvk3VMFiMgPYJpsAVqRvTeIMupVfpO5PQYk=
-app.yhyue.com/moapp/jylogx v0.0.0-20230522075659-ae6fbedb92bc/go.mod h1:5xAagkwCYnqG5VEHnOV2AqD6DiR169qvOjYKaHMHecU=
 cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
 cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=

+ 0 - 1
src/logic/logic.go

@@ -1 +0,0 @@
-package logic

+ 13 - 13
src/main.go

@@ -15,17 +15,9 @@ import (
 type Sms struct{}
 
 var pool = make(chan bool, Config.PoolSize)
-var service Service
-
-func init() {
-	if Config.Model == 1 {
-		service = Weiwangtonglian
-	} else if Config.Model == 2 {
-		service = Yunpian
-	} else {
-		jylog.Info("无效的model配置项", Config.Model)
-		//logx.Error("无效的model配置项", Config.Model)
-	}
+var service = map[string]Service{
+	"微网通联": Weiwangtonglian,
+	"云片":   Yunpian,
 }
 
 func main() {
@@ -59,8 +51,16 @@ func (s *Sms) Execute(param *[]byte, ret *string) error {
 			return
 		}
 		jylog.Info("req data:", fmt.Sprintf("%+v", reqData))
-		if service.Verify(reqData) {
-			service.Execute(reqData)
+		if reqData.Id == "01" && Config.StrategySwitch && !Verify(reqData) {
+			return
+		}
+		for _, v := range Config.Model {
+			if service[v] == nil {
+				continue
+			}
+			if service[v].Execute(reqData) {
+				break
+			}
 		}
 	}()
 	*ret = "y"

+ 1 - 1
src/main_test.go

@@ -18,7 +18,7 @@ func Test_Main(t *testing.T) {
 	defer client.Close()
 	b, _ := json.Marshal(map[string]interface{}{
 		"id":     "01",
-		"phones": "1573710152",
+		"phones": "1503787076",
 		"params": []string{date.NowFormat("150405")},
 		"ip":     "123.3.3.2",
 	})

+ 5 - 5
src/service/service.go

@@ -3,14 +3,14 @@ package service
 import (
 	. "Sms_Service/src/config"
 	"fmt"
-	"github.com/zeromicro/go-zero/core/logx"
 	"io"
 	"io/ioutil"
+	"log"
 	"net/http"
 )
 
 type Service interface {
-	Execute(reqData *ReqData)
+	Execute(reqData *ReqData) bool
 	Verify(reqData *ReqData) bool
 }
 
@@ -21,11 +21,11 @@ type ReqData struct {
 	Ip     string
 }
 
-func Post(url, contentType string, body io.Reader, t string) ([]byte, error) {
+func Post(url, contentType string, body io.Reader, t, phone string) ([]byte, error) {
 	for i := 1; i <= Config.ReTry; i++ {
 		resp, err := http.Post(url, contentType, body)
 		if err != nil {
-			logx.Error(t, "第", i, "次请求出错", err)
+			log.Println(t, phone, "第", i, "次请求出错", err)
 			if i == Config.ReTry {
 				go http.Get(fmt.Sprintf(Config.Warn, "调用"+t+"接口超时"))
 			}
@@ -33,7 +33,7 @@ func Post(url, contentType string, body io.Reader, t string) ([]byte, error) {
 		}
 		defer resp.Body.Close()
 		b, _ := ioutil.ReadAll(resp.Body)
-		logx.Info(t, "返回值:", string(b))
+		log.Println(t, phone, "返回值:", string(b))
 		return b, nil
 	}
 	return nil, nil

+ 11 - 9
src/service/weiwangtonglian.go

@@ -8,7 +8,7 @@ import (
 	"crypto/sha256"
 	"encoding/json"
 	"fmt"
-	"github.com/zeromicro/go-zero/core/logx"
+	"log"
 	"math/rand"
 	"net/http"
 	"net/url"
@@ -26,7 +26,7 @@ type weiwangtonglian struct {
 }
 
 // 提交模板短信
-func (w *weiwangtonglian) Execute(reqData *ReqData) {
+func (w *weiwangtonglian) Execute(reqData *ReqData) bool {
 	var (
 		productId = Config.Weiwangtonglian.ProductId
 		tempCode  = Config.Weiwangtonglian.IdToTpl[reqData.Id]
@@ -53,16 +53,16 @@ func (w *weiwangtonglian) Execute(reqData *ReqData) {
 				}
 			}
 			if pId < 0 || tCode < 0 {
-				logx.Error("----无效的参数id,没有找到对应的tpl----")
-				return
+				log.Println("----无效的参数id,没有找到对应的tpl----")
+				return false
 			}
 			productId = pId
 			tempCode = tCode
 		}
 	}
 	if tempCode == 0 {
-		logx.Error("无效的参数id,没有找到对应的tpl")
-		return
+		log.Println("无效的参数id,没有找到对应的tpl")
+		return false
 	}
 	r := rand.New(rand.NewSource(time.Now().UnixNano()))
 	randInt := r.Intn(999999) + 5
@@ -79,9 +79,9 @@ func (w *weiwangtonglian) Execute(reqData *ReqData) {
 		"tempCode":   tempCode,
 		"TempParams": reqData.Params,
 	})
-	b, err := Post(Config.Weiwangtonglian.Url, "application/json", bytes.NewReader(pb), w.t)
+	b, err := Post(Config.Weiwangtonglian.Url, "application/json", bytes.NewReader(pb), w.t, reqData.Phones)
 	if err != nil {
-		return
+		return false
 	}
 	var result struct {
 		Result     string
@@ -97,7 +97,9 @@ func (w *weiwangtonglian) Execute(reqData *ReqData) {
 				res.Body.Close()
 			}
 		}()
+		return false
 	}
+	return true
 }
 
 func (w *weiwangtonglian) Msha256(val string) string {
@@ -126,7 +128,7 @@ func (w *weiwangtonglian) delTemplate() {
 		"Random":    randInt,
 		"TempCode":  134219,
 	})
-	Post("https://api.51welink.com/EncryptionQuery/DelTemplate.ashx", "application/json", bytes.NewReader(pb), w.t)
+	Post("https://api.51welink.com/EncryptionQuery/DelTemplate.ashx", "application/json", bytes.NewReader(pb), w.t, "")
 }
 
 func (w *weiwangtonglian) Verify(reqData *ReqData) bool {

+ 10 - 7
src/service/yunpian.go

@@ -4,7 +4,7 @@ import (
 	. "Sms_Service/src/config"
 	"encoding/json"
 	"fmt"
-	"github.com/zeromicro/go-zero/core/logx"
+	"log"
 	"net/http"
 	"net/url"
 	"strings"
@@ -19,11 +19,11 @@ type yunpian struct {
 	t string
 }
 
-func (y *yunpian) Execute(reqData *ReqData) {
+func (y *yunpian) Execute(reqData *ReqData) bool {
 	idToTpl := Config.Yunpian.IdToTpl[reqData.Id]
 	if idToTpl.Id == 0 {
-		logx.Error("无效的参数id,没有找到对应的tpl")
-		return
+		log.Println("无效的参数id,没有找到对应的tpl")
+		return false
 	}
 	array := []string{}
 	for k, v := range reqData.Params {
@@ -38,9 +38,9 @@ func (y *yunpian) Execute(reqData *ReqData) {
 	param.Add("mobile", reqData.Phones)
 	param.Add("tpl_id", fmt.Sprint(idToTpl.Id))
 	param.Add("tpl_value", content.String())
-	b, err := Post(Config.Yunpian.Url, "application/x-www-form-urlencoded", strings.NewReader(param.Encode()), y.t)
+	b, err := Post(Config.Yunpian.Url, "application/x-www-form-urlencoded", strings.NewReader(param.Encode()), y.t, reqData.Phones)
 	if err != nil {
-		return
+		return false
 	}
 	var result struct {
 		Total_count int
@@ -67,7 +67,10 @@ func (y *yunpian) Execute(reqData *ReqData) {
 		}
 		go http.Get(fmt.Sprintf(Config.Warn, url.QueryEscape(strings.Join(msg, ","))))
 	}
-
+	if result.Total_count == 0 && len(strings.Split(reqData.Phones, ",")) == 1 {
+		return false
+	}
+	return true
 }
 
 func (y *yunpian) Verify(reqData *ReqData) bool {