diff --git a/goutils/proto_build/tpls/logic_grpc_struct.tpl b/goutils/proto_build/tpls/logic_grpc_struct.tpl index 408c23f..251c803 100644 --- a/goutils/proto_build/tpls/logic_grpc_struct.tpl +++ b/goutils/proto_build/tpls/logic_grpc_struct.tpl @@ -5,8 +5,10 @@ import ( "context" "sync" "fmt" + "runtime/debug" "fusen-basic/env" + "fusen-basic/utils/log" "{{.ProjectName}}/gen/go/service" "{{.ProjectName}}/server/config" @@ -53,6 +55,7 @@ func (lgrpc *{{.StructName}}Grpc) {{.MethodName}}({{range $index, $param := .Par if _recoverErr := recover(); _recoverErr != nil { _resp = nil _err = fmt.Errorf("%v", _recoverErr) + log.Printf("recovered from panic: %v\n%s", _err, string(debug.Stack())) } }() return New{{.StructName}}(ctx).{{.MethodName}}Logic({{range $index, $param := .ParamsName}}{{if $index}}, {{end}}{{$param}}{{end}}) @@ -64,6 +67,7 @@ func (lgrpc *{{.StructName}}Grpc) {{.MethodName}}(stream {{range $index, $param defer func() { if _recoverErr := recover(); _recoverErr != nil { _err = fmt.Errorf("%v", _recoverErr) + log.Printf("recovered from panic: %v\n%s", _err, string(debug.Stack())) } }() return New{{.StructName}}(stream.Context()).{{.MethodName}}Logic(stream) diff --git a/service/basic.proto b/service/basic.proto index 371a114..cf62f0a 100644 --- a/service/basic.proto +++ b/service/basic.proto @@ -32,8 +32,36 @@ message ResourceInfo{ } message Meta { - int64 total_count =1; - int64 page_count=2; - int64 current_page=3; - int64 per_page=4; + int64 total_count =1; // 总数 + int64 page_count=2; // 总页数 + int64 current_page=3; // 当前页码 + int64 per_page=4; // 每页数量 +} + + +// 用户信息 +message FsUser { + int64 user_id = 7;//用户ID + string email = 1; // 邮箱 + string first_name = 2; // 名 + string last_name = 3; // 姓 + string username = 4; // 用户名称 + string company = 5; // 公司 + string mobile = 6; // 电话号码 +} + +message LdapUser { + int64 user_id = 1; //用户id + string user_dn = 2; //用户dn + string user_name = 3; //用户名 + string email = 4; //邮箱 + string mobile = 5; //手机号 + string avatar = 6; //头像地址 + int64 employee_type = 7; //雇佣类型 1正式 2实习 3外包 + int64 gender = 8; //性别 1男 2女 3未知 + string birthday = 9; //生日 + repeated string belong_organizations = 10 ;//属于哪些部门 + repeated string manage_organizations = 11 ;//管理哪些部门 + int64 status = 12 ; //状态 1正常0离职 + int64 group_id = 13; //权限分组id } \ No newline at end of file diff --git a/service/ldap.proto b/service/ldap.proto index a10640a..9bb71ac 100644 --- a/service/ldap.proto +++ b/service/ldap.proto @@ -30,6 +30,8 @@ service ldap { rpc DeleteLdapUser(DeleteLdapUserReq) returns(basic.Response){} //获取用户信息 rpc GetLdapUserInfo(GetLdapUserInfoReq) returns(GetLdapUserInfoRsp){} + //获取用户信息--批量 + rpc GetLdapUsersByUserIds(GetLdapUsersByUserIdsReq) returns(GetLdapUsersRsp){} //ldap部门添加成员 rpc AddLdapOrganizationMember(AddLdapOrganizationMemberReq) returns(basic.Response){} //ldap部门移除成员 @@ -89,6 +91,7 @@ message GetLdapGroupDetailReq { } message GetLdapGroupDetailRsp { LdapGroup info = 1; + repeated int64 apis =2; } message SaveLdapGroupReq { @@ -233,6 +236,17 @@ message DeleteLdapUserReq{ message GetLdapUserInfoReq{ string user_dn = 1;//用户dn } + +//获取用户信息--批量 +message GetLdapUsersByUserIdsReq{ + repeated int64 user_ids = 1;//用户ID +} +//获取用户信息--批量 +message GetLdapUsersByUserIdsRsp{ + repeated GetLdapUsersItem list = 1; + string paging_cookie = 2; +} + message GetLdapUserInfoRsp{ int64 user_id = 1; //用户id string user_dn = 2; //用户dn @@ -323,4 +337,11 @@ message LdapParseTokenRsp{ int64 UserId = 2; string UserEmail = 3; int64 group_id = 4; + int64 gender = 5;//性别 + string birthday = 6;//生日 + repeated string belong_to_organizations = 7;//属于部门DN集合 + repeated string belong_to_organization_names = 8;//属于部门名字集合 + repeated string manage_organizations = 9;//管理的部门dn集合 + repeated string manage_organization_names = 10;//管理的部门名字集合 + int64 status = 11; //状态 1正常0离职 } \ No newline at end of file diff --git a/service/order.proto b/service/order.proto new file mode 100644 index 0000000..c253a34 --- /dev/null +++ b/service/order.proto @@ -0,0 +1,141 @@ +syntax = "proto3"; //版本声明,使用v3版本 + +package order; +option go_package = "gitlab.fusenpack.com/backend/order;service"; + +// 导入google/api/annotations.proto 注释依赖 +import "google/api/annotations.proto"; +import "service/basic.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/any.proto"; + +//定义服务 +service order { + // 更新详情 + rpc OrderSave(OrderSaveReq) returns (OrderSaveRes) {} + + // 获取详情 + rpc OrderInfo(OrderInfoReq) returns (OrderInfoRes) {} + + // 获取列表 + rpc OrderList(OrderListReq) returns (OrderListRes) {} + + // 详情处理 + rpc DetailHandler(DetailHandlerReq) returns (DetailHandlerRes) {} +} +/* 详情处理 */ +message DetailHandlerReq{ + bytes order_db = 1;// 订单数据库数据 + int64 handle_type = 2; // 处理类型:0=原数据,1=返回处理数据 + int64 channle_type = 3; // 处理类型:0=后台,1=前台 +} +message DetailHandlerRes{ + bytes order_detail = 1; // 处理后数据 +} +/* 详情处理 */ + +/* 更新详情 */ +message OrderSaveReq{ + OrderFilter filter = 1; // 筛选条件 + OrderDetailDb save = 2; // 更新数据 +} +message OrderSaveRes{ + OrderInfo info = 1; // 详情数据 +} +/* 更新详情 */ + +/* 获取详情 */ +message OrderInfoReq{ + OrderFilter filter = 1;// 筛选条件 + int64 handle_type = 2; // 处理类型:0=原数据,1=返回处理数据 + int64 channle_type = 3; // 处理类型:0=后台,1=前台 + repeated int64 related = 4; // 关联数据:1=用户信息,2=支付记录 +} +message OrderInfoRes{ + OrderInfo info = 1; // 详情数据 +} +/* 获取详情 */ + +/* 获取列表 */ +message OrderListReq{ + OrderFilter filter = 1; // 筛选条件 + int64 handle_type = 2; // 处理类型:0=原数据,1=返回处理数据 + int64 channle_type = 3; // 处理类型:0=后台,1=前台 + repeated int64 related = 4; // 关联数据:1=用户信息,2=支付记录,3=销售信息,4=设计信息,5=供应链信息 + + + bool select_whole = 100; // 查询类型:false=分页 true=全部数据 + int64 current_page = 101; // 当前页码 + int64 per_page = 102; // 每页数量 + string order_by = 103; // 排序条件: 如 id desc,ctime desc + string select_fields = 104; // 查询字段 +} +message OrderListRes{ + repeated OrderInfo list = 1;// 列表数据 + basic.Meta meta = 2; // 列表参数 +} +/* 获取列表 */ + +/* 过滤条件 */ +message OrderFilter { + optional int64 id = 1;// 主键ID + optional int64 user_id = 2; // 用户ID + optional int64 delivery_method = 3; // 物流类型 + optional string order_sn = 4; // 订单编号 + optional string order_source = 5; // 订单来源 + optional int64 status = 6; // 订单状态 + optional int64 is_del = 7; // 是否删除:0=否,1=是 + optional int64 pay_status = 8; // 支付状态 + optional int64 sale_gerent_id = 9; // 销售负责人 + optional int64 design_gerent_id = 10; // 设计负责人 + optional string ctime = 11; // 创建时间 + optional string utime = 12; // 更新时间 + + optional bytes other_filter = 101; // 其他筛选条件 + repeated int64 ids = 102; // 主键IDS +} + +/* 详情数据 */ +message OrderInfo { + OrderDetailDb order_detail_db = 1; // 原数据 + bytes order_detail = 2; // 处理后数据 + basic.FsUser user_info = 3; // 用户数据 + basic.LdapUser sale_info = 4; // 销售负责人 + basic.LdapUser design_info = 5; // 设计负责人 + OrderScm scm_info = 6; +} +message OrderScm { + repeated basic.LdapUser scm_info = 1; // 供应链信息 + repeated int64 scm_ids = 2; // 供应链信息 +} + +/* 数据库 */ +message OrderDetailDb { + int64 id = 1; // 主键ID + optional int64 user_id = 2; // 用户ID + optional int64 delivery_method = 3; // 物流类型 + optional string order_sn = 4; // 订单编号 + optional string order_source = 5; // 订单来源 + optional int64 status = 6; // 订单状态 + optional bytes metadata = 7; // 额外参数 + optional string ctime = 8; // 创建时间 + optional string utime = 9; // 更新时间 + optional int64 is_del = 10; // 是否删除:0 = 否,1 = 是 + optional int64 pay_status = 11; // 支付状态 + optional bytes status_link = 12; // 订单状态链路 + optional bytes order_product = 13; // 订单商品 + optional bytes order_address = 14; // 订单地址 + optional bytes order_amount = 15; // 订单金额 + optional bytes pay_status_link = 16; // 支付状态链路 + optional bytes shopping_cart_snapshot = 17; // 购物车快照 + optional bytes shopping_product_snapshot = 18; // 购物车商品快照 + optional int64 sale_gerent_id = 19; // 销售负责人 + optional int64 design_gerent_id = 20; // 设计负责人 + optional bytes scm = 21; // 供应链管理 + optional int64 order_type = 22; // 订单类型:1=平台,2=线下 + optional string pay_deposit_ctime = 23; // 支付时间--定金 + optional string pay_final_ctime = 24; // 支付时间--尾款 +} + + +