You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
70 lines
1.7 KiB
70 lines
1.7 KiB
package main
|
|
|
|
import (
|
|
"context"
|
|
"goproduct/common"
|
|
"goproduct/proto"
|
|
"log"
|
|
"strconv"
|
|
|
|
consul "github.com/asim/go-micro/plugins/registry/consul/v4"
|
|
"go-micro.dev/v4/web"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"go-micro.dev/v4"
|
|
"go-micro.dev/v4/registry"
|
|
)
|
|
|
|
//获取远程服务的客户端
|
|
func getClient() proto.LoginService {
|
|
//注册到consul
|
|
consulReg := consul.NewRegistry(func(options *registry.Options) {
|
|
options.Addrs = []string{"192.168.137.131:8500"}
|
|
})
|
|
rpcServer := micro.NewService(
|
|
micro.Registry(consulReg),
|
|
)
|
|
return proto.NewLoginService("shop-user", rpcServer.Client())
|
|
}
|
|
func main() {
|
|
router := gin.Default()
|
|
|
|
router.Handle("GET", "toLogin", func(context *gin.Context) {
|
|
context.String(200, "to Loging ....")
|
|
})
|
|
|
|
router.GET("/login", func(c *gin.Context) {
|
|
//获取远程服务的客户端
|
|
client := getClient()
|
|
//获取页面参数
|
|
clientId, _ := strconv.Atoi(c.Request.FormValue("clientId"))
|
|
phone := c.Request.FormValue("phone")
|
|
systemId, _ := strconv.Atoi(c.Request.FormValue("systemId"))
|
|
verificationCode := c.Request.FormValue("verificationCode")
|
|
//拼接请求信息
|
|
req := &proto.LoginRequest{
|
|
ClientId: int32(clientId),
|
|
Phone: phone,
|
|
SystemId: int32(systemId),
|
|
VerificationCode: verificationCode,
|
|
}
|
|
//远程调用服务
|
|
resp, err := client.Login(context.TODO(), req)
|
|
//根据响应做输出
|
|
if err != nil {
|
|
log.Println(err.Error())
|
|
//c.String(http.StatusBadRequest, "search failed !")
|
|
common.RespFail(c.Writer, resp, "登录失败")
|
|
return
|
|
}
|
|
common.RespOK(c.Writer, resp, "登录成功")
|
|
})
|
|
|
|
service := web.NewService(
|
|
web.Address(":8081"),
|
|
web.Handler(router),
|
|
)
|
|
service.Run()
|
|
//router.Run(":6666")
|
|
}
|