Browse Source

商家配置菜单权限

hsun 1 year ago
parent
commit
ba16b9ef05

+ 32 - 3
controllers/eta_business/eta_business_menu.go

@@ -37,6 +37,7 @@ func (this *EtaBusinessMenuController) List() {
 	}
 
 	resp := new(eta_business.EtaBusinessMenuListResp)
+	resp.ChoiceList = make([]int, 0)
 	resp.List = make([]*eta_business.EtaBusinessMenuItem, 0)
 	// 权限校验
 	ok, e := etaBusinessService.CheckEtaBusinessOperateAuth(sysUser.RoleTypeCode)
@@ -53,10 +54,22 @@ func (this *EtaBusinessMenuController) List() {
 		return
 	}
 
-	// TODO:商家勾选的权限
-	businessId, _ := this.GetInt("BusinessId", 0)
+	// 商家勾选的权限
+	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 {
+			resp.ChoiceList = append(resp.ChoiceList, r.MenuId)
+		}
 	}
 
 	menuOb := new(eta_business.EtaBusinessMenu)
@@ -150,6 +163,22 @@ func (this *EtaBusinessMenuController) SaveRelate() {
 		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)
+	}
+	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 = "操作成功"

+ 4 - 2
models/eta_business/eta_business_menu.go

@@ -21,7 +21,9 @@ type EtaBusinessMenu struct {
 	Hidden       int       `description:"是否隐藏:1-隐藏 0-显示"`
 	HiddenLayout int       `description:"是否隐藏layout:1-隐藏 0-显示"`
 	Level        int       `description:"菜单等级:1-2-3"`
-	MenuType     string    `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
+	IsLevel      int       `description:"是否为多级菜单:1,只有一级;2,有多级"`
+	LevelPath    string    `description:"兼容以前menu表的字段"`
+	MenuType     int       `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
 	ButtonCode   string    `description:"按钮/菜单唯一标识"`
 	CreateTime   time.Time `description:"创建时间"`
 	ModifyTime   time.Time `description:"更新时间"`
@@ -138,7 +140,7 @@ type EtaBusinessMenuItem struct {
 	Hidden       int                    `description:"是否隐藏:1-隐藏 0-显示"`
 	HiddenLayout int                    `description:"是否隐藏layout:1-隐藏 0-显示"`
 	Level        int                    `description:"菜单等级:1-2-3"`
-	MenuType     string                 `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
+	MenuType     int                    `description:"菜单类型: 0-菜单; 1-按钮; 2-字段(需要特殊处理)"`
 	ButtonCode   string                 `description:"按钮/菜单唯一标识"`
 	Children     []*EtaBusinessMenuItem `description:"子菜单"`
 }

+ 23 - 3
models/eta_business/eta_business_menu_relate.go

@@ -31,12 +31,32 @@ func (m *EtaBusinessMenuRelate) Create() (err error) {
 	return
 }
 
-func (m *EtaBusinessMenuRelate) CreateMulti(items []*EtaBusinessMenuRelate) (err error) {
-	if len(items) == 0 {
+func (m *EtaBusinessMenuRelate) CreateMulti(businessId int, items []*EtaBusinessMenuRelate) (err error) {
+	if businessId == 0 {
 		return
 	}
 	o := orm.NewOrm()
-	_, err = o.InsertMulti(len(items), items)
+	tx, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = tx.Rollback()
+			return
+		}
+		_ = tx.Commit()
+	}()
+
+	sql := fmt.Sprintf(`DELETE FROM %s WHERE eta_business_id = ?`, m.TableName())
+	_, err = tx.Raw(sql, businessId).Exec()
+	if err != nil {
+		return
+	}
+
+	if len(items) > 0 {
+		_, err = tx.InsertMulti(len(items), items)
+	}
 	return
 }
 

+ 18 - 0
routers/commentsRouter.go

@@ -6550,6 +6550,24 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessMenuController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessMenuController"],
+        beego.ControllerComments{
+            Method: "List",
+            Router: `/menu/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessMenuController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/eta_business:EtaBusinessMenuController"],
+        beego.ControllerComments{
+            Method: "SaveRelate",
+            Router: `/menu/relate/save`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarController"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/roadshow:CalendarController"],
         beego.ControllerComments{
             Method: "Accept",

+ 1 - 0
routers/router.go

@@ -303,6 +303,7 @@ func init() {
 		web.NSNamespace("/eta_business",
 			web.NSInclude(
 				&eta_business.EtaBusinessController{},
+				&eta_business.EtaBusinessMenuController{},
 			),
 		),
 	)