zwxi 6 months ago
parent
commit
0b8a05f60d

+ 160 - 16
controllers/bi_dashboard.go

@@ -5,6 +5,7 @@ import (
 	"errors"
 	"eta_gn/eta_api/models"
 	"eta_gn/eta_api/models/bi_dashboard"
+	"eta_gn/eta_api/models/system"
 	"eta_gn/eta_api/utils"
 	"time"
 )
@@ -67,13 +68,13 @@ func (this *BIDaShboardController) AddDashboard() {
 
 	item := &bi_dashboard.BiDashboard{
 		//BiDashboardClassifyId: req.ClassifyId,
-		BiDashboardName:       req.BiDashboardName,
-		SysAdminId:            this.SysUser.AdminId,
-		SysAdminName:          this.SysUser.AdminName,
+		BiDashboardName: req.BiDashboardName,
+		SysAdminId:      this.SysUser.AdminId,
+		SysAdminName:    this.SysUser.AdminName,
 		//Sort:                  0,
-		CreateTime:            time.Now(),
-		ModifyTime:            time.Now(),
-		State:                 1,
+		CreateTime: time.Now(),
+		ModifyTime: time.Now(),
+		State:      1,
 	}
 	id, e := bi_dashboard.AddBiDashboard(item)
 	if e != nil {
@@ -101,7 +102,6 @@ func (this *BIDaShboardController) AddDashboard() {
 		return
 	}
 
-
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "新增成功"
@@ -253,7 +253,6 @@ func (this *BIDaShboardController) DetailDashboard() {
 	}
 	dashboardId, _ := this.GetInt("DashboardId")
 
-
 	dashboardItem, err := bi_dashboard.GetDashboardById(dashboardId)
 	if err != nil {
 		err = errors.New("我的看板列表查询出错:" + err.Error())
@@ -269,7 +268,6 @@ func (this *BIDaShboardController) DetailDashboard() {
 		return
 	}
 
-
 	resp := new(bi_dashboard.DashboardDetailResp)
 	resp.BiDashboard = dashboardItem
 	resp.List = detailList
@@ -308,12 +306,11 @@ func (this *BIDaShboardController) MoveDashboard() {
 		br.Msg = "看板Id有误"
 		return
 	}
-	if req.Sort < 0 || req.OtherSort < 0 || req.Sort == req.OtherSort{
+	if req.Sort < 0 || req.OtherSort < 0 || req.Sort == req.OtherSort {
 		br.Msg = "排序有误"
 		return
 	}
 
-
 	item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
 	if err != nil && !utils.IsErrNoRow(err) {
 		br.Msg = "获取数据异常!"
@@ -330,8 +327,8 @@ func (this *BIDaShboardController) MoveDashboard() {
 	// 修改
 	detailItem := &bi_dashboard.BiDashboardDetail{
 		BiDashboardDetailId: req.BiDashboardDetailId,
-		Sort:          req.OtherSort,
-		ModifyTime:    time.Now(),
+		Sort:                req.OtherSort,
+		ModifyTime:          time.Now(),
 	}
 	err = bi_dashboard.EditBiDashboardDetail(detailItem)
 	if err != nil {
@@ -342,8 +339,8 @@ func (this *BIDaShboardController) MoveDashboard() {
 
 	otherItem := &bi_dashboard.BiDashboardDetail{
 		BiDashboardDetailId: req.OtherDetailId,
-		Sort:          req.Sort,
-		ModifyTime:    time.Now(),
+		Sort:                req.Sort,
+		ModifyTime:          time.Now(),
 	}
 	err = bi_dashboard.EditBiDashboardDetail(otherItem)
 	if err != nil {
@@ -356,4 +353,151 @@ func (this *BIDaShboardController) MoveDashboard() {
 	br.Success = true
 	br.Msg = "编辑成功"
 	br.IsAddLog = true
-}
+}
+
+// ShareList
+// @Title 获取共享列表
+// @Description 获取共享列表接口
+// @Success 200 {object} models.RespGroupList
+// @router /share_list [get]
+func (this *BIDaShboardController) ShareList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	//myPptList := make([]*bi_dashboard.BiDashboard, 0)
+	//otherPptList := make([]*bi_dashboard.BiDashboard, 0)
+	grantList := bi_dashboard.RespGroupList{}
+	dashboradIds := make([]int, 0)
+
+	// 获取我的看板列表
+	ShareCond := ` AND sys_admin_id = ? AND state IN (1,6) `
+	SharePars := []interface{}{this.SysUser.AdminId}
+	ShareList, err := bi_dashboard.GetBiDashboardList(ShareCond, SharePars)
+	if err != nil {
+		err = errors.New("我的看板列表查询出错:" + err.Error())
+		br.ErrMsg = err.Error()
+		br.Msg = "查询失败"
+		return
+	}
+	grantList.MyList = ShareList
+
+	//dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
+	adminIdList := make([]int, 0)   //需要查询的创建人admin_id列表集合
+	adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
+	grantDashboardList, err := bi_dashboard.GetAllGrantList(this.SysUser.AdminId)
+	if err != nil {
+		err = errors.New("我的看板列表查询出错:" + err.Error())
+		br.ErrMsg = err.Error()
+		br.Msg = "查询失败"
+		return
+	}
+
+	publicAdminIdList := make([]int, 0)
+	publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
+	for _, v := range grantDashboardList {
+		dashboradIds = append(dashboradIds, v.BiDashboardId)
+		publicDashboardList, ok := publicDashboardListMap[v.SysAdminId]
+		if !ok {
+			publicDashboardList = make([]*bi_dashboard.BiDashboard, 0)
+			publicAdminIdList = append(publicAdminIdList, v.SysAdminId)
+			if _, ok := adminIdMap[v.SysAdminId]; !ok {
+				adminIdList = append(adminIdList, v.SysAdminId) //需要查询的创建人admin_id列表集合
+				adminIdMap[v.SysAdminId] = v.SysAdminId         //需要查询的创建人admin_id集合,用来去重的,避免重复id
+			}
+		}
+
+		tmp := &bi_dashboard.BiDashboard{
+			BiDashboardId:   v.BiDashboardId,
+			BiDashboardName: v.BiDashboardName,
+			CreateTime:      v.CreateTime,
+			ModifyTime:      v.ModifyTime,
+			Sort:            v.Sort,
+			State:           v.State,
+			SysAdminId:      v.SysAdminId,
+			SysAdminName:    v.SysAdminName,
+		}
+		publicDashboardList = append(publicDashboardList, tmp)
+		publicDashboardListMap[v.SysAdminId] = publicDashboardList
+	}
+	// 创建人信息
+	systemAdminMap := make(map[int]*system.Admin)
+	systemAdminList, err := system.GetAdminListByIdList(adminIdList)
+	if err != nil {
+		return
+	}
+	for _, v := range systemAdminList {
+		systemAdminMap[v.AdminId] = v
+	}
+
+	for _, v := range publicAdminIdList {
+		systemAdmin, ok := systemAdminMap[v]
+		if !ok {
+			continue
+		}
+
+		// 看板 列表信息
+		respGroupNameListItemList, ok := publicDashboardListMap[v]
+		if !ok {
+			respGroupNameListItemList = make([]*bi_dashboard.BiDashboard, 0)
+		}
+
+		// ppt 分组信息
+		tmpRespGroupListItem := &bi_dashboard.RespOtherGroupListItem{
+			GroupId:       int64(systemAdmin.AdminId),
+			GroupName:     systemAdmin.RealName,
+			AdminId:       systemAdmin.AdminId,
+			DashboardList: respGroupNameListItemList,
+		}
+		grantList.OtherList = append(grantList.OtherList, tmpRespGroupListItem)
+	}
+	//if len(dashboradIds) > 0 {
+	//	// 通过dashboradIds列表字段获取所有的看板信息
+	//	dashboradList, tmpErr := bi_dashboard.GetDashboradByIds(dashboradIds)
+	//	if tmpErr != nil {
+	//		err = errors.New("查询dashborad详情出错:" + err.Error())
+	//		br.Msg = "查询dashborad详情出错"
+	//		br.ErrMsg = err.Error()
+	//		return
+	//	}
+	//	for _, v := range dashboradList {
+	//		dashboardMap[v.BiDashboardId] = v
+	//	}
+	//}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "查询成功"
+	br.Data = grantList
+	return
+}
+
+// PublicList
+// @Title 获取公共列表
+// @Description 获取公共列表接口
+// @Success 200 {object} models.RespGroupList
+// @router /public_list [get]
+func (this *BIDaShboardController) PublicList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	// 获取我的看板列表
+	privateCond := ` AND sys_admin_id = ? AND state IN (1,6) `
+	privatePars := []interface{}{this.SysUser.AdminId}
+	privateList, err := bi_dashboard.GetBiDashboardList(privateCond, privatePars)
+	if err != nil {
+		err = errors.New("我的看板列表查询出错:" + err.Error())
+		return
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "查询成功"
+	br.Data = privateList
+	return
+}

+ 18 - 0
models/bi_dashboard/bi_dashboard.go

@@ -100,4 +100,22 @@ func EditDashboard(item *BiDashboard) (err error) {
 
 type DelDashboardReq struct {
 	BiDashboardId   int    `description:"看板id"`
+}
+
+func GetDashboradByIds(dashboradIds []int) (list []*BiDashboard, err error) {
+	//_, err = orm.NewOrmUsingDB("rddp").
+	//	QueryTable("ppt_v2").
+	//	Filter("ppt_id__in", pptIds).
+	//	All(&list)
+	err = global.DEFAULT_DmSQL.Table("bi_dashboard").Where("bi_dashboard_id IN ?", dashboradIds).Find(&list).Error
+
+	return
+}
+
+// GetAllGrantList 获取已经有权限的看板列表
+func GetAllGrantList(sysUserId int) (list []*BiDashboard, err error) {
+	sql := `SELECT a.* FROM bi_dashboard a JOIN bi_dashboard_grant b on a.bi_dashboard_id=b.bi_dashboard_id 
+ WHERE b.grant_admin_id=? GROUP BY a.bi_dashboard_id`
+	err = global.DEFAULT_DmSQL.Raw(sql, sysUserId, sysUserId).Find(&list).Error
+	return
 }

+ 11 - 6
models/bi_dashboard/bi_dashboard_classify.go

@@ -33,17 +33,22 @@ func AddBiDashboardClassify(item *BiDashboardClassify) (lastId int64, err error)
 }
 
 type RespGroupList struct {
-	PublicList  []*RespGroupListItem
-	PrivateList []*BiDashboard
-	GrantList   []RespGroupListItem
+	MyList  []*BiDashboard
+	OtherList   []*RespOtherGroupListItem
 }
 
-type RespGroupListItem struct {
+type RespMyGroupListItem struct {
 	GroupId       int64  `description:"目录id"`
 	GroupName     string `description:"目录名称"`
 	AdminId       int    `description:"目录创建者账号ID"`
-	IsShare       int8   `description:"是否共享,0私有,1共享"`
-	DashboardList []*RespGroupDashboardListItem
+	DashboardList []*BiDashboard
+}
+
+type RespOtherGroupListItem struct {
+	GroupId       int64  `description:"目录id"`
+	GroupName     string `description:"目录名称"`
+	AdminId       int    `description:"目录创建者账号ID"`
+	DashboardList []*BiDashboard
 }
 
 type RespGroupDashboardListItem struct {

+ 0 - 7
models/bi_dashboard/bi_dashboard_grant.go

@@ -17,10 +17,3 @@ func (m *BiDashboardGrant) TableName() string {
 	return "bi_dashboard_grant"
 }
 
-// GetAllGrantList 获取已经有权限的看板列表
-func GetAllGrantList(sysUserId int) (list []*BiDashboardGrant, err error) {
-	sql := `SELECT a.* FROM bi_dashboard a JOIN bi_dashboard_grant b on a.bi_dashboard_id=b.bi_dashboard_id 
- WHERE a.admin_id=? OR b.grant_admin_id=? GROUP BY a.bi_dashboard_id`
-	err = global.DEFAULT_DmSQL.Raw(sql, sysUserId, sysUserId).Find(&list).Error
-	return
-}

+ 18 - 0
routers/commentsRouter.go

@@ -8215,6 +8215,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "PublicList",
+            Router: `/public_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BIDaShboardController"],
+        beego.ControllerComments{
+            Method: "ShareList",
+            Router: `/share_list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BannerController"] = append(beego.GlobalControllerRouter["eta_gn/eta_api/controllers:BannerController"],
         beego.ControllerComments{
             Method: "Upload",