houyaf %!s(int64=3) %!d(string=hai) anos
pai
achega
8e822d6415

+ 4 - 4
repositories/system/app_permit_repo.go

@@ -28,14 +28,14 @@ func (d *AppPermitRepo) GetList(m map[string]interface{})([]viewmodels.AppPermit
                           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 `
+	sqlFrom   := ` FROM   app_permit  AS A
+                   JOIN   app         AS B ON (A.app_id = B.app_id) `
+	sqlWhere  := ` WHERE  A.deleted_flag = 0 `
 	if appKey, ok := m["appKey"]; ok {
 		sqlWhere +=  " AND B.app_key = '" + fmt.Sprintf("%s", appKey) + "'"
 	}
 	if roleId, ok := m["roleId"]; ok {
-		sqlWhere += ` AND A.role_id = ` + fmt.Sprintf("%d", roleId)
+		sqlWhere += " AND A.role_id = " + fmt.Sprintf("%d", roleId)
 	}
 	if keywords, ok := m["keywords"]; ok {
 		sqlWhere += " AND A.permit_title like '%" + fmt.Sprintf("%s", keywords) + "%'"

+ 24 - 22
repositories/system/ent_cat_repo.go

@@ -19,15 +19,14 @@ func NewEntCatRepo(engine *xorm.Engine) *EntCatRepo {
 }
 
 func (d *EntCatRepo) GetPage(m map[string]interface{}) (*viewmodels.PageResult, error) {
-	keywords := m["keywords"].(string)
 	limit := m["limit"].(int)
-	page := m["page"].(int)
+	page  := m["page"].(int)
 
 	sqlSelect := `SELECT A.*`
-	sqlFrom := `FROM   ent_cat   AS A `
-	sqlWhere := `WHERE A.deleted_flag = 0 `
-	if keywords != "" {
-		sqlWhere += ` AND A.ent_cat_title like ` + "'%" + keywords + "%'"
+	sqlFrom   := `FROM   ent_cat AS A `
+	sqlWhere  := `WHERE A.deleted_flag = 0 `
+	if keywords, ok:= m["keywords"]; ok {
+		sqlWhere += " AND A.ent_cat_title like '%" + fmt.Sprintf("%s", keywords) + "%'"
 	}
 
 	sqlCount := `SELECT COUNT(*) `
@@ -37,8 +36,8 @@ func (d *EntCatRepo) GetPage(m map[string]interface{}) (*viewmodels.PageResult,
 	}
 
 	sqlOrderBy := " ORDER BY ent_cat_id DESC "
-	pageStart := (page - 1) * limit
-	sqlLimit := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
+	pageStart  := (page - 1) * limit
+	sqlLimit   := fmt.Sprintf(" LIMIT %d OFFSET %d ", limit, pageStart)
 
 	datalist := make([]datamodels.EntCat, 0)
 	err2 := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy + sqlLimit).Find(&datalist)
@@ -47,36 +46,35 @@ func (d *EntCatRepo) GetPage(m map[string]interface{}) (*viewmodels.PageResult,
 	}
 
 	pageResult := &viewmodels.PageResult{}
-	pageResult.Data = datalist
-	pageResult.Total = total
+	pageResult.Data     = datalist
+	pageResult.Total    = total
 	pageResult.PageSize = limit
-	pageResult.Page = page
+	pageResult.Page     = page
 	return pageResult, nil
 }
 
 func (d *EntCatRepo) GetList(m map[string]interface{}) ([]viewmodels.EntCatInfo, error) {
-	keywords := m["keywords"].(string)
-
 	sqlSelect := `SELECT A.* `
-	sqlFrom := `FROM  ent_cat   AS A    `
-	sqlWhere := `WHERE A.deleted_flag = 0 `
-	if keywords != "" {
-		sqlWhere += ` AND   A.ent_cat_title like ` + "'%" + keywords + "%'"
+	sqlFrom   := `FROM  ent_cat   AS A    `
+	sqlWhere  := `WHERE A.deleted_flag = 0 `
+	if keywords, ok := m["keywords"]; ok {
+		sqlWhere += " AND A.ent_cat_title like " + "'%" + fmt.Sprintf("%s", keywords) + "%'"
 	}
-
 	sqlOrderBy := " ORDER BY ent_cat_id DESC "
+	
 	datalist := make([]viewmodels.EntCatInfo, 0)
 	err := d.engine.SQL(sqlSelect + sqlFrom + sqlWhere + sqlOrderBy).Find(&datalist)
 	if err != nil {
 		return nil, err
+	} else {
+		return datalist, nil
 	}
-	return datalist, nil
 }
 
 func (d *EntCatRepo) GetById(entCatId int64) (*viewmodels.EntCatInfo, error) {
 	data := &viewmodels.EntCatInfo{}
 	ok, err := d.engine.Where("ent_cat_id = ?", entCatId).Get(data)
-	if !ok && err == nil {
+	if !ok || err != nil {
 		return nil, err
 	} else {
 		return data, nil
@@ -93,7 +91,9 @@ func (d *EntCatRepo) Update(data *datamodels.EntCat) error {
 	entCatId := data.EntCatId
 
 	data.UpdatedAt = time.Now()
-	_, err := d.engine.Where("ent_cat_id = ?", entCatId).Update(data)
+	_, err := d.engine.
+		Where("ent_cat_id = ?", entCatId).
+		Update(data)
 	return err
 }
 
@@ -105,6 +105,8 @@ func (d *EntCatRepo) Delete(m map[string]interface{}) error {
 	data.DeletedFlag = 1
 	data.DeletedBy = deletedBy
 	data.DeletedAt = time.Now()
-	_, err := d.engine.Where("ent_cat_id = ?", entCatId).Update(data)
+	_, err := d.engine.
+		Where("ent_cat_id = ?", entCatId).
+		Update(data)
 	return err
 }

+ 9 - 4
service/system/base_service.go

@@ -8,7 +8,7 @@ import (
 )
 
 func NewID() int64 {
-	engine := datasource.InstanceIDServer()
+	engine   := datasource.InstanceIDServer()
 	ret, err := engine.Exec("replace into uid_sequence(stub) values('a')")
 	if err != nil {
 		log.Fatal(err.Error())
@@ -20,10 +20,15 @@ func NewID() int64 {
 	return uid
 }
 
-func GetCurUser(userId int64) *viewmodels.UserData{
-	userData, err  := cache.GetUserData(userId)
+func GetCurUser(userId int64) (*viewmodels.UserData, error){
+	return cache.GetUserData(userId)
+}
+
+func GetCurUserRoleId(userId int64) int64 {
+	userData, err := cache.GetUserData(userId)
 	if err != nil {
 		log.Fatal(err.Error())
+		return 0
 	}
-	return userData
+	return userData.RoleId
 }

+ 17 - 1
service/system/user_service.go

@@ -1,6 +1,7 @@
 package system
 
 import (
+    "errors"
     "time"
     "xps/constant"
     "xps/datamodels"
@@ -25,6 +26,7 @@ type UserService interface {
     IsStaffNoExist(ocId int64, staffNo string)(bool, error)
     IsEmailExist(ocId int64, staffNo string)(bool, error)
     SelectUser(ocId int64)([]viewmodels.UserSelectVo, error)
+    GetPermit(userId int64, appKey string)([]viewmodels.AppPermitInfo, error)
 }
 
 type userService struct {
@@ -34,6 +36,7 @@ type userService struct {
     groupRepo *system.GroupRepo
     groupMemberRepo *system.GroupMemberRepo
     groupMemberPositionRepo *system.GroupMemberPositionRepo
+    permitRepo *system.AppPermitRepo
 }
 
 func NewUserService() UserService {
@@ -44,6 +47,7 @@ func NewUserService() UserService {
         groupRepo: system.NewGroupRepo(datasource.InstanceMaster()),
         groupMemberRepo: system.NewGroupMemberRepo(datasource.InstanceMaster()),
         groupMemberPositionRepo: system.NewGroupMemberPositionRepo(datasource.InstanceMaster()),
+        permitRepo: system.NewAppPermitRepo(datasource.InstanceMaster()),
     }
 }
 
@@ -301,4 +305,16 @@ func (s *userService) SelectUser(ocId int64)([]viewmodels.UserSelectVo, error){
     }
     
     return voList, nil
-}
+}
+
+func (s *userService) GetPermit(userId int64, appKey string) ([]viewmodels.AppPermitInfo, error) {
+    roleId := GetCurUserRoleId(userId)
+    if roleId <= 0 {
+        return nil, errors.New("用户角色信息不完整")
+    }
+    
+    m := make(map[string]interface{},0)
+    m["appKey"] = appKey
+    m["roleId"] = roleId
+    return s.permitRepo.GetList(m)
+}

+ 10 - 0
web/controllers/base_controller.go

@@ -44,6 +44,16 @@ func (b *Base) GetOcTypeId() int64 {
 	return ocTypeId
 }
 
+func (b *Base) GetAppKey() string {
+	appKey := b.Ctx.Values().GetString("appKey")
+	return appKey
+}
+
+func (b *Base) GetAppSecret() string {
+	appSecret := b.Ctx.Values().GetString("appSecret")
+	return appSecret
+}
+
 func (b *Base) buildParams() map[string]interface{} {
 	ocId, err := b.Ctx.Values().GetInt64("ocId")
 	if err != nil {

+ 1 - 1
web/controllers/ent_cat_controller.go

@@ -82,10 +82,10 @@ func (c *EntCatController) Update() *JsonResult {
 
 func (c *EntCatController) DeleteByID(entCatId int64) *JsonResult {
 	userId := c.GetCurUserId()
+	
 	m := make(map[string]interface{})
 	m["entCatId"]  = entCatId
 	m["deletedBy"] = userId
-	
 	if err := c.Service.Delete(m); err != nil {
 		return ResultErr(err.Error(), nil)
 	} else {

+ 12 - 0
web/controllers/user_controller.go

@@ -12,6 +12,7 @@ type UserController struct {
 }
 
 func (c *UserController) BeforeActivation(b mvc.BeforeActivation) {
+    b.Handle("GET",         "/permit",                                      "GetPermit"       )
     b.Handle("GET",         "/page",                                        "GetPage"         )
     b.Handle("GET",         "/",                                            "GetList"         )
     b.Handle("GET",         "/{groupId:int64}/{accountId:int64}",           "GetById"         )
@@ -198,4 +199,15 @@ func (c *UserController) SelectUser() *JsonResult {
     } else {
         return ResultOk("获取成功", data)
     }
+}
+
+func (c *UserController) GetPermit()*JsonResult{
+    userId := c.GetCurUserId()
+    appKey := c.GetAppKey()
+    data, err := c.Service.GetPermit(userId, appKey)
+    if err != nil {
+        return ResultErr(err.Error(), nil)
+    } else {
+        return ResultOk("获取成功", data)
+    }
 }

+ 6 - 2
web/router/routes.go

@@ -72,10 +72,14 @@ func Configure(b *bootstrap.Bootstrapper) {
 		userApp := mvc.New(user.Party(""))
 		userApp.Register(userService)
 		userApp.Handle(new(controllers.UserController))
-
+	}
+	
+	// Permit
+	permit := b.Party("/app", crs).AllowMethods(iris.MethodOptions)
+	{
 		// Permit
 		appPermitService := system.NewAppPermitService()
-		appPermitApp := mvc.New(user.Party("/permit"))
+		appPermitApp := mvc.New(permit.Party("/permit"))
 		appPermitApp.Register(appPermitService)
 		appPermitApp.Handle(new(controllers.AppPermitController))
 	}