hsun 1 жил өмнө
parent
commit
483a838ee8

+ 16 - 0
controllers/eta_business/eta_business_menu.go

@@ -38,6 +38,7 @@ func (this *EtaBusinessMenuController) List() {
 
 	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)
@@ -68,6 +69,10 @@ func (this *EtaBusinessMenuController) List() {
 			return
 		}
 		for _, r := range relates {
+			if r.Type == 1 {
+				resp.HalfChoiceList = append(resp.HalfChoiceList, r.MenuId)
+				continue
+			}
 			resp.ChoiceList = append(resp.ChoiceList, r.MenuId)
 		}
 	}
@@ -162,6 +167,10 @@ func (this *EtaBusinessMenuController) SaveRelate() {
 		br.Msg = "请选择菜单"
 		return
 	}
+	if len(req.HalfMenuIds) == 0 {
+		br.Msg = "请选择菜单"
+		return
+	}
 
 	ob := new(eta_business.EtaBusinessMenuRelate)
 	items := make([]*eta_business.EtaBusinessMenuRelate, 0)
@@ -171,6 +180,13 @@ func (this *EtaBusinessMenuController) SaveRelate() {
 		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()

+ 3 - 2
models/eta_business/eta_business_menu.go

@@ -122,8 +122,9 @@ func (m *EtaBusinessMenu) GetPageItemsByCondition(condition string, pars []inter
 
 // EtaBusinessMenuListResp ETA商家菜单列表响应体
 type EtaBusinessMenuListResp struct {
-	ChoiceList []int                  `description:"已选菜单"`
-	List       []*EtaBusinessMenuItem `description:"菜单列表"`
+	ChoiceList     []int                  `description:"已选菜单"`
+	HalfChoiceList []int                  `description:"半选菜单-方便前端回显用的"`
+	List           []*EtaBusinessMenuItem `description:"菜单列表"`
 }
 
 // EtaBusinessMenuItem ETA商家菜单

+ 2 - 0
models/eta_business/eta_business_menu_relate.go

@@ -11,6 +11,7 @@ type EtaBusinessMenuRelate struct {
 	Id            int `orm:"column(id);pk"`
 	EtaBusinessId int `description:"商家ID"`
 	MenuId        int `description:"菜单ID"`
+	Type          int `description:"类型: 0-全选; 1-半选(此字段仅供前端回显做区分)"`
 }
 
 func (m *EtaBusinessMenuRelate) TableName() string {
@@ -128,4 +129,5 @@ func (m *EtaBusinessMenuRelate) GetPageItemsByCondition(condition string, pars [
 type EtaBusinessMenuRelateSaveReq struct {
 	EtaBusinessId int   `description:"商家ID"`
 	MenuIds       []int `description:"菜单IDs"`
+	HalfMenuIds   []int `description:"半选菜单IDs-仅供前端回显用的"`
 }