正在显示
3 个修改的文件
包含
109 行增加
和
0 行删除
| @@ -11,4 +11,5 @@ ENV GO111MODULE on | @@ -11,4 +11,5 @@ ENV GO111MODULE on | ||
| 11 | ENV GOPROXY https://goproxy.cn,direct | 11 | ENV GOPROXY https://goproxy.cn,direct |
| 12 | RUN ["go","mod","tidy"] | 12 | RUN ["go","mod","tidy"] |
| 13 | RUN ["go","build"] | 13 | RUN ["go","build"] |
| 14 | +EXPOSE 8080 | ||
| 14 | ENTRYPOINT ["./partner"] | 15 | ENTRYPOINT ["./partner"] |
| 1 | +package svr | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "encoding/json" | ||
| 5 | + "fmt" | ||
| 6 | + "github.com/astaxie/beego/httplib" | ||
| 7 | + "strconv" | ||
| 8 | + "strings" | ||
| 9 | + "time" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type httplibBaseServiceGateway struct { | ||
| 13 | + baseURL string | ||
| 14 | + connectTimeout time.Duration | ||
| 15 | + readWriteTimeout time.Duration | ||
| 16 | +} | ||
| 17 | + | ||
| 18 | +func (serviceGateway *httplibBaseServiceGateway) createRequest(url string, method string) *httplib.BeegoHTTPRequest { | ||
| 19 | + var request *httplib.BeegoHTTPRequest | ||
| 20 | + switch method { | ||
| 21 | + case "get": | ||
| 22 | + request = httplib.Get(url) | ||
| 23 | + break | ||
| 24 | + case "post": | ||
| 25 | + request = httplib.Post(url) | ||
| 26 | + break | ||
| 27 | + case "put": | ||
| 28 | + request = httplib.Put(url) | ||
| 29 | + break | ||
| 30 | + case "delete": | ||
| 31 | + request = httplib.Delete(url) | ||
| 32 | + break | ||
| 33 | + case "head": | ||
| 34 | + request = httplib.Head(url) | ||
| 35 | + break | ||
| 36 | + default: | ||
| 37 | + request = httplib.Get(url) | ||
| 38 | + } | ||
| 39 | + return request.SetTimeout(serviceGateway.connectTimeout, serviceGateway.readWriteTimeout) | ||
| 40 | +} | ||
| 41 | + | ||
| 42 | +func (serviceGateway *httplibBaseServiceGateway) responseHandle(response map[string]interface{}) (map[string]interface{}, error) { | ||
| 43 | + data := make(map[string]interface{}) | ||
| 44 | + var err error | ||
| 45 | + if code, ok := response["code"]; ok { | ||
| 46 | + code := code.(float64) | ||
| 47 | + if code == 0 { | ||
| 48 | + data = response["data"].(map[string]interface{}) | ||
| 49 | + } else { | ||
| 50 | + msg := response["msg"].(string) | ||
| 51 | + data = response | ||
| 52 | + err = fmt.Errorf(strings.Join([]string{strconv.FormatFloat(code, 'f', -1, 64), msg}, " ")) | ||
| 53 | + } | ||
| 54 | + } else { | ||
| 55 | + jsonBytes, marshalErr := json.Marshal(response) | ||
| 56 | + if marshalErr != nil { | ||
| 57 | + err = marshalErr | ||
| 58 | + } | ||
| 59 | + err = fmt.Errorf("无法解析的网关服务数据返回格式:%s", string(jsonBytes)) | ||
| 60 | + } | ||
| 61 | + return data, err | ||
| 62 | +} |
| 1 | +package svr | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/constant" | ||
| 5 | + "strings" | ||
| 6 | + "time" | ||
| 7 | +) | ||
| 8 | + | ||
| 9 | +type HttplibMmmSmsApiServiceGateway struct { | ||
| 10 | + httplibBaseServiceGateway | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +func (serviceGateway *HttplibMmmSmsApiServiceGateway) SendSms(phone string) (map[string]interface{}, error) { | ||
| 14 | + url := strings.Join([]string{serviceGateway.baseURL, "service", "sendSms"}, "/") | ||
| 15 | + request := serviceGateway.createRequest(url, "post") | ||
| 16 | + options := make(map[string]interface{}) | ||
| 17 | + options["phone"] = strings.TrimSpace(phone) | ||
| 18 | + request.JSONBody(options) | ||
| 19 | + response := make(map[string]interface{}) | ||
| 20 | + request.ToJSON(&response) | ||
| 21 | + data, err := serviceGateway.responseHandle(response) | ||
| 22 | + return data, err | ||
| 23 | +} | ||
| 24 | + | ||
| 25 | +func (serviceGateway *HttplibMmmSmsApiServiceGateway) CheckSmsCode(phone string, code string) (map[string]interface{}, error) { | ||
| 26 | + url := strings.Join([]string{serviceGateway.baseURL, "service", "checkSmsCode"}, "/") | ||
| 27 | + request := serviceGateway.createRequest(url, "post") | ||
| 28 | + options := make(map[string]interface{}) | ||
| 29 | + options["phone"] = phone | ||
| 30 | + options["code"] = code | ||
| 31 | + request.JSONBody(options) | ||
| 32 | + response := make(map[string]interface{}) | ||
| 33 | + request.ToJSON(&response) | ||
| 34 | + data, err := serviceGateway.responseHandle(response) | ||
| 35 | + return data, err | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +func NewHttplibMmmSmsApiServiceGateway() *HttplibMmmSmsApiServiceGateway { | ||
| 39 | + return &HttplibMmmSmsApiServiceGateway{ | ||
| 40 | + httplibBaseServiceGateway: httplibBaseServiceGateway{ | ||
| 41 | + baseURL: constant.MMM_SMS_SERVICE_HOST, | ||
| 42 | + connectTimeout: 100 * time.Second, | ||
| 43 | + readWriteTimeout: 30 * time.Second, | ||
| 44 | + }, | ||
| 45 | + } | ||
| 46 | +} |
-
请 注册 或 登录 后发表评论