正在显示
26 个修改的文件
包含
237 行增加
和
115 行删除
| @@ -11,6 +11,7 @@ import ( | @@ -11,6 +11,7 @@ import ( | ||
| 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 12 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 12 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 13 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/dao" | 13 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/dao" |
| 14 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 14 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 15 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 15 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/auth" | 16 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/auth" |
| 16 | "time" | 17 | "time" |
| @@ -36,7 +37,7 @@ func (svr *AuthService) Login(header *protocol.RequestHeader, request *protocolx | @@ -36,7 +37,7 @@ func (svr *AuthService) Login(header *protocol.RequestHeader, request *protocolx | ||
| 36 | transactionContext.RollbackTransaction() | 37 | transactionContext.RollbackTransaction() |
| 37 | }() | 38 | }() |
| 38 | 39 | ||
| 39 | - var user *domain.User | 40 | + var user *domain.Users |
| 40 | if user, err = UserRepository.FindOne(map[string]interface{}{"phone": request.UserName}); err != nil || user == nil { | 41 | if user, err = UserRepository.FindOne(map[string]interface{}{"phone": request.UserName}); err != nil || user == nil { |
| 41 | err = protocol.NewCustomMessage(1, "用户不存在!") | 42 | err = protocol.NewCustomMessage(1, "用户不存在!") |
| 42 | return | 43 | return |
| @@ -97,7 +98,7 @@ func (svr *AuthService) Profile(header *protocol.RequestHeader, request *protoco | @@ -97,7 +98,7 @@ func (svr *AuthService) Profile(header *protocol.RequestHeader, request *protoco | ||
| 97 | transactionContext.RollbackTransaction() | 98 | transactionContext.RollbackTransaction() |
| 98 | }() | 99 | }() |
| 99 | 100 | ||
| 100 | - var user *domain.User | 101 | + var user *domain.Users |
| 101 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": request.UserId}); err != nil { | 102 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": request.UserId}); err != nil { |
| 102 | err = protocol.NewCustomMessage(1, "用户不存在") | 103 | err = protocol.NewCustomMessage(1, "用户不存在") |
| 103 | return | 104 | return |
| @@ -111,9 +112,8 @@ func (svr *AuthService) Profile(header *protocol.RequestHeader, request *protoco | @@ -111,9 +112,8 @@ func (svr *AuthService) Profile(header *protocol.RequestHeader, request *protoco | ||
| 111 | "name": user.Name, | 112 | "name": user.Name, |
| 112 | "id": user.Id, | 113 | "id": user.Id, |
| 113 | "phone": user.Phone, | 114 | "phone": user.Phone, |
| 114 | - "address": user.Address, | ||
| 115 | - "isAdmin": user.IsAdmin, | ||
| 116 | - "roles": roles, | 115 | + "adminType": user.AdminType, |
| 116 | + "roles": utils.LoadCustomField(roles, "Id", "RoleName"), | ||
| 117 | } | 117 | } |
| 118 | 118 | ||
| 119 | accessIds, _ := RoleAccessDao.GetRoleAccess(user.Roles...) | 119 | accessIds, _ := RoleAccessDao.GetRoleAccess(user.Roles...) |
| @@ -36,7 +36,7 @@ func (svr *CacheService) CacheUserAccess(userId int64) func() (interface{}, erro | @@ -36,7 +36,7 @@ func (svr *CacheService) CacheUserAccess(userId int64) func() (interface{}, erro | ||
| 36 | transactionContext.RollbackTransaction() | 36 | transactionContext.RollbackTransaction() |
| 37 | }() | 37 | }() |
| 38 | 38 | ||
| 39 | - var user *domain.User | 39 | + var user *domain.Users |
| 40 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": userId}); err != nil { | 40 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": userId}); err != nil { |
| 41 | return []*domain.Access{}, nil | 41 | return []*domain.Access{}, nil |
| 42 | } | 42 | } |
| @@ -34,6 +34,6 @@ func CreateRoleRepository(transactionContext *transaction.TransactionContext) (d | @@ -34,6 +34,6 @@ func CreateRoleRepository(transactionContext *transaction.TransactionContext) (d | ||
| 34 | return repository.NewRoleRepository(transactionContext) | 34 | return repository.NewRoleRepository(transactionContext) |
| 35 | } | 35 | } |
| 36 | 36 | ||
| 37 | -func CreateUserRepository(transactionContext *transaction.TransactionContext) (domain.UserRepository, error) { | 37 | +func CreateUserRepository(transactionContext *transaction.TransactionContext) (domain.UsersRepository, error) { |
| 38 | return repository.NewUserRepository(transactionContext) | 38 | return repository.NewUserRepository(transactionContext) |
| 39 | } | 39 | } |
| @@ -31,7 +31,7 @@ func (svr *RbacService) Access(header *protocol.RequestHeader, request *protocol | @@ -31,7 +31,7 @@ func (svr *RbacService) Access(header *protocol.RequestHeader, request *protocol | ||
| 31 | 31 | ||
| 32 | var AccessRepository, _ = factory.CreateAccessRepository(transactionContext) | 32 | var AccessRepository, _ = factory.CreateAccessRepository(transactionContext) |
| 33 | var access []*domain.Access | 33 | var access []*domain.Access |
| 34 | - if _, access, err = AccessRepository.Find(map[string]interface{}{}); err != nil { | 34 | + if _, access, err = AccessRepository.Find(map[string]interface{}{"sortByParentId": "ASC", "sortBySort": "ASC"}); err != nil { |
| 35 | return | 35 | return |
| 36 | } | 36 | } |
| 37 | var rspList []interface{} | 37 | var rspList []interface{} |
| @@ -5,6 +5,7 @@ import ( | @@ -5,6 +5,7 @@ import ( | ||
| 5 | "github.com/tiptok/gocomm/pkg/log" | 5 | "github.com/tiptok/gocomm/pkg/log" |
| 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 8 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 9 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/role" | 10 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/role" |
| 10 | "time" | 11 | "time" |
| @@ -45,7 +46,7 @@ func (svr *RoleService) CreateRole(header *protocol.RequestHeader, request *prot | @@ -45,7 +46,7 @@ func (svr *RoleService) CreateRole(header *protocol.RequestHeader, request *prot | ||
| 45 | if m, err := RoleRepository.Save(newRole); err != nil { | 46 | if m, err := RoleRepository.Save(newRole); err != nil { |
| 46 | return nil, err | 47 | return nil, err |
| 47 | } else { | 48 | } else { |
| 48 | - rsp = m | 49 | + rsp = utils.LoadCustomField(m, "Id", "RoleName", "ParentId") |
| 49 | } | 50 | } |
| 50 | err = transactionContext.CommitTransaction() | 51 | err = transactionContext.CommitTransaction() |
| 51 | return | 52 | return |
| @@ -73,13 +74,17 @@ func (svr *RoleService) UpdateRole(header *protocol.RequestHeader, request *prot | @@ -73,13 +74,17 @@ func (svr *RoleService) UpdateRole(header *protocol.RequestHeader, request *prot | ||
| 73 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { | 74 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { |
| 74 | return | 75 | return |
| 75 | } | 76 | } |
| 77 | + if role.Id == request.ParentId { | ||
| 78 | + err = protocol.NewCustomMessage(1, "父角色不能设为自己") | ||
| 79 | + return | ||
| 80 | + } | ||
| 76 | if request.ParentId > 0 { | 81 | if request.ParentId > 0 { |
| 77 | if role, e := RoleRepository.FindOne(map[string]interface{}{"id": request.ParentId}); e != nil || role == nil { | 82 | if role, e := RoleRepository.FindOne(map[string]interface{}{"id": request.ParentId}); e != nil || role == nil { |
| 78 | err = protocol.NewCustomMessage(1, "父角色不存在") | 83 | err = protocol.NewCustomMessage(1, "父角色不存在") |
| 79 | return | 84 | return |
| 80 | } | 85 | } |
| 81 | } | 86 | } |
| 82 | - if err = role.Update(common.ObjectToMap(request)); err != nil { | 87 | + if err = role.Update(map[string]interface{}{"roleName": request.RoleName, "parentId": request.ParentId}); err != nil { |
| 83 | return | 88 | return |
| 84 | } | 89 | } |
| 85 | if role, err = RoleRepository.Save(role); err != nil { | 90 | if role, err = RoleRepository.Save(role); err != nil { |
| @@ -111,7 +116,7 @@ func (svr *RoleService) GetRole(header *protocol.RequestHeader, request *protoco | @@ -111,7 +116,7 @@ func (svr *RoleService) GetRole(header *protocol.RequestHeader, request *protoco | ||
| 111 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { | 116 | if role, err = RoleRepository.FindOne(common.ObjectToMap(request)); err != nil { |
| 112 | return | 117 | return |
| 113 | } | 118 | } |
| 114 | - rsp = map[string]interface{}{"role": role, "permission": ""} | 119 | + rsp = map[string]interface{}{"role": utils.LoadCustomField(role, "Id", "RoleName", "ParentId"), "permission": ""} |
| 115 | err = transactionContext.CommitTransaction() | 120 | err = transactionContext.CommitTransaction() |
| 116 | return | 121 | return |
| 117 | } | 122 | } |
| @@ -145,7 +150,7 @@ func (svr *RoleService) DeleteRole(header *protocol.RequestHeader, request *prot | @@ -145,7 +150,7 @@ func (svr *RoleService) DeleteRole(header *protocol.RequestHeader, request *prot | ||
| 145 | if role, err = RoleRepository.Remove(role); err != nil { | 150 | if role, err = RoleRepository.Remove(role); err != nil { |
| 146 | return | 151 | return |
| 147 | } | 152 | } |
| 148 | - rsp = role | 153 | + rsp = utils.LoadCustomField(role, "Id", "RoleName", "ParentId") |
| 149 | err = transactionContext.CommitTransaction() | 154 | err = transactionContext.CommitTransaction() |
| 150 | return | 155 | return |
| 151 | } | 156 | } |
| @@ -169,12 +174,12 @@ func (svr *RoleService) ListRole(header *protocol.RequestHeader, request *protoc | @@ -169,12 +174,12 @@ func (svr *RoleService) ListRole(header *protocol.RequestHeader, request *protoc | ||
| 169 | var RoleRepository, _ = factory.CreateRoleRepository(transactionContext) | 174 | var RoleRepository, _ = factory.CreateRoleRepository(transactionContext) |
| 170 | var role []*domain.Role | 175 | var role []*domain.Role |
| 171 | var total int64 | 176 | var total int64 |
| 172 | - if total, role, err = RoleRepository.Find(common.ObjectToMap(request)); err != nil { | 177 | + if _, role, err = RoleRepository.Find(map[string]interface{}{"orderById": "DESC"}); err != nil { |
| 173 | return | 178 | return |
| 174 | } | 179 | } |
| 175 | rsp = map[string]interface{}{ | 180 | rsp = map[string]interface{}{ |
| 176 | "total": total, | 181 | "total": total, |
| 177 | - "list": role, | 182 | + "list": utils.LoadCustomField(role, "Id", "RoleName", "ParentId"), |
| 178 | } | 183 | } |
| 179 | err = transactionContext.CommitTransaction() | 184 | err = transactionContext.CommitTransaction() |
| 180 | return | 185 | return |
| @@ -8,6 +8,7 @@ import ( | @@ -8,6 +8,7 @@ import ( | ||
| 8 | "github.com/tiptok/gocomm/pkg/log" | 8 | "github.com/tiptok/gocomm/pkg/log" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/application/factory" |
| 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" | 10 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/domain" |
| 11 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/utils" | ||
| 11 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 12 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 12 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/user" | 13 | protocolx "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol/user" |
| 13 | ) | 14 | ) |
| @@ -31,13 +32,12 @@ func (svr *UserService) CreateUser(header *protocol.RequestHeader, request *prot | @@ -31,13 +32,12 @@ func (svr *UserService) CreateUser(header *protocol.RequestHeader, request *prot | ||
| 31 | defer func() { | 32 | defer func() { |
| 32 | transactionContext.RollbackTransaction() | 33 | transactionContext.RollbackTransaction() |
| 33 | }() | 34 | }() |
| 34 | - newUser := &domain.User{ | 35 | + newUser := &domain.Users{ |
| 35 | Name: request.Name, | 36 | Name: request.Name, |
| 36 | - Address: request.Address, | ||
| 37 | Phone: request.Phone, | 37 | Phone: request.Phone, |
| 38 | - //Passwd: request.Passwd, | ||
| 39 | Roles: request.Roles, | 38 | Roles: request.Roles, |
| 40 | - IsAdmin: request.IsAdmin, | 39 | + Status: 1, |
| 40 | + AdminType: request.AdminType, | ||
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 43 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| @@ -81,7 +81,7 @@ func (svr *UserService) UpdateUser(header *protocol.RequestHeader, request *prot | @@ -81,7 +81,7 @@ func (svr *UserService) UpdateUser(header *protocol.RequestHeader, request *prot | ||
| 81 | }() | 81 | }() |
| 82 | 82 | ||
| 83 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 83 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| 84 | - var user *domain.User | 84 | + var user *domain.Users |
| 85 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { | 85 | if user, err = UserRepository.FindOne(map[string]interface{}{"id": request.Id}); err != nil { |
| 86 | err = protocol.NewCustomMessage(1, "用户不存在") | 86 | err = protocol.NewCustomMessage(1, "用户不存在") |
| 87 | return | 87 | return |
| @@ -110,6 +110,7 @@ func (svr *UserService) UpdateUser(header *protocol.RequestHeader, request *prot | @@ -110,6 +110,7 @@ func (svr *UserService) UpdateUser(header *protocol.RequestHeader, request *prot | ||
| 110 | func (svr *UserService) GetUser(header *protocol.RequestHeader, request *protocolx.GetUserRequest) (rsp interface{}, err error) { | 110 | func (svr *UserService) GetUser(header *protocol.RequestHeader, request *protocolx.GetUserRequest) (rsp interface{}, err error) { |
| 111 | var ( | 111 | var ( |
| 112 | transactionContext, _ = factory.CreateTransactionContext(nil) | 112 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 113 | + RoleRepository, _ = factory.CreateRoleRepository(transactionContext) | ||
| 113 | ) | 114 | ) |
| 114 | rsp = &protocolx.GetUserResponse{} | 115 | rsp = &protocolx.GetUserResponse{} |
| 115 | if err = request.ValidateCommand(); err != nil { | 116 | if err = request.ValidateCommand(); err != nil { |
| @@ -125,12 +126,18 @@ func (svr *UserService) GetUser(header *protocol.RequestHeader, request *protoco | @@ -125,12 +126,18 @@ func (svr *UserService) GetUser(header *protocol.RequestHeader, request *protoco | ||
| 125 | }() | 126 | }() |
| 126 | 127 | ||
| 127 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 128 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| 128 | - var user *domain.User | 129 | + var user *domain.Users |
| 129 | if user, err = UserRepository.FindOne(common.ObjectToMap(request)); err != nil { | 130 | if user, err = UserRepository.FindOne(common.ObjectToMap(request)); err != nil { |
| 130 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 131 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 131 | return | 132 | return |
| 132 | } | 133 | } |
| 133 | - rsp = user | 134 | + retMap := map[string]interface{}{"id": user.Id, "name": user.Name, "phone": user.Phone, "adminType": user.AdminType, "status": user.Status} |
| 135 | + if len(user.Roles) > 0 { | ||
| 136 | + if _, roles, e := RoleRepository.Find(map[string]interface{}{"inRoleIds": user.Roles}); len(roles) > 0 && e == nil { | ||
| 137 | + retMap["roles"] = utils.LoadCustomField(roles, "Id", "RoleName") | ||
| 138 | + } | ||
| 139 | + } | ||
| 140 | + rsp = map[string]interface{}{"user": retMap} | ||
| 134 | if err = transactionContext.CommitTransaction(); err != nil { | 141 | if err = transactionContext.CommitTransaction(); err != nil { |
| 135 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 142 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| 136 | return | 143 | return |
| @@ -156,7 +163,7 @@ func (svr *UserService) DeleteUser(header *protocol.RequestHeader, request *prot | @@ -156,7 +163,7 @@ func (svr *UserService) DeleteUser(header *protocol.RequestHeader, request *prot | ||
| 156 | }() | 163 | }() |
| 157 | 164 | ||
| 158 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 165 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| 159 | - var user *domain.User | 166 | + var user *domain.Users |
| 160 | if user, err = UserRepository.FindOne(common.ObjectToMap(request)); err != nil { | 167 | if user, err = UserRepository.FindOne(common.ObjectToMap(request)); err != nil { |
| 161 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 168 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 162 | return | 169 | return |
| @@ -191,15 +198,16 @@ func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protoc | @@ -191,15 +198,16 @@ func (svr *UserService) ListUser(header *protocol.RequestHeader, request *protoc | ||
| 191 | }() | 198 | }() |
| 192 | 199 | ||
| 193 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) | 200 | var UserRepository, _ = factory.CreateUserRepository(transactionContext) |
| 194 | - var user []*domain.User | 201 | + var user []*domain.Users |
| 195 | var total int64 | 202 | var total int64 |
| 196 | - if total, user, err = UserRepository.Find(common.ObjectToMap(request)); err != nil { | 203 | + if total, user, err = UserRepository.Find(map[string]interface{}{"offset": request.PageNumber * request.PageSize, "limit": request.PageSize, "sortById": "DESC"}); err != nil { |
| 197 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 204 | err = application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 198 | return | 205 | return |
| 199 | } | 206 | } |
| 200 | rsp = map[string]interface{}{ | 207 | rsp = map[string]interface{}{ |
| 201 | - "total": total, | ||
| 202 | - "list": user, | 208 | + "totalRow": total, |
| 209 | + "pageNumber": request.PageNumber, | ||
| 210 | + "list": utils.LoadCustomField(user, "Id", "Name", "Phone", "IsAdmin", "Status"), | ||
| 203 | } | 211 | } |
| 204 | if err = transactionContext.CommitTransaction(); err != nil { | 212 | if err = transactionContext.CommitTransaction(); err != nil { |
| 205 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | 213 | err = application.ThrowError(application.TRANSACTION_ERROR, err.Error()) |
| @@ -7,9 +7,9 @@ type Access struct { | @@ -7,9 +7,9 @@ type Access struct { | ||
| 7 | // 父级id | 7 | // 父级id |
| 8 | ParentId int64 `json:"parentId"` | 8 | ParentId int64 `json:"parentId"` |
| 9 | // 权限名称 | 9 | // 权限名称 |
| 10 | - AccessName string `json:"accessName"` | 10 | + AccessName string `json:"name"` |
| 11 | // 权限编码 | 11 | // 权限编码 |
| 12 | - AccessCode string `json:"accessCode"` | 12 | + AccessCode string `json:"code"` |
| 13 | // 权限类型 menu button data | 13 | // 权限类型 menu button data |
| 14 | AccessType string `json:"accessType"` | 14 | AccessType string `json:"accessType"` |
| 15 | // 排序 | 15 | // 排序 |
| @@ -20,6 +20,10 @@ type Access struct { | @@ -20,6 +20,10 @@ type Access struct { | ||
| 20 | Action string `json:"action"` | 20 | Action string `json:"action"` |
| 21 | // 所属功能模块 | 21 | // 所属功能模块 |
| 22 | Module string `json:"module"` | 22 | Module string `json:"module"` |
| 23 | + // icon | ||
| 24 | + Icon string `json:"icon"` | ||
| 25 | + // 状态 1-启用 0-禁用 | ||
| 26 | + Status int `json:"status"` | ||
| 23 | } | 27 | } |
| 24 | 28 | ||
| 25 | type AccessRepository interface { | 29 | type AccessRepository interface { |
| 1 | package domain | 1 | package domain |
| 2 | 2 | ||
| 3 | -// User | ||
| 4 | -type User struct { | 3 | +// Users |
| 4 | +type Users struct { | ||
| 5 | // 唯一标识 | 5 | // 唯一标识 |
| 6 | Id int64 `json:"id"` | 6 | Id int64 `json:"id"` |
| 7 | // 名称 | 7 | // 名称 |
| 8 | Name string `json:"name"` | 8 | Name string `json:"name"` |
| 9 | // 地址 | 9 | // 地址 |
| 10 | - Address string `json:"address"` | 10 | + //Address string `json:"address"` |
| 11 | // 手机号 | 11 | // 手机号 |
| 12 | Phone string `json:"phone"` | 12 | Phone string `json:"phone"` |
| 13 | // 密码 | 13 | // 密码 |
| 14 | Passwd string `json:"-"` | 14 | Passwd string `json:"-"` |
| 15 | // 用户角色 | 15 | // 用户角色 |
| 16 | Roles []int64 `json:"roles"` | 16 | Roles []int64 `json:"roles"` |
| 17 | - // 是否是超级管理员 true:是 false:否 | ||
| 18 | - IsAdmin bool `json:"isAdmin"` | 17 | + // 1启用 2禁用 |
| 18 | + Status int `json:"status"` | ||
| 19 | + // 管理员类型 | ||
| 20 | + AdminType int `json:"adminType"` | ||
| 19 | } | 21 | } |
| 20 | 22 | ||
| 21 | -type UserRepository interface { | ||
| 22 | - Save(dm *User) (*User, error) | ||
| 23 | - Remove(dm *User) (*User, error) | ||
| 24 | - FindOne(queryOptions map[string]interface{}) (*User, error) | ||
| 25 | - Find(queryOptions map[string]interface{}) (int64, []*User, error) | 23 | +type UsersRepository interface { |
| 24 | + Save(dm *Users) (*Users, error) | ||
| 25 | + Remove(dm *Users) (*Users, error) | ||
| 26 | + FindOne(queryOptions map[string]interface{}) (*Users, error) | ||
| 27 | + Find(queryOptions map[string]interface{}) (int64, []*Users, error) | ||
| 26 | } | 28 | } |
| 27 | 29 | ||
| 28 | -func (m *User) Identify() interface{} { | 30 | +func (m *Users) Identify() interface{} { |
| 29 | if m.Id == 0 { | 31 | if m.Id == 0 { |
| 30 | return nil | 32 | return nil |
| 31 | } | 33 | } |
| 32 | return m.Id | 34 | return m.Id |
| 33 | } | 35 | } |
| 34 | 36 | ||
| 35 | -func (m *User) Update(data map[string]interface{}) error { | 37 | +func (m *Users) Update(data map[string]interface{}) error { |
| 36 | if name, ok := data["name"]; ok { | 38 | if name, ok := data["name"]; ok { |
| 37 | m.Name = name.(string) | 39 | m.Name = name.(string) |
| 38 | } | 40 | } |
| 39 | - if address, ok := data["address"]; ok { | ||
| 40 | - m.Address = address.(string) | ||
| 41 | - } | ||
| 42 | if phone, ok := data["phone"]; ok { | 41 | if phone, ok := data["phone"]; ok { |
| 43 | m.Phone = phone.(string) | 42 | m.Phone = phone.(string) |
| 44 | } | 43 | } |
| @@ -48,8 +47,11 @@ func (m *User) Update(data map[string]interface{}) error { | @@ -48,8 +47,11 @@ func (m *User) Update(data map[string]interface{}) error { | ||
| 48 | if roles, ok := data["roles"]; ok { | 47 | if roles, ok := data["roles"]; ok { |
| 49 | m.Roles = roles.([]int64) | 48 | m.Roles = roles.([]int64) |
| 50 | } | 49 | } |
| 51 | - if isAdmin, ok := data["isAdmin"]; ok { | ||
| 52 | - m.IsAdmin = isAdmin.(bool) | 50 | + if adminType, ok := data["adminType"]; ok { |
| 51 | + m.AdminType = adminType.(int) | ||
| 52 | + } | ||
| 53 | + if status, ok := data["status"]; ok { | ||
| 54 | + m.Status = status.(int) | ||
| 53 | } | 55 | } |
| 54 | return nil | 56 | return nil |
| 55 | } | 57 | } |
| @@ -33,7 +33,7 @@ func init() { | @@ -33,7 +33,7 @@ func init() { | ||
| 33 | (*models.ProjectModuleVersion)(nil), | 33 | (*models.ProjectModuleVersion)(nil), |
| 34 | (*models.Role)(nil), | 34 | (*models.Role)(nil), |
| 35 | (*models.RoleAccess)(nil), | 35 | (*models.RoleAccess)(nil), |
| 36 | - (*models.User)(nil), | 36 | + (*models.Users)(nil), |
| 37 | } { | 37 | } { |
| 38 | err := DB.CreateTable(model, &orm.CreateTableOptions{ | 38 | err := DB.CreateTable(model, &orm.CreateTableOptions{ |
| 39 | Temp: false, | 39 | Temp: false, |
| 1 | package models | 1 | package models |
| 2 | 2 | ||
| 3 | -// User | ||
| 4 | -type User struct { | ||
| 5 | - tableName struct{} `pg:"user"` | 3 | +// Users |
| 4 | +type Users struct { | ||
| 5 | + tableName struct{} `pg:"users"` | ||
| 6 | // 唯一标识 | 6 | // 唯一标识 |
| 7 | Id int64 | 7 | Id int64 |
| 8 | // 名称 | 8 | // 名称 |
| 9 | Name string | 9 | Name string |
| 10 | - // 地址 | ||
| 11 | - Address string | ||
| 12 | // 手机号 | 10 | // 手机号 |
| 13 | Phone string | 11 | Phone string |
| 14 | // 密码 | 12 | // 密码 |
| 15 | Passwd string | 13 | Passwd string |
| 16 | // 用户角色 | 14 | // 用户角色 |
| 17 | Roles []int64 | 15 | Roles []int64 |
| 18 | - // 是否是超级管理员 true:是 false:否 | ||
| 19 | - IsAdmin bool | 16 | + // 1启用 2禁用 |
| 17 | + Status int | ||
| 18 | + // 管理员类型 1:超级管理员 2:普通账号 | ||
| 19 | + AdminType int | ||
| 20 | } | 20 | } |
| @@ -66,8 +66,9 @@ func (repository *AccessRepository) Find(queryOptions map[string]interface{}) (i | @@ -66,8 +66,9 @@ func (repository *AccessRepository) Find(queryOptions map[string]interface{}) (i | ||
| 66 | Accesss := make([]*domain.Access, 0) | 66 | Accesss := make([]*domain.Access, 0) |
| 67 | query := NewQuery(tx.Model(&AccessModels), queryOptions). | 67 | query := NewQuery(tx.Model(&AccessModels), queryOptions). |
| 68 | SetOrder("create_time", "sortByCreateTime"). | 68 | SetOrder("create_time", "sortByCreateTime"). |
| 69 | - SetOrder("update_time", "sortByUpdateTime") | ||
| 70 | - | 69 | + SetOrder("update_time", "sortByUpdateTime"). |
| 70 | + SetOrder("parent_id", "sortByParentId"). | ||
| 71 | + SetOrder("sort", "sortBySort") | ||
| 71 | if inAccessIds, ok := queryOptions["inAccessIds"]; ok { | 72 | if inAccessIds, ok := queryOptions["inAccessIds"]; ok { |
| 72 | query.Where("id in (?)", pg.In(inAccessIds)) | 73 | query.Where("id in (?)", pg.In(inAccessIds)) |
| 73 | } | 74 | } |
| @@ -27,9 +27,10 @@ func (repository *RoleRepository) Save(dm *domain.Role) (*domain.Role, error) { | @@ -27,9 +27,10 @@ func (repository *RoleRepository) Save(dm *domain.Role) (*domain.Role, error) { | ||
| 27 | if err = tx.Insert(m); err != nil { | 27 | if err = tx.Insert(m); err != nil { |
| 28 | return nil, err | 28 | return nil, err |
| 29 | } | 29 | } |
| 30 | + dm.Id = m.Id | ||
| 30 | return dm, nil | 31 | return dm, nil |
| 31 | } | 32 | } |
| 32 | - if err = tx.Update(m); err != nil { | 33 | + if _, err = tx.Exec(`update role set role_name=?,parent_id=?,update_time=now() where id = ?`, m.RoleName, m.ParentId, m.Id); err != nil { |
| 33 | return nil, err | 34 | return nil, err |
| 34 | } | 35 | } |
| 35 | return dm, nil | 36 | return dm, nil |
| @@ -67,7 +68,9 @@ func (repository *RoleRepository) Find(queryOptions map[string]interface{}) (int | @@ -67,7 +68,9 @@ func (repository *RoleRepository) Find(queryOptions map[string]interface{}) (int | ||
| 67 | query := NewQuery(tx.Model(&RoleModels), queryOptions). | 68 | query := NewQuery(tx.Model(&RoleModels), queryOptions). |
| 68 | SetWhere("parent_id=?", "parentId"). | 69 | SetWhere("parent_id=?", "parentId"). |
| 69 | SetOrder("create_time", "sortByCreateTime"). | 70 | SetOrder("create_time", "sortByCreateTime"). |
| 70 | - SetOrder("update_time", "sortByUpdateTime") | 71 | + SetOrder("update_time", "sortByUpdateTime"). |
| 72 | + SetOrder("id", "orderById") | ||
| 73 | + | ||
| 71 | var err error | 74 | var err error |
| 72 | if inRoleIds, ok := queryOptions["inRoleIds"]; ok { | 75 | if inRoleIds, ok := queryOptions["inRoleIds"]; ok { |
| 73 | query.Where("id in (?)", pg.In(inRoleIds)) | 76 | query.Where("id in (?)", pg.In(inRoleIds)) |
| @@ -9,14 +9,14 @@ import ( | @@ -9,14 +9,14 @@ import ( | ||
| 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" | 9 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/infrastructure/pg/transaction" |
| 10 | ) | 10 | ) |
| 11 | 11 | ||
| 12 | -type UserRepository struct { | 12 | +type UsersRepository struct { |
| 13 | transactionContext *transaction.TransactionContext | 13 | transactionContext *transaction.TransactionContext |
| 14 | } | 14 | } |
| 15 | 15 | ||
| 16 | -func (repository *UserRepository) Save(dm *domain.User) (*domain.User, error) { | 16 | +func (repository *UsersRepository) Save(dm *domain.Users) (*domain.Users, error) { |
| 17 | var ( | 17 | var ( |
| 18 | err error | 18 | err error |
| 19 | - m = &models.User{} | 19 | + m = &models.Users{} |
| 20 | tx = repository.transactionContext.PgTx | 20 | tx = repository.transactionContext.PgTx |
| 21 | ) | 21 | ) |
| 22 | if err = common.GobModelTransform(m, dm); err != nil { | 22 | if err = common.GobModelTransform(m, dm); err != nil { |
| @@ -35,10 +35,10 @@ func (repository *UserRepository) Save(dm *domain.User) (*domain.User, error) { | @@ -35,10 +35,10 @@ func (repository *UserRepository) Save(dm *domain.User) (*domain.User, error) { | ||
| 35 | return dm, nil | 35 | return dm, nil |
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | -func (repository *UserRepository) Remove(User *domain.User) (*domain.User, error) { | 38 | +func (repository *UsersRepository) Remove(User *domain.Users) (*domain.Users, error) { |
| 39 | var ( | 39 | var ( |
| 40 | tx = repository.transactionContext.PgTx | 40 | tx = repository.transactionContext.PgTx |
| 41 | - UserModel = &models.User{Id: User.Identify().(int64)} | 41 | + UserModel = &models.Users{Id: User.Identify().(int64)} |
| 42 | ) | 42 | ) |
| 43 | if _, err := tx.Model(UserModel).Where("id = ?", User.Id).Delete(); err != nil { | 43 | if _, err := tx.Model(UserModel).Where("id = ?", User.Id).Delete(); err != nil { |
| 44 | return User, err | 44 | return User, err |
| @@ -46,9 +46,9 @@ func (repository *UserRepository) Remove(User *domain.User) (*domain.User, error | @@ -46,9 +46,9 @@ func (repository *UserRepository) Remove(User *domain.User) (*domain.User, error | ||
| 46 | return User, nil | 46 | return User, nil |
| 47 | } | 47 | } |
| 48 | 48 | ||
| 49 | -func (repository *UserRepository) FindOne(queryOptions map[string]interface{}) (*domain.User, error) { | 49 | +func (repository *UsersRepository) FindOne(queryOptions map[string]interface{}) (*domain.Users, error) { |
| 50 | tx := repository.transactionContext.PgTx | 50 | tx := repository.transactionContext.PgTx |
| 51 | - UserModel := new(models.User) | 51 | + UserModel := new(models.Users) |
| 52 | query := NewQuery(tx.Model(UserModel), queryOptions) | 52 | query := NewQuery(tx.Model(UserModel), queryOptions) |
| 53 | query.SetWhere("id = ?", "id") | 53 | query.SetWhere("id = ?", "id") |
| 54 | query.SetWhere("phone = ?", "phone") | 54 | query.SetWhere("phone = ?", "phone") |
| @@ -61,13 +61,15 @@ func (repository *UserRepository) FindOne(queryOptions map[string]interface{}) ( | @@ -61,13 +61,15 @@ func (repository *UserRepository) FindOne(queryOptions map[string]interface{}) ( | ||
| 61 | return repository.transformPgModelToDomainModel(UserModel) | 61 | return repository.transformPgModelToDomainModel(UserModel) |
| 62 | } | 62 | } |
| 63 | 63 | ||
| 64 | -func (repository *UserRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.User, error) { | 64 | +func (repository *UsersRepository) Find(queryOptions map[string]interface{}) (int64, []*domain.Users, error) { |
| 65 | tx := repository.transactionContext.PgTx | 65 | tx := repository.transactionContext.PgTx |
| 66 | - var UserModels []*models.User | ||
| 67 | - Users := make([]*domain.User, 0) | 66 | + var UserModels []*models.Users |
| 67 | + Users := make([]*domain.Users, 0) | ||
| 68 | query := NewQuery(tx.Model(&UserModels), queryOptions). | 68 | query := NewQuery(tx.Model(&UserModels), queryOptions). |
| 69 | SetOrder("create_time", "sortByCreateTime"). | 69 | SetOrder("create_time", "sortByCreateTime"). |
| 70 | - SetOrder("update_time", "sortByUpdateTime") | 70 | + SetOrder("update_time", "sortByUpdateTime"). |
| 71 | + SetOrder("id", "sortById"). | ||
| 72 | + SetLimit() | ||
| 71 | var err error | 73 | var err error |
| 72 | if query.AffectRow, err = query.SelectAndCount(); err != nil { | 74 | if query.AffectRow, err = query.SelectAndCount(); err != nil { |
| 73 | return 0, Users, err | 75 | return 0, Users, err |
| @@ -82,15 +84,15 @@ func (repository *UserRepository) Find(queryOptions map[string]interface{}) (int | @@ -82,15 +84,15 @@ func (repository *UserRepository) Find(queryOptions map[string]interface{}) (int | ||
| 82 | return int64(query.AffectRow), Users, nil | 84 | return int64(query.AffectRow), Users, nil |
| 83 | } | 85 | } |
| 84 | 86 | ||
| 85 | -func (repository *UserRepository) transformPgModelToDomainModel(UserModel *models.User) (*domain.User, error) { | ||
| 86 | - m := &domain.User{} | 87 | +func (repository *UsersRepository) transformPgModelToDomainModel(UserModel *models.Users) (*domain.Users, error) { |
| 88 | + m := &domain.Users{} | ||
| 87 | err := common.GobModelTransform(m, UserModel) | 89 | err := common.GobModelTransform(m, UserModel) |
| 88 | return m, err | 90 | return m, err |
| 89 | } | 91 | } |
| 90 | 92 | ||
| 91 | -func NewUserRepository(transactionContext *transaction.TransactionContext) (*UserRepository, error) { | 93 | +func NewUserRepository(transactionContext *transaction.TransactionContext) (*UsersRepository, error) { |
| 92 | if transactionContext == nil { | 94 | if transactionContext == nil { |
| 93 | return nil, fmt.Errorf("transactionContext参数不能为nil") | 95 | return nil, fmt.Errorf("transactionContext参数不能为nil") |
| 94 | } | 96 | } |
| 95 | - return &UserRepository{transactionContext: transactionContext}, nil | 97 | + return &UsersRepository{transactionContext: transactionContext}, nil |
| 96 | } | 98 | } |
pkg/infrastructure/utils/mapping.go
0 → 100644
| 1 | +package utils | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/common" | ||
| 5 | + "reflect" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func LoadCustomField(src interface{}, fields ...string) interface{} { | ||
| 9 | + typeSrc := reflect.TypeOf(src) | ||
| 10 | + valueSrc := reflect.ValueOf(src) | ||
| 11 | + | ||
| 12 | + if v, ok := src.(reflect.Value); ok { | ||
| 13 | + valueSrc = v | ||
| 14 | + typeSrc = v.Type() | ||
| 15 | + } | ||
| 16 | + if typeSrc.Kind() == reflect.Ptr { | ||
| 17 | + valueSrc = valueSrc.Elem() | ||
| 18 | + } | ||
| 19 | + k := valueSrc.Kind() | ||
| 20 | + switch k { | ||
| 21 | + case reflect.Array, reflect.Slice: | ||
| 22 | + len := valueSrc.Len() | ||
| 23 | + retSliceMap := make([]map[string]interface{}, 0) | ||
| 24 | + if len == 0 { | ||
| 25 | + return retSliceMap | ||
| 26 | + } | ||
| 27 | + for i := 0; i < len; i++ { | ||
| 28 | + v := valueSrc.Index(i) | ||
| 29 | + //if v.Kind()==reflect.Ptr | ||
| 30 | + //item :=make(map[string]interface{}) | ||
| 31 | + //for _,filed :=range fields{ | ||
| 32 | + // f:= v.FieldByName(filed) | ||
| 33 | + // item[common.CamelCase(filed, false)] = f.Interface() | ||
| 34 | + //} | ||
| 35 | + retSliceMap = append(retSliceMap, (LoadCustomField(v, fields...)).(map[string]interface{})) | ||
| 36 | + } | ||
| 37 | + return retSliceMap | ||
| 38 | + case reflect.Struct: | ||
| 39 | + retSliceMap := make(map[string]interface{}) | ||
| 40 | + for _, filed := range fields { | ||
| 41 | + f := valueSrc.FieldByName(filed) | ||
| 42 | + retSliceMap[common.CamelCase(filed, false)] = f.Interface() | ||
| 43 | + } | ||
| 44 | + return retSliceMap | ||
| 45 | + default: | ||
| 46 | + return src | ||
| 47 | + } | ||
| 48 | + return src | ||
| 49 | +} |
pkg/infrastructure/utils/mapping_test.go
0 → 100644
| 1 | +package utils | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "github.com/tiptok/gocomm/common" | ||
| 5 | + "testing" | ||
| 6 | +) | ||
| 7 | + | ||
| 8 | +func TestLoadCustomField(t *testing.T) { | ||
| 9 | + | ||
| 10 | + type User struct { | ||
| 11 | + Name string | ||
| 12 | + Id int | ||
| 13 | + } | ||
| 14 | + v := []struct { | ||
| 15 | + Name string | ||
| 16 | + Id int | ||
| 17 | + }{{Name: "c1", Id: 1}, {Name: "c2", Id: 2}, {Name: "c3", Id: 3}} | ||
| 18 | + ret := LoadCustomField(&v, "Name") | ||
| 19 | + t.Log(common.JsonAssertString(ret)) | ||
| 20 | + | ||
| 21 | + v2 := struct { | ||
| 22 | + Name string | ||
| 23 | + Id int | ||
| 24 | + }{Name: "c1", Id: 1} | ||
| 25 | + ret2 := LoadCustomField(v2, "Name", "Id") | ||
| 26 | + t.Log(common.JsonAssertString(ret2)) | ||
| 27 | + | ||
| 28 | + v3 := []*User{&User{Name: "c1", Id: 1}, &User{Name: "c2", Id: 2}, &User{Name: "c3", Id: 3}} | ||
| 29 | + ret3 := LoadCustomField(&v3, "Name") | ||
| 30 | + t.Log(common.JsonAssertString(ret3)) | ||
| 31 | +} |
| @@ -3,6 +3,7 @@ package beego | @@ -3,6 +3,7 @@ package beego | ||
| 3 | import ( | 3 | import ( |
| 4 | "github.com/astaxie/beego" | 4 | "github.com/astaxie/beego" |
| 5 | "github.com/astaxie/beego/plugins/cors" | 5 | "github.com/astaxie/beego/plugins/cors" |
| 6 | + "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/port/beego/middleware" | ||
| 6 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/port/beego/routers" | 7 | _ "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/port/beego/routers" |
| 7 | ) | 8 | ) |
| 8 | 9 | ||
| @@ -15,10 +16,11 @@ func init() { | @@ -15,10 +16,11 @@ func init() { | ||
| 15 | AllowCredentials: true, | 16 | AllowCredentials: true, |
| 16 | })) | 17 | })) |
| 17 | 18 | ||
| 18 | - //beego.InsertFilter("/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 19 | - //beego.InsertFilter("/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 20 | - //beego.InsertFilter("/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 21 | - //beego.InsertFilter("/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 22 | - //beego.InsertFilter("/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 23 | - //beego.InsertFilter("/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) | 19 | + beego.InsertFilter("/auth/profile", beego.BeforeExec, middleware.CheckAuthorization) |
| 20 | + beego.InsertFilter("/user/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 21 | + beego.InsertFilter("/role/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 22 | + beego.InsertFilter("/project_module/*", beego.BeforeExec, middleware.InspectRoleAccess("")) | ||
| 23 | + beego.InsertFilter("/project_module_version/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 24 | + beego.InsertFilter("/project_module_files/*", beego.BeforeExec, middleware.InspectRoleAccess("/project_module/*")) | ||
| 25 | + beego.InsertFilter("/rbac/*", beego.BeforeExec, middleware.InspectRoleAccess("/role/*")) | ||
| 24 | } | 26 | } |
| @@ -13,20 +13,20 @@ type AuthController struct { | @@ -13,20 +13,20 @@ type AuthController struct { | ||
| 13 | 13 | ||
| 14 | // Login | 14 | // Login |
| 15 | // 登录 | 15 | // 登录 |
| 16 | -func (this *AuthController) Login() { | 16 | +func (controller *AuthController) Login() { |
| 17 | var ( | 17 | var ( |
| 18 | msg *protocol.ResponseMessage | 18 | msg *protocol.ResponseMessage |
| 19 | svr = auth.NewAuthService(nil) | 19 | svr = auth.NewAuthService(nil) |
| 20 | request *protocolx.LoginRequest | 20 | request *protocolx.LoginRequest |
| 21 | ) | 21 | ) |
| 22 | defer func() { | 22 | defer func() { |
| 23 | - this.Resp(msg) | 23 | + controller.Resp(msg) |
| 24 | }() | 24 | }() |
| 25 | - if err := this.JsonUnmarshal(&request); err != nil { | ||
| 26 | - msg = protocol.NewResponseMessage(2, "") | 25 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 26 | + msg = protocol.NewResponseMessage(2, err.Error()) | ||
| 27 | return | 27 | return |
| 28 | } | 28 | } |
| 29 | - header := this.GetRequestHeader(this.Ctx) | 29 | + header := controller.GetRequestHeader(controller.Ctx) |
| 30 | data, err := svr.Login(header, request) | 30 | data, err := svr.Login(header, request) |
| 31 | if err != nil { | 31 | if err != nil { |
| 32 | log.Error(err) | 32 | log.Error(err) |
| @@ -36,20 +36,20 @@ func (this *AuthController) Login() { | @@ -36,20 +36,20 @@ func (this *AuthController) Login() { | ||
| 36 | 36 | ||
| 37 | // Logout | 37 | // Logout |
| 38 | // 测试 | 38 | // 测试 |
| 39 | -func (this *AuthController) Logout() { | 39 | +func (controller *AuthController) Logout() { |
| 40 | var ( | 40 | var ( |
| 41 | msg *protocol.ResponseMessage | 41 | msg *protocol.ResponseMessage |
| 42 | svr = auth.NewAuthService(nil) | 42 | svr = auth.NewAuthService(nil) |
| 43 | request *protocolx.LogoutRequest | 43 | request *protocolx.LogoutRequest |
| 44 | ) | 44 | ) |
| 45 | defer func() { | 45 | defer func() { |
| 46 | - this.Resp(msg) | 46 | + controller.Resp(msg) |
| 47 | }() | 47 | }() |
| 48 | - if err := this.JsonUnmarshal(&request); err != nil { | 48 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 49 | msg = protocol.NewResponseMessage(2, "") | 49 | msg = protocol.NewResponseMessage(2, "") |
| 50 | return | 50 | return |
| 51 | } | 51 | } |
| 52 | - header := this.GetRequestHeader(this.Ctx) | 52 | + header := controller.GetRequestHeader(controller.Ctx) |
| 53 | data, err := svr.Logout(header, request) | 53 | data, err := svr.Logout(header, request) |
| 54 | if err != nil { | 54 | if err != nil { |
| 55 | log.Error(err) | 55 | log.Error(err) |
| @@ -59,20 +59,17 @@ func (this *AuthController) Logout() { | @@ -59,20 +59,17 @@ func (this *AuthController) Logout() { | ||
| 59 | 59 | ||
| 60 | // Profile | 60 | // Profile |
| 61 | // 获取当前用户数据 | 61 | // 获取当前用户数据 |
| 62 | -func (this *AuthController) Profile() { | 62 | +func (controller *AuthController) Profile() { |
| 63 | var ( | 63 | var ( |
| 64 | msg *protocol.ResponseMessage | 64 | msg *protocol.ResponseMessage |
| 65 | svr = auth.NewAuthService(nil) | 65 | svr = auth.NewAuthService(nil) |
| 66 | - request *protocolx.ProfileRequest | 66 | + request = &protocolx.ProfileRequest{} |
| 67 | ) | 67 | ) |
| 68 | defer func() { | 68 | defer func() { |
| 69 | - this.Resp(msg) | 69 | + controller.Resp(msg) |
| 70 | }() | 70 | }() |
| 71 | - if err := this.JsonUnmarshal(&request); err != nil { | ||
| 72 | - msg = protocol.NewResponseMessage(2, "") | ||
| 73 | - return | ||
| 74 | - } | ||
| 75 | - header := this.GetRequestHeader(this.Ctx) | 71 | + header := controller.GetRequestHeader(controller.Ctx) |
| 72 | + request.UserId = header.UserId | ||
| 76 | data, err := svr.Profile(header, request) | 73 | data, err := svr.Profile(header, request) |
| 77 | if err != nil { | 74 | if err != nil { |
| 78 | log.Error(err) | 75 | log.Error(err) |
| @@ -82,17 +79,17 @@ func (this *AuthController) Profile() { | @@ -82,17 +79,17 @@ func (this *AuthController) Profile() { | ||
| 82 | 79 | ||
| 83 | // CaptchaInit | 80 | // CaptchaInit |
| 84 | // 图形验证码初始化 | 81 | // 图形验证码初始化 |
| 85 | -func (this *AuthController) CaptchaInit() { | 82 | +func (controller *AuthController) CaptchaInit() { |
| 86 | var ( | 83 | var ( |
| 87 | msg *protocol.ResponseMessage | 84 | msg *protocol.ResponseMessage |
| 88 | svr = auth.NewAuthService(nil) | 85 | svr = auth.NewAuthService(nil) |
| 89 | request = &protocolx.CaptchaInitRequest{} | 86 | request = &protocolx.CaptchaInitRequest{} |
| 90 | ) | 87 | ) |
| 91 | defer func() { | 88 | defer func() { |
| 92 | - this.Resp(msg) | 89 | + controller.Resp(msg) |
| 93 | }() | 90 | }() |
| 94 | - request.UserIp = this.Ctx.Input.IP() | ||
| 95 | - header := this.GetRequestHeader(this.Ctx) | 91 | + request.UserIp = controller.Ctx.Input.IP() |
| 92 | + header := controller.GetRequestHeader(controller.Ctx) | ||
| 96 | data, err := svr.CaptchaInit(header, request) | 93 | data, err := svr.CaptchaInit(header, request) |
| 97 | if err != nil { | 94 | if err != nil { |
| 98 | log.Error(err) | 95 | log.Error(err) |
| @@ -102,20 +99,20 @@ func (this *AuthController) CaptchaInit() { | @@ -102,20 +99,20 @@ func (this *AuthController) CaptchaInit() { | ||
| 102 | 99 | ||
| 103 | // ChangePassword | 100 | // ChangePassword |
| 104 | // 修改密码 | 101 | // 修改密码 |
| 105 | -func (this *AuthController) ChangePassword() { | 102 | +func (controller *AuthController) ChangePassword() { |
| 106 | var ( | 103 | var ( |
| 107 | msg *protocol.ResponseMessage | 104 | msg *protocol.ResponseMessage |
| 108 | svr = auth.NewAuthService(nil) | 105 | svr = auth.NewAuthService(nil) |
| 109 | request *protocolx.ChangePasswordRequest | 106 | request *protocolx.ChangePasswordRequest |
| 110 | ) | 107 | ) |
| 111 | defer func() { | 108 | defer func() { |
| 112 | - this.Resp(msg) | 109 | + controller.Resp(msg) |
| 113 | }() | 110 | }() |
| 114 | - if err := this.JsonUnmarshal(&request); err != nil { | 111 | + if err := controller.JsonUnmarshal(&request); err != nil { |
| 115 | msg = protocol.NewResponseMessage(2, "") | 112 | msg = protocol.NewResponseMessage(2, "") |
| 116 | return | 113 | return |
| 117 | } | 114 | } |
| 118 | - header := this.GetRequestHeader(this.Ctx) | 115 | + header := controller.GetRequestHeader(controller.Ctx) |
| 119 | data, err := svr.ChangePassword(header, request) | 116 | data, err := svr.ChangePassword(header, request) |
| 120 | if err != nil { | 117 | if err != nil { |
| 121 | log.Error(err) | 118 | log.Error(err) |
| @@ -6,7 +6,6 @@ import ( | @@ -6,7 +6,6 @@ import ( | ||
| 6 | "github.com/astaxie/beego" | 6 | "github.com/astaxie/beego" |
| 7 | "github.com/astaxie/beego/context" | 7 | "github.com/astaxie/beego/context" |
| 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" | 8 | "gitlab.fjmaimaimai.com/mmm-go/godevp/pkg/protocol" |
| 9 | - "strconv" | ||
| 10 | ) | 9 | ) |
| 11 | 10 | ||
| 12 | type BaseController struct { | 11 | type BaseController struct { |
| @@ -42,6 +41,9 @@ func (controller BaseController) GetLimitInfo() (offset int, limit int) { | @@ -42,6 +41,9 @@ func (controller BaseController) GetLimitInfo() (offset int, limit int) { | ||
| 42 | //获取请求头信息 | 41 | //获取请求头信息 |
| 43 | func (controller *BaseController) GetRequestHeader(ctx *context.Context) *protocol.RequestHeader { | 42 | func (controller *BaseController) GetRequestHeader(ctx *context.Context) *protocol.RequestHeader { |
| 44 | h := &protocol.RequestHeader{} | 43 | h := &protocol.RequestHeader{} |
| 45 | - h.UserId, _ = strconv.ParseInt(ctx.Input.Header("x-mmm-id"), 10, 64) | 44 | + if ctx.Input.GetData("x-mmm-id") != nil { |
| 45 | + v := ctx.Input.GetData("x-mmm-id") | ||
| 46 | + h.UserId = int64(v.(int)) | ||
| 47 | + } | ||
| 46 | return h | 48 | return h |
| 47 | } | 49 | } |
| @@ -118,5 +118,5 @@ func (controller *UserController) ListUser() { | @@ -118,5 +118,5 @@ func (controller *UserController) ListUser() { | ||
| 118 | if err != nil { | 118 | if err != nil { |
| 119 | log.Error(err) | 119 | log.Error(err) |
| 120 | } | 120 | } |
| 121 | - msg = protocol.NewResponseMessageData(data, err) | 121 | + msg = protocol.NewResponseMessageListData(data, err) |
| 122 | } | 122 | } |
| @@ -26,7 +26,7 @@ func CheckAuthorization(ctx *context.Context) { | @@ -26,7 +26,7 @@ func CheckAuthorization(ctx *context.Context) { | ||
| 26 | }() | 26 | }() |
| 27 | authorization := ctx.Input.Header("Authorization") | 27 | authorization := ctx.Input.Header("Authorization") |
| 28 | if len(authorization) == 0 { | 28 | if len(authorization) == 0 { |
| 29 | - msg = protocol.NewResponseMessage(1, errAuthorization.Error()) | 29 | + msg = protocol.NewResponseMessage(-1, errAuthorization.Error()) |
| 30 | return | 30 | return |
| 31 | } | 31 | } |
| 32 | var token string | 32 | var token string |
| @@ -38,7 +38,7 @@ func CheckAuthorization(ctx *context.Context) { | @@ -38,7 +38,7 @@ func CheckAuthorization(ctx *context.Context) { | ||
| 38 | } | 38 | } |
| 39 | claim, err := common.ParseJWTToken(token) | 39 | claim, err := common.ParseJWTToken(token) |
| 40 | if err != nil { | 40 | if err != nil { |
| 41 | - msg = protocol.NewResponseMessage(1, errAuthorizationExpire.Error()) | 41 | + msg = protocol.NewResponseMessage(-1, errAuthorizationExpire.Error()) |
| 42 | return | 42 | return |
| 43 | } | 43 | } |
| 44 | userId, _ := strconv.Atoi(claim.Username) | 44 | userId, _ := strconv.Atoi(claim.Username) |
| @@ -57,12 +57,12 @@ func CheckRoleAccess(ctx *context.Context, object, method string) { | @@ -57,12 +57,12 @@ func CheckRoleAccess(ctx *context.Context, object, method string) { | ||
| 57 | }() | 57 | }() |
| 58 | userId := ctx.Input.GetData("x-mmm-id") | 58 | userId := ctx.Input.GetData("x-mmm-id") |
| 59 | if userId == nil { | 59 | if userId == nil { |
| 60 | - msg = protocol.NewResponseMessage(1, errAuthorization.Error()) | 60 | + msg = protocol.NewResponseMessage(-1, errAuthorization.Error()) |
| 61 | return | 61 | return |
| 62 | } | 62 | } |
| 63 | validUserRole := cachex.CacheService{} | 63 | validUserRole := cachex.CacheService{} |
| 64 | if ok, _ := validUserRole.ValidUserAccess(int64(userId.(int)), object, method); !ok { | 64 | if ok, _ := validUserRole.ValidUserAccess(int64(userId.(int)), object, method); !ok { |
| 65 | - msg = protocol.NewResponseMessage(1, errAuthorization.Error()) | 65 | + msg = protocol.NewResponseMessage(-1, errAuthorization.Error()) |
| 66 | return | 66 | return |
| 67 | } | 67 | } |
| 68 | return | 68 | return |
| @@ -9,6 +9,6 @@ func init() { | @@ -9,6 +9,6 @@ func init() { | ||
| 9 | beego.Router("/auth/login", &controllers.AuthController{}, "post:Login") | 9 | beego.Router("/auth/login", &controllers.AuthController{}, "post:Login") |
| 10 | beego.Router("/auth/logout", &controllers.AuthController{}, "post:Logout") | 10 | beego.Router("/auth/logout", &controllers.AuthController{}, "post:Logout") |
| 11 | beego.Router("/auth/profile", &controllers.AuthController{}, "post:Profile") | 11 | beego.Router("/auth/profile", &controllers.AuthController{}, "post:Profile") |
| 12 | - beego.Router("/auth/captchaInit", &controllers.AuthController{}, "get:CaptchaInit") | 12 | + beego.Router("/auth/captcha-init", &controllers.AuthController{}, "post:CaptchaInit") |
| 13 | beego.Router("/auth/changePassword", &controllers.AuthController{}, "post:ChangePassword") | 13 | beego.Router("/auth/changePassword", &controllers.AuthController{}, "post:ChangePassword") |
| 14 | } | 14 | } |
| @@ -83,6 +83,11 @@ func NewResponseMessageData(data interface{}, err error) *ResponseMessage { | @@ -83,6 +83,11 @@ func NewResponseMessageData(data interface{}, err error) *ResponseMessage { | ||
| 83 | return NewMesage(1) | 83 | return NewMesage(1) |
| 84 | } | 84 | } |
| 85 | 85 | ||
| 86 | +func NewResponseMessageListData(data interface{}, err error) *ResponseMessage { | ||
| 87 | + mapData := map[string]interface{}{"gridResult": data} | ||
| 88 | + return NewResponseMessageData(mapData, err) | ||
| 89 | +} | ||
| 90 | + | ||
| 86 | func NewResponseMessage(code int, err string) *ResponseMessage { | 91 | func NewResponseMessage(code int, err string) *ResponseMessage { |
| 87 | return &ResponseMessage{ | 92 | return &ResponseMessage{ |
| 88 | ErrorCode: ErrorCode{ | 93 | ErrorCode: ErrorCode{ |
| @@ -16,8 +16,8 @@ type CreateUserRequest struct { | @@ -16,8 +16,8 @@ type CreateUserRequest struct { | ||
| 16 | Passwd string `json:"passwd,omitempty"` | 16 | Passwd string `json:"passwd,omitempty"` |
| 17 | // 用户角色 | 17 | // 用户角色 |
| 18 | Roles []int64 `json:"roles,omitempty"` | 18 | Roles []int64 `json:"roles,omitempty"` |
| 19 | - // 是否是超级管理员 true:是 false:否 | ||
| 20 | - IsAdmin bool `json:"isAdmin,omitempty"` | 19 | + // 管理员类型 1:超级管理员 2:普通账号 |
| 20 | + AdminType int `json:"adminType"` | ||
| 21 | } | 21 | } |
| 22 | 22 | ||
| 23 | func (CreateUserRequest *CreateUserRequest) ValidateCommand() error { | 23 | func (CreateUserRequest *CreateUserRequest) ValidateCommand() error { |
| @@ -17,8 +17,10 @@ type UpdateUserRequest struct { | @@ -17,8 +17,10 @@ type UpdateUserRequest struct { | ||
| 17 | Passwd string `json:"passwd,omitempty"` | 17 | Passwd string `json:"passwd,omitempty"` |
| 18 | // 用户角色 | 18 | // 用户角色 |
| 19 | Roles []int64 `json:"roles,omitempty"` | 19 | Roles []int64 `json:"roles,omitempty"` |
| 20 | - // 是否是超级管理员 true:是 false:否 | ||
| 21 | - IsAdmin bool `json:"isAdmin,omitempty"` | 20 | + // 1启用 2禁用 |
| 21 | + Status int `json:"status,omitempty"` | ||
| 22 | + // 管理员类型 1:超级管理员 2:普通账号 | ||
| 23 | + AdminType int `json:"adminType"` | ||
| 22 | } | 24 | } |
| 23 | 25 | ||
| 24 | func (UpdateUserRequest *UpdateUserRequest) ValidateCommand() error { | 26 | func (UpdateUserRequest *UpdateUserRequest) ValidateCommand() error { |
| @@ -6,10 +6,15 @@ import ( | @@ -6,10 +6,15 @@ import ( | ||
| 6 | ) | 6 | ) |
| 7 | 7 | ||
| 8 | type ListUserRequest struct { | 8 | type ListUserRequest struct { |
| 9 | + PageSize int `json:"pageSize"` | ||
| 10 | + PageNumber int `json:"pageNumber"` | ||
| 9 | } | 11 | } |
| 10 | 12 | ||
| 11 | func (ListUserRequest *ListUserRequest) ValidateCommand() error { | 13 | func (ListUserRequest *ListUserRequest) ValidateCommand() error { |
| 12 | valid := validation.Validation{} | 14 | valid := validation.Validation{} |
| 15 | + if ListUserRequest.PageNumber == 0 { | ||
| 16 | + ListUserRequest.PageNumber = 20 | ||
| 17 | + } | ||
| 13 | b, err := valid.Valid(ListUserRequest) | 18 | b, err := valid.Valid(ListUserRequest) |
| 14 | if err != nil { | 19 | if err != nil { |
| 15 | return err | 20 | return err |
-
请 注册 或 登录 后发表评论