package controllers import ( "encoding/json" "errors" "eta_gn/eta_api/models" "eta_gn/eta_api/models/bi_dashboard" "eta_gn/eta_api/services/ppt" "eta_gn/eta_api/utils" "time" ) type BIDaShboardController struct { BaseAuthController } // GroupList // @Title 获取我的列表 // @Description 获取我的列表接口 // @Success 200 {object} models.RespGroupList // @router /my_list [get] func (this *BIDaShboardController) MyList() { 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 } // AddDashboard // @Title 新增看板 // @Description 新增看板接口 // @Param request body models.AddDashboardReq true "type json string" // @Success 200 Ret=200 新增成功 // @router /add [post] func (this *BIDaShboardController) AddDashboard() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req bi_dashboard.AddDashboardReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.BiDashboardName == "" { br.Msg = "名称不能为空" return } item := &bi_dashboard.BiDashboard{ //BiDashboardClassifyId: req.ClassifyId, BiDashboardName: req.BiDashboardName, SysAdminId: this.SysUser.AdminId, SysAdminName: this.SysUser.AdminName, //Sort: 0, CreateTime: time.Now(), ModifyTime: time.Now(), State: 1, } id, e := bi_dashboard.AddBiDashboard(item) if e != nil { err = e br.Msg = "新增失败" br.ErrMsg = "新增失败,Err:" + e.Error() return } detailList := make([]*bi_dashboard.BiDashboardDetail, 0) for _, v := range req.List { item := &bi_dashboard.BiDashboardDetail{ BiDashboardId: int(id), Type: v.Type, UniqueCode: v.UniqueCode, Sort: v.Sort, CreateTime: time.Now(), ModifyTime: time.Now(), } detailList = append(detailList, item) } err = bi_dashboard.AddBiDashboardDetailMulti(detailList) if err != nil { br.Msg = "新增详情失败" br.ErrMsg = "新增详情失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "新增成功" //br.Data = } // EditPpt // @Title 编辑看板 // @Description 编辑看板接口 // @Param request body models.AddPptV2Req true "type json string" // @Success 200 Ret=200 编辑成功 // @router /edit [post] func (this *BIDaShboardController) EditDashboard() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req bi_dashboard.EditDashboardReq err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.BiDashboardName == "" { br.Msg = "标题不能为空" return } item, err := bi_dashboard.GetDashboardById(req.BiDashboardId) if err != nil && !utils.IsErrNoRow(err) { br.Msg = "获取数据异常!" br.ErrMsg = "获取数据异常,Err:" + err.Error() return } // 判断权限 if item.SysAdminId != this.SysUser.AdminId { br.Msg = `无权编辑` return } // 修改 item.BiDashboardName = req.BiDashboardName item.ModifyTime = time.Now() err = bi_dashboard.EditDashboard(item) err = bi_dashboard.DeleteBiDashboardDetail(req.BiDashboardId) detailList := make([]*bi_dashboard.BiDashboardDetail, 0) for _, v := range req.List { item := &bi_dashboard.BiDashboardDetail{ BiDashboardId: req.BiDashboardId, Type: v.Type, UniqueCode: v.UniqueCode, Sort: v.Sort, CreateTime: time.Now(), ModifyTime: time.Now(), } detailList = append(detailList, item) } err = bi_dashboard.AddBiDashboardDetailMulti(detailList) if err != nil { br.Msg = "新增详情失败" br.ErrMsg = "新增详情失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.Msg = "编辑成功" br.IsAddLog = true } // DeletePpt // @Title 删除ppt // @Description 删除ppt接口 // @Param request body models.DeletePptV2Req true "type json string" // @Success 200 Ret=200 删除成功 // @router /delete [post] func (this *BIDaShboardController) DeleteDashboard() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() var req models.DeletePptV2Req err := json.Unmarshal(this.Ctx.Input.RequestBody, &req) if err != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + err.Error() return } if req.PptId <= 0 { br.Msg = "参数错误" return } pptInfo, err := models.GetPptV2ById(req.PptId) if err != nil { br.Msg = "ppt不存在" return } if pptInfo.AdminId != this.SysUser.AdminId { br.Msg = "无权删除" return } err = models.DeletePptV2(req.PptId) if err != nil { br.Msg = "删除失败" br.ErrMsg = "删除失败,Err:" + err.Error() return } //如果该ppt存在单个共享记录,则删除共享 err = ppt.DeleteGroupPpt(req.PptId) if err != nil { br.Msg = "删除失败" br.ErrMsg = "删除失败,Err:" + err.Error() return } br.Ret = 200 br.Success = true br.IsAddLog = true br.Msg = "删除成功" } // DetailPpt // @Title 获取ppt详情 // @Description 获取ppt详情接口 // @Param PptId query int true "PptId" // @Success 200 {object} models.PptV2 // @router /detail [get] func (this *BIDaShboardController) DetailDashboard() { br := new(models.BaseResponse).Init() defer func() { if br.ErrMsg == "" { br.IsSendEmail = false } this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } dashboardId, _ := this.GetInt("DashboardId") dashboardItem, err := bi_dashboard.GetDashboardById(dashboardId) if err != nil { err = errors.New("我的看板列表查询出错:" + err.Error()) br.Msg = "我的看板列表查询出错" br.ErrMsg = err.Error() return } detailList, err := bi_dashboard.GetBiDashboardDetailById(dashboardId) if err != nil { br.Msg = "详情获取失败" br.ErrMsg = "详情获取失败,Err:" + err.Error() return } resp := new(bi_dashboard.DashboardDetailResp) resp.BiDashboard = dashboardItem resp.List = detailList br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }