Преглед изворни кода

add: 添加用户个人品种获取

zqbao пре 9 месеци
родитељ
комит
bd540c3469

+ 1 - 1
controllers/base_auth.go

@@ -39,7 +39,7 @@ func (c *BaseAuthController) Prepare() {
 				return
 			}
 			if user == nil {
-				c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "sesson is empty "})
+				c.JSON(models.BaseResponse{Ret: 408, Msg: "网络异常,请稍后重试!", ErrMsg: "user is empty "})
 				c.StopRun()
 				return
 			}

+ 1 - 1
controllers/chart_permission.go

@@ -23,7 +23,7 @@ func (this *ChartPermissionController) List() {
 	}()
 	id, _ := this.GetInt("chartPermissonId", 0)
 
-	var resp *services.ChartPermissionResp
+	var resp *models.ChartPermissionResp[[]models.ChartPermission]
 	var err error
 	if id == 0 {
 		resp, err = services.GetChartPermissionList()

+ 79 - 2
controllers/user.go

@@ -263,7 +263,7 @@ func (this *UserAuthController) AddReportRecord() {
 		br.ErrMsg = "获取研报品种列表失败,Err:" + err.Error()
 		return
 	}
-	chartMap := make(map[int]*services.ChartPermission)
+	chartMap := make(map[int]*models.ChartPermission)
 	for _, permission := range chartPermissionList.Data {
 		chartMap[permission.ChartPermissionId] = permission
 	}
@@ -368,7 +368,7 @@ func (this *UserController) AreaCodeList() {
 	br.Msg = "获取成功"
 }
 
-// Info
+// 用户品种信息
 // @Title 用户信息
 // @Description 用户信息
 // @Success 200 Ret=200 获取成功
@@ -403,3 +403,80 @@ func (this *UserAuthController) Info() {
 	br.Success = true
 	br.Ret = 200
 }
+
+// PermissionList
+// @Title 用户个人权限列表
+// @Description 用户个人权限列表
+// @Param	request	body models.LoginReq true "type json string"
+// @Success 200 {object} []models.ChartPermissionTreeView
+// @router /permission/list [get]
+func (this *UserAuthController) PermissionList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	permissionIds, err := models.GetChartPermissionIdByUserId(user.UserId)
+	if err != nil {
+		br.Msg = "查询用户权限失败"
+		br.ErrMsg = "查询用户权限失败,系统异常,Err:" + err.Error()
+		return
+	}
+	// 查询公有权限
+	var publicView []*models.ChartPermissionTreeView
+	publicResp, err := services.GetPublicChartPermissionList()
+	if err != nil {
+		br.Msg = "查询公有权限失败"
+		br.ErrMsg = "查询私有权限失败,系统异常,Err:" + err.Error()
+	}
+	if publicResp.Ret != 200 {
+		br.Msg = publicResp.Msg
+		br.ErrMsg = publicResp.ErrMsg
+		return
+	}
+	publicView = publicResp.Data
+
+	// 查询私有权限
+	privateResp, err := services.GetPrivateChartPermissionList()
+	if err != nil {
+		br.Msg = "查询私有权限失败"
+		br.ErrMsg = "查询私有权限失败,系统异常,Err:" + err.Error()
+	}
+	if privateResp.Ret != 200 {
+		br.Msg = privateResp.Msg
+		br.ErrMsg = privateResp.ErrMsg
+		return
+	}
+
+	var privateView []*models.ChartPermissionTreeView
+	for _, v := range privateResp.Data {
+		IsAdd := false
+		curPermissionView := &models.ChartPermissionTreeView{
+			ChartPermissionId: v.ChartPermissionId,
+			PermissionName:    v.PermissionName,
+			IsPublic:          v.IsPublic,
+			Sort:              v.Sort,
+			Child:             make([]*models.ChartPermissionTreeView, 0),
+		}
+		for _, vv := range permissionIds {
+			if v.ChartPermissionId == vv {
+				curPermissionView.Child = append(curPermissionView.Child, v)
+				IsAdd = true
+			}
+		}
+		if IsAdd {
+			privateView = append(privateView, curPermissionView)
+		}
+	}
+
+	if len(privateView) == 0 {
+		br.Data = publicView
+	} else {
+		br.Data = privateView
+	}
+
+	br.Msg = "查询成功"
+	br.Success = true
+	br.Ret = 200
+}

+ 31 - 0
models/chart_permission.go

@@ -1,5 +1,7 @@
 package models
 
+import "time"
+
 type ChartPermissionView struct {
 	ChartPermissionId   int    `description:"权限ID"`
 	ChartPermissionName string `description:"名称"`
@@ -7,3 +9,32 @@ type ChartPermissionView struct {
 	Remark              string `description:"备注"`
 	ImageURL            string `description:"图片地址"`
 }
+
+type ChartPermission struct {
+	ChartPermissionId   int       `description:"问题ID"`
+	ChartPermissionName string    `description:"名称"`
+	PermissionName      string    `description:"权限名"`
+	Sort                int       `description:"排序"`
+	Enabled             int       `description:"是否可用"`
+	CreatedTime         time.Time `description:"创建时间"`
+	LastUpdatedTime     time.Time `description:"更新时间"`
+	Remark              string    `description:"备注"`
+	ImageURL            string    `description:"图片地址"`
+	ParentId            int       `description:"父级权限id" json:"parent_id"`
+	IsPublic            int       `description:"是否是公有权限1:公有权限,0私有权限"`
+}
+
+type ChartPermissionResp[T any] struct {
+	Ret    int
+	Data   T
+	Msg    string
+	ErrMsg string
+}
+
+type ChartPermissionTreeView struct {
+	ChartPermissionId int                        `description:"权限ID"`
+	PermissionName    string                     `description:"权限名"`
+	Child             []*ChartPermissionTreeView `description:"子权限"`
+	IsPublic          int                        `description:"是否是公有权限1:公有权限,0私有权限"`
+	Sort              int                        `description:"排序"`
+}

+ 16 - 0
models/user_chart_permission_mapping.go

@@ -0,0 +1,16 @@
+package models
+
+import "github.com/beego/beego/v2/client/orm"
+
+type UserChartPermissionMapping struct {
+	UserChartPermissionMappingId int `orm:"pk" description:"id"`
+	UserId                       int `description:"用户id"`
+	ChartPermissionId            int `description:"品种id"`
+}
+
+func GetChartPermissionIdByUserId(UserId int) (items []int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT chart_permission_id FROM user_chart_permission_mapping WHERE user_id=?`
+	_, err = o.Raw(sql, UserId).QueryRows(&items)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -178,6 +178,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_mini_api/controllers:UserAuthController"] = append(beego.GlobalControllerRouter["eta/eta_mini_api/controllers:UserAuthController"],
+        beego.ControllerComments{
+            Method: "PermissionList",
+            Router: `/permission/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_mini_api/controllers:UserController"] = append(beego.GlobalControllerRouter["eta/eta_mini_api/controllers:UserController"],
         beego.ControllerComments{
             Method: "AreaCodeList",

+ 22 - 95
services/chart_permission.go

@@ -2,67 +2,18 @@ package services
 
 import (
 	"encoding/json"
+	"eta/eta_mini_api/models"
 	"eta/eta_mini_api/utils"
-	"io"
-	"net/http"
-	"strconv"
-	"time"
+	"fmt"
 )
 
-type ChartPermission struct {
-	ChartPermissionId   int       `description:"问题ID"`
-	ChartPermissionName string    `description:"名称"`
-	PermissionName      string    `description:"权限名"`
-	Sort                int       `description:"排序"`
-	Enabled             int       `description:"是否可用"`
-	CreatedTime         time.Time `description:"创建时间"`
-	LastUpdatedTime     time.Time `description:"更新时间"`
-	Remark              string    `description:"备注"`
-	ImageURL            string    `description:"图片地址"`
-	ParentId            int       `description:"父级权限id" json:"parent_id"`
-	IsPublic            int       `description:"是否是公有权限1:公有权限,0私有权限"`
-}
-
-type ChartPermissionResp struct {
-	Ret    int
-	Data   []*ChartPermission
-	Msg    string
-	ErrMsg string
-}
-
-func GetChartPermissionSecondList(chartPermissionId int) (resp *ChartPermissionResp, err error) {
+func GetChartPermissionSecondList(chartPermissionId int) (resp *models.ChartPermissionResp[[]models.ChartPermission], err error) {
 	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/second/list"
-	client := &http.Client{}
-	if url != "" {
-		url += "?chartPermissonId=" + strconv.Itoa(chartPermissionId)
-	}
-	// 提交请求
-	req, err := http.NewRequest("GET", url, nil)
-	if err != nil {
-		return
-	}
-	nonce := utils.GetRandStringNoSpecialChar(16)
-	timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
-	signature := utils.GetSign(nonce, timestamp, utils.ETA_MINI_APPID, utils.ETA_MINI_APP_SECRET)
-	//增加header选项
-	req.Header.Add("Nonce", nonce)
-	req.Header.Add("Timestamp", timestamp)
-	req.Header.Add("Appid", utils.ETA_MINI_APPID)
-	req.Header.Add("Signature", signature)
-	req.Header.Set("Content-Type", "application/json")
-
-	response, err := client.Do(req)
-	if err != nil {
-		return
-	}
-	defer response.Body.Close()
-
-	body, err := io.ReadAll(response.Body)
-
+	url += fmt.Sprintf("?chartPermissonId=%d", chartPermissionId)
+	body, err := HttpGet(url)
 	if err != nil {
 		return
 	}
-	utils.FileLog.Info("result:" + string(body))
 	err = json.Unmarshal(body, &resp)
 	if err != nil {
 		return
@@ -71,78 +22,54 @@ func GetChartPermissionSecondList(chartPermissionId int) (resp *ChartPermissionR
 
 }
 
-func GetChartPermissionList() (resp *ChartPermissionResp, err error) {
+func GetChartPermissionList() (resp *models.ChartPermissionResp[[]models.ChartPermission], err error) {
 	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/list"
-	client := &http.Client{}
-	// 提交请求
-	req, err := http.NewRequest("GET", url, nil)
+	body, err := HttpGet(url)
 	if err != nil {
 		return
 	}
-	nonce := utils.GetRandStringNoSpecialChar(16)
-	timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
-	signature := utils.GetSign(nonce, timestamp, utils.ETA_MINI_APPID, utils.ETA_MINI_APP_SECRET)
-	//增加header选项
-	req.Header.Add("Nonce", nonce)
-	req.Header.Add("Timestamp", timestamp)
-	req.Header.Add("Appid", utils.ETA_MINI_APPID)
-	req.Header.Add("Signature", signature)
-	req.Header.Set("Content-Type", "application/json")
-
-	response, err := client.Do(req)
+	err = json.Unmarshal(body, &resp)
 	if err != nil {
 		return
 	}
-	defer response.Body.Close()
-
-	body, err := io.ReadAll(response.Body)
+	return
+}
 
+func GetPublicChartPermissionList() (resp *models.ChartPermissionResp[[]*models.ChartPermissionTreeView], err error) {
+	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/public/list"
+	body, err := HttpGet(url)
 	if err != nil {
 		return
 	}
-	utils.FileLog.Info("result:" + string(body))
 	err = json.Unmarshal(body, &resp)
 	if err != nil {
 		return
 	}
 	return
-
 }
 
-func GetChartPermissionAllList() (resp *ChartPermissionResp, err error) {
-	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/allList"
-	client := &http.Client{}
-	// 提交请求
-	req, err := http.NewRequest("GET", url, nil)
+func GetPrivateChartPermissionList() (resp *models.ChartPermissionResp[[]*models.ChartPermissionTreeView], err error) {
+	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/private/list"
+	body, err := HttpGet(url)
 	if err != nil {
 		return
 	}
-	nonce := utils.GetRandStringNoSpecialChar(16)
-	timestamp := time.Now().Format(utils.FormatDateTimeUnSpace)
-	signature := utils.GetSign(nonce, timestamp, utils.ETA_MINI_APPID, utils.ETA_MINI_APP_SECRET)
-	//增加header选项
-	req.Header.Add("Nonce", nonce)
-	req.Header.Add("Timestamp", timestamp)
-	req.Header.Add("Appid", utils.ETA_MINI_APPID)
-	req.Header.Add("Signature", signature)
-	req.Header.Set("Content-Type", "application/json")
-
-	response, err := client.Do(req)
+	err = json.Unmarshal(body, &resp)
 	if err != nil {
 		return
 	}
-	defer response.Body.Close()
-
-	body, err := io.ReadAll(response.Body)
+	return
+}
 
+func GetChartPermissionAllList() (resp *models.ChartPermissionResp[[]*models.ChartPermission], err error) {
+	url := utils.ETA_MINI_BRIDGE_URL + "/chart_permission/allList"
+	body, err := HttpGet(url)
 	if err != nil {
 		return
 	}
-	utils.FileLog.Info("result:" + string(body))
 	err = json.Unmarshal(body, &resp)
 	if err != nil {
 		return
 	}
 	return
-
 }

+ 7 - 0
utils/constants.go

@@ -14,6 +14,13 @@ const (
 	ReportPermissionStatusHas          = 4 //有该品种权限
 )
 
+// 用户状态定义
+const (
+	UserStatusNo        = 0 //禁用
+	UserStatusPotential = 1 //潜在用户
+	UserStatusFormal    = 2 //正式用户
+)
+
 // 常量定义
 const (
 	FormatTime            = "15:04:05"                //时间格式