houyaf 3 years ago
parent
commit
4d5ce5e401

+ 4 - 4
datamodels/app_permit.go

@@ -9,10 +9,10 @@ type AppPermit struct {
 	PermitTitle string    `json:"permitTitle"     xorm:"'permit_title'      varchar(127)  comment('标题')       "`
 	PermitCode  string    `json:"permitCode"      xorm:"'permit_code'       varchar(127)  comment('CODE')      "`
 	PermitDesc  string    `json:"permitDesc"      xorm:"'permit_desc'       varchar(511)  comment('描述')       "`
-	PermitType  int64     `json:"permitType"      xorm:"'permit_type'       int           comment('Type')       "`
-	RootId      int64     `json:"rootId"          xorm:"'root_id'           int           comment('Root Id')    "`
-	ParentId    int64     `json:"parentId"        xorm:"'parent_id'         int           comment('Parent Id')  "`
-	SortNo      int64     `json:"sortNo"          xorm:"'sort_no'           int           comment('Sort No')    "`
+	PermitType  int64     `json:"permitType"      xorm:"'permit_type'       bigint        comment('Type')       "`
+	RootId      int64     `json:"rootId"          xorm:"'root_id'           bigint        comment('Root Id')    "`
+	ParentId    int64     `json:"parentId"        xorm:"'parent_id'         bigint        comment('Parent Id')  "`
+	SortNo      int64     `json:"sortNo"          xorm:"'sort_no'           bigint        comment('Sort No')    "`
 	CreatedBy   int64     `json:"createdBy"       xorm:"'created_by'"`
 	CreatedAt   time.Time `json:"createdAt"       xorm:"'created_at'"`
 	UpdatedBy   int64     `json:"updatedBy"       xorm:"'updated_by'"`

+ 33 - 0
repositories/app_permit_repo.go

@@ -19,6 +19,7 @@ func NewAppPermitRepo(engine *xorm.Engine) *AppPermitRepo {
 
 func (d *AppPermitRepo) GetList(m map[string]interface{})([]viewmodels.AppPermitInfo, error) {
 	sqlSelect := ` SELECT A.app_id,
+                          B.app_title,
                           A.role_id,
                           A.permit_id,
                           A.permit_title,
@@ -34,6 +35,9 @@ func (d *AppPermitRepo) GetList(m map[string]interface{})([]viewmodels.AppPermit
 	if appKey, ok := m["appKey"]; ok {
 		sqlWhere +=  " AND B.app_key = '" + fmt.Sprintf("%s", appKey) + "'"
 	}
+	if appId, ok := m["appId"]; ok {
+		sqlWhere += " AND A.app_id = " + fmt.Sprintf("%d", appId)
+	}
 	if roleId, ok := m["roleId"]; ok {
 		sqlWhere += " AND A.role_id = " + fmt.Sprintf("%d", roleId)
 	}
@@ -51,6 +55,35 @@ func (d *AppPermitRepo) GetList(m map[string]interface{})([]viewmodels.AppPermit
 	}
 }
 
+func (d *AppPermitRepo) GetListById(appId, roleId int64)([]viewmodels.AppPermitInfo, error) {
+	sqlSelect := ` SELECT A.app_id,
+                          B.app_title,
+                          A.role_id,
+                          A.permit_id,
+                          A.permit_title,
+                          A.permit_code,
+                          A.permit_desc,
+                          A.permit_type,
+                          A.root_id,
+                          A.parent_id,
+                          A.sort_no     `
+	sqlFrom   := ` FROM   app_permit  AS A
+                   JOIN   app         AS B ON (A.app_id = B.app_id) `
+	sqlWhere  := ` WHERE  A.deleted_flag = 0 `
+	sqlWhere  += fmt.Sprintf(" AND A.app_id = %d ", appId)
+	sqlWhere  += fmt.Sprintf(" AND A.role_id = %d ", roleId)
+	
+	sqlOrderBy := " ORDER BY A.app_id, A.role_id, A.parent_id, A.sort_no "
+	
+	datalist := make([]viewmodels.AppPermitInfo, 0)
+	err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
+	if err != nil {
+		return nil, err
+	} else {
+		return datalist, nil
+	}
+}
+
 func (d *AppPermitRepo) GetListByKey(appKey string, roleId int64)([]viewmodels.AppPermitInfo, error) {
 	sqlSelect := ` SELECT A.app_id,
                           A.role_id,

+ 28 - 6
service/app_permit_service.go

@@ -1,7 +1,8 @@
 package service
 
 import (
-    "xps/datamodels"
+	"time"
+	"xps/datamodels"
     "xps/datasource"
     "xps/repositories"
     "xps/viewmodels"
@@ -9,6 +10,7 @@ import (
 
 type AppPermitService interface {
 	GetList(m map[string]interface{})([]viewmodels.AppPermitInfo, error)
+	GetListById(appId, roleId int64)([]viewmodels.AppPermitInfo, error)
 	GetById(appId, roleId, permitId int64) (*viewmodels.AppPermitInfo, error)
 	Create(permit *datamodels.AppPermit) error
 	Update(permit *datamodels.AppPermit) error
@@ -29,17 +31,37 @@ func (s *appPermitService) GetList(m map[string]interface{})([]viewmodels.AppPer
 	return s.repo.GetList(m)
 }
 
+func (s *appPermitService) GetListById(appId, roleId int64)([]viewmodels.AppPermitInfo, error) {
+	return s.repo.GetListById(appId, roleId)
+}
+
 func (s *appPermitService) GetById(appId, roleId, permitId int64) (*viewmodels.AppPermitInfo, error) {
 	return s.repo.GetById(appId, roleId, permitId)
 }
 
-func (s *appPermitService) Create(permit *datamodels.AppPermit) error {
-	permit.AppId = NewID()
-	return s.repo.Create(permit)
+func (s *appPermitService) Create(p *datamodels.AppPermit) error {
+
+	permitId := NewID()
+	parentId := p.ParentId
+	p.PermitId = permitId
+	if parentId == 0 {
+		p.RootId = permitId
+	} else {
+		appId  := p.AppId
+		roleId := p.RoleId
+		parent, err :=  s.GetById(appId, roleId, parentId)
+	    if err != nil {
+			return err
+	    }
+		p.RootId = parent.RootId
+	}
+	p.CreatedAt = time.Now()
+	return s.repo.Create(p)
 }
 
-func (s *appPermitService) Update(permit *datamodels.AppPermit) error {
-	return s.repo.Update(permit)
+func (s *appPermitService) Update(p *datamodels.AppPermit) error {
+	p.UpdatedAt = time.Now()
+	return s.repo.Update(p)
 }
 
 func (s *appPermitService) Delete(m map[string]interface{}) error {

+ 3 - 3
web/controllers/app_controller.go

@@ -53,12 +53,12 @@ func (c *AppController) Create() *JsonResult {
 	userId := c.GetCurUserId()
 	app    := datamodels.App{}
 	app.CreatedBy = userId
-	err := c.Ctx.ReadJSON(&app)
-	if err != nil {
+	
+	if err := c.Ctx.ReadJSON(&app); err != nil {
 		return ResultErr("读取数据失败", nil)
 	}
 	
-	if err = c.Service.Create(&app); err != nil {
+	if err := c.Service.Create(&app); err != nil {
 		return ResultErr(err.Error(), nil)
 	} else {
 		return ResultOk("新增成功", nil)

+ 15 - 5
web/controllers/app_permit_controller.go

@@ -12,11 +12,12 @@ type AppPermitController struct {
 }
 
 func (c *AppPermitController) BeforeActivation(b mvc.BeforeActivation) {
-	b.Handle("GET",     "",                                                 "GetList"   )
-	b.Handle("GET",     "/{appId:int64}/{roleId:int64}/{permitId:int64}",   "GetById"   )
-	b.Handle("POST",    "/add",                                             "Create"    )
-	b.Handle("PUT",     "/update",                                          "Update"    )
-	b.Handle("DELETE",  "/{appId:int64}/{roleId:int64}/{permitId:int64}",   "DeleteByID")
+	b.Handle("GET",     "",                                                 "GetList"       )
+	b.Handle("GET",     "/{appId:int64}/{roleId:int64}/{permitId:int64}",   "GetById"       )
+	b.Handle("GET",     "/{appId:int64}/{roleId:int64}",                    "GetListById"   )
+	b.Handle("POST",    "/add",                                             "Create"        )
+	b.Handle("PUT",     "/update",                                          "Update"        )
+	b.Handle("DELETE",  "/{appId:int64}/{roleId:int64}/{permitId:int64}",   "DeleteByID"    )
 }
 
 func (c *AppPermitController) GetList() *JsonResult {
@@ -42,6 +43,15 @@ func (c *AppPermitController) GetById(appId, roleId, permitId int64) *JsonResult
 	}
 }
 
+func (c *AppPermitController) GetListById(appId, roleId int64) *JsonResult {
+	data, err := c.Service.GetListById(appId, roleId)
+	if err != nil {
+		return ResultErr(err.Error(), nil)
+	} else {
+		return ResultOk("获取成功", data)
+	}
+}
+
 func (c *AppPermitController) Create() *JsonResult {
 	userId    := c.GetCurUserId()
 	appPermit := datamodels.AppPermit{}

+ 1 - 1
web/controllers/group_controller.go

@@ -13,7 +13,7 @@ type GroupController struct {
 
 func (c *GroupController) BeforeActivation(b mvc.BeforeActivation) {
     b.Handle("GET"      ,"/"                         ,"GetList"     )
-    b.Handle("GET"      ,"/groupId:int64}"           ,"GetById"     )
+    b.Handle("GET"      ,"/{groupId:int64}"          ,"GetById"     )
     b.Handle("GET"      ,"/view"                     ,"GetTreeView" )
     b.Handle("POST"     ,"/add"                      ,"Create"      )
     b.Handle("PUT"      ,"/update"                   ,"Update"      )

+ 6 - 10
web/router/routes.go

@@ -59,6 +59,12 @@ func Configure(b *bootstrap.Bootstrapper) {
 		groupApp := mvc.New(groupParty.Party(""))
 		groupApp.Register(groupService)
 		groupApp.Handle(new(controllers.GroupController))
+		
+		// GroupCatParty
+		groupCatService := service.NewGroupCatService()
+		groupCatApp := mvc.New(groupParty.Party("/cat"))
+		groupCatApp.Register(groupCatService)
+		groupCatApp.Handle(new(controllers.GroupCatController))
 	}
 
 	// User
@@ -83,16 +89,6 @@ func Configure(b *bootstrap.Bootstrapper) {
 		positionApp.Handle(new(controllers.PositionController))
 	}
 
-	// GroupCatParty
-	GroupCatParty := b.Party("/group", crs).AllowMethods(iris.MethodOptions)
-	{
-		GroupCatParty.Use(middleware.AuthToken)
-		groupCatService := service.NewGroupCatService()
-		groupCatApp := mvc.New(GroupCatParty.Party("/cat"))
-		groupCatApp.Register(groupCatService)
-		groupCatApp.Handle(new(controllers.GroupCatController))
-	}
-
 	// App
 	appParty := b.Party("/app", crs).AllowMethods(iris.MethodOptions)
 	{