package eta_business import ( "encoding/json" "hongze/hz_crm_api/controllers" "hongze/hz_crm_api/models" "hongze/hz_crm_api/models/eta_business" etaBusinessService "hongze/hz_crm_api/services/eta_business" ) // EtaBusinessMenuController ETA商家菜单 type EtaBusinessMenuController struct { controllers.BaseAuthController } // List // @Title 商家菜单列表 // @Description 商家菜单列表 // @Param BusinessId query int false "商家ID" // @Success 200 Ret=200 获取成功 // @router /menu/list [get] func (this *EtaBusinessMenuController) List() { 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 } resp := new(eta_business.EtaBusinessMenuListResp) resp.ChoiceList = make([]int, 0) resp.HalfChoiceList = make([]int, 0) resp.List = make([]*eta_business.EtaBusinessMenuItem, 0) // 权限校验 ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode) if e != nil { br.Msg = "操作失败" br.ErrMsg = "操作权限校验失败, ErrMsg: " + e.Error() return } if !ok { br.Data = resp br.Ret = 200 br.Success = true br.Msg = "获取成功" return } // 商家勾选的权限 businessId, _ := this.GetInt("EtaBusinessId", 0) if businessId > 0 { relateOb := new(eta_business.EtaBusinessMenuRelate) cond := ` AND eta_business_id = ?` pars := make([]interface{}, 0) pars = append(pars, businessId) relates, e := relateOb.GetItemsByCondition(cond, pars, []string{}, "") if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取商家菜单关联列表失败, Err: " + e.Error() return } for _, r := range relates { if r.Type == 1 { resp.HalfChoiceList = append(resp.HalfChoiceList, r.MenuId) continue } resp.ChoiceList = append(resp.ChoiceList, r.MenuId) } } menuOb := new(eta_business.EtaBusinessMenu) order := `sort ASC, create_time DESC, menu_id DESC` list, e := menuOb.GetItemsByCondition("", make([]interface{}, 0), []string{}, order) if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取商家菜单列表失败, Err: " + e.Error() return } items := make([]*eta_business.EtaBusinessMenuItem, 0) for _, v := range list { t := &eta_business.EtaBusinessMenuItem{ MenuId: v.MenuId, ParentId: v.ParentId, Name: v.Name, Sort: v.Sort, Path: v.Path, PathName: v.PathName, IconPath: v.IconPath, Component: v.Component, Hidden: v.Hidden, HiddenLayout: v.HiddenLayout, Level: v.Level, MenuType: v.MenuType, ButtonCode: v.ButtonCode, Children: make([]*eta_business.EtaBusinessMenuItem, 0), } items = append(items, t) } // 递归返回树形结构 items = etaBusinessService.GetMenuTreeRecursive(items, 0) resp.List = items br.Data = resp br.Ret = 200 br.Success = true br.Msg = "获取成功" } // SaveRelate // @Title 保存商家菜单关联 // @Description 保存商家菜单关联 // @Param request body eta_business.EtaBusinessAddReq true "type json string" // @Success 200 Ret=200 操作成功 // @router /menu/relate/save [post] func (this *EtaBusinessMenuController) SaveRelate() { 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 } // 操作权限校验 ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode) if e != nil { br.Msg = "操作失败" br.ErrMsg = "操作权限校验失败, ErrMsg: " + e.Error() return } if !ok { br.Msg = "无权操作" return } // 参数校验 var req eta_business.EtaBusinessMenuRelateSaveReq if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil { br.Msg = "参数解析异常!" br.ErrMsg = "参数解析失败,Err:" + e.Error() return } if req.EtaBusinessId <= 0 { br.Msg = "参数有误" return } if len(req.MenuIds) == 0 { br.Msg = "请选择菜单" return } ob := new(eta_business.EtaBusinessMenuRelate) items := make([]*eta_business.EtaBusinessMenuRelate, 0) for _, v := range req.MenuIds { t := new(eta_business.EtaBusinessMenuRelate) t.MenuId = v t.EtaBusinessId = req.EtaBusinessId items = append(items, t) } for _, v := range req.HalfMenuIds { t := new(eta_business.EtaBusinessMenuRelate) t.MenuId = v t.Type = 1 t.EtaBusinessId = req.EtaBusinessId items = append(items, t) } if e := ob.CreateMulti(req.EtaBusinessId, items); e != nil { br.Msg = "保存失败" br.ErrMsg = "保存商家菜单关联失败, Err: " + e.Error() return } // TODO:后续需要生成SQL脚本文件 br.Ret = 200 br.Success = true br.Msg = "操作成功" }