Compare commits

...

35 Commits

Author SHA1 Message Date
huangsimin@fusen.cn
d153a6544b 添加 update_fspkg_master.tpl 2024-03-11 17:47:36 +08:00
menghaiwen@fusen.cn
33a489ab93 新增文件导出功能 2024-03-07 18:23:19 +08:00
menghaiwen@fusen.cn
0c9ae44379 新增文件导出功能 2024-03-07 17:54:52 +08:00
menghaiwen@fusen.cn
230b735346 Merge branch 'master' of gitlab.fusenpack.com:backend/proto 2024-03-07 14:59:57 +08:00
menghaiwen@fusen.cn
f80739091c 新增文件导出功能 2024-03-07 14:59:50 +08:00
menghaiwen@fusen.cn
2320408b1d Merge branch 'master' of gitlab.fusenpack.com:backend/proto 2024-03-05 10:30:05 +08:00
menghaiwen@fusen.cn
68dcd3bf8f 新增 2024-03-05 10:29:27 +08:00
menghaiwen@fusen.cn
6ba91ea0f8 Merge branch 'master' of gitlab.fusenpack.com:backend/proto 2024-03-04 17:49:50 +08:00
menghaiwen@fusen.cn
bbaacafa6d 调整 2024-03-04 17:49:22 +08:00
huangsimin@fusen.cn
2f19ba354e 添加 debug 依赖 2024-03-04 17:44:50 +08:00
huangsimin@fusen.cn
bfe6f6c2dc 更新panic的值打印出日志 2024-03-04 17:43:48 +08:00
menghaiwen@fusen.cn
b4ca304f8d 新增接口 2024-03-04 15:54:19 +08:00
menghaiwen@fusen.cn
fdfa105ef5 权限组新增字段 2024-02-28 15:24:54 +08:00
menghaiwen@fusen.cn
243541433f 调整 2024-02-02 17:46:11 +08:00
menghaiwen@fusen.cn
cca2483e3c 调整 2024-02-02 14:17:55 +08:00
menghaiwen@fusen.cn
7a4583d794 调整 2024-02-02 12:31:18 +08:00
menghaiwen@fusen.cn
35b6dd1d4f 调整 2024-02-01 15:36:00 +08:00
menghaiwen@fusen.cn
947aa9402a 调整 2024-02-01 10:08:38 +08:00
menghaiwen@fusen.cn
087090b34e 调整 2024-01-31 17:15:26 +08:00
menghaiwen@fusen.cn
577e7801ac 调整 2024-01-31 15:52:52 +08:00
menghaiwen@fusen.cn
ffba8e706d 调整 2024-01-31 15:12:25 +08:00
menghaiwen@fusen.cn
3f139015e3 调整 2024-01-31 12:30:04 +08:00
menghaiwen@fusen.cn
426db0780d 新增 2024-01-31 10:15:16 +08:00
menghaiwen@fusen.cn
db9efd558e 新增 2024-01-30 15:36:41 +08:00
menghaiwen@fusen.cn
edec6d424d Merge branch 'master' of gitlab.fusenpack.com:backend/proto 2024-01-30 12:10:08 +08:00
menghaiwen@fusen.cn
ad09039cba 资源列表调整 2024-01-30 12:09:49 +08:00
huangsimin@fusen.cn
a6b6176d92 Merge branch 'master' of gitlab.fusenpack.com:backend/proto 2024-01-29 15:37:24 +08:00
huangsimin@fusen.cn
6de41fa9a4 添加无安全认证 2024-01-29 15:37:03 +08:00
menghaiwen@fusen.cn
da83a92fc5 提交 2024-01-29 15:32:32 +08:00
menghaiwen@fusen.cn
181d3bdbee 新增权限验证 2024-01-29 15:20:54 +08:00
huangsimin@fusen.cn
3c3199d08b 更新auth 2024-01-26 16:02:13 +08:00
huangsimin@fusen.cn
1300c78aa6 提交说明 2024-01-26 15:06:52 +08:00
huangsimin@fusen.cn
85a8666724 更新notify的结构 2024-01-26 10:32:07 +08:00
huangsimin@fusen.cn
a5165828ba 更新grpc 2024-01-25 17:04:41 +08:00
laodaming@fusen.cn
d8f0e584e0 fix 2024-01-24 14:55:39 +08:00
9 changed files with 317 additions and 47 deletions

View File

@ -30,7 +30,6 @@ func AutoGrpcInit(obj any) {
for i := 0; i < value.NumField(); i++ { for i := 0; i < value.NumField(); i++ {
v := value.Field(i) v := value.Field(i)
if v.IsValid() { if v.IsValid() {
_namingClient, ok := v.Interface().(naming_client.INamingClient) _namingClient, ok := v.Interface().(naming_client.INamingClient)
if ok { if ok {
@ -42,7 +41,6 @@ func AutoGrpcInit(obj any) {
{{range .ClientParams}} {{range .ClientParams}}
func Auto{{.ClientName}}Client(ctx context.Context) {{.ClientName}}Client { func Auto{{.ClientName}}Client(ctx context.Context) {{.ClientName}}Client {
if namingClient == nil { if namingClient == nil {
log.Println("nameClient must be init. call") log.Println("nameClient must be init. call")
@ -54,52 +52,54 @@ func Auto{{.ClientName}}Client(ctx context.Context) {{.ClientName}}Client {
GroupName: groupName, GroupName: groupName,
} }
for i := 0; i < 10; i++ { for i := 0; i < 3; i++ {
insService, err := namingClient.SelectOneHealthyInstance(sel) insService, err := namingClient.SelectOneHealthyInstance(sel)
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return nil continue
} }
if insService.Enable && insService.Healthy { if insService.Enable && insService.Healthy {
conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), grpc.WithTransportCredentials(insecure.NewCredentials())) conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), grpc.WithTransportCredentials(insecure.NewCredentials()))
if err != nil { if err != nil {
log.Println(err) log.Println(err)
return nil continue
} }
return New{{.ClientName}}Client(conn) return New{{.ClientName}}Client(conn)
} }
} }
log.Println(fmt.Errorf("no healthy with times 3"))
return nil return nil
} }
func Auto{{.ClientName}}ClientEx(ctx context.Context, opts ...grpc.DialOption) ({{.ClientName}}Client,error) { func Auto{{.ClientName}}ClientEx(ctx context.Context, opts ...grpc.DialOption) ({{.ClientName}}Client,error) {
if namingClient == nil { if namingClient == nil {
return nil, fmt.Errorf("nameClient must be init. call") return nil, fmt.Errorf("nameClient must be init. call")
} }
opts = append(opts, grpc.WithTransportCredentials(insecure.NewCredentials()))
sel := vo.SelectOneHealthInstanceParam{ sel := vo.SelectOneHealthInstanceParam{
ServiceName: "{{.GrpcServiceName}}", ServiceName: "{{.GrpcServiceName}}",
GroupName: groupName, GroupName: groupName,
} }
for i := 0; i < 10; i++ { for i := 0; i < 3; i++ {
insService, err := namingClient.SelectOneHealthyInstance(sel) insService, err := namingClient.SelectOneHealthyInstance(sel)
if err != nil { if err != nil {
return nil, err log.Println(err)
continue
} }
if insService.Enable && insService.Healthy { if insService.Enable && insService.Healthy {
conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), opts...) conn, err := grpc.DialContext(ctx, fmt.Sprintf("%s:%d", insService.Ip, insService.Port), opts...)
if err != nil { if err != nil {
return nil, err log.Println(err)
continue
} }
return New{{.ClientName}}Client(conn), nil return New{{.ClientName}}Client(conn), nil
} }
} }
return nil, fmt.Errorf("no healthy with times 10") return nil, fmt.Errorf("no healthy with times 3")
} }
{{end}} {{end}}

View File

@ -5,8 +5,10 @@ import (
"context" "context"
"sync" "sync"
"fmt" "fmt"
"runtime/debug"
"fusen-basic/env" "fusen-basic/env"
"fusen-basic/utils/log"
"{{.ProjectName}}/gen/go/service" "{{.ProjectName}}/gen/go/service"
"{{.ProjectName}}/server/config" "{{.ProjectName}}/server/config"
@ -53,6 +55,7 @@ func (lgrpc *{{.StructName}}Grpc) {{.MethodName}}({{range $index, $param := .Par
if _recoverErr := recover(); _recoverErr != nil { if _recoverErr := recover(); _recoverErr != nil {
_resp = nil _resp = nil
_err = fmt.Errorf("%v", _recoverErr) _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}}) 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() { defer func() {
if _recoverErr := recover(); _recoverErr != nil { if _recoverErr := recover(); _recoverErr != nil {
_err = fmt.Errorf("%v", _recoverErr) _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) return New{{.StructName}}(stream.Context()).{{.MethodName}}Logic(stream)

View File

@ -1,25 +1,38 @@
#! /bin/bash #! /bin/env bash
input_string=$(cat go.mod) input_string=$(cat go.mod)
# 使用sed命令提取参数并替换输出格式 # 使用sed命令提取参数并替换输出格式
output=$(echo "$input_string" | sed -nE 's/[[:space:]]{0,}(replace[[:space:]]+)?([[:alnum:]-]+)[[:space:]]+([[:alnum:].-]+)[[:space:]]+=>[[:space:]]+([[:alnum:]/.-]+)[[:space:]]+([[:alnum:].-]+)/\2 \3 \4 \5/p') output=$(echo "$input_string" | sed -nE 's/[[:space:]]{0,}(replace[[:space:]]+)?([[:alnum:]-]+)[[:space:]]+([[:alnum:].-]+)[[:space:]]+=>[[:space:]]+([[:alnum:]/.-]+)[[:space:]]+([[:alnum:].-]+)/\2 \3 \4 \5/p')
# echo $output
ischange="no"
IFS=$'\n' # 设置分隔符为换行符 IFS=$'\n' # 设置分隔符为换行符
for out in $output; do for out in $output; do
IFS=$' ' IFS=$' '
read -r fsname fsversion fsfullname fslatest_master <<< "$out" read -r fsname fsversion fsfullname fslatest_master <<< "$out"
if [ "$fsname" != "fusen-basic" ]; then
continue
fi
laster_master=`echo $(GOPROXY=direct go get $fsfullname@master 2>&1) | grep -oE '@v[^:"]+'` laster_master=`echo $(GOPROXY=direct go get $fsfullname@master 2>&1) | grep -oE '@v[^:"]+'`
if [ "@$fslatest_master" == "$laster_master" ]; then
continue
fi
echo "go mod edit -replace $fsname@$fsversion=$fsfullname$laster_master" echo "go mod edit -replace $fsname@$fsversion=$fsfullname$laster_master"
go mod edit -replace $fsname@$fsversion=$fsfullname$laster_master go mod edit -replace $fsname@$fsversion=$fsfullname$laster_master
echo "当前 $fsname $fsfullname $fslatest_master (更新)-> $laster_master"
go get $fsname@$fsversion
ischange="yes"
done done
IFS=$'\n' # 设置分隔符为换行符
for out in $output; do if [ "$ischange" == "yes" ]; then
IFS=$' ' echo "go tidy and vendor"
read -r fsname fsversion fsfullname fslatest_master <<< "$out" go mod tidy
go get $fsname@$fsversion go mod vendor
done else
echo "$fsname $fslatest_master 当前最新"
go mod tidy fi
go mod vendor

View File

@ -10,7 +10,7 @@ import "service/basic.proto";
// //
service auth { service auth {
// //
rpc ValidToken(ValidTokenRequest) returns (ValidTokenResponse) {} rpc ValidToken(ValidTokenRequest) returns (ValidTokenResponse) {}
// Cookie // Cookie

View File

@ -27,12 +27,41 @@ message ResourceInfo{
string bucket_name = 8; string bucket_name = 8;
string source = 9; string source = 9;
string uploaded_at = 10; string uploaded_at = 10;
google.protobuf.Struct metadata = 11; bytes metadata = 11;
string trace_id = 12;
} }
message Meta { message Meta {
int64 total_count =1; int64 total_count =1; //
int64 page_count=2; int64 page_count=2; //
int64 current_page=3; int64 current_page=3; //
int64 per_page=4; 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 ; // 10
int64 group_id = 13; //id
} }

View File

@ -26,8 +26,12 @@ service ldap {
rpc UpdateLdapUserPwd(UpdateLdapUserPwdReq) returns(basic.Response){} rpc UpdateLdapUserPwd(UpdateLdapUserPwdReq) returns(basic.Response){}
//ldap用户帐号 //ldap用户帐号
rpc DisableLdapUser(DisableLdapUserReq) returns(basic.Response){} rpc DisableLdapUser(DisableLdapUserReq) returns(basic.Response){}
//ldap用户帐号
rpc DeleteLdapUser(DeleteLdapUserReq) returns(basic.Response){}
// //
rpc GetLdapUserInfo(GetLdapUserInfoReq) returns(GetLdapUserInfoRsp){} rpc GetLdapUserInfo(GetLdapUserInfoReq) returns(GetLdapUserInfoRsp){}
//--
rpc GetLdapUsersByUserIds(GetLdapUsersByUserIdsReq) returns(GetLdapUsersRsp){}
//ldap部门添加成员 //ldap部门添加成员
rpc AddLdapOrganizationMember(AddLdapOrganizationMemberReq) returns(basic.Response){} rpc AddLdapOrganizationMember(AddLdapOrganizationMemberReq) returns(basic.Response){}
//ldap部门移除成员 //ldap部门移除成员
@ -55,7 +59,21 @@ service ldap {
rpc SetLdapGroupAuth(SetLdapGroupAuthReq) returns (SetLdapGroupAuthRsp); rpc SetLdapGroupAuth(SetLdapGroupAuthReq) returns (SetLdapGroupAuthRsp);
//-- //--
rpc RemoveLdapGroupAuth(RemoveLdapGroupAuthReq) returns (RemoveLdapGroupAuthRsp); rpc RemoveLdapGroupAuth(RemoveLdapGroupAuthReq) returns (RemoveLdapGroupAuthRsp);
//
rpc VerifyAuthorityGroup(VerifyAuthorityGroupReq) returns (VerifyAuthorityGroupRsp);
} }
message VerifyAuthorityGroupReq {
string path = 1;
string method = 2;
string category = 3;
int64 group_id = 4;
}
message VerifyAuthorityGroupRsp {
}
message GetLdapGroupsReq { message GetLdapGroupsReq {
LdapGroupFilter filter = 1; LdapGroupFilter filter = 1;
@ -73,6 +91,7 @@ message GetLdapGroupDetailReq {
} }
message GetLdapGroupDetailRsp { message GetLdapGroupDetailRsp {
LdapGroup info = 1; LdapGroup info = 1;
repeated int64 apis =2;
} }
message SaveLdapGroupReq { message SaveLdapGroupReq {
@ -209,10 +228,25 @@ message UpdateLdapUserPwdReq{
message DisableLdapUserReq{ message DisableLdapUserReq{
string user_dn = 1;//dn string user_dn = 1;//dn
} }
//ldap用户帐号
message DeleteLdapUserReq{
string user_dn = 1;//dn
}
// //
message GetLdapUserInfoReq{ message GetLdapUserInfoReq{
string user_dn = 1;//dn 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{ message GetLdapUserInfoRsp{
int64 user_id = 1; //id int64 user_id = 1; //id
string user_dn = 2; //dn string user_dn = 2; //dn
@ -302,4 +336,12 @@ message LdapParseTokenRsp{
string UserDn = 1; string UserDn = 1;
int64 UserId = 2; int64 UserId = 2;
string UserEmail = 3; 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; // 10
} }

View File

@ -12,10 +12,10 @@ import "google/protobuf/timestamp.proto";
service notify { service notify {
// //
rpc Ping(basic.Request) returns (basic.Response) {} rpc Ping( basic.Request) returns (basic.Response) {}
// //
rpc EmailSend(EmailSendReq) returns (EmailSendRes) {} rpc EmailSend( EmailSendReq) returns (EmailSendResp) {}
// //
rpc EmailRegisterConfirm( EmailRegisterReq) returns ( EmailRegisterResp) {} rpc EmailRegisterConfirm( EmailRegisterReq) returns ( EmailRegisterResp) {}
@ -64,12 +64,13 @@ message EmailNotifyBasic {
optional string notify_id = 1; // , 256, uuid optional string notify_id = 1; // , 256, uuid
string sender = 2; // string sender = 2; //
string target_email = 3; // email string target_email = 3; // email
string subject_title = 4; //
} }
// type email // type email
message EmailSendReq { message EmailSendReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string title = 2; // string title = 2; //
string content = 3; // string content = 3; //
Operator operator = 4; // Operator operator = 4; //
@ -80,10 +81,9 @@ message EmailSendReq {
enum NotifyType { enum NotifyType {
email = 0; // email email = 0; // email
feishu = 1; // feishu = 1; //
wechat = 2; // // wechat = 2; //
} }
// //
enum EmailStatus { enum EmailStatus {
ok = 0; // ok = 0; //
@ -93,16 +93,14 @@ enum EmailStatus {
finish = 4; // finish = 4; //
} }
message EmailSendResp {
EmailStatus status = 1; //
message EmailSendRes { string msg = 2; //
EmailStatus status = 1;
string msg = 2;
} }
message EmailRegisterReq { message EmailRegisterReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string confirmation_link = 2; string confirmation_link = 2; //
} }
message EmailRegisterResp { message EmailRegisterResp {
@ -112,8 +110,8 @@ message EmailRegisterResp {
message EmailResetHtmlReq { message EmailResetHtmlReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string confirmation_link = 4; string confirmation_link = 2; //
} }
message EmailResetHtmlResp { message EmailResetHtmlResp {
@ -121,6 +119,7 @@ message EmailResetHtmlResp {
string notify_id = 2; // id string notify_id = 2; // id
} }
// rpc服务里
message EmailResetConfirmReq { message EmailResetConfirmReq {
string reset_password_link = 1; string reset_password_link = 1;
string reset_token = 2; string reset_token = 2;
@ -133,8 +132,8 @@ message EmailResetConfirmResp {
message OrderPaymentDetailsReq { message OrderPaymentDetailsReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string payment_details_link = 2; string payment_details_link = 2; //
} }
message OrderPaymentDetailsResp { message OrderPaymentDetailsResp {
@ -143,10 +142,11 @@ message OrderPaymentDetailsResp {
} }
message OrderStatusTransitionReq { message OrderStatusTransitionReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string last_status = 2; // string last_status = 2; //
string current_status = 3; // string current_status = 3; //
string check_status_link = 4; // string check_status_link = 4; //
bool is_show_click_text = 5; //
} }
message OrderStatusTransitionResp { message OrderStatusTransitionResp {
@ -156,7 +156,7 @@ message OrderStatusTransitionResp {
message OrderPayArrearsReq { message OrderPayArrearsReq {
EmailNotifyBasic basic_email = 1; EmailNotifyBasic basic_email = 1; //
string pay_arrears_link = 2; // string pay_arrears_link = 2; //
} }

141
service/order.proto Normal file
View File

@ -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; // --
}

View File

@ -45,7 +45,47 @@ service resource {
// logo // logo
rpc SetExampleLogo(SetExampleLogoReq) returns (SetExampleLogoRes) {} rpc SetExampleLogo(SetExampleLogoReq) returns (SetExampleLogoRes) {}
// --CSV
rpc ExportCsv(ExportCsvReq) returns (ExportCsvRes) {}
// --Excel
rpc ExportExcel(ExportExcelReq) returns (ExportExcelRes) {}
// --zip
rpc ExportZip(ExportZipReq) returns (ExportZipRes) {}
} }
message ExportData {
repeated string child = 1;
}
message ExportCsvReq {
repeated ExportData file_data = 1; //
string file_name = 2;//
int64 total = 3; //
}
message ExportCsvRes {
string export_file_path = 1; //
}
message ExportExcelReq {
repeated ExportData file_data = 1; //
string file_name = 2;//
}
message ExportExcelRes {
string export_file_path = 1; //
}
message ExportZipReq {
string file_type = 1;//
string file_name = 2;//
bytes file_bytes = 3;//
}
message ExportZipRes {
string export_file_path = 1; //
}
/* 设置示例logo */ /* 设置示例logo */
message SetExampleLogoReq { message SetExampleLogoReq {
int64 is_example = 1; int64 is_example = 1;
@ -304,4 +344,5 @@ message ResourceIds {
repeated string resource_ids = 1; repeated string resource_ids = 1;
} }
/* 获取资源详情 */ /* 获取资源详情 */