Browse Source

英文分类权限设置

xyxie 1 năm trước cách đây
mục cha
commit
fd90024edd

+ 59 - 9
controllers/english_report/english_classify.go

@@ -209,6 +209,7 @@ func (this *EnglishReportController) AddClassify() {
 	}
 	classifyName := req.ClassifyName
 	parentId := req.ParentId
+	ob := new(models.EnglishClassify)
 	// 查新父级分类是否存在
 	rootId := 0
 	if parentId > 0 {
@@ -228,19 +229,21 @@ func (this *EnglishReportController) AddClassify() {
 			rootId = parentClassify.RootId
 		}
 	}
-	maxSort, e := classify.GetMaxSort()
+	maxSort, e := ob.GetMaxSort()
 	if e != nil {
 		br.Msg = "操作失败"
 		br.ErrMsg = "查询品种排序失败, Err: " + e.Error()
 		return
 	}
+	// 更新品种权限
+	nowTime := time.Now().Local()
 	item := &models.EnglishClassify{
 		ClassifyName: classifyName,
 		Sort:         maxSort + 1,
 		ParentId:     parentId,
 		RootId:       rootId,
-		CreateTime:   time.Now(),
-		ModifyTime:   time.Now(),
+		CreateTime:   nowTime,
+		ModifyTime:   nowTime,
 		IsShow:       1,
 	}
 	counts, err := models.GetEnglishClassifyCountsByName(classifyName, parentId)
@@ -272,6 +275,20 @@ func (this *EnglishReportController) AddClassify() {
 		}
 	}
 
+	permissions := make([]*models.EnClassifyPermission, 0)
+	for _, p := range req.EnPermissions {
+		v := new(models.EnClassifyPermission)
+		v.EnPermissionId = p
+		v.EnClassifyId = item.Id
+		v.CreateTime = nowTime
+		permissions = append(permissions, v)
+	}
+	if e = models.CreateEnClassifyPermissions(permissions); e != nil {
+		br.Msg = "保存失败"
+		br.ErrMsg = "更新分类品种权限失败, Err: " + e.Error()
+		return
+	}
+
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "新增成功"
@@ -291,10 +308,18 @@ func (this *EnglishReportController) EditClassify() {
 		this.Data["json"] = br
 		this.ServeJSON()
 	}()
-	classifyId, _ := this.GetInt("ClassifyId")
-	classifyName := this.GetString("ClassifyName")
-	parentId, _ := this.GetInt("ParentId")
-	sort, _ := this.GetInt("Sort")
+
+	var req models.EnClassifyEditReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	classifyId := req.ClassifyId
+	classifyName := req.ClassifyName
+	parentId := req.ParentId
+	ob := new(models.EnglishClassify)
 
 	if parentId == classifyId {
 		br.Msg = "上级分类不能选择自己"
@@ -371,13 +396,23 @@ func (this *EnglishReportController) EditClassify() {
 	if parentId == 0 { //一级分类的顶级分类为自己的ID
 		rootId = oldItem.Id
 	}
+
+	maxSort, e := ob.GetMaxSortByParentId(parentId)
+	if e != nil {
+		br.Msg = "操作失败"
+		br.ErrMsg = "查询品种排序失败, Err: " + e.Error()
+		return
+	}
+	// 更新品种权限
+	nowTime := time.Now().Local()
+
 	item := &models.EnglishClassify{
 		Id:           oldItem.Id,
 		ClassifyName: classifyName,
-		Sort:         sort,
+		Sort:         maxSort + 1,
 		ParentId:     parentId,
 		RootId:       rootId,
-		ModifyTime:   time.Now(),
+		ModifyTime:   nowTime,
 		IsShow:       1,
 	}
 	{
@@ -401,6 +436,21 @@ func (this *EnglishReportController) EditClassify() {
 		br.ErrMsg = "保存失败,Err:" + err.Error()
 		return
 	}
+	// 更新权限
+	permissions := make([]*models.EnClassifyPermission, 0)
+	for _, p := range req.EnPermissions {
+		v := new(models.EnClassifyPermission)
+		v.EnPermissionId = p
+		v.EnClassifyId = req.ClassifyId
+		v.CreateTime = nowTime
+		permissions = append(permissions, v)
+	}
+	if e = models.ClearAndCreateEnClassifyPermissions(req.ClassifyId, permissions); e != nil {
+		br.Msg = "保存失败"
+		br.ErrMsg = "更新分类品种权限失败, Err: " + e.Error()
+		return
+	}
+
 	err = models.UpdateEnglishReportClassifyByFirstSecondClassifyId(classifyId, parentId)
 	if err != nil {
 		br.Msg = "保存失败"

+ 12 - 1
models/en_classify_permission.go

@@ -1,9 +1,9 @@
 package models
 
 import (
+	"eta/eta_api/utils"
 	"fmt"
 	"github.com/beego/beego/v2/client/orm"
-	"eta/eta_api/utils"
 	"strings"
 	"time"
 )
@@ -128,6 +128,17 @@ func ClearAndCreateEnClassifyPermissions(classifyId int, permissions []*EnClassi
 	return
 }
 
+func CreateEnClassifyPermissions(permissions []*EnClassifyPermission) (err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	if len(permissions) > 0 {
+		if _, e := o.InsertMulti(len(permissions), permissions); e != nil {
+			err = fmt.Errorf("insert multi err: %s", e.Error())
+			return
+		}
+	}
+	return
+}
+
 type EnClassifyPermissionEditReq struct {
 	ClassifyId    int   `description:"分类ID"`
 	EnPermissions []int `description:"权限IDs"`

+ 3 - 6
models/english_classify.go

@@ -52,10 +52,7 @@ type EnClassifyAddReq struct {
 	ParentId      int    `description:"父级分类id"`
 }
 
-// GetMaxSort 获取最大的排序值
-func (classifyInfo *EnglishClassify) GetMaxSort() (maxSort int, err error) {
-	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT max(sort) AS sort FROM english_classify`
-	err = o.Raw(sql).QueryRow(&maxSort)
-	return
+type EnClassifyEditReq struct {
+	ClassifyId int `description:"分类ID"`
+	EnClassifyAddReq
 }