zrufo 4 лет назад
Родитель
Сommit
f85f653a00

+ 4 - 3
api/grpc/base/base.pb.go

@@ -1,7 +1,7 @@
 // Code generated by protoc-gen-go. DO NOT EDIT.
 // versions:
-// 	protoc-gen-go v1.25.0
-// 	protoc        v3.14.0
+// 	protoc-gen-go v1.23.0
+// 	protoc        v3.11.3
 // source: base.proto
 
 package base
@@ -329,7 +329,8 @@ var file_base_proto_rawDesc = []byte{
 	0x00, 0x12, 0x35, 0x0a, 0x07, 0x53, 0x69, 0x67, 0x6e, 0x4f, 0x75, 0x74, 0x12, 0x14, 0x2e, 0x62,
 	0x61, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
 	0x73, 0x74, 0x1a, 0x12, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c,
-	0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+	0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x08, 0x5a, 0x06, 0x2e, 0x3b, 0x62, 0x61,
+	0x73, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 }
 
 var (

+ 2 - 6
api/grpc/base/base_grpc.pb.go

@@ -11,7 +11,6 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
 // ApiClient is the client API for Api service.
@@ -91,7 +90,7 @@ type UnsafeApiServer interface {
 }
 
 func RegisterApiServer(s grpc.ServiceRegistrar, srv ApiServer) {
-	s.RegisterService(&Api_ServiceDesc, srv)
+	s.RegisterService(&_Api_serviceDesc, srv)
 }
 
 func _Api_SignUp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
@@ -148,10 +147,7 @@ func _Api_SignOut_Handler(srv interface{}, ctx context.Context, dec func(interfa
 	return interceptor(ctx, in, info, handler)
 }
 
-// Api_ServiceDesc is the grpc.ServiceDesc for Api service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var Api_ServiceDesc = grpc.ServiceDesc{
+var _Api_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "base.Api",
 	HandlerType: (*ApiServer)(nil),
 	Methods: []grpc.MethodDesc{

+ 160 - 16
proto/client/bsw/im/im.proto

@@ -11,34 +11,72 @@ enum ErrorCode{
   Exist = 4002;
 }
 
-// metadata 中需要字段 token 用作登录验证, sys_token用作系统验证
+// metadata: 综合管理系统前端调用需要字段 token 用作登录验证;子系统调用需要字段 sys_token 用作系统验证
 service Api {
   rpc SignUpUserCode (SignUpRequest) returns (SignUpReply) {}
   rpc SignUpPhone (SignUpRequest) returns (SignUpReply) {}
-  rpc SignInUserCode (SignInPasswordRequest) returns (SignInReply)  {}
-  rpc SignInWithPhonePassword (SignInPasswordRequest) returns (SignInReply)  {}
-  rpc SessionCheck (SessionCheckRequest) returns (SessionCheckReply)  {}
-  rpc SignOut (DefaultRequest) returns (DefaultReply)  {}
 
-  rpc SelfInfo (DefaultRequest) returns (UserInfo)  {}
+  rpc SignInUserCode (SignInPasswordRequest) returns (TokenParam)  {}
+  rpc SignInWithPhonePassword (SignInPasswordRequest) returns (TokenParam)  {}
 
-  rpc ServiceSaveList (SaveServiceListRequest) returns (DefaultReply)  {}
+  // ---子系统专用---
 
+  // 检查token有效性
+  rpc SubSessionCheck (TokenParam) returns (SessionCheckReply)  {}
+  // 检查token所属用户是否拥有调用service权限
+  rpc SubPermissionCheck (PermissionCheck) returns (SessionCheckReply)  {}
+  // 登出传入token
+  rpc SubSignOut (TokenParam) returns (DefaultReply)  {}
+  // 批量保存service
+  rpc SubServiceSaveList (SaveServiceListRequest) returns (DefaultReply)  {}
+
+  // ---子系统专用---
+
+  // 用户列表
+  rpc UserList (UserListRequest) returns (UserListReply)  {}
+  // 单个用户信息详情
+  rpc UserGetInfo (UserGetInfoRequest) returns (UserInfo)  {}
+  // 用户添加多个角色
   rpc UserAddRoles(UserRolesRequest) returns (DefaultReply)  {}
+  // 用户移除多个角色
   rpc UserRemoveRoles(UserRolesRequest) returns (DefaultReply)  {}
-
+  // 用户获取栏目列表
+  rpc UserGetColumnList(UserGetColumnListRequest) returns (UserGetColumnListReply)  {}
+  // 创建角色
   rpc RoleCreate(CreateRoleRequest) returns (DefaultReply)  {}
+  // 角色列表
   rpc RoleList(RoleListRequest) returns (RoleListReply)  {}
+  // 角色编辑
   rpc RoleEdit(Role) returns (DefaultReply)  {}
+  // 角色添加多个service权限
   rpc RoleAddPermissions(RolePermissionRequest) returns (DefaultReply)  {}
+  // 角色移除多个service权限
   rpc RoleRemovePermissions(RolePermissionRequest) returns (DefaultReply)  {}
 
+  // service权限列表
+  rpc ServiceList(ServiceListRequest) returns (ServiceListReply)  {}
+  // 移除service
+  rpc ServiceRemoveList(ServiceRemoveRequest) returns (DefaultReply)  {}
+
+  rpc ShopCreate (CreateShopRequest) returns (CreateReply)  {}
+  rpc ShopList (ShopListRequest) returns (ShopListReply)  {}
+  rpc SystemAddShop (SystemAddShopRequest) returns (DefaultReply)  {}
+
+  // ---总后台专用API---
+
+  rpc IMSystemCreate (CreateSystemRequest) returns (TokenParam)  {}
+  rpc IMSignOut (DefaultRequest) returns (DefaultReply)  {}
+  rpc IMSelfInfo (DefaultRequest) returns (UserInfo)  {}
+
 
-  // 总后台专用API
-  rpc IMSystemCreate (CreateSystemRequest) returns (SignInReply)  {}
+  // ---总后台专用API---
 }
 message DefaultRequest{
 }
+message TokenParam{
+  string token = 1;
+}
+
 message DefaultReply{}
 
 message SignUpReply{
@@ -54,13 +92,12 @@ message SignInPasswordRequest {
 }
 
 
-message SignInReply {
-  string token = 1;
-}
+
 
 enum Status{
-  Ban = 0;
-  On = 1;
+  Null = 0;
+  Ban = 1;
+  On = 2;
   Delete = 9;
 }
 
@@ -86,13 +123,20 @@ message UserInfo {
   string phone = 5 ;
   string qq = 7;
   string memo = 11;
+  Status status = 12;
 }
 
+message CreateReply{
+  int64 id = 1;
+}
 
-message SessionCheckRequest {
+message PermissionCheck {
   string token = 1;
+  // service全路径,区分大小写,如User/List
+  string servicePath = 2;
 }
 
+
 message SessionCheckReply {
   int64 userId = 1;
 }
@@ -113,6 +157,29 @@ message CreateSystemRequest{
   string memo = 4;
 }
 
+message UserGetColumnListRequest{
+  int64 userId = 1;
+  // 最顶层为0
+  int32 parentId = 2;
+  // 仅综合管理后台调用有效
+  int64 sysId = 3;
+}
+
+message Column{
+  string name = 1;
+  string url = 2;
+  string code = 3;
+  // 顺序
+  int32 sn = 4;
+  Status status = 5;
+  bool navShow = 6;
+  int64 id = 7;
+}
+
+message UserGetColumnListReply{
+  repeated Column list = 1;
+}
+
 message CreateRoleRequest{
   string name = 1;
   string memo = 2;
@@ -131,6 +198,24 @@ message RoleListRequest{
   int64 sysId = 2;
 }
 
+message UserListRequest{
+  // 0为全部
+  int64 roleId = 1;
+  Status status = 2;
+  // 模糊查询
+  string name = 3;
+  int64 lcstypeid = 4;
+  // 仅总后台请求时有效
+  int64 sysId = 5;
+}
+
+message UserListReply{
+  repeated UserInfo list = 1;
+}
+
+message UserGetInfoRequest{
+  int64 userId = 1;
+}
 message UserRolesRequest{
   int64 userId = 1;
   repeated int64 roleIdList = 2;
@@ -143,4 +228,63 @@ message RoleListReply {
 message RolePermissionRequest{
   int64 roleId = 1;
   repeated string servicePath = 2;
+}
+
+message ServiceListRequest{
+  // 仅总系统有效
+  int64 sysId = 1;
+}
+
+message ServiceListReply{
+  repeated Service list = 1;
+}
+
+message ServiceRemoveRequest{
+  repeated string pathList = 1;
+}
+
+message CreateShopRequest{
+    string name = 1;
+    string key = 2;
+    //上级商家Id
+    int64  sId = 3;
+    string addr = 4;
+    string phone = 5;
+    string contacts =6;
+    int64 createUser = 7;
+}
+
+message ShopListRequest{
+  // 子系统调用时,0:展示所有商家,大于0则展示本系统商家
+  int64 sysId = 1;
+  // 模糊查询
+  string name = 2;
+  // Status_Null查询全部
+  Status status = 3;
+  //上级商家Id, -1 时查询全部
+  int64 sId = 4;
+}
+
+message ShopInfo{
+  int64 shopId          =1;
+  string name           =2;
+  int64 sId             =3;
+  string addr           =4;
+  string phone          =5;
+  string contacts       =6;
+  Status status         =7;
+  int64 created_at      =8;
+  int64 created_user    =9;
+  int64 updated_at      =10;
+  int64 updated_user    =11;
+}
+
+message ShopListReply{
+  repeated ShopInfo list = 1;
+}
+
+message SystemAddShopRequest{
+  // 仅总后台调用有效
+  int64 sysId = 1;
+  int64 shopId = 2;
 }

+ 2 - 0
proto/server/base.proto

@@ -1,5 +1,7 @@
 syntax = "proto3";
 
+option go_package =".;base";
+
 package base;
 
 enum ErrorCode{

Разница между файлами не показана из-за своего большого размера
+ 1175 - 182
repository/grpc/bsw/im/im/im.pb.go


+ 462 - 76
repository/grpc/bsw/im/im/im_grpc.pb.go

@@ -11,7 +11,6 @@ import (
 
 // This is a compile-time assertion to ensure that this generated file
 // is compatible with the grpc package it is being compiled against.
-// Requires gRPC-Go v1.32.0 or later.
 const _ = grpc.SupportPackageIsVersion7
 
 // ApiClient is the client API for Api service.
@@ -20,21 +19,46 @@ const _ = grpc.SupportPackageIsVersion7
 type ApiClient interface {
 	SignUpUserCode(ctx context.Context, in *SignUpRequest, opts ...grpc.CallOption) (*SignUpReply, error)
 	SignUpPhone(ctx context.Context, in *SignUpRequest, opts ...grpc.CallOption) (*SignUpReply, error)
-	SignInUserCode(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*SignInReply, error)
-	SignInWithPhonePassword(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*SignInReply, error)
-	SessionCheck(ctx context.Context, in *SessionCheckRequest, opts ...grpc.CallOption) (*SessionCheckReply, error)
-	SignOut(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*DefaultReply, error)
-	SelfInfo(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*UserInfo, error)
-	ServiceSaveList(ctx context.Context, in *SaveServiceListRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	SignInUserCode(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*TokenParam, error)
+	SignInWithPhonePassword(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*TokenParam, error)
+	// 检查token有效性
+	SubSessionCheck(ctx context.Context, in *TokenParam, opts ...grpc.CallOption) (*SessionCheckReply, error)
+	// 检查token所属用户是否拥有调用service权限
+	SubPermissionCheck(ctx context.Context, in *PermissionCheck, opts ...grpc.CallOption) (*SessionCheckReply, error)
+	// 登出传入token
+	SubSignOut(ctx context.Context, in *TokenParam, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 批量保存service
+	SubServiceSaveList(ctx context.Context, in *SaveServiceListRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 用户列表
+	UserList(ctx context.Context, in *UserListRequest, opts ...grpc.CallOption) (*UserListReply, error)
+	// 单个用户信息详情
+	UserGetInfo(ctx context.Context, in *UserGetInfoRequest, opts ...grpc.CallOption) (*UserInfo, error)
+	// 用户添加多个角色
 	UserAddRoles(ctx context.Context, in *UserRolesRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 用户移除多个角色
 	UserRemoveRoles(ctx context.Context, in *UserRolesRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 用户获取栏目列表
+	UserGetColumnList(ctx context.Context, in *UserGetColumnListRequest, opts ...grpc.CallOption) (*UserGetColumnListReply, error)
+	// 创建角色
 	RoleCreate(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 角色列表
 	RoleList(ctx context.Context, in *RoleListRequest, opts ...grpc.CallOption) (*RoleListReply, error)
+	// 角色编辑
 	RoleEdit(ctx context.Context, in *Role, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 角色添加多个service权限
 	RoleAddPermissions(ctx context.Context, in *RolePermissionRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	// 角色移除多个service权限
 	RoleRemovePermissions(ctx context.Context, in *RolePermissionRequest, opts ...grpc.CallOption) (*DefaultReply, error)
-	// 总后台专用API
-	IMSystemCreate(ctx context.Context, in *CreateSystemRequest, opts ...grpc.CallOption) (*SignInReply, error)
+	// service权限列表
+	ServiceList(ctx context.Context, in *ServiceListRequest, opts ...grpc.CallOption) (*ServiceListReply, error)
+	// 移除service
+	ServiceRemoveList(ctx context.Context, in *ServiceRemoveRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	ShopCreate(ctx context.Context, in *CreateShopRequest, opts ...grpc.CallOption) (*CreateReply, error)
+	ShopList(ctx context.Context, in *ShopListRequest, opts ...grpc.CallOption) (*ShopListReply, error)
+	SystemAddShop(ctx context.Context, in *SystemAddShopRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	IMSystemCreate(ctx context.Context, in *CreateSystemRequest, opts ...grpc.CallOption) (*TokenParam, error)
+	IMSignOut(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*DefaultReply, error)
+	IMSelfInfo(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*UserInfo, error)
 }
 
 type apiClient struct {
@@ -63,8 +87,8 @@ func (c *apiClient) SignUpPhone(ctx context.Context, in *SignUpRequest, opts ...
 	return out, nil
 }
 
-func (c *apiClient) SignInUserCode(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*SignInReply, error) {
-	out := new(SignInReply)
+func (c *apiClient) SignInUserCode(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*TokenParam, error) {
+	out := new(TokenParam)
 	err := c.cc.Invoke(ctx, "/im.Api/SignInUserCode", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -72,8 +96,8 @@ func (c *apiClient) SignInUserCode(ctx context.Context, in *SignInPasswordReques
 	return out, nil
 }
 
-func (c *apiClient) SignInWithPhonePassword(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*SignInReply, error) {
-	out := new(SignInReply)
+func (c *apiClient) SignInWithPhonePassword(ctx context.Context, in *SignInPasswordRequest, opts ...grpc.CallOption) (*TokenParam, error) {
+	out := new(TokenParam)
 	err := c.cc.Invoke(ctx, "/im.Api/SignInWithPhonePassword", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -81,36 +105,54 @@ func (c *apiClient) SignInWithPhonePassword(ctx context.Context, in *SignInPassw
 	return out, nil
 }
 
-func (c *apiClient) SessionCheck(ctx context.Context, in *SessionCheckRequest, opts ...grpc.CallOption) (*SessionCheckReply, error) {
+func (c *apiClient) SubSessionCheck(ctx context.Context, in *TokenParam, opts ...grpc.CallOption) (*SessionCheckReply, error) {
 	out := new(SessionCheckReply)
-	err := c.cc.Invoke(ctx, "/im.Api/SessionCheck", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/im.Api/SubSessionCheck", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *apiClient) SignOut(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
-	out := new(DefaultReply)
-	err := c.cc.Invoke(ctx, "/im.Api/SignOut", in, out, opts...)
+func (c *apiClient) SubPermissionCheck(ctx context.Context, in *PermissionCheck, opts ...grpc.CallOption) (*SessionCheckReply, error) {
+	out := new(SessionCheckReply)
+	err := c.cc.Invoke(ctx, "/im.Api/SubPermissionCheck", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *apiClient) SelfInfo(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*UserInfo, error) {
-	out := new(UserInfo)
-	err := c.cc.Invoke(ctx, "/im.Api/SelfInfo", in, out, opts...)
+func (c *apiClient) SubSignOut(ctx context.Context, in *TokenParam, opts ...grpc.CallOption) (*DefaultReply, error) {
+	out := new(DefaultReply)
+	err := c.cc.Invoke(ctx, "/im.Api/SubSignOut", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
 	return out, nil
 }
 
-func (c *apiClient) ServiceSaveList(ctx context.Context, in *SaveServiceListRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
+func (c *apiClient) SubServiceSaveList(ctx context.Context, in *SaveServiceListRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
 	out := new(DefaultReply)
-	err := c.cc.Invoke(ctx, "/im.Api/ServiceSaveList", in, out, opts...)
+	err := c.cc.Invoke(ctx, "/im.Api/SubServiceSaveList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) UserList(ctx context.Context, in *UserListRequest, opts ...grpc.CallOption) (*UserListReply, error) {
+	out := new(UserListReply)
+	err := c.cc.Invoke(ctx, "/im.Api/UserList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) UserGetInfo(ctx context.Context, in *UserGetInfoRequest, opts ...grpc.CallOption) (*UserInfo, error) {
+	out := new(UserInfo)
+	err := c.cc.Invoke(ctx, "/im.Api/UserGetInfo", in, out, opts...)
 	if err != nil {
 		return nil, err
 	}
@@ -135,6 +177,15 @@ func (c *apiClient) UserRemoveRoles(ctx context.Context, in *UserRolesRequest, o
 	return out, nil
 }
 
+func (c *apiClient) UserGetColumnList(ctx context.Context, in *UserGetColumnListRequest, opts ...grpc.CallOption) (*UserGetColumnListReply, error) {
+	out := new(UserGetColumnListReply)
+	err := c.cc.Invoke(ctx, "/im.Api/UserGetColumnList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 func (c *apiClient) RoleCreate(ctx context.Context, in *CreateRoleRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
 	out := new(DefaultReply)
 	err := c.cc.Invoke(ctx, "/im.Api/RoleCreate", in, out, opts...)
@@ -180,8 +231,53 @@ func (c *apiClient) RoleRemovePermissions(ctx context.Context, in *RolePermissio
 	return out, nil
 }
 
-func (c *apiClient) IMSystemCreate(ctx context.Context, in *CreateSystemRequest, opts ...grpc.CallOption) (*SignInReply, error) {
-	out := new(SignInReply)
+func (c *apiClient) ServiceList(ctx context.Context, in *ServiceListRequest, opts ...grpc.CallOption) (*ServiceListReply, error) {
+	out := new(ServiceListReply)
+	err := c.cc.Invoke(ctx, "/im.Api/ServiceList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ServiceRemoveList(ctx context.Context, in *ServiceRemoveRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
+	out := new(DefaultReply)
+	err := c.cc.Invoke(ctx, "/im.Api/ServiceRemoveList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ShopCreate(ctx context.Context, in *CreateShopRequest, opts ...grpc.CallOption) (*CreateReply, error) {
+	out := new(CreateReply)
+	err := c.cc.Invoke(ctx, "/im.Api/ShopCreate", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) ShopList(ctx context.Context, in *ShopListRequest, opts ...grpc.CallOption) (*ShopListReply, error) {
+	out := new(ShopListReply)
+	err := c.cc.Invoke(ctx, "/im.Api/ShopList", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) SystemAddShop(ctx context.Context, in *SystemAddShopRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
+	out := new(DefaultReply)
+	err := c.cc.Invoke(ctx, "/im.Api/SystemAddShop", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) IMSystemCreate(ctx context.Context, in *CreateSystemRequest, opts ...grpc.CallOption) (*TokenParam, error) {
+	out := new(TokenParam)
 	err := c.cc.Invoke(ctx, "/im.Api/IMSystemCreate", in, out, opts...)
 	if err != nil {
 		return nil, err
@@ -189,27 +285,70 @@ func (c *apiClient) IMSystemCreate(ctx context.Context, in *CreateSystemRequest,
 	return out, nil
 }
 
+func (c *apiClient) IMSignOut(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*DefaultReply, error) {
+	out := new(DefaultReply)
+	err := c.cc.Invoke(ctx, "/im.Api/IMSignOut", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
+func (c *apiClient) IMSelfInfo(ctx context.Context, in *DefaultRequest, opts ...grpc.CallOption) (*UserInfo, error) {
+	out := new(UserInfo)
+	err := c.cc.Invoke(ctx, "/im.Api/IMSelfInfo", in, out, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // ApiServer is the server API for Api service.
 // All implementations must embed UnimplementedApiServer
 // for forward compatibility
 type ApiServer interface {
 	SignUpUserCode(context.Context, *SignUpRequest) (*SignUpReply, error)
 	SignUpPhone(context.Context, *SignUpRequest) (*SignUpReply, error)
-	SignInUserCode(context.Context, *SignInPasswordRequest) (*SignInReply, error)
-	SignInWithPhonePassword(context.Context, *SignInPasswordRequest) (*SignInReply, error)
-	SessionCheck(context.Context, *SessionCheckRequest) (*SessionCheckReply, error)
-	SignOut(context.Context, *DefaultRequest) (*DefaultReply, error)
-	SelfInfo(context.Context, *DefaultRequest) (*UserInfo, error)
-	ServiceSaveList(context.Context, *SaveServiceListRequest) (*DefaultReply, error)
+	SignInUserCode(context.Context, *SignInPasswordRequest) (*TokenParam, error)
+	SignInWithPhonePassword(context.Context, *SignInPasswordRequest) (*TokenParam, error)
+	// 检查token有效性
+	SubSessionCheck(context.Context, *TokenParam) (*SessionCheckReply, error)
+	// 检查token所属用户是否拥有调用service权限
+	SubPermissionCheck(context.Context, *PermissionCheck) (*SessionCheckReply, error)
+	// 登出传入token
+	SubSignOut(context.Context, *TokenParam) (*DefaultReply, error)
+	// 批量保存service
+	SubServiceSaveList(context.Context, *SaveServiceListRequest) (*DefaultReply, error)
+	// 用户列表
+	UserList(context.Context, *UserListRequest) (*UserListReply, error)
+	// 单个用户信息详情
+	UserGetInfo(context.Context, *UserGetInfoRequest) (*UserInfo, error)
+	// 用户添加多个角色
 	UserAddRoles(context.Context, *UserRolesRequest) (*DefaultReply, error)
+	// 用户移除多个角色
 	UserRemoveRoles(context.Context, *UserRolesRequest) (*DefaultReply, error)
+	// 用户获取栏目列表
+	UserGetColumnList(context.Context, *UserGetColumnListRequest) (*UserGetColumnListReply, error)
+	// 创建角色
 	RoleCreate(context.Context, *CreateRoleRequest) (*DefaultReply, error)
+	// 角色列表
 	RoleList(context.Context, *RoleListRequest) (*RoleListReply, error)
+	// 角色编辑
 	RoleEdit(context.Context, *Role) (*DefaultReply, error)
+	// 角色添加多个service权限
 	RoleAddPermissions(context.Context, *RolePermissionRequest) (*DefaultReply, error)
+	// 角色移除多个service权限
 	RoleRemovePermissions(context.Context, *RolePermissionRequest) (*DefaultReply, error)
-	// 总后台专用API
-	IMSystemCreate(context.Context, *CreateSystemRequest) (*SignInReply, error)
+	// service权限列表
+	ServiceList(context.Context, *ServiceListRequest) (*ServiceListReply, error)
+	// 移除service
+	ServiceRemoveList(context.Context, *ServiceRemoveRequest) (*DefaultReply, error)
+	ShopCreate(context.Context, *CreateShopRequest) (*CreateReply, error)
+	ShopList(context.Context, *ShopListRequest) (*ShopListReply, error)
+	SystemAddShop(context.Context, *SystemAddShopRequest) (*DefaultReply, error)
+	IMSystemCreate(context.Context, *CreateSystemRequest) (*TokenParam, error)
+	IMSignOut(context.Context, *DefaultRequest) (*DefaultReply, error)
+	IMSelfInfo(context.Context, *DefaultRequest) (*UserInfo, error)
 	mustEmbedUnimplementedApiServer()
 }
 
@@ -223,23 +362,29 @@ func (UnimplementedApiServer) SignUpUserCode(context.Context, *SignUpRequest) (*
 func (UnimplementedApiServer) SignUpPhone(context.Context, *SignUpRequest) (*SignUpReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SignUpPhone not implemented")
 }
-func (UnimplementedApiServer) SignInUserCode(context.Context, *SignInPasswordRequest) (*SignInReply, error) {
+func (UnimplementedApiServer) SignInUserCode(context.Context, *SignInPasswordRequest) (*TokenParam, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SignInUserCode not implemented")
 }
-func (UnimplementedApiServer) SignInWithPhonePassword(context.Context, *SignInPasswordRequest) (*SignInReply, error) {
+func (UnimplementedApiServer) SignInWithPhonePassword(context.Context, *SignInPasswordRequest) (*TokenParam, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method SignInWithPhonePassword not implemented")
 }
-func (UnimplementedApiServer) SessionCheck(context.Context, *SessionCheckRequest) (*SessionCheckReply, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SessionCheck not implemented")
+func (UnimplementedApiServer) SubSessionCheck(context.Context, *TokenParam) (*SessionCheckReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SubSessionCheck not implemented")
+}
+func (UnimplementedApiServer) SubPermissionCheck(context.Context, *PermissionCheck) (*SessionCheckReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SubPermissionCheck not implemented")
+}
+func (UnimplementedApiServer) SubSignOut(context.Context, *TokenParam) (*DefaultReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SubSignOut not implemented")
 }
-func (UnimplementedApiServer) SignOut(context.Context, *DefaultRequest) (*DefaultReply, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SignOut not implemented")
+func (UnimplementedApiServer) SubServiceSaveList(context.Context, *SaveServiceListRequest) (*DefaultReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SubServiceSaveList not implemented")
 }
-func (UnimplementedApiServer) SelfInfo(context.Context, *DefaultRequest) (*UserInfo, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method SelfInfo not implemented")
+func (UnimplementedApiServer) UserList(context.Context, *UserListRequest) (*UserListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserList not implemented")
 }
-func (UnimplementedApiServer) ServiceSaveList(context.Context, *SaveServiceListRequest) (*DefaultReply, error) {
-	return nil, status.Errorf(codes.Unimplemented, "method ServiceSaveList not implemented")
+func (UnimplementedApiServer) UserGetInfo(context.Context, *UserGetInfoRequest) (*UserInfo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserGetInfo not implemented")
 }
 func (UnimplementedApiServer) UserAddRoles(context.Context, *UserRolesRequest) (*DefaultReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UserAddRoles not implemented")
@@ -247,6 +392,9 @@ func (UnimplementedApiServer) UserAddRoles(context.Context, *UserRolesRequest) (
 func (UnimplementedApiServer) UserRemoveRoles(context.Context, *UserRolesRequest) (*DefaultReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method UserRemoveRoles not implemented")
 }
+func (UnimplementedApiServer) UserGetColumnList(context.Context, *UserGetColumnListRequest) (*UserGetColumnListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method UserGetColumnList not implemented")
+}
 func (UnimplementedApiServer) RoleCreate(context.Context, *CreateRoleRequest) (*DefaultReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RoleCreate not implemented")
 }
@@ -262,9 +410,30 @@ func (UnimplementedApiServer) RoleAddPermissions(context.Context, *RolePermissio
 func (UnimplementedApiServer) RoleRemovePermissions(context.Context, *RolePermissionRequest) (*DefaultReply, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method RoleRemovePermissions not implemented")
 }
-func (UnimplementedApiServer) IMSystemCreate(context.Context, *CreateSystemRequest) (*SignInReply, error) {
+func (UnimplementedApiServer) ServiceList(context.Context, *ServiceListRequest) (*ServiceListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceList not implemented")
+}
+func (UnimplementedApiServer) ServiceRemoveList(context.Context, *ServiceRemoveRequest) (*DefaultReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ServiceRemoveList not implemented")
+}
+func (UnimplementedApiServer) ShopCreate(context.Context, *CreateShopRequest) (*CreateReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShopCreate not implemented")
+}
+func (UnimplementedApiServer) ShopList(context.Context, *ShopListRequest) (*ShopListReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method ShopList not implemented")
+}
+func (UnimplementedApiServer) SystemAddShop(context.Context, *SystemAddShopRequest) (*DefaultReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method SystemAddShop not implemented")
+}
+func (UnimplementedApiServer) IMSystemCreate(context.Context, *CreateSystemRequest) (*TokenParam, error) {
 	return nil, status.Errorf(codes.Unimplemented, "method IMSystemCreate not implemented")
 }
+func (UnimplementedApiServer) IMSignOut(context.Context, *DefaultRequest) (*DefaultReply, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method IMSignOut not implemented")
+}
+func (UnimplementedApiServer) IMSelfInfo(context.Context, *DefaultRequest) (*UserInfo, error) {
+	return nil, status.Errorf(codes.Unimplemented, "method IMSelfInfo not implemented")
+}
 func (UnimplementedApiServer) mustEmbedUnimplementedApiServer() {}
 
 // UnsafeApiServer may be embedded to opt out of forward compatibility for this service.
@@ -275,7 +444,7 @@ type UnsafeApiServer interface {
 }
 
 func RegisterApiServer(s grpc.ServiceRegistrar, srv ApiServer) {
-	s.RegisterService(&Api_ServiceDesc, srv)
+	s.RegisterService(&_Api_serviceDesc, srv)
 }
 
 func _Api_SignUpUserCode_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
@@ -350,74 +519,110 @@ func _Api_SignInWithPhonePassword_Handler(srv interface{}, ctx context.Context,
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Api_SessionCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(SessionCheckRequest)
+func _Api_SubSessionCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TokenParam)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(ApiServer).SessionCheck(ctx, in)
+		return srv.(ApiServer).SubSessionCheck(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/im.Api/SessionCheck",
+		FullMethod: "/im.Api/SubSessionCheck",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ApiServer).SessionCheck(ctx, req.(*SessionCheckRequest))
+		return srv.(ApiServer).SubSessionCheck(ctx, req.(*TokenParam))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Api_SignOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DefaultRequest)
+func _Api_SubPermissionCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(PermissionCheck)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(ApiServer).SignOut(ctx, in)
+		return srv.(ApiServer).SubPermissionCheck(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/im.Api/SignOut",
+		FullMethod: "/im.Api/SubPermissionCheck",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ApiServer).SignOut(ctx, req.(*DefaultRequest))
+		return srv.(ApiServer).SubPermissionCheck(ctx, req.(*PermissionCheck))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Api_SelfInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
-	in := new(DefaultRequest)
+func _Api_SubSignOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(TokenParam)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(ApiServer).SelfInfo(ctx, in)
+		return srv.(ApiServer).SubSignOut(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/im.Api/SelfInfo",
+		FullMethod: "/im.Api/SubSignOut",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ApiServer).SelfInfo(ctx, req.(*DefaultRequest))
+		return srv.(ApiServer).SubSignOut(ctx, req.(*TokenParam))
 	}
 	return interceptor(ctx, in, info, handler)
 }
 
-func _Api_ServiceSaveList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+func _Api_SubServiceSaveList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(SaveServiceListRequest)
 	if err := dec(in); err != nil {
 		return nil, err
 	}
 	if interceptor == nil {
-		return srv.(ApiServer).ServiceSaveList(ctx, in)
+		return srv.(ApiServer).SubServiceSaveList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/SubServiceSaveList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).SubServiceSaveList(ctx, req.(*SaveServiceListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_UserList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserListRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).UserList(ctx, in)
 	}
 	info := &grpc.UnaryServerInfo{
 		Server:     srv,
-		FullMethod: "/im.Api/ServiceSaveList",
+		FullMethod: "/im.Api/UserList",
 	}
 	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
-		return srv.(ApiServer).ServiceSaveList(ctx, req.(*SaveServiceListRequest))
+		return srv.(ApiServer).UserList(ctx, req.(*UserListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_UserGetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserGetInfoRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).UserGetInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/UserGetInfo",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).UserGetInfo(ctx, req.(*UserGetInfoRequest))
 	}
 	return interceptor(ctx, in, info, handler)
 }
@@ -458,6 +663,24 @@ func _Api_UserRemoveRoles_Handler(srv interface{}, ctx context.Context, dec func
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Api_UserGetColumnList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(UserGetColumnListRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).UserGetColumnList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/UserGetColumnList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).UserGetColumnList(ctx, req.(*UserGetColumnListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Api_RoleCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateRoleRequest)
 	if err := dec(in); err != nil {
@@ -548,6 +771,96 @@ func _Api_RoleRemovePermissions_Handler(srv interface{}, ctx context.Context, de
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Api_ServiceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceListRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ServiceList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/ServiceList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ServiceList(ctx, req.(*ServiceListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ServiceRemoveList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ServiceRemoveRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ServiceRemoveList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/ServiceRemoveList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ServiceRemoveList(ctx, req.(*ServiceRemoveRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ShopCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(CreateShopRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ShopCreate(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/ShopCreate",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ShopCreate(ctx, req.(*CreateShopRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_ShopList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(ShopListRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).ShopList(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/ShopList",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).ShopList(ctx, req.(*ShopListRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_SystemAddShop_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(SystemAddShopRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).SystemAddShop(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/SystemAddShop",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).SystemAddShop(ctx, req.(*SystemAddShopRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 func _Api_IMSystemCreate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
 	in := new(CreateSystemRequest)
 	if err := dec(in); err != nil {
@@ -566,10 +879,43 @@ func _Api_IMSystemCreate_Handler(srv interface{}, ctx context.Context, dec func(
 	return interceptor(ctx, in, info, handler)
 }
 
-// Api_ServiceDesc is the grpc.ServiceDesc for Api service.
-// It's only intended for direct use with grpc.RegisterService,
-// and not to be introspected or modified (even as a copy)
-var Api_ServiceDesc = grpc.ServiceDesc{
+func _Api_IMSignOut_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DefaultRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).IMSignOut(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/IMSignOut",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).IMSignOut(ctx, req.(*DefaultRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+func _Api_IMSelfInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(DefaultRequest)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(ApiServer).IMSelfInfo(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/im.Api/IMSelfInfo",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(ApiServer).IMSelfInfo(ctx, req.(*DefaultRequest))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
+var _Api_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "im.Api",
 	HandlerType: (*ApiServer)(nil),
 	Methods: []grpc.MethodDesc{
@@ -590,20 +936,28 @@ var Api_ServiceDesc = grpc.ServiceDesc{
 			Handler:    _Api_SignInWithPhonePassword_Handler,
 		},
 		{
-			MethodName: "SessionCheck",
-			Handler:    _Api_SessionCheck_Handler,
+			MethodName: "SubSessionCheck",
+			Handler:    _Api_SubSessionCheck_Handler,
+		},
+		{
+			MethodName: "SubPermissionCheck",
+			Handler:    _Api_SubPermissionCheck_Handler,
 		},
 		{
-			MethodName: "SignOut",
-			Handler:    _Api_SignOut_Handler,
+			MethodName: "SubSignOut",
+			Handler:    _Api_SubSignOut_Handler,
 		},
 		{
-			MethodName: "SelfInfo",
-			Handler:    _Api_SelfInfo_Handler,
+			MethodName: "SubServiceSaveList",
+			Handler:    _Api_SubServiceSaveList_Handler,
 		},
 		{
-			MethodName: "ServiceSaveList",
-			Handler:    _Api_ServiceSaveList_Handler,
+			MethodName: "UserList",
+			Handler:    _Api_UserList_Handler,
+		},
+		{
+			MethodName: "UserGetInfo",
+			Handler:    _Api_UserGetInfo_Handler,
 		},
 		{
 			MethodName: "UserAddRoles",
@@ -613,6 +967,10 @@ var Api_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "UserRemoveRoles",
 			Handler:    _Api_UserRemoveRoles_Handler,
 		},
+		{
+			MethodName: "UserGetColumnList",
+			Handler:    _Api_UserGetColumnList_Handler,
+		},
 		{
 			MethodName: "RoleCreate",
 			Handler:    _Api_RoleCreate_Handler,
@@ -633,10 +991,38 @@ var Api_ServiceDesc = grpc.ServiceDesc{
 			MethodName: "RoleRemovePermissions",
 			Handler:    _Api_RoleRemovePermissions_Handler,
 		},
+		{
+			MethodName: "ServiceList",
+			Handler:    _Api_ServiceList_Handler,
+		},
+		{
+			MethodName: "ServiceRemoveList",
+			Handler:    _Api_ServiceRemoveList_Handler,
+		},
+		{
+			MethodName: "ShopCreate",
+			Handler:    _Api_ShopCreate_Handler,
+		},
+		{
+			MethodName: "ShopList",
+			Handler:    _Api_ShopList_Handler,
+		},
+		{
+			MethodName: "SystemAddShop",
+			Handler:    _Api_SystemAddShop_Handler,
+		},
 		{
 			MethodName: "IMSystemCreate",
 			Handler:    _Api_IMSystemCreate_Handler,
 		},
+		{
+			MethodName: "IMSignOut",
+			Handler:    _Api_IMSignOut_Handler,
+		},
+		{
+			MethodName: "IMSelfInfo",
+			Handler:    _Api_IMSelfInfo_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "im.proto",

Некоторые файлы не были показаны из-за большого количества измененных файлов