ziwen il y a 1 an
Parent
commit
b791f6f65f

+ 31 - 36
controllers/eta_business/eta_business_menu.go

@@ -4,7 +4,6 @@ import (
 	"encoding/json"
 	"hongze/hz_crm_api/controllers"
 	"hongze/hz_crm_api/models"
-	"hongze/hz_crm_api/models/company"
 	"hongze/hz_crm_api/models/eta_business"
 	etaBusinessService "hongze/hz_crm_api/services/eta_business"
 	"hongze/hz_crm_api/utils"
@@ -689,24 +688,24 @@ func (this *EtaBusinessMenuController) SystemApiConfig() {
 		br.Ret = 408
 		return
 	}
-	list := make([]company.CrmConfig, 0)
-
-	// 获取审批流设置
-	confKey := "approval_flow"
-	confTmp, e := company.GetConfigDetailByCode(confKey)
-	if e != nil {
-		br.Msg = "获取审批流配置失败"
-		br.ErrMsg = "获取审批流配置失败, Err: " + e.Error()
-		return
+	var relates []*eta_business.EtaBusinessMenuApiRelate
+	businessId, _ := this.GetInt("EtaBusinessId", 0)
+	var err error
+	if businessId > 0 {
+		relateOb := new(eta_business.EtaBusinessMenuApiRelate)
+		cond := ` AND eta_business_id = ?`
+		pars := make([]interface{}, 0)
+		pars = append(pars, businessId)
+		relates, err = relateOb.GetItemsByCondition(cond, pars, []string{}, "")
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取商家菜单关联列表失败, Err: " + err.Error()
+			return
+		}
 	}
 
-	list = append(list, company.CrmConfig{
-		ConfigCode: "approval_flow",
-		ConfigValue: confTmp.ConfigValue,
-	})
 
-
-	br.Data = list
+	br.Data = relates
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"
@@ -740,29 +739,25 @@ func (this *EtaBusinessMenuController) SystemApiConfigSet() {
 		br.ErrMsg = "参数解析失败,Err:" + e.Error()
 		return
 	}
+	ob := new(eta_business.EtaBusinessMenuApiRelate)
+	items := make([]*eta_business.EtaBusinessMenuApiRelate, 0)
 	for _, v := range req.List {
-		_, err := company.GetConfigDetailByCode(v.ConfigCode)
-		if err != nil {
-			br.Msg = "设置失败"
-			br.ErrMsg = "设置失败,Err:" + err.Error()
-			return
-		} else {
-			// 存在配置,那么就修改
-			err = company.CrmConfigUpdate(v.ConfigValue, v.ConfigCode)
-			if err != nil {
-				br.Msg = "操作失败"
-				br.ErrMsg = "操作失败,Err:" + err.Error()
-				return
-			}
-
-			if err != nil {
-				br.Msg = "设置失败"
-				br.ErrMsg = "设置失败,Err:" + err.Error()
-				return
-			}
-		}
+		t := new(eta_business.EtaBusinessMenuApiRelate)
+		t.ConfigCode = v.ConfigCode
+		t.ConfigValue = v.ConfigValue
+		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
 	}
 
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "设置成功"

+ 1 - 0
models/db.go

@@ -682,6 +682,7 @@ func initEtaBusiness() {
 		new(eta_business.EtaBusinessOperationRecord), // ETA操作记录表
 		new(eta_business.EtaBusinessMenu),            // ETA商家菜单表
 		new(eta_business.EtaBusinessMenuRelate),      // ETA商家菜单关联表
+		new(eta_business.EtaBusinessMenuApiRelate),   // ETA商家菜单API关联表
 		new(eta_business.EtaBusinessMenuIcon),        // ETA商家菜单icon表
 	)
 }

+ 4 - 2
models/eta_business/eta_business_menu.go

@@ -214,12 +214,14 @@ type BusinessConf struct {
 	ConfKey string `description:"配置Key"`
 	ConfVal string `description:"配置值"`
 }
+
 // SetBusinessConfReq 设置用户的配置
 type SetBusinessConfReq struct {
-	List []BusinessConfReq
+	EtaBusinessId int `description:"商家ID"`
+	List          []BusinessConfReq
 }
 
 type BusinessConfReq struct {
 	ConfigCode  string `description:"配置编码"`
 	ConfigValue string `description:"配置值"`
-}
+}

+ 118 - 0
models/eta_business/eta_business_menu_api_relate.go

@@ -0,0 +1,118 @@
+package eta_business
+
+import (
+	"fmt"
+	"github.com/beego/beego/v2/client/orm"
+	"strings"
+)
+
+// EtaBusinessMenuApiRelate ETA商家菜单api关联表
+type EtaBusinessMenuApiRelate struct {
+	Id            int `orm:"column(id);pk"`
+	EtaBusinessId int `description:"商家ID"`
+	ConfigCode    string `description:"配置编码"`
+	ConfigValue   string `description:"配置值"`
+}
+
+func (m *EtaBusinessMenuApiRelate) TableName() string {
+	return "eta_business_menu_api_relate"
+}
+
+func (m *EtaBusinessMenuApiRelate) PrimaryId() string {
+	return "id"
+}
+
+
+func (m *EtaBusinessMenuApiRelate) CreateMulti(businessId int, items []*EtaBusinessMenuApiRelate) (err error) {
+	if businessId == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	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
+}
+
+func (m *EtaBusinessMenuApiRelate) Update(cols []string) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Update(m, cols...)
+	return
+}
+
+
+func (m *EtaBusinessMenuApiRelate) GetItemById(id int) (item *EtaBusinessMenuApiRelate, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE %s = ? LIMIT 1`, m.TableName(), m.PrimaryId())
+	err = o.Raw(sql, id).QueryRow(&item)
+	return
+}
+
+func (m *EtaBusinessMenuApiRelate) GetItemByCondition(condition string, pars []interface{}) (item *EtaBusinessMenuApiRelate, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT * FROM %s WHERE 1=1 %s LIMIT 1`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&item)
+	return
+}
+
+func (m *EtaBusinessMenuApiRelate) GetCountByCondition(condition string, pars []interface{}) (count int, err error) {
+	o := orm.NewOrm()
+	sql := fmt.Sprintf(`SELECT COUNT(1) FROM %s WHERE 1=1 %s`, m.TableName(), condition)
+	err = o.Raw(sql, pars).QueryRow(&count)
+	return
+}
+
+func (m *EtaBusinessMenuApiRelate) GetItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string) (items []*EtaBusinessMenuApiRelate, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := ``
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars).QueryRows(&items)
+	return
+}
+
+func (m *EtaBusinessMenuApiRelate) GetPageItemsByCondition(condition string, pars []interface{}, fieldArr []string, orderRule string, startSize, pageSize int) (items []*EtaBusinessMenuApiRelate, err error) {
+	o := orm.NewOrm()
+	fields := strings.Join(fieldArr, ",")
+	if len(fieldArr) == 0 {
+		fields = `*`
+	}
+	order := ``
+	if orderRule != "" {
+		order = ` ORDER BY ` + orderRule
+	}
+	sql := fmt.Sprintf(`SELECT %s FROM %s WHERE 1=1 %s %s LIMIT ?,?`, fields, m.TableName(), condition, order)
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// EtaBusinessMenuApiRelateSaveReq 保存商家菜单关联
+type EtaBusinessMenuApiRelateSaveReq struct {
+	EtaBusinessId int   `description:"商家ID"`
+	MenuIds       []int `description:"菜单IDs"`
+	HalfMenuIds   []int `description:"半选菜单IDs-仅供前端回显用的"`
+}