123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- package third
- import (
- "encoding/json"
- "errors"
- "eta_gn/eta_api/utils"
- "fmt"
- "io"
- "net/http"
- )
- type SciUserBaseInfoResp struct {
- Code int `json:"code"`
- Msg string `json:"msg"`
- //Info DeptItemResp `json:"info"`
- }
- type UserInfoResp struct {
- SciUserBaseInfoResp
- Info UserBaseInfResp `json:"info"`
- }
- type UserBaseInfResp struct {
- Sub string `json:"sub"`
- EmailVerified bool `json:"email_verified"`
- UserName string `json:"user_name"`
- Sex string `json:"sex"`
- Phonenumber interface{} `json:"phonenumber"`
- DeptName string `json:"dept_name"`
- Remark string `json:"remark"`
- PreferredUsername string `json:"preferred_username"`
- GivenName string `json:"given_name"`
- PostName string `json:"post_name"`
- NickName string `json:"nick_name"`
- PostCode string `json:"post_code"`
- Name string `json:"name"`
- DeptId string `json:"dept_id"`
- FamilyName string `json:"family_name"`
- Email interface{} `json:"email"`
- Status string `json:"status"`
- Resource []MenuItemResp `json:"resource"`
- }
- type MenuItemResp struct {
- PATH *string `json:"PATH"`
- ButtonCode *string `json:"button_code"`
- MenuType string `json:"menu_type"`
- UserName string `json:"user_name"`
- Icon *string `json:"icon"`
- IsLevel int `json:"is_level"`
- VISIBLE string `json:"VISIBLE"`
- RoleName string `json:"role_name"`
- Component *string `json:"component"`
- RoleId int `json:"role_id"`
- LevelPath *string `json:"level_path"`
- NickName string `json:"nick_name"`
- MenuName string `json:"menu_name"`
- OrderNum int `json:"order_num"`
- Api *string `json:"api"`
- MenuId int `json:"menu_id"`
- ParentId int `json:"parent_id"`
- NameEn *string `json:"name_en"`
- }
- // GetUserInfo
- // @Description: 获取用户信息
- // @author: Roc
- // @datetime 2025-06-09 17:01:43
- // @param token string
- // @return resp *UserInfoResp
- // @return err error
- func GetUserInfo(token string) (resp *UserInfoResp, err error) {
- urlPath := `index/getuserinfo?token=` + token
- result, err := HttpUserGet(urlPath)
- if err != nil {
- return
- }
- // 解析响应结果
- err = json.Unmarshal(result, &resp)
- if err != nil {
- return
- }
- return
- }
- type TopMenuResp struct {
- SciUserBaseInfoResp
- Info []TopMenuItemResp `json:"info"`
- }
- type TopMenuItemResp struct {
- Path string `json:"path" description:"跳转地址"`
- MenuName string `json:"menu_name"`
- OrderNum int `json:"order_num"`
- MenuId int `json:"menu_id"`
- IsFrame int `json:"is_frame" description:"1左边,0右边"`
- }
- type T struct {
- Code int `json:"code"`
- Msg string `json:"msg"`
- Info []struct {
- Path string `json:"path"`
- MenuName string `json:"menu_name"`
- OrderNum int `json:"order_num"`
- MenuId int `json:"menu_id"`
- IsFrame int `json:"is_frame"`
- } `json:"info"`
- }
- // GetTopMenuInfo
- // @Description: 获取用户信息
- // @author: Roc
- // @datetime 2025-06-09 17:01:43
- // @param token string
- // @return resp *UserInfoResp
- // @return err error
- func GetTopMenuInfo(token string) (resp *TopMenuResp, err error) {
- urlPath := `index/getRootMenu?token=` + token
- result, err := HttpUserGet(urlPath)
- if err != nil {
- return
- }
- // 解析响应结果
- err = json.Unmarshal(result, &resp)
- if err != nil {
- return
- }
- return
- }
- // HttpUserGet
- // @Description: get请求
- // @author: Roc
- // @datetime 2025-06-05 14:40:36
- // @param urlPath string
- // @return []byte
- // @return error
- func HttpUserGet(urlPath string) ([]byte, error) {
- if utils.GnSciUserApiUrl == `` {
- return nil, errors.New("用户中心同步接口地址为空")
- }
- // 请求地址
- getUrl := utils.GnSciUserApiUrl + urlPath
- client := &http.Client{}
- req, err := http.NewRequest("GET", getUrl, nil)
- if err != nil {
- return nil, err
- }
- resp, err := client.Do(req)
- if err != nil {
- return nil, err
- }
- defer resp.Body.Close()
- result, err := io.ReadAll(resp.Body)
- if err != nil {
- return nil, err
- }
- // 日志记录
- utils.FileLog.Debug("用户中心平台:地址:" + getUrl + ";\n返回参数:" + string(result))
- // 解析返回参数,判断是否是json
- if !json.Valid(result) {
- err = errors.New("返回参数不是json格式")
- }
- var respItem SciUserBaseInfoResp
- err = json.Unmarshal(result, &respItem)
- if err != nil {
- return nil, err
- }
- if respItem.Code != 0 {
- err = fmt.Errorf("HttpUserGet请求失败, Err: %d, ErrMsg: %s ", respItem.Code, respItem.Msg)
- return nil, err
- }
- return result, err
- }
|