|
@@ -6,7 +6,11 @@ import (
|
|
|
"eta_gn/eta_api/models"
|
|
|
"eta_gn/eta_api/models/bi_dashboard"
|
|
|
"eta_gn/eta_api/models/system"
|
|
|
+ biapprove "eta_gn/eta_api/services/bi_approve"
|
|
|
"eta_gn/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
+ "strconv"
|
|
|
+ "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -84,12 +88,12 @@ func (this *BIDaShboardController) AddDashboard() {
|
|
|
return
|
|
|
}
|
|
|
detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
|
|
|
- for _, v := range req.List {
|
|
|
+ for i, v := range req.List {
|
|
|
item := &bi_dashboard.BiDashboardDetail{
|
|
|
BiDashboardId: int(id),
|
|
|
Type: v.Type,
|
|
|
UniqueCode: v.UniqueCode,
|
|
|
- Sort: v.Sort,
|
|
|
+ Sort: i + 1,
|
|
|
CreateTime: time.Now(),
|
|
|
ModifyTime: time.Now(),
|
|
|
}
|
|
@@ -149,8 +153,18 @@ func (this *BIDaShboardController) EditDashboard() {
|
|
|
item.ModifyTime = time.Now()
|
|
|
|
|
|
err = bi_dashboard.EditDashboard(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
err = bi_dashboard.DeleteBiDashboardDetail(req.BiDashboardId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "删除详情失败"
|
|
|
+ br.ErrMsg = "删除详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
detailList := make([]*bi_dashboard.BiDashboardDetail, 0)
|
|
|
for _, v := range req.List {
|
|
@@ -229,6 +243,42 @@ func (this *BIDaShboardController) DeleteDashboard() {
|
|
|
br.Msg = "删除成功"
|
|
|
}
|
|
|
|
|
|
+// DeleteDashboard
|
|
|
+// @Title 删除看板详情
|
|
|
+// @Description 删除看板详情接口
|
|
|
+// @Param request body bi_dashboard.DelDashboardDetailReq true "type json string"
|
|
|
+// @Success 200 Ret=200 删除成功
|
|
|
+// @router /detail/delete [post]
|
|
|
+func (this *BIDaShboardController) DeleteDashboardDetail() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.DelDashboardDetailReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.BiDashboardDetailId <= 0 {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = bi_dashboard.DeleteBiDashboardDetailByDetailId(req.BiDashboardDetailId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "删除失败"
|
|
|
+ br.ErrMsg = "删除失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "删除成功"
|
|
|
+}
|
|
|
+
|
|
|
// DetailDashboard
|
|
|
// @Title 获取看板详情
|
|
|
// @Description 获取看板详情接口
|
|
@@ -370,7 +420,6 @@ func (this *BIDaShboardController) ShareList() {
|
|
|
//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) `
|
|
@@ -398,7 +447,6 @@ func (this *BIDaShboardController) ShareList() {
|
|
|
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)
|
|
@@ -485,19 +533,366 @@ func (this *BIDaShboardController) PublicList() {
|
|
|
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)
|
|
|
+ grantList := bi_dashboard.RespGroupList{}
|
|
|
+ // 获取公共看板列表
|
|
|
+ publicCond := ` AND state = 6 `
|
|
|
+ publicPars := []interface{}{this.SysUser.AdminId}
|
|
|
+ publicList, err := bi_dashboard.GetBiDashboardList(publicCond, publicPars)
|
|
|
if err != nil {
|
|
|
err = errors.New("我的看板列表查询出错:" + err.Error())
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ //dashboardMap := make(map[int]*bi_dashboard.BiDashboard)
|
|
|
+ adminIdList := make([]int, 0) //需要查询的创建人admin_id列表集合
|
|
|
+ adminIdMap := make(map[int]int) //需要查询的创建人admin_id集合,用来去重的,避免重复id
|
|
|
+
|
|
|
+ publicAdminIdList := make([]int, 0)
|
|
|
+ publicDashboardListMap := make(map[int][]*bi_dashboard.BiDashboard)
|
|
|
+ for _, v := range publicList {
|
|
|
+ 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)
|
|
|
+ }
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "查询成功"
|
|
|
- br.Data = privateList
|
|
|
+ br.Data = publicList
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// AddDashboardClassify
|
|
|
+// @Title 新增看板分类
|
|
|
+// @Description 新增看板分类接口
|
|
|
+// @Param request body bi_dashboard.AddDashboardClassifyReq true "type json string"
|
|
|
+// @Success 200 Ret=200 新增成功
|
|
|
+// @router /classify/add [post]
|
|
|
+func (this *BIDaShboardController) AddDashboardClassify() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.AddDashboardClassifyReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ClassifyName == "" {
|
|
|
+ br.Msg = "名称不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ maxSort, err := bi_dashboard.GetBiDashboardClassifyMaxSort()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取最大排序值失败"
|
|
|
+ br.ErrMsg = "获取最大排序值失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ item := &bi_dashboard.BiDashboardClassify{
|
|
|
+ BiDashboardClassifyName: req.ClassifyName,
|
|
|
+ Sort: maxSort + 1,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ ModifyTime: time.Now(),
|
|
|
+ }
|
|
|
+ _, e := bi_dashboard.AddBiDashboardClassify(item)
|
|
|
+ if e != nil {
|
|
|
+ err = e
|
|
|
+ br.Msg = "新增失败"
|
|
|
+ br.ErrMsg = "新增失败,Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "新增成功"
|
|
|
+ //br.Data =
|
|
|
+}
|
|
|
+
|
|
|
+// EditDashboardClassify
|
|
|
+// @Title 编辑看板分类
|
|
|
+// @Description 编辑看板分类接口
|
|
|
+// @Param request body bi_dashboard.EditDashboardReq true "type json string"
|
|
|
+// @Success 200 Ret=200 编辑成功
|
|
|
+// @router /classify/edit [post]
|
|
|
+func (this *BIDaShboardController) EditDashboardClassify() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.EditDashboardClassifyReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ClassifyName == "" {
|
|
|
+ br.Msg = "标题不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.BiDashboardClassifyId <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误, BiDashboardClassifyId: %d", req.BiDashboardClassifyId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item, err := bi_dashboard.GetBiDashboardClassifyById(req.BiDashboardClassifyId)
|
|
|
+ if err != nil && !utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "获取数据异常!"
|
|
|
+ br.ErrMsg = "获取数据异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改
|
|
|
+ item.BiDashboardClassifyName = req.ClassifyName
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
+
|
|
|
+ err = bi_dashboard.EditDashboardClassify(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "编辑成功"
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|
|
|
+
|
|
|
+// EditDashboardClassify
|
|
|
+// @Title 删除看板分类
|
|
|
+// @Description 删除看板分类接口
|
|
|
+// @Param request body bi_dashboard.DelDashboardClassifyReq true "type json string"
|
|
|
+// @Success 200 Ret=200 编辑成功
|
|
|
+// @router /classify/del [post]
|
|
|
+func (this *BIDaShboardController) DelDashboardClassify() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.DelDashboardClassifyReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.BiDashboardClassifyId <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误, BiDashboardClassifyId: %d", req.BiDashboardClassifyId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = bi_dashboard.DelBiDashboardClassify(req.BiDashboardClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "删除成功"
|
|
|
+ br.IsAddLog = true
|
|
|
+}
|
|
|
+
|
|
|
+// Grant
|
|
|
+// @Title 分配看板权限
|
|
|
+// @Description 分配看板权限接口
|
|
|
+// @Param request body models.GrantPptReq true "type json string"
|
|
|
+// @Success 200 Ret=200 分配成功
|
|
|
+// @router /grant [post]
|
|
|
+func (this *BIDaShboardController) Grant() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.GrantDashboardReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.AdminIdStr == "" {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.BiDashboardId <= 0 {
|
|
|
+ br.Msg = "参数错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ dashboardItem, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
|
|
|
+ if err != nil {
|
|
|
+ err = errors.New("我的看板列表查询出错:" + err.Error())
|
|
|
+ br.Msg = "我的看板列表查询出错"
|
|
|
+ br.ErrMsg = err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if dashboardItem.SysAdminId != this.SysUser.AdminId {
|
|
|
+ br.Msg = "无权配置"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ list := make([]*bi_dashboard.BiDashboardGrant, 0)
|
|
|
+
|
|
|
+
|
|
|
+ grantAdminIdStrList := strings.Split(req.AdminIdStr, ",")
|
|
|
+ lenGrantAdminIdStrList := len(grantAdminIdStrList) //指定用户的人数
|
|
|
+ for _, v := range grantAdminIdStrList {
|
|
|
+ grantAdminId, tmpErr := strconv.Atoi(v)
|
|
|
+ if tmpErr != nil {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //如果只选择了自己作为指定的人,那么就提示他报错。如果多人,那么就过滤自己
|
|
|
+ if grantAdminId == this.SysUser.AdminId {
|
|
|
+ if lenGrantAdminIdStrList == 1 {
|
|
|
+ br.Msg = "不能指定自己为权限用户"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", tmpErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ tmpV := &bi_dashboard.BiDashboardGrant{
|
|
|
+ BiDashboardId: req.BiDashboardId,
|
|
|
+ GrantAdminId: grantAdminId,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ }
|
|
|
+ list = append(list, tmpV)
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(list) <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = fmt.Sprintf("参数有误,Err:%s", "指定用户为空")
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ err = bi_dashboard.MultiAddDashboardGrant(req.BiDashboardId, list)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "分配失败"
|
|
|
+ br.ErrMsg = fmt.Sprintf("分配失败,Err:%s", err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "分配成功"
|
|
|
+}
|
|
|
+
|
|
|
+// Public
|
|
|
+// @Title
|
|
|
+// @Description 设置公共看板
|
|
|
+// @Param request body models.GrantPptReq true "type json string"
|
|
|
+// @Success 200 Ret=200 分配成功
|
|
|
+// @router /public [post]
|
|
|
+func (this *BIDaShboardController) Public() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req bi_dashboard.PublicDashboardReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 校验是否开启了审批流
|
|
|
+ opening, e := biapprove.CheckBiOpenApprove(req.ClassifyId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "校验报告是否开启审批流失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ if opening {
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ item, err := bi_dashboard.GetDashboardById(req.BiDashboardId)
|
|
|
+ if err != nil && !utils.IsErrNoRow(err) {
|
|
|
+ br.Msg = "获取数据异常!"
|
|
|
+ br.ErrMsg = "获取数据异常,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item.BiDashboardClassifyId = req.ClassifyId
|
|
|
+
|
|
|
+ err = bi_dashboard.EditDashboard(item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "编辑失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "分配成功"
|
|
|
+}
|