From 10a63309ee67392c4b135a02467163b8f8d9f7f7 Mon Sep 17 00:00:00 2001 From: jiangyong Date: Sun, 19 Apr 2026 18:29:42 +0800 Subject: [PATCH] enterprise --- enterprise/enterprise.go | 19 ++++++++++ enterprise/staff_user.go | 76 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 enterprise/enterprise.go create mode 100644 enterprise/staff_user.go diff --git a/enterprise/enterprise.go b/enterprise/enterprise.go new file mode 100644 index 0000000..5dbf606 --- /dev/null +++ b/enterprise/enterprise.go @@ -0,0 +1,19 @@ +package global + +type Enterprise struct { + token string + baseUrl string +} + +func (e *Enterprise) GetHeader() map[string]string { + return map[string]string{ + "x-token": e.token, + } +} + +func (e *Enterprise) GetBaseUrl() string { + if e.baseUrl != "" { + return e.baseUrl + } + return "http://e.batiao8.com" +} diff --git a/enterprise/staff_user.go b/enterprise/staff_user.go new file mode 100644 index 0000000..007c1c0 --- /dev/null +++ b/enterprise/staff_user.go @@ -0,0 +1,76 @@ +package global + +import ( + "fmt" + + "errors" + + "git.u8t.cn/open/goutil" + "github.com/tidwall/gjson" +) + +var ( + corpId = 1000 +) + +type VerifyCode struct { + Username string `json:"username"` + Timestamp string `json:"timestamp"` +} +type StaffInfo struct { + Username string `json:"username"` + Realname string `json:"realname"` + Phone string `json:"phone"` +} +type StaffUser struct { + Enterprise +} + +func NewStaffUser(baseUrl, token string) *StaffUser { + return &StaffUser{ + Enterprise: Enterprise{ + baseUrl: baseUrl, + token: token, + }, + } +} + +func (e *StaffUser) SendVerifyCode(username, scene string) (*VerifyCode, error) { + var reqBody string + reqBody = fmt.Sprintf(`{"username":"%s","scene":"%s"}`, username, scene) + reqUrl := e.GetBaseUrl() + "/api/staff/verify/code" + + body, err := goutil.HttpPost(reqUrl, e.GetHeader(), []byte(reqBody)) + if err != nil { + return nil, err + } + g := gjson.ParseBytes(body) + if g.Get("code").Int() != 0 { + return nil, errors.New(string(body)) + } + r := new(VerifyCode) + r.Timestamp = g.Get("data.timestamp").String() + r.Username = g.Get("data.username").String() + + return r, nil +} + +func (e *StaffUser) Login(username, timestamp, code string) (*StaffInfo, error) { + reqBody := fmt.Sprintf(`{"username":"%s","timestamp":"%s","code":"%s"}`, username, timestamp, code) + reqUrl := e.GetBaseUrl() + "/api/staff/login" + body, err := goutil.HttpPost(reqUrl, e.GetHeader(), []byte(reqBody)) + if err != nil { + return nil, err + } + g := gjson.ParseBytes(body) + if g.Get("code").Int() != 0 { + return nil, errors.New(string(body)) + } + + r := new(StaffInfo) + r.Realname = g.Get("data.realname").String() + r.Username = g.Get("data.username").String() + r.Phone = g.Get("data.phone").String() + + return r, nil +}