Compare commits

..

No commits in common. "main" and "feat-cjy-taskLog" have entirely different histories.

94 changed files with 12429 additions and 47972 deletions

File diff suppressed because it is too large Load Diff

View File

@ -66,9 +66,6 @@ service AccountFiee {
rpc SendNationMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} // --
rpc VerifySliderStatus(VerifySliderStatusRequest) returns (VerifySliderStatusResponse) {}//
rpc SendNationTemplateMsg (SendNationMsgRequest) returns (SendMsgStatusResponse) {} // --
rpc GetInviterInfo(InviterInfoRequest) returns(InviterInfoResponse) {} //
rpc GetInviterList(InviterListRequest) returns(InviterListResponse) {} //
rpc WriteOff (WriteOffRequest) returns (RemoveResponse) {} //
rpc CreateUserAndRealName (CreateUserAndRealNameRequest) returns (CreateUserAndRealNameResponse) {}// ,
@ -104,21 +101,7 @@ service AccountFiee {
rpc GetChatAutoReplyRulerDetail ( GetChatAutoReplyRulerByIdRequest )returns( ChatAutoReplyRulerData ){} //
rpc GetChatAutoReplyRulerList ( GetChatAutoReplyRulerListRequest )returns( GetChatAutoReplyRulerListResp ){} //
}
message InviterListRequest{
repeated uint64 ids =1;
}
message InviterListResponse{
repeated InviterInfoResponse list = 1;
}
message InviterInfoRequest{
string code = 1;
}
message InviterInfoResponse{
uint64 id = 1;
string code = 2;
string name = 3;
string telNum = 4;
}
message VerifySliderStatusRequest {
string nonceStr = 1;
}
@ -200,11 +183,6 @@ message UserListInfo{
string idNumber = 21;
string dateOfBirth = 22;
string age = 23;
string email = 24;
string AbroadTelAreaCode = 25;
string AbroadTel = 26;
string inviterName = 27;
string inviterCode = 28;
}
message UserListRequest{
string domain = 1;
@ -243,11 +221,6 @@ message UserInfoResponse{
string telAreaCode = 19;
string idNumber = 20;
string dateOfBirth = 21;
string email = 22;
string AbroadTelAreaCode = 23;
string AbroadTel = 24;
uint64 inviterId = 25;
}
message RealNameResponse{
uint64 id = 1;
@ -527,6 +500,20 @@ message RemoveRequest {
}
message WriteOffRequest{
uint64 id = 1;
string domain = 2;
uint64 userId = 3;
string tel = 4;
string jonNum = 5;
string userName = 6;
string enterDate = 7;
string positionName =8;
uint64 positionId = 9;
string siteName = 10;
uint64 siteId =11;
string authUrl =12;
string type =13;
uint32 status =14;
string submitDate=15;
}
message WriteOffListRequest{
uint64 page = 1;
@ -554,9 +541,6 @@ message UpdateRequest {
string Domain = 2 [json_name = "domain"];
string Language = 3 [json_name = "language"];
string NickName = 4 [json_name = "nickName"];
string Email = 5 [json_name = "email"];
string AbroadTel = 6 [json_name = "abroadTel"];
string AbroadTelAreaCode = 7 [json_name = "abroadTelAreaCode"];
}
message Operator {
@ -648,8 +632,6 @@ message RegistRequest {
string telAreaCode = 5;
string language = 6;
string nickName = 7;
uint64 inviterID = 8;
string inviterCode = 9;
}
message LoginRequest {
@ -727,7 +709,6 @@ message AccountInfo {
string updatedAt = 41;
string SecurityCode = 42 [json_name = "securityCode"];
string BlockAddr = 43 [json_name = "blockAddr"];
bool WriteOff = 44 [json_name = "writeOff"];
}
message UserInfoV2 {

View File

@ -17,25 +17,6 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *InviterListRequest) Validate() error {
return nil
}
func (this *InviterListResponse) Validate() error {
for _, item := range this.List {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("List", err)
}
}
}
return nil
}
func (this *InviterInfoRequest) Validate() error {
return nil
}
func (this *InviterInfoResponse) Validate() error {
return nil
}
func (this *VerifySliderStatusRequest) Validate() error {
return nil
}

View File

@ -70,9 +70,6 @@ type AccountFieeClient interface {
SendNationMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
VerifySliderStatus(ctx context.Context, in *VerifySliderStatusRequest, opts ...grpc_go.CallOption) (*VerifySliderStatusResponse, common.ErrorWithAttachment)
SendNationTemplateMsg(ctx context.Context, in *SendNationMsgRequest, opts ...grpc_go.CallOption) (*SendMsgStatusResponse, common.ErrorWithAttachment)
GetInviterInfo(ctx context.Context, in *InviterInfoRequest, opts ...grpc_go.CallOption) (*InviterInfoResponse, common.ErrorWithAttachment)
GetInviterList(ctx context.Context, in *InviterListRequest, opts ...grpc_go.CallOption) (*InviterListResponse, common.ErrorWithAttachment)
WriteOff(ctx context.Context, in *WriteOffRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment)
CreateUserAndRealName(ctx context.Context, in *CreateUserAndRealNameRequest, opts ...grpc_go.CallOption) (*CreateUserAndRealNameResponse, common.ErrorWithAttachment)
// submit info
SaveSubmitInfo(ctx context.Context, in *SubmitInfoRequest, opts ...grpc_go.CallOption) (*CommonResponse, common.ErrorWithAttachment)
@ -151,9 +148,6 @@ type AccountFieeClientImpl struct {
SendNationMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error)
VerifySliderStatus func(ctx context.Context, in *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
SendNationTemplateMsg func(ctx context.Context, in *SendNationMsgRequest) (*SendMsgStatusResponse, error)
GetInviterInfo func(ctx context.Context, in *InviterInfoRequest) (*InviterInfoResponse, error)
GetInviterList func(ctx context.Context, in *InviterListRequest) (*InviterListResponse, error)
WriteOff func(ctx context.Context, in *WriteOffRequest) (*RemoveResponse, error)
CreateUserAndRealName func(ctx context.Context, in *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error)
SaveSubmitInfo func(ctx context.Context, in *SubmitInfoRequest) (*CommonResponse, error)
CreateChatUser func(ctx context.Context, in *ChatUserData) (*CreateChatUserResp, error)
@ -442,24 +436,6 @@ func (c *accountFieeClient) SendNationTemplateMsg(ctx context.Context, in *SendN
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SendNationTemplateMsg", in, out)
}
func (c *accountFieeClient) GetInviterInfo(ctx context.Context, in *InviterInfoRequest, opts ...grpc_go.CallOption) (*InviterInfoResponse, common.ErrorWithAttachment) {
out := new(InviterInfoResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetInviterInfo", in, out)
}
func (c *accountFieeClient) GetInviterList(ctx context.Context, in *InviterListRequest, opts ...grpc_go.CallOption) (*InviterListResponse, common.ErrorWithAttachment) {
out := new(InviterListResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetInviterList", in, out)
}
func (c *accountFieeClient) WriteOff(ctx context.Context, in *WriteOffRequest, opts ...grpc_go.CallOption) (*RemoveResponse, common.ErrorWithAttachment) {
out := new(RemoveResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/WriteOff", in, out)
}
func (c *accountFieeClient) CreateUserAndRealName(ctx context.Context, in *CreateUserAndRealNameRequest, opts ...grpc_go.CallOption) (*CreateUserAndRealNameResponse, common.ErrorWithAttachment) {
out := new(CreateUserAndRealNameResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -674,9 +650,6 @@ type AccountFieeServer interface {
SendNationMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error)
VerifySliderStatus(context.Context, *VerifySliderStatusRequest) (*VerifySliderStatusResponse, error)
SendNationTemplateMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error)
GetInviterInfo(context.Context, *InviterInfoRequest) (*InviterInfoResponse, error)
GetInviterList(context.Context, *InviterListRequest) (*InviterListResponse, error)
WriteOff(context.Context, *WriteOffRequest) (*RemoveResponse, error)
CreateUserAndRealName(context.Context, *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error)
// submit info
SaveSubmitInfo(context.Context, *SubmitInfoRequest) (*CommonResponse, error)
@ -838,15 +811,6 @@ func (UnimplementedAccountFieeServer) VerifySliderStatus(context.Context, *Verif
func (UnimplementedAccountFieeServer) SendNationTemplateMsg(context.Context, *SendNationMsgRequest) (*SendMsgStatusResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method SendNationTemplateMsg not implemented")
}
func (UnimplementedAccountFieeServer) GetInviterInfo(context.Context, *InviterInfoRequest) (*InviterInfoResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetInviterInfo not implemented")
}
func (UnimplementedAccountFieeServer) GetInviterList(context.Context, *InviterListRequest) (*InviterListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetInviterList not implemented")
}
func (UnimplementedAccountFieeServer) WriteOff(context.Context, *WriteOffRequest) (*RemoveResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method WriteOff not implemented")
}
func (UnimplementedAccountFieeServer) CreateUserAndRealName(context.Context, *CreateUserAndRealNameRequest) (*CreateUserAndRealNameResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateUserAndRealName not implemented")
}
@ -2148,93 +2112,6 @@ func _AccountFiee_SendNationTemplateMsg_Handler(srv interface{}, ctx context.Con
return interceptor(ctx, in, info, handler)
}
func _AccountFiee_GetInviterInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(InviterInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetInviterInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _AccountFiee_GetInviterList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(InviterListRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetInviterList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _AccountFiee_WriteOff_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(WriteOffRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("WriteOff", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _AccountFiee_CreateUserAndRealName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateUserAndRealNameRequest)
if err := dec(in); err != nil {
@ -3218,18 +3095,6 @@ var AccountFiee_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "SendNationTemplateMsg",
Handler: _AccountFiee_SendNationTemplateMsg_Handler,
},
{
MethodName: "GetInviterInfo",
Handler: _AccountFiee_GetInviterInfo_Handler,
},
{
MethodName: "GetInviterList",
Handler: _AccountFiee_GetInviterList_Handler,
},
{
MethodName: "WriteOff",
Handler: _AccountFiee_WriteOff_Handler,
},
{
MethodName: "CreateUserAndRealName",
Handler: _AccountFiee_CreateUserAndRealName_Handler,

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// - protoc-gen-go-triple v1.0.8
// - protoc v3.21.1
// source: pb/bundle.proto
package bundle

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -9,6 +9,7 @@ package cron
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
_ "google.golang.org/protobuf/types/known/emptypb"
reflect "reflect"
sync "sync"
unsafe "unsafe"
@ -640,16 +641,6 @@ type ExecutionResult struct {
StatusDescription string `protobuf:"bytes,110,opt,name=status_description,json=statusDescription,proto3" json:"status_description"` // 执行状态描述
ResultDescription string `protobuf:"bytes,111,opt,name=result_description,json=resultDescription,proto3" json:"result_description"` // 执行结果描述
ContentTypeDescription string `protobuf:"bytes,115,opt,name=content_type_description,json=contentTypeDescription,proto3" json:"content_type_description"` // 内容类型描述
TIKTOKStatusDesc string `protobuf:"bytes,121,opt,name=TIKTOKStatusDesc,proto3" json:"TIKTOKStatusDesc"`
YOUTUBEStatusDesc string `protobuf:"bytes,122,opt,name=YOUTUBEStatusDesc,proto3" json:"YOUTUBEStatusDesc"`
INSStatusDesc string `protobuf:"bytes,123,opt,name=INSStatusDesc,proto3" json:"INSStatusDesc"`
DMStatusDesc string `protobuf:"bytes,124,opt,name=DMStatusDesc,proto3" json:"DMStatusDesc"`
BULESKYStatusDesc string `protobuf:"bytes,125,opt,name=BULESKYStatusDesc,proto3" json:"BULESKYStatusDesc"`
TIKTOKResult string `protobuf:"bytes,131,opt,name=TIKTOKResult,proto3" json:"TIKTOKResult"`
YOUTUBEResult string `protobuf:"bytes,132,opt,name=YOUTUBEResult,proto3" json:"YOUTUBEResult"`
INSResult string `protobuf:"bytes,133,opt,name=INSResult,proto3" json:"INSResult"`
DMResult string `protobuf:"bytes,134,opt,name=DMResult,proto3" json:"DMResult"`
BULESKYResult string `protobuf:"bytes,135,opt,name=BULESKYResult,proto3" json:"BULESKYResult"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -803,76 +794,6 @@ func (x *ExecutionResult) GetContentTypeDescription() string {
return ""
}
func (x *ExecutionResult) GetTIKTOKStatusDesc() string {
if x != nil {
return x.TIKTOKStatusDesc
}
return ""
}
func (x *ExecutionResult) GetYOUTUBEStatusDesc() string {
if x != nil {
return x.YOUTUBEStatusDesc
}
return ""
}
func (x *ExecutionResult) GetINSStatusDesc() string {
if x != nil {
return x.INSStatusDesc
}
return ""
}
func (x *ExecutionResult) GetDMStatusDesc() string {
if x != nil {
return x.DMStatusDesc
}
return ""
}
func (x *ExecutionResult) GetBULESKYStatusDesc() string {
if x != nil {
return x.BULESKYStatusDesc
}
return ""
}
func (x *ExecutionResult) GetTIKTOKResult() string {
if x != nil {
return x.TIKTOKResult
}
return ""
}
func (x *ExecutionResult) GetYOUTUBEResult() string {
if x != nil {
return x.YOUTUBEResult
}
return ""
}
func (x *ExecutionResult) GetINSResult() string {
if x != nil {
return x.INSResult
}
return ""
}
func (x *ExecutionResult) GetDMResult() string {
if x != nil {
return x.DMResult
}
return ""
}
func (x *ExecutionResult) GetBULESKYResult() string {
if x != nil {
return x.BULESKYResult
}
return ""
}
type CreateScheduleTaskRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
TaskTitle string `protobuf:"bytes,1,opt,name=task_title,json=taskTitle,proto3" json:"task_title"` // 任务标题
@ -1118,18 +1039,18 @@ func (x *CreateScheduleTaskResponse) GetData() *ScheduleTask {
}
type UpdateScheduleTaskRequest struct {
state protoimpl.MessageState `protogen:"open.v1"`
TaskId uint64 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id"` // 任务ID用于标识需要更新的任务
TaskTitle string `protobuf:"bytes,2,opt,name=task_title,json=taskTitle,proto3" json:"task_title"` // 任务标题
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description"` // 描述
PeriodType int32 `protobuf:"varint,4,opt,name=period_type,json=periodType,proto3" json:"period_type"` // 周期类型
Weekdays []int32 `protobuf:"varint,5,rep,packed,name=weekdays,proto3" json:"weekdays"` // 每周任务的星期几
CustomDays []string `protobuf:"bytes,6,rep,name=custom_days,json=customDays,proto3" json:"custom_days"` // 自定义日期
StartDate string `protobuf:"bytes,7,opt,name=start_date,json=startDate,proto3" json:"start_date"` // 开始日期
ExecuteStartTime string `protobuf:"bytes,8,opt,name=execute_start_time,json=executeStartTime,proto3" json:"execute_start_time"` // 执行开始时间
ExecuteEndTime string `protobuf:"bytes,9,opt,name=execute_end_time,json=executeEndTime,proto3" json:"execute_end_time"` // 执行结束时间
Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` // 备注
TaskDetail *UpdateScheduleTaskRequestTaskDetail `protobuf:"bytes,11,opt,name=task_detail,json=taskDetail,proto3" json:"task_detail"` // 任务详情
state protoimpl.MessageState `protogen:"open.v1"`
TaskId uint64 `protobuf:"varint,1,opt,name=task_id,json=taskId,proto3" json:"task_id"` // 任务ID用于标识需要更新的任务
TaskTitle string `protobuf:"bytes,2,opt,name=task_title,json=taskTitle,proto3" json:"task_title"` // 任务标题
Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description"` // 描述
PeriodType int32 `protobuf:"varint,4,opt,name=period_type,json=periodType,proto3" json:"period_type"` // 周期类型
Weekdays []int32 `protobuf:"varint,5,rep,packed,name=weekdays,proto3" json:"weekdays"` // 每周任务的星期几
CustomDays []string `protobuf:"bytes,6,rep,name=custom_days,json=customDays,proto3" json:"custom_days"` // 自定义日期
StartDate string `protobuf:"bytes,7,opt,name=start_date,json=startDate,proto3" json:"start_date"` // 开始日期
ExecuteStartTime string `protobuf:"bytes,8,opt,name=execute_start_time,json=executeStartTime,proto3" json:"execute_start_time"` // 执行开始时间
ExecuteEndTime string `protobuf:"bytes,9,opt,name=execute_end_time,json=executeEndTime,proto3" json:"execute_end_time"` // 执行结束时间
Remark string `protobuf:"bytes,10,opt,name=remark,proto3" json:"remark"` // 备注
TaskDetail *TaskDetailRequest `protobuf:"bytes,11,opt,name=task_detail,json=taskDetail,proto3" json:"task_detail"` // 任务详情
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
@ -1234,97 +1155,13 @@ func (x *UpdateScheduleTaskRequest) GetRemark() string {
return ""
}
func (x *UpdateScheduleTaskRequest) GetTaskDetail() *UpdateScheduleTaskRequestTaskDetail {
func (x *UpdateScheduleTaskRequest) GetTaskDetail() *TaskDetailRequest {
if x != nil {
return x.TaskDetail
}
return nil
}
type UpdateScheduleTaskRequestTaskDetail struct {
state protoimpl.MessageState `protogen:"open.v1"`
Id int32 `protobuf:"varint,5,opt,name=id,proto3" json:"id"`
TaskId int32 `protobuf:"varint,6,opt,name=task_id,json=taskId,proto3" json:"task_id"`
ArtistCount int32 `protobuf:"varint,1,opt,name=artist_count,json=artistCount,proto3" json:"artist_count"` // 艺人数量
Artists []*ArtistInfo `protobuf:"bytes,2,rep,name=artists,proto3" json:"artists"` // 艺人信息列表
Num int32 `protobuf:"varint,3,opt,name=num,proto3" json:"num"` // 任务数量
ContentType int32 `protobuf:"varint,4,opt,name=content_type,json=contentType,proto3" json:"content_type"` // 内容类型
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *UpdateScheduleTaskRequestTaskDetail) Reset() {
*x = UpdateScheduleTaskRequestTaskDetail{}
mi := &file_pb_cron_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
func (x *UpdateScheduleTaskRequestTaskDetail) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*UpdateScheduleTaskRequestTaskDetail) ProtoMessage() {}
func (x *UpdateScheduleTaskRequestTaskDetail) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use UpdateScheduleTaskRequestTaskDetail.ProtoReflect.Descriptor instead.
func (*UpdateScheduleTaskRequestTaskDetail) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{11}
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetTaskId() int32 {
if x != nil {
return x.TaskId
}
return 0
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetArtistCount() int32 {
if x != nil {
return x.ArtistCount
}
return 0
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetArtists() []*ArtistInfo {
if x != nil {
return x.Artists
}
return nil
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetNum() int32 {
if x != nil {
return x.Num
}
return 0
}
func (x *UpdateScheduleTaskRequestTaskDetail) GetContentType() int32 {
if x != nil {
return x.ContentType
}
return 0
}
type UpdateScheduleTaskResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code"` // 响应码
@ -1336,7 +1173,7 @@ type UpdateScheduleTaskResponse struct {
func (x *UpdateScheduleTaskResponse) Reset() {
*x = UpdateScheduleTaskResponse{}
mi := &file_pb_cron_proto_msgTypes[12]
mi := &file_pb_cron_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1348,7 +1185,7 @@ func (x *UpdateScheduleTaskResponse) String() string {
func (*UpdateScheduleTaskResponse) ProtoMessage() {}
func (x *UpdateScheduleTaskResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[12]
mi := &file_pb_cron_proto_msgTypes[11]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1361,7 +1198,7 @@ func (x *UpdateScheduleTaskResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use UpdateScheduleTaskResponse.ProtoReflect.Descriptor instead.
func (*UpdateScheduleTaskResponse) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{12}
return file_pb_cron_proto_rawDescGZIP(), []int{11}
}
func (x *UpdateScheduleTaskResponse) GetCode() int32 {
@ -1395,14 +1232,13 @@ type GetListScheduleTaskRequest struct {
EndTime string `protobuf:"bytes,6,opt,name=end_time,json=endTime,proto3" json:"end_time"` // 结束日期
Status int32 `protobuf:"varint,7,opt,name=Status,proto3" json:"Status"` // 任务状态
ContentType int32 `protobuf:"varint,8,opt,name=content_type,json=contentType,proto3" json:"content_type"` // 内容类型
Sorts map[string]string `protobuf:"bytes,9,rep,name=sorts,proto3" json:"sorts" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
unknownFields protoimpl.UnknownFields
sizeCache protoimpl.SizeCache
}
func (x *GetListScheduleTaskRequest) Reset() {
*x = GetListScheduleTaskRequest{}
mi := &file_pb_cron_proto_msgTypes[13]
mi := &file_pb_cron_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1414,7 +1250,7 @@ func (x *GetListScheduleTaskRequest) String() string {
func (*GetListScheduleTaskRequest) ProtoMessage() {}
func (x *GetListScheduleTaskRequest) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[13]
mi := &file_pb_cron_proto_msgTypes[12]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1427,7 +1263,7 @@ func (x *GetListScheduleTaskRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListScheduleTaskRequest.ProtoReflect.Descriptor instead.
func (*GetListScheduleTaskRequest) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{13}
return file_pb_cron_proto_rawDescGZIP(), []int{12}
}
func (x *GetListScheduleTaskRequest) GetPage() int32 {
@ -1486,13 +1322,6 @@ func (x *GetListScheduleTaskRequest) GetContentType() int32 {
return 0
}
func (x *GetListScheduleTaskRequest) GetSorts() map[string]string {
if x != nil {
return x.Sorts
}
return nil
}
type GetListScheduleTaskResponse struct {
state protoimpl.MessageState `protogen:"open.v1"`
Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code"` // 响应码
@ -1507,7 +1336,7 @@ type GetListScheduleTaskResponse struct {
func (x *GetListScheduleTaskResponse) Reset() {
*x = GetListScheduleTaskResponse{}
mi := &file_pb_cron_proto_msgTypes[14]
mi := &file_pb_cron_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1519,7 +1348,7 @@ func (x *GetListScheduleTaskResponse) String() string {
func (*GetListScheduleTaskResponse) ProtoMessage() {}
func (x *GetListScheduleTaskResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[14]
mi := &file_pb_cron_proto_msgTypes[13]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1532,7 +1361,7 @@ func (x *GetListScheduleTaskResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListScheduleTaskResponse.ProtoReflect.Descriptor instead.
func (*GetListScheduleTaskResponse) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{14}
return file_pb_cron_proto_rawDescGZIP(), []int{13}
}
func (x *GetListScheduleTaskResponse) GetCode() int32 {
@ -1593,7 +1422,7 @@ type GetListExecutionRecordRequest struct {
func (x *GetListExecutionRecordRequest) Reset() {
*x = GetListExecutionRecordRequest{}
mi := &file_pb_cron_proto_msgTypes[15]
mi := &file_pb_cron_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1605,7 +1434,7 @@ func (x *GetListExecutionRecordRequest) String() string {
func (*GetListExecutionRecordRequest) ProtoMessage() {}
func (x *GetListExecutionRecordRequest) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[15]
mi := &file_pb_cron_proto_msgTypes[14]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1618,7 +1447,7 @@ func (x *GetListExecutionRecordRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListExecutionRecordRequest.ProtoReflect.Descriptor instead.
func (*GetListExecutionRecordRequest) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{15}
return file_pb_cron_proto_rawDescGZIP(), []int{14}
}
func (x *GetListExecutionRecordRequest) GetPage() int32 {
@ -1691,7 +1520,7 @@ type GetListExecutionRecordResponse struct {
func (x *GetListExecutionRecordResponse) Reset() {
*x = GetListExecutionRecordResponse{}
mi := &file_pb_cron_proto_msgTypes[16]
mi := &file_pb_cron_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1703,7 +1532,7 @@ func (x *GetListExecutionRecordResponse) String() string {
func (*GetListExecutionRecordResponse) ProtoMessage() {}
func (x *GetListExecutionRecordResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[16]
mi := &file_pb_cron_proto_msgTypes[15]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1716,7 +1545,7 @@ func (x *GetListExecutionRecordResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListExecutionRecordResponse.ProtoReflect.Descriptor instead.
func (*GetListExecutionRecordResponse) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{16}
return file_pb_cron_proto_rawDescGZIP(), []int{15}
}
func (x *GetListExecutionRecordResponse) GetCode() int32 {
@ -1778,7 +1607,7 @@ type GetListExecutionResultRequest struct {
func (x *GetListExecutionResultRequest) Reset() {
*x = GetListExecutionResultRequest{}
mi := &file_pb_cron_proto_msgTypes[17]
mi := &file_pb_cron_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1790,7 +1619,7 @@ func (x *GetListExecutionResultRequest) String() string {
func (*GetListExecutionResultRequest) ProtoMessage() {}
func (x *GetListExecutionResultRequest) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[17]
mi := &file_pb_cron_proto_msgTypes[16]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1803,7 +1632,7 @@ func (x *GetListExecutionResultRequest) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListExecutionResultRequest.ProtoReflect.Descriptor instead.
func (*GetListExecutionResultRequest) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{17}
return file_pb_cron_proto_rawDescGZIP(), []int{16}
}
func (x *GetListExecutionResultRequest) GetPage() int32 {
@ -1883,7 +1712,7 @@ type GetListExecutionResultResponse struct {
func (x *GetListExecutionResultResponse) Reset() {
*x = GetListExecutionResultResponse{}
mi := &file_pb_cron_proto_msgTypes[18]
mi := &file_pb_cron_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1895,7 +1724,7 @@ func (x *GetListExecutionResultResponse) String() string {
func (*GetListExecutionResultResponse) ProtoMessage() {}
func (x *GetListExecutionResultResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[18]
mi := &file_pb_cron_proto_msgTypes[17]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1908,7 +1737,7 @@ func (x *GetListExecutionResultResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetListExecutionResultResponse.ProtoReflect.Descriptor instead.
func (*GetListExecutionResultResponse) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{18}
return file_pb_cron_proto_rawDescGZIP(), []int{17}
}
func (x *GetListExecutionResultResponse) GetCode() int32 {
@ -1963,7 +1792,7 @@ type TaskStatus struct {
func (x *TaskStatus) Reset() {
*x = TaskStatus{}
mi := &file_pb_cron_proto_msgTypes[19]
mi := &file_pb_cron_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -1975,7 +1804,7 @@ func (x *TaskStatus) String() string {
func (*TaskStatus) ProtoMessage() {}
func (x *TaskStatus) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[19]
mi := &file_pb_cron_proto_msgTypes[18]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -1988,7 +1817,7 @@ func (x *TaskStatus) ProtoReflect() protoreflect.Message {
// Deprecated: Use TaskStatus.ProtoReflect.Descriptor instead.
func (*TaskStatus) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{19}
return file_pb_cron_proto_rawDescGZIP(), []int{18}
}
func (x *TaskStatus) GetKey() int32 {
@ -2016,7 +1845,7 @@ type GetScheduleTaskStatusResponse struct {
func (x *GetScheduleTaskStatusResponse) Reset() {
*x = GetScheduleTaskStatusResponse{}
mi := &file_pb_cron_proto_msgTypes[20]
mi := &file_pb_cron_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@ -2028,7 +1857,7 @@ func (x *GetScheduleTaskStatusResponse) String() string {
func (*GetScheduleTaskStatusResponse) ProtoMessage() {}
func (x *GetScheduleTaskStatusResponse) ProtoReflect() protoreflect.Message {
mi := &file_pb_cron_proto_msgTypes[20]
mi := &file_pb_cron_proto_msgTypes[19]
if x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@ -2041,7 +1870,7 @@ func (x *GetScheduleTaskStatusResponse) ProtoReflect() protoreflect.Message {
// Deprecated: Use GetScheduleTaskStatusResponse.ProtoReflect.Descriptor instead.
func (*GetScheduleTaskStatusResponse) Descriptor() ([]byte, []int) {
return file_pb_cron_proto_rawDescGZIP(), []int{20}
return file_pb_cron_proto_rawDescGZIP(), []int{19}
}
func (x *GetScheduleTaskStatusResponse) GetCode() int32 {
@ -2069,7 +1898,7 @@ var File_pb_cron_proto protoreflect.FileDescriptor
const file_pb_cron_proto_rawDesc = "" +
"\n" +
"\rpb/cron.proto\x12\x04cron\"!\n" +
"\rpb/cron.proto\x12\x04cron\x1a\x1bgoogle/protobuf/empty.proto\"!\n" +
"\x0fCommonIDRequest\x12\x0e\n" +
"\x02id\x18\x01 \x01(\rR\x02id\">\n" +
"\x0eCommonResponse\x12\x12\n" +
@ -2139,7 +1968,7 @@ const file_pb_cron_proto_rawDesc = "" +
"\n" +
"task_title\x18\x0e \x01(\tR\ttaskTitle\x12!\n" +
"\fcontent_type\x18\x0f \x01(\x05R\vcontentType\x12\x0e\n" +
"\x02id\x18\x10 \x01(\x04R\x02id\"\xc9\a\n" +
"\x02id\x18\x10 \x01(\x04R\x02id\"\xc8\x04\n" +
"\x0fExecutionResult\x12!\n" +
"\fexecution_id\x18\x01 \x01(\x05R\vexecutionId\x12\x17\n" +
"\atask_id\x18\x02 \x01(\x05R\x06taskId\x12\x1b\n" +
@ -2163,17 +1992,7 @@ const file_pb_cron_proto_rawDesc = "" +
"work_title\x18\x10 \x01(\tR\tworkTitle\x12-\n" +
"\x12status_description\x18n \x01(\tR\x11statusDescription\x12-\n" +
"\x12result_description\x18o \x01(\tR\x11resultDescription\x128\n" +
"\x18content_type_description\x18s \x01(\tR\x16contentTypeDescription\x12*\n" +
"\x10TIKTOKStatusDesc\x18y \x01(\tR\x10TIKTOKStatusDesc\x12,\n" +
"\x11YOUTUBEStatusDesc\x18z \x01(\tR\x11YOUTUBEStatusDesc\x12$\n" +
"\rINSStatusDesc\x18{ \x01(\tR\rINSStatusDesc\x12\"\n" +
"\fDMStatusDesc\x18| \x01(\tR\fDMStatusDesc\x12,\n" +
"\x11BULESKYStatusDesc\x18} \x01(\tR\x11BULESKYStatusDesc\x12#\n" +
"\fTIKTOKResult\x18\x83\x01 \x01(\tR\fTIKTOKResult\x12%\n" +
"\rYOUTUBEResult\x18\x84\x01 \x01(\tR\rYOUTUBEResult\x12\x1d\n" +
"\tINSResult\x18\x85\x01 \x01(\tR\tINSResult\x12\x1b\n" +
"\bDMResult\x18\x86\x01 \x01(\tR\bDMResult\x12%\n" +
"\rBULESKYResult\x18\x87\x01 \x01(\tR\rBULESKYResult\"\x83\x03\n" +
"\x18content_type_description\x18s \x01(\tR\x16contentTypeDescription\"\x83\x03\n" +
"\x19CreateScheduleTaskRequest\x12\x1d\n" +
"\n" +
"task_title\x18\x01 \x01(\tR\ttaskTitle\x12 \n" +
@ -2199,7 +2018,7 @@ const file_pb_cron_proto_rawDesc = "" +
"\x1aCreateScheduleTaskResponse\x12\x12\n" +
"\x04code\x18\x01 \x01(\x05R\x04code\x12\x18\n" +
"\amessage\x18\x02 \x01(\tR\amessage\x12&\n" +
"\x04data\x18\x03 \x01(\v2\x12.cron.ScheduleTaskR\x04data\"\xae\x03\n" +
"\x04data\x18\x03 \x01(\v2\x12.cron.ScheduleTaskR\x04data\"\x9c\x03\n" +
"\x19UpdateScheduleTaskRequest\x12\x17\n" +
"\atask_id\x18\x01 \x01(\x04R\x06taskId\x12\x1d\n" +
"\n" +
@ -2215,20 +2034,13 @@ const file_pb_cron_proto_rawDesc = "" +
"\x12execute_start_time\x18\b \x01(\tR\x10executeStartTime\x12(\n" +
"\x10execute_end_time\x18\t \x01(\tR\x0eexecuteEndTime\x12\x16\n" +
"\x06remark\x18\n" +
" \x01(\tR\x06remark\x12J\n" +
"\vtask_detail\x18\v \x01(\v2).cron.UpdateScheduleTaskRequestTaskDetailR\n" +
"taskDetail\"\xd2\x01\n" +
"#UpdateScheduleTaskRequestTaskDetail\x12\x0e\n" +
"\x02id\x18\x05 \x01(\x05R\x02id\x12\x17\n" +
"\atask_id\x18\x06 \x01(\x05R\x06taskId\x12!\n" +
"\fartist_count\x18\x01 \x01(\x05R\vartistCount\x12*\n" +
"\aartists\x18\x02 \x03(\v2\x10.cron.ArtistInfoR\aartists\x12\x10\n" +
"\x03num\x18\x03 \x01(\x05R\x03num\x12!\n" +
"\fcontent_type\x18\x04 \x01(\x05R\vcontentType\"r\n" +
" \x01(\tR\x06remark\x128\n" +
"\vtask_detail\x18\v \x01(\v2\x17.cron.TaskDetailRequestR\n" +
"taskDetail\"r\n" +
"\x1aUpdateScheduleTaskResponse\x12\x12\n" +
"\x04code\x18\x01 \x01(\x05R\x04code\x12\x18\n" +
"\amessage\x18\x02 \x01(\tR\amessage\x12&\n" +
"\x04data\x18\x03 \x01(\v2\x12.cron.ScheduleTaskR\x04data\"\xff\x02\n" +
"\x04data\x18\x03 \x01(\v2\x12.cron.ScheduleTaskR\x04data\"\x82\x02\n" +
"\x1aGetListScheduleTaskRequest\x12\x12\n" +
"\x04page\x18\x01 \x01(\x05R\x04page\x12\x1b\n" +
"\tpage_size\x18\x02 \x01(\x05R\bpageSize\x12\x1d\n" +
@ -2240,12 +2052,7 @@ const file_pb_cron_proto_rawDesc = "" +
"start_time\x18\x05 \x01(\tR\tstartTime\x12\x19\n" +
"\bend_time\x18\x06 \x01(\tR\aendTime\x12\x16\n" +
"\x06Status\x18\a \x01(\x05R\x06Status\x12!\n" +
"\fcontent_type\x18\b \x01(\x05R\vcontentType\x12A\n" +
"\x05sorts\x18\t \x03(\v2+.cron.GetListScheduleTaskRequest.SortsEntryR\x05sorts\x1a8\n" +
"\n" +
"SortsEntry\x12\x10\n" +
"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xb1\x01\n" +
"\fcontent_type\x18\b \x01(\x05R\vcontentType\"\xb1\x01\n" +
"\x1bGetListScheduleTaskResponse\x12\x12\n" +
"\x04code\x18\x01 \x01(\x05R\x04code\x12\x18\n" +
"\amessage\x18\x02 \x01(\tR\amessage\x12\x14\n" +
@ -2313,30 +2120,28 @@ func file_pb_cron_proto_rawDescGZIP() []byte {
return file_pb_cron_proto_rawDescData
}
var file_pb_cron_proto_msgTypes = make([]protoimpl.MessageInfo, 22)
var file_pb_cron_proto_msgTypes = make([]protoimpl.MessageInfo, 20)
var file_pb_cron_proto_goTypes = []any{
(*CommonIDRequest)(nil), // 0: cron.CommonIDRequest
(*CommonResponse)(nil), // 1: cron.CommonResponse
(*ScheduleTask)(nil), // 2: cron.ScheduleTask
(*TaskDetail)(nil), // 3: cron.TaskDetail
(*ArtistInfo)(nil), // 4: cron.ArtistInfo
(*ExecutionRecord)(nil), // 5: cron.ExecutionRecord
(*ExecutionResult)(nil), // 6: cron.ExecutionResult
(*CreateScheduleTaskRequest)(nil), // 7: cron.CreateScheduleTaskRequest
(*TaskDetailRequest)(nil), // 8: cron.TaskDetailRequest
(*CreateScheduleTaskResponse)(nil), // 9: cron.CreateScheduleTaskResponse
(*UpdateScheduleTaskRequest)(nil), // 10: cron.UpdateScheduleTaskRequest
(*UpdateScheduleTaskRequestTaskDetail)(nil), // 11: cron.UpdateScheduleTaskRequestTaskDetail
(*UpdateScheduleTaskResponse)(nil), // 12: cron.UpdateScheduleTaskResponse
(*GetListScheduleTaskRequest)(nil), // 13: cron.GetListScheduleTaskRequest
(*GetListScheduleTaskResponse)(nil), // 14: cron.GetListScheduleTaskResponse
(*GetListExecutionRecordRequest)(nil), // 15: cron.GetListExecutionRecordRequest
(*GetListExecutionRecordResponse)(nil), // 16: cron.GetListExecutionRecordResponse
(*GetListExecutionResultRequest)(nil), // 17: cron.GetListExecutionResultRequest
(*GetListExecutionResultResponse)(nil), // 18: cron.GetListExecutionResultResponse
(*TaskStatus)(nil), // 19: cron.TaskStatus
(*GetScheduleTaskStatusResponse)(nil), // 20: cron.GetScheduleTaskStatusResponse
nil, // 21: cron.GetListScheduleTaskRequest.SortsEntry
(*CommonIDRequest)(nil), // 0: cron.CommonIDRequest
(*CommonResponse)(nil), // 1: cron.CommonResponse
(*ScheduleTask)(nil), // 2: cron.ScheduleTask
(*TaskDetail)(nil), // 3: cron.TaskDetail
(*ArtistInfo)(nil), // 4: cron.ArtistInfo
(*ExecutionRecord)(nil), // 5: cron.ExecutionRecord
(*ExecutionResult)(nil), // 6: cron.ExecutionResult
(*CreateScheduleTaskRequest)(nil), // 7: cron.CreateScheduleTaskRequest
(*TaskDetailRequest)(nil), // 8: cron.TaskDetailRequest
(*CreateScheduleTaskResponse)(nil), // 9: cron.CreateScheduleTaskResponse
(*UpdateScheduleTaskRequest)(nil), // 10: cron.UpdateScheduleTaskRequest
(*UpdateScheduleTaskResponse)(nil), // 11: cron.UpdateScheduleTaskResponse
(*GetListScheduleTaskRequest)(nil), // 12: cron.GetListScheduleTaskRequest
(*GetListScheduleTaskResponse)(nil), // 13: cron.GetListScheduleTaskResponse
(*GetListExecutionRecordRequest)(nil), // 14: cron.GetListExecutionRecordRequest
(*GetListExecutionRecordResponse)(nil), // 15: cron.GetListExecutionRecordResponse
(*GetListExecutionResultRequest)(nil), // 16: cron.GetListExecutionResultRequest
(*GetListExecutionResultResponse)(nil), // 17: cron.GetListExecutionResultResponse
(*TaskStatus)(nil), // 18: cron.TaskStatus
(*GetScheduleTaskStatusResponse)(nil), // 19: cron.GetScheduleTaskStatusResponse
}
var file_pb_cron_proto_depIdxs = []int32{
3, // 0: cron.ScheduleTask.task_detail:type_name -> cron.TaskDetail
@ -2346,19 +2151,17 @@ var file_pb_cron_proto_depIdxs = []int32{
8, // 4: cron.CreateScheduleTaskRequest.task_detail:type_name -> cron.TaskDetailRequest
4, // 5: cron.TaskDetailRequest.artists:type_name -> cron.ArtistInfo
2, // 6: cron.CreateScheduleTaskResponse.data:type_name -> cron.ScheduleTask
11, // 7: cron.UpdateScheduleTaskRequest.task_detail:type_name -> cron.UpdateScheduleTaskRequestTaskDetail
4, // 8: cron.UpdateScheduleTaskRequestTaskDetail.artists:type_name -> cron.ArtistInfo
2, // 9: cron.UpdateScheduleTaskResponse.data:type_name -> cron.ScheduleTask
21, // 10: cron.GetListScheduleTaskRequest.sorts:type_name -> cron.GetListScheduleTaskRequest.SortsEntry
2, // 11: cron.GetListScheduleTaskResponse.data:type_name -> cron.ScheduleTask
5, // 12: cron.GetListExecutionRecordResponse.data:type_name -> cron.ExecutionRecord
6, // 13: cron.GetListExecutionResultResponse.data:type_name -> cron.ExecutionResult
19, // 14: cron.GetScheduleTaskStatusResponse.data:type_name -> cron.TaskStatus
15, // [15:15] is the sub-list for method output_type
15, // [15:15] is the sub-list for method input_type
15, // [15:15] is the sub-list for extension type_name
15, // [15:15] is the sub-list for extension extendee
0, // [0:15] is the sub-list for field type_name
8, // 7: cron.UpdateScheduleTaskRequest.task_detail:type_name -> cron.TaskDetailRequest
2, // 8: cron.UpdateScheduleTaskResponse.data:type_name -> cron.ScheduleTask
2, // 9: cron.GetListScheduleTaskResponse.data:type_name -> cron.ScheduleTask
5, // 10: cron.GetListExecutionRecordResponse.data:type_name -> cron.ExecutionRecord
6, // 11: cron.GetListExecutionResultResponse.data:type_name -> cron.ExecutionResult
18, // 12: cron.GetScheduleTaskStatusResponse.data:type_name -> cron.TaskStatus
13, // [13:13] is the sub-list for method output_type
13, // [13:13] is the sub-list for method input_type
13, // [13:13] is the sub-list for extension type_name
13, // [13:13] is the sub-list for extension extendee
0, // [0:13] is the sub-list for field type_name
}
func init() { file_pb_cron_proto_init() }
@ -2372,7 +2175,7 @@ func file_pb_cron_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: unsafe.Slice(unsafe.StringData(file_pb_cron_proto_rawDesc), len(file_pb_cron_proto_rawDesc)),
NumEnums: 0,
NumMessages: 22,
NumMessages: 20,
NumExtensions: 0,
NumServices: 0,
},

View File

@ -7,6 +7,7 @@ import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
_ "google.golang.org/protobuf/types/known/emptypb"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
@ -96,16 +97,6 @@ func (this *UpdateScheduleTaskRequest) Validate() error {
}
return nil
}
func (this *UpdateScheduleTaskRequestTaskDetail) Validate() error {
for _, item := range this.Artists {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Artists", err)
}
}
}
return nil
}
func (this *UpdateScheduleTaskResponse) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
@ -115,7 +106,6 @@ func (this *UpdateScheduleTaskResponse) Validate() error {
return nil
}
func (this *GetListScheduleTaskRequest) Validate() error {
// Validation of proto3 map<> fields is unsupported.
return nil
}
func (this *GetListScheduleTaskResponse) Validate() error {

View File

@ -1,644 +0,0 @@
// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.31.0
// protoc v5.26.0
// source: api/emailAlerts/emailAlerts.proto
package emailAlerts
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
sync "sync"
)
const (
// Verify that this generated code is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
// Verify that runtime/protoimpl is sufficiently up-to-date.
_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)
type EmailAlertsSubmitReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
FirstName string `protobuf:"bytes,1,opt,name=firstName,proto3" json:"firstName"`
LastName string `protobuf:"bytes,2,opt,name=lastName,proto3" json:"lastName"`
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email"`
Company string `protobuf:"bytes,4,opt,name=company,proto3" json:"company"`
Phone string `protobuf:"bytes,5,opt,name=phone,proto3" json:"phone"`
}
func (x *EmailAlertsSubmitReq) Reset() {
*x = EmailAlertsSubmitReq{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmailAlertsSubmitReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmailAlertsSubmitReq) ProtoMessage() {}
func (x *EmailAlertsSubmitReq) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[0]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EmailAlertsSubmitReq.ProtoReflect.Descriptor instead.
func (*EmailAlertsSubmitReq) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{0}
}
func (x *EmailAlertsSubmitReq) GetFirstName() string {
if x != nil {
return x.FirstName
}
return ""
}
func (x *EmailAlertsSubmitReq) GetLastName() string {
if x != nil {
return x.LastName
}
return ""
}
func (x *EmailAlertsSubmitReq) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *EmailAlertsSubmitReq) GetCompany() string {
if x != nil {
return x.Company
}
return ""
}
func (x *EmailAlertsSubmitReq) GetPhone() string {
if x != nil {
return x.Phone
}
return ""
}
type EmailAlertsSubmitResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"`
}
func (x *EmailAlertsSubmitResp) Reset() {
*x = EmailAlertsSubmitResp{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmailAlertsSubmitResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmailAlertsSubmitResp) ProtoMessage() {}
func (x *EmailAlertsSubmitResp) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[1]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EmailAlertsSubmitResp.ProtoReflect.Descriptor instead.
func (*EmailAlertsSubmitResp) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{1}
}
func (x *EmailAlertsSubmitResp) GetMsg() string {
if x != nil {
return x.Msg
}
return ""
}
// ========================= EmailInformatio ==============================
type Filtrate struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name"`
Email string `protobuf:"bytes,2,opt,name=email,proto3" json:"email"`
Company string `protobuf:"bytes,3,opt,name=company,proto3" json:"company"`
}
func (x *Filtrate) Reset() {
*x = Filtrate{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Filtrate) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Filtrate) ProtoMessage() {}
func (x *Filtrate) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[2]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use Filtrate.ProtoReflect.Descriptor instead.
func (*Filtrate) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{2}
}
func (x *Filtrate) GetName() string {
if x != nil {
return x.Name
}
return ""
}
func (x *Filtrate) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *Filtrate) GetCompany() string {
if x != nil {
return x.Company
}
return ""
}
type GetEmailInformationListReq struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Page int32 `protobuf:"varint,1,opt,name=page,proto3" json:"page"`
PageSize int32 `protobuf:"varint,2,opt,name=pageSize,proto3" json:"pageSize"`
Filtrate *Filtrate `protobuf:"bytes,3,opt,name=filtrate,proto3" json:"filtrate"`
}
func (x *GetEmailInformationListReq) Reset() {
*x = GetEmailInformationListReq{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetEmailInformationListReq) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetEmailInformationListReq) ProtoMessage() {}
func (x *GetEmailInformationListReq) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[3]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetEmailInformationListReq.ProtoReflect.Descriptor instead.
func (*GetEmailInformationListReq) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{3}
}
func (x *GetEmailInformationListReq) GetPage() int32 {
if x != nil {
return x.Page
}
return 0
}
func (x *GetEmailInformationListReq) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *GetEmailInformationListReq) GetFiltrate() *Filtrate {
if x != nil {
return x.Filtrate
}
return nil
}
type GetEmailInformationListResp struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg"`
Page int32 `protobuf:"varint,2,opt,name=page,proto3" json:"page"`
PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize"`
Total int32 `protobuf:"varint,4,opt,name=total,proto3" json:"total"`
Data []*EmailInformation `protobuf:"bytes,5,rep,name=data,proto3" json:"data"`
}
func (x *GetEmailInformationListResp) Reset() {
*x = GetEmailInformationListResp{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *GetEmailInformationListResp) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*GetEmailInformationListResp) ProtoMessage() {}
func (x *GetEmailInformationListResp) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[4]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use GetEmailInformationListResp.ProtoReflect.Descriptor instead.
func (*GetEmailInformationListResp) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{4}
}
func (x *GetEmailInformationListResp) GetMsg() string {
if x != nil {
return x.Msg
}
return ""
}
func (x *GetEmailInformationListResp) GetPage() int32 {
if x != nil {
return x.Page
}
return 0
}
func (x *GetEmailInformationListResp) GetPageSize() int32 {
if x != nil {
return x.PageSize
}
return 0
}
func (x *GetEmailInformationListResp) GetTotal() int32 {
if x != nil {
return x.Total
}
return 0
}
func (x *GetEmailInformationListResp) GetData() []*EmailInformation {
if x != nil {
return x.Data
}
return nil
}
type EmailInformation struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
Id int32 `protobuf:"varint,1,opt,name=id,proto3" json:"id"`
FullName string `protobuf:"bytes,2,opt,name=fullName,proto3" json:"fullName"`
Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email"`
Company string `protobuf:"bytes,4,opt,name=company,proto3" json:"company"`
Phone string `protobuf:"bytes,5,opt,name=phone,proto3" json:"phone"`
CreatedAt string `protobuf:"bytes,6,opt,name=createdAt,proto3" json:"createdAt"`
}
func (x *EmailInformation) Reset() {
*x = EmailInformation{}
if protoimpl.UnsafeEnabled {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *EmailInformation) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*EmailInformation) ProtoMessage() {}
func (x *EmailInformation) ProtoReflect() protoreflect.Message {
mi := &file_api_emailAlerts_emailAlerts_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
ms.StoreMessageInfo(mi)
}
return ms
}
return mi.MessageOf(x)
}
// Deprecated: Use EmailInformation.ProtoReflect.Descriptor instead.
func (*EmailInformation) Descriptor() ([]byte, []int) {
return file_api_emailAlerts_emailAlerts_proto_rawDescGZIP(), []int{5}
}
func (x *EmailInformation) GetId() int32 {
if x != nil {
return x.Id
}
return 0
}
func (x *EmailInformation) GetFullName() string {
if x != nil {
return x.FullName
}
return ""
}
func (x *EmailInformation) GetEmail() string {
if x != nil {
return x.Email
}
return ""
}
func (x *EmailInformation) GetCompany() string {
if x != nil {
return x.Company
}
return ""
}
func (x *EmailInformation) GetPhone() string {
if x != nil {
return x.Phone
}
return ""
}
func (x *EmailInformation) GetCreatedAt() string {
if x != nil {
return x.CreatedAt
}
return ""
}
var File_api_emailAlerts_emailAlerts_proto protoreflect.FileDescriptor
var file_api_emailAlerts_emailAlerts_proto_rawDesc = []byte{
0x0a, 0x21, 0x61, 0x70, 0x69, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74,
0x73, 0x2f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73,
0x22, 0x96, 0x01, 0x0a, 0x14, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73,
0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x69, 0x72,
0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x69,
0x72, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e,
0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x4e,
0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d,
0x70, 0x61, 0x6e, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70,
0x61, 0x6e, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01,
0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x29, 0x0a, 0x15, 0x45, 0x6d, 0x61,
0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65,
0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6d, 0x73, 0x67, 0x22, 0x4e, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65,
0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f,
0x6d, 0x70, 0x61, 0x6e, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d,
0x70, 0x61, 0x6e, 0x79, 0x22, 0x7f, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c,
0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52,
0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69,
0x7a, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03,
0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72,
0x74, 0x73, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x72, 0x61, 0x74, 0x65, 0x52, 0x08, 0x66, 0x69, 0x6c,
0x74, 0x72, 0x61, 0x74, 0x65, 0x22, 0xa8, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61,
0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73,
0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18,
0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70,
0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70,
0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c,
0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x31, 0x0a,
0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x65, 0x6d,
0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x49,
0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
0x22, 0xa2, 0x01, 0x0a, 0x10, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d,
0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x75, 0x6c, 0x6c, 0x4e, 0x61, 0x6d,
0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61,
0x6e, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x6e,
0x79, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74,
0x65, 0x64, 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61,
0x74, 0x65, 0x64, 0x41, 0x74, 0x32, 0xd7, 0x01, 0x0a, 0x0b, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41,
0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x5a, 0x0a, 0x11, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c,
0x65, 0x72, 0x74, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x12, 0x21, 0x2e, 0x65, 0x6d, 0x61,
0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c,
0x65, 0x72, 0x74, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e,
0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x45, 0x6d, 0x61, 0x69,
0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73,
0x70, 0x12, 0x6c, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66,
0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x2e, 0x65,
0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6d,
0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69,
0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65,
0x72, 0x74, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x49, 0x6e, 0x66, 0x6f,
0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42,
0x10, 0x5a, 0x0e, 0x2e, 0x2f, 0x3b, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x41, 0x6c, 0x65, 0x72, 0x74,
0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
file_api_emailAlerts_emailAlerts_proto_rawDescOnce sync.Once
file_api_emailAlerts_emailAlerts_proto_rawDescData = file_api_emailAlerts_emailAlerts_proto_rawDesc
)
func file_api_emailAlerts_emailAlerts_proto_rawDescGZIP() []byte {
file_api_emailAlerts_emailAlerts_proto_rawDescOnce.Do(func() {
file_api_emailAlerts_emailAlerts_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_emailAlerts_emailAlerts_proto_rawDescData)
})
return file_api_emailAlerts_emailAlerts_proto_rawDescData
}
var file_api_emailAlerts_emailAlerts_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_api_emailAlerts_emailAlerts_proto_goTypes = []interface{}{
(*EmailAlertsSubmitReq)(nil), // 0: emailAlerts.EmailAlertsSubmitReq
(*EmailAlertsSubmitResp)(nil), // 1: emailAlerts.EmailAlertsSubmitResp
(*Filtrate)(nil), // 2: emailAlerts.Filtrate
(*GetEmailInformationListReq)(nil), // 3: emailAlerts.GetEmailInformationListReq
(*GetEmailInformationListResp)(nil), // 4: emailAlerts.GetEmailInformationListResp
(*EmailInformation)(nil), // 5: emailAlerts.EmailInformation
}
var file_api_emailAlerts_emailAlerts_proto_depIdxs = []int32{
2, // 0: emailAlerts.GetEmailInformationListReq.filtrate:type_name -> emailAlerts.Filtrate
5, // 1: emailAlerts.GetEmailInformationListResp.data:type_name -> emailAlerts.EmailInformation
0, // 2: emailAlerts.EmailAlerts.EmailAlertsSubmit:input_type -> emailAlerts.EmailAlertsSubmitReq
3, // 3: emailAlerts.EmailAlerts.GetEmailInformationList:input_type -> emailAlerts.GetEmailInformationListReq
1, // 4: emailAlerts.EmailAlerts.EmailAlertsSubmit:output_type -> emailAlerts.EmailAlertsSubmitResp
4, // 5: emailAlerts.EmailAlerts.GetEmailInformationList:output_type -> emailAlerts.GetEmailInformationListResp
4, // [4:6] is the sub-list for method output_type
2, // [2:4] is the sub-list for method input_type
2, // [2:2] is the sub-list for extension type_name
2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
}
func init() { file_api_emailAlerts_emailAlerts_proto_init() }
func file_api_emailAlerts_emailAlerts_proto_init() {
if File_api_emailAlerts_emailAlerts_proto != nil {
return
}
if !protoimpl.UnsafeEnabled {
file_api_emailAlerts_emailAlerts_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmailAlertsSubmitReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_emailAlerts_emailAlerts_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmailAlertsSubmitResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_emailAlerts_emailAlerts_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Filtrate); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_emailAlerts_emailAlerts_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetEmailInformationListReq); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_emailAlerts_emailAlerts_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*GetEmailInformationListResp); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_api_emailAlerts_emailAlerts_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*EmailInformation); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_api_emailAlerts_emailAlerts_proto_rawDesc,
NumEnums: 0,
NumMessages: 6,
NumExtensions: 0,
NumServices: 1,
},
GoTypes: file_api_emailAlerts_emailAlerts_proto_goTypes,
DependencyIndexes: file_api_emailAlerts_emailAlerts_proto_depIdxs,
MessageInfos: file_api_emailAlerts_emailAlerts_proto_msgTypes,
}.Build()
File_api_emailAlerts_emailAlerts_proto = out.File
file_api_emailAlerts_emailAlerts_proto_rawDesc = nil
file_api_emailAlerts_emailAlerts_proto_goTypes = nil
file_api_emailAlerts_emailAlerts_proto_depIdxs = nil
}

View File

@ -1,47 +0,0 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/emailAlerts/emailAlerts.proto
package emailAlerts
import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *EmailAlertsSubmitReq) Validate() error {
return nil
}
func (this *EmailAlertsSubmitResp) Validate() error {
return nil
}
func (this *Filtrate) Validate() error {
return nil
}
func (this *GetEmailInformationListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetEmailInformationListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *EmailInformation) Validate() error {
return nil
}

View File

@ -1,194 +0,0 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// source: api/emailAlerts/emailAlerts.proto
package emailAlerts
import (
context "context"
protocol "dubbo.apache.org/dubbo-go/v3/protocol"
dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3"
invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
grpc_go "github.com/dubbogo/grpc-go"
codes "github.com/dubbogo/grpc-go/codes"
metadata "github.com/dubbogo/grpc-go/metadata"
status "github.com/dubbogo/grpc-go/status"
common "github.com/dubbogo/triple/pkg/common"
constant "github.com/dubbogo/triple/pkg/common/constant"
triple "github.com/dubbogo/triple/pkg/triple"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc_go.SupportPackageIsVersion7
// EmailAlertsClient is the client API for EmailAlerts service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type EmailAlertsClient interface {
EmailAlertsSubmit(ctx context.Context, in *EmailAlertsSubmitReq, opts ...grpc_go.CallOption) (*EmailAlertsSubmitResp, common.ErrorWithAttachment)
// ========================= EmailInformatio ==============================
GetEmailInformationList(ctx context.Context, in *GetEmailInformationListReq, opts ...grpc_go.CallOption) (*GetEmailInformationListResp, common.ErrorWithAttachment)
}
type emailAlertsClient struct {
cc *triple.TripleConn
}
type EmailAlertsClientImpl struct {
EmailAlertsSubmit func(ctx context.Context, in *EmailAlertsSubmitReq) (*EmailAlertsSubmitResp, error)
GetEmailInformationList func(ctx context.Context, in *GetEmailInformationListReq) (*GetEmailInformationListResp, error)
}
func (c *EmailAlertsClientImpl) GetDubboStub(cc *triple.TripleConn) EmailAlertsClient {
return NewEmailAlertsClient(cc)
}
func (c *EmailAlertsClientImpl) XXX_InterfaceName() string {
return "emailAlerts.EmailAlerts"
}
func NewEmailAlertsClient(cc *triple.TripleConn) EmailAlertsClient {
return &emailAlertsClient{cc}
}
func (c *emailAlertsClient) EmailAlertsSubmit(ctx context.Context, in *EmailAlertsSubmitReq, opts ...grpc_go.CallOption) (*EmailAlertsSubmitResp, common.ErrorWithAttachment) {
out := new(EmailAlertsSubmitResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EmailAlertsSubmit", in, out)
}
func (c *emailAlertsClient) GetEmailInformationList(ctx context.Context, in *GetEmailInformationListReq, opts ...grpc_go.CallOption) (*GetEmailInformationListResp, common.ErrorWithAttachment) {
out := new(GetEmailInformationListResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetEmailInformationList", in, out)
}
// EmailAlertsServer is the server API for EmailAlerts service.
// All implementations must embed UnimplementedEmailAlertsServer
// for forward compatibility
type EmailAlertsServer interface {
EmailAlertsSubmit(context.Context, *EmailAlertsSubmitReq) (*EmailAlertsSubmitResp, error)
// ========================= EmailInformatio ==============================
GetEmailInformationList(context.Context, *GetEmailInformationListReq) (*GetEmailInformationListResp, error)
mustEmbedUnimplementedEmailAlertsServer()
}
// UnimplementedEmailAlertsServer must be embedded to have forward compatible implementations.
type UnimplementedEmailAlertsServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedEmailAlertsServer) EmailAlertsSubmit(context.Context, *EmailAlertsSubmitReq) (*EmailAlertsSubmitResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EmailAlertsSubmit not implemented")
}
func (UnimplementedEmailAlertsServer) GetEmailInformationList(context.Context, *GetEmailInformationListReq) (*GetEmailInformationListResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetEmailInformationList not implemented")
}
func (s *UnimplementedEmailAlertsServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
func (s *UnimplementedEmailAlertsServer) XXX_GetProxyImpl() protocol.Invoker {
return s.proxyImpl
}
func (s *UnimplementedEmailAlertsServer) XXX_ServiceDesc() *grpc_go.ServiceDesc {
return &EmailAlerts_ServiceDesc
}
func (s *UnimplementedEmailAlertsServer) XXX_InterfaceName() string {
return "emailAlerts.EmailAlerts"
}
func (UnimplementedEmailAlertsServer) mustEmbedUnimplementedEmailAlertsServer() {}
// UnsafeEmailAlertsServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to EmailAlertsServer will
// result in compilation errors.
type UnsafeEmailAlertsServer interface {
mustEmbedUnimplementedEmailAlertsServer()
}
func RegisterEmailAlertsServer(s grpc_go.ServiceRegistrar, srv EmailAlertsServer) {
s.RegisterService(&EmailAlerts_ServiceDesc, srv)
}
func _EmailAlerts_EmailAlertsSubmit_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EmailAlertsSubmitReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("EmailAlertsSubmit", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _EmailAlerts_GetEmailInformationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetEmailInformationListReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetEmailInformationList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
// EmailAlerts_ServiceDesc is the grpc_go.ServiceDesc for EmailAlerts service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
var EmailAlerts_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "emailAlerts.EmailAlerts",
HandlerType: (*EmailAlertsServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "EmailAlertsSubmit",
Handler: _EmailAlerts_EmailAlertsSubmit_Handler,
},
{
MethodName: "GetEmailInformationList",
Handler: _EmailAlerts_GetEmailInformationList_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/emailAlerts/emailAlerts.proto",
}

File diff suppressed because it is too large Load Diff

View File

@ -9,53 +9,20 @@ service Governance{
rpc List(ListReq) returns (ListResp) {}
rpc Delete(DeleteReq) returns (DeleteResp) {}
rpc Edit(EditReq) returns (EditResp) {}
rpc UpdataStatus(UpdataStatusReq) returns (UpdataStatusResp) {}
rpc GetGovernanceInfo(GetGovernanceInfoReq) returns (GetGovernanceInfoResp) {}
rpc Create(CreateReq) returns (CreateResp) {}
rpc Display(DisplayReq) returns (DisplayResp) {}
}
message LangSetting {
string langType = 1;//
int32 isSetting = 2;//
}
message GovernanceLangData{
string title = 1;//
string attachment = 2;//
string attachmentName = 3;//
int32 isSetting = 4;//
}
message GovernanceLang{
string langType = 1;//
GovernanceLangData data = 2;//
}
message GovernanceInfo{
string uuid = 1;
repeated GovernanceLang dataByLang = 2;//
int32 sort = 3;//
int32 status = 4;//
}
message Item{
string uuid = 1;
int32 id = 1;
string title = 2;
string attachment = 3;
string attachmentName = 4;
repeated LangSetting langSetting = 5;//
int32 sort = 6;
int32 status = 7;
int64 updatedAt = 8;
string operator = 9;
int32 operatorId = 10;
}
message DisplayItem{
string title = 1;
string attachment = 2;
string attachmentName = 3;
int32 sort = 5;
int32 status = 6;
int64 updatedAt = 7;
string operator = 8;
int32 operatorId = 9;
}
message ListReq{
@ -71,48 +38,34 @@ message ListResp{
}
message DeleteReq{
string uuid = 1;
int32 id = 1;
}
message DeleteResp{
}
message EditReq{
string uuid = 1;
repeated GovernanceLang dataByLang = 2;
int32 sort = 3;
string operator = 4;
int32 operatorId = 5;
uint32 id = 1;
string title = 2;
string attachment = 3;
string attachmentName = 4;
int32 sort = 5;
int32 status = 6;
string operator = 7;
int32 operatorId = 8;
}
message EditResp{
}
message UpdataStatusReq{
string uuid = 1;
int32 status = 2;
string operator = 3;
int32 operatorId = 4;
}
message UpdataStatusResp{
string msg = 1;
}
message GetGovernanceInfoReq{
string uuid = 1;
}
message GetGovernanceInfoResp{
string msg = 1;
GovernanceInfo data = 2;
}
message CreateReq{
string uuid = 1;
repeated GovernanceLang dataByLang = 2;
uint32 sort = 3;
int32 status = 4;
string operator = 5;
int32 operatorId = 6;
string title = 1;
uint32 sort = 2;
string attachment = 3;
string attachmentName = 4;
int32 status = 5;
string operator = 6;
int32 operatorId = 7;
}
message CreateResp{
@ -120,9 +73,9 @@ message CreateResp{
}
message DisplayReq{
string langType = 1;//
}
message DisplayResp{
repeated DisplayItem data = 1;
repeated Item data = 1;
}

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/governance/governance.proto
// source: governance.proto
package governance
@ -15,41 +15,7 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *LangSetting) Validate() error {
return nil
}
func (this *GovernanceLangData) Validate() error {
return nil
}
func (this *GovernanceLang) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}
func (this *GovernanceInfo) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *Item) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *DisplayItem) Validate() error {
return nil
}
func (this *ListReq) Validate() error {
@ -72,43 +38,12 @@ func (this *DeleteResp) Validate() error {
return nil
}
func (this *EditReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditResp) Validate() error {
return nil
}
func (this *UpdataStatusReq) Validate() error {
return nil
}
func (this *UpdataStatusResp) Validate() error {
return nil
}
func (this *GetGovernanceInfoReq) Validate() error {
return nil
}
func (this *GetGovernanceInfoResp) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}
func (this *CreateReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *CreateResp) Validate() error {

View File

@ -1,8 +1,8 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// source: api/governance/governance.proto
// - protoc-gen-go-triple v1.0.8
// - protoc v3.20.3
// source: governance.proto
package governance
@ -31,8 +31,6 @@ type GovernanceClient interface {
List(ctx context.Context, in *ListReq, opts ...grpc_go.CallOption) (*ListResp, common.ErrorWithAttachment)
Delete(ctx context.Context, in *DeleteReq, opts ...grpc_go.CallOption) (*DeleteResp, common.ErrorWithAttachment)
Edit(ctx context.Context, in *EditReq, opts ...grpc_go.CallOption) (*EditResp, common.ErrorWithAttachment)
UpdataStatus(ctx context.Context, in *UpdataStatusReq, opts ...grpc_go.CallOption) (*UpdataStatusResp, common.ErrorWithAttachment)
GetGovernanceInfo(ctx context.Context, in *GetGovernanceInfoReq, opts ...grpc_go.CallOption) (*GetGovernanceInfoResp, common.ErrorWithAttachment)
Create(ctx context.Context, in *CreateReq, opts ...grpc_go.CallOption) (*CreateResp, common.ErrorWithAttachment)
Display(ctx context.Context, in *DisplayReq, opts ...grpc_go.CallOption) (*DisplayResp, common.ErrorWithAttachment)
}
@ -42,13 +40,11 @@ type governanceClient struct {
}
type GovernanceClientImpl struct {
List func(ctx context.Context, in *ListReq) (*ListResp, error)
Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error)
Edit func(ctx context.Context, in *EditReq) (*EditResp, error)
UpdataStatus func(ctx context.Context, in *UpdataStatusReq) (*UpdataStatusResp, error)
GetGovernanceInfo func(ctx context.Context, in *GetGovernanceInfoReq) (*GetGovernanceInfoResp, error)
Create func(ctx context.Context, in *CreateReq) (*CreateResp, error)
Display func(ctx context.Context, in *DisplayReq) (*DisplayResp, error)
List func(ctx context.Context, in *ListReq) (*ListResp, error)
Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error)
Edit func(ctx context.Context, in *EditReq) (*EditResp, error)
Create func(ctx context.Context, in *CreateReq) (*CreateResp, error)
Display func(ctx context.Context, in *DisplayReq) (*DisplayResp, error)
}
func (c *GovernanceClientImpl) GetDubboStub(cc *triple.TripleConn) GovernanceClient {
@ -81,18 +77,6 @@ func (c *governanceClient) Edit(ctx context.Context, in *EditReq, opts ...grpc_g
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Edit", in, out)
}
func (c *governanceClient) UpdataStatus(ctx context.Context, in *UpdataStatusReq, opts ...grpc_go.CallOption) (*UpdataStatusResp, common.ErrorWithAttachment) {
out := new(UpdataStatusResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdataStatus", in, out)
}
func (c *governanceClient) GetGovernanceInfo(ctx context.Context, in *GetGovernanceInfoReq, opts ...grpc_go.CallOption) (*GetGovernanceInfoResp, common.ErrorWithAttachment) {
out := new(GetGovernanceInfoResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetGovernanceInfo", in, out)
}
func (c *governanceClient) Create(ctx context.Context, in *CreateReq, opts ...grpc_go.CallOption) (*CreateResp, common.ErrorWithAttachment) {
out := new(CreateResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -112,8 +96,6 @@ type GovernanceServer interface {
List(context.Context, *ListReq) (*ListResp, error)
Delete(context.Context, *DeleteReq) (*DeleteResp, error)
Edit(context.Context, *EditReq) (*EditResp, error)
UpdataStatus(context.Context, *UpdataStatusReq) (*UpdataStatusResp, error)
GetGovernanceInfo(context.Context, *GetGovernanceInfoReq) (*GetGovernanceInfoResp, error)
Create(context.Context, *CreateReq) (*CreateResp, error)
Display(context.Context, *DisplayReq) (*DisplayResp, error)
mustEmbedUnimplementedGovernanceServer()
@ -133,12 +115,6 @@ func (UnimplementedGovernanceServer) Delete(context.Context, *DeleteReq) (*Delet
func (UnimplementedGovernanceServer) Edit(context.Context, *EditReq) (*EditResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method Edit not implemented")
}
func (UnimplementedGovernanceServer) UpdataStatus(context.Context, *UpdataStatusReq) (*UpdataStatusResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdataStatus not implemented")
}
func (UnimplementedGovernanceServer) GetGovernanceInfo(context.Context, *GetGovernanceInfoReq) (*GetGovernanceInfoResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetGovernanceInfo not implemented")
}
func (UnimplementedGovernanceServer) Create(context.Context, *CreateReq) (*CreateResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method Create not implemented")
}
@ -260,64 +236,6 @@ func _Governance_Edit_Handler(srv interface{}, ctx context.Context, dec func(int
return interceptor(ctx, in, info, handler)
}
func _Governance_UpdataStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdataStatusReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("UpdataStatus", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Governance_GetGovernanceInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetGovernanceInfoReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetGovernanceInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Governance_Create_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateReq)
if err := dec(in); err != nil {
@ -395,14 +313,6 @@ var Governance_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "Edit",
Handler: _Governance_Edit_Handler,
},
{
MethodName: "UpdataStatus",
Handler: _Governance_UpdataStatus_Handler,
},
{
MethodName: "GetGovernanceInfo",
Handler: _Governance_GetGovernanceInfo_Handler,
},
{
MethodName: "Create",
Handler: _Governance_Create_Handler,
@ -413,5 +323,5 @@ var Governance_ServiceDesc = grpc_go.ServiceDesc{
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/governance/governance.proto",
Metadata: "governance.proto",
}

File diff suppressed because it is too large Load Diff

View File

@ -1,341 +0,0 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/members/members.proto
package members
import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *Filtrate) Validate() error {
return nil
}
func (this *LangSetting) Validate() error {
return nil
}
func (this *ManagementLangData) Validate() error {
return nil
}
func (this *ManagementLang) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}
func (this *Management) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *AddManagementReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddManagementResp) Validate() error {
return nil
}
func (this *SortAndStatusManagementReq) Validate() error {
return nil
}
func (this *SortAndStatusManagementResp) Validate() error {
return nil
}
func (this *EditManagementReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditManagementResp) Validate() error {
return nil
}
func (this *DeleteManagementReq) Validate() error {
return nil
}
func (this *DeleteManagementResp) Validate() error {
return nil
}
func (this *GetManagementListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetManagementListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetManagementInfoReq) Validate() error {
return nil
}
func (this *GetManagementInfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *DisplayManagementReq) Validate() error {
return nil
}
func (this *DisplayManagementResp) Validate() error {
for _, item := range this.Item {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Item", err)
}
}
}
return nil
}
func (this *DisplayManagementItem) Validate() error {
return nil
}
func (this *BoardOfDirectorsLang) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}
func (this *BoardOfDirectorsLangData) Validate() error {
return nil
}
func (this *BoardOfDirectors) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *AddBoardOfDirectorsReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddBoardOfDirectorsResp) Validate() error {
return nil
}
func (this *SortAndStatusBoardOfDirectorsReq) Validate() error {
return nil
}
func (this *SortAndStatusBoardOfDirectorsResp) Validate() error {
return nil
}
func (this *EditBoardOfDirectorsReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditBoardOfDirectorsResp) Validate() error {
return nil
}
func (this *DeleteBoardOfDirectorsReq) Validate() error {
return nil
}
func (this *DeleteBoardOfDirectorsResp) Validate() error {
return nil
}
func (this *GetBoardOfDirectorsListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetBoardOfDirectorsListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetBoardOfDirectorsInfoReq) Validate() error {
return nil
}
func (this *GetBoardOfDirectorsInfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *DisplayBoardOfDirectorsReq) Validate() error {
return nil
}
func (this *DisplayBoardOfDirectorsResp) Validate() error {
for _, item := range this.Item {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Item", err)
}
}
}
return nil
}
func (this *DisplayBoardOfDirectorItem) Validate() error {
return nil
}
func (this *CommitteeAppointments) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *CommitteeAppointmentsLang) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}
func (this *CommitteeAppointmentsLangData) Validate() error {
return nil
}
func (this *AddCommitteeAppointmentsReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddCommitteeAppointmentsResp) Validate() error {
return nil
}
func (this *SortAndStatusCommitteeAppointmentsReq) Validate() error {
return nil
}
func (this *SortAndStatusCommitteeAppointmentsResp) Validate() error {
return nil
}
func (this *EditCommitteeAppointmentsReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditCommitteeAppointmentsResp) Validate() error {
return nil
}
func (this *DeleteCommitteeAppointmentsReq) Validate() error {
return nil
}
func (this *DeleteCommitteeAppointmentsResp) Validate() error {
return nil
}
func (this *GetCommitteeAppointmentsListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetCommitteeAppointmentsListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetCommitteeAppointmentsInfoReq) Validate() error {
return nil
}
func (this *GetCommitteeAppointmentsInfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *DisplayCommitteeAppointmentsReq) Validate() error {
return nil
}
func (this *DisplayCommitteeAppointmentsResp) Validate() error {
for _, item := range this.Item {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Item", err)
}
}
}
return nil
}
func (this *DisplayCommitteeAppointmentsItem) Validate() error {
return nil
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,119 @@
syntax = "proto3";
package pressreleases;
//import "descriptor.proto";
//import "validator.proto";
option go_package = "./;pressreleases";
service PressReleases{
rpc List(ListReq) returns (ListResp) {}
rpc Display(DisplayReq) returns (DisplayResp) {}
rpc Edit(EditReq) returns (EditResp) {}
rpc Create(CreateReq) returns (CreateResp) {}
rpc Delete(DeleteReq) returns (DeleteResp) {}
rpc Get(GetReq) returns (GetResp) {}
}
message Item{
uint32 id = 1;
string title = 2;
uint64 createdAt = 3;
uint32 sort = 4;
string content = 5;
string attachment = 6;
string attachmentName = 7;
uint64 updatedAt = 8;
uint32 status = 9;
uint32 display = 10;
string summary = 11;
string operator = 12;
int32 operatorId = 13;
}
message ListReq{
string title = 1;
uint64 startTime = 2;
uint64 endTime = 3;
uint32 status = 4;
uint32 display = 5;
int32 page = 6;
int32 pageSize = 7;
}
message ListResp{
uint64 total = 1;
repeated Item data = 2;
}
message DisplayReq{
string query = 1;
uint32 page = 2;
uint32 pageSize = 3;
int64 timeStart = 4;
int64 timeEnd = 5;
int32 display = 6;
}
message DisplayResp{
int64 total = 1;
repeated Item data = 2;
}
message EditReq{
uint32 id = 1;
string title = 2;
uint64 createdAt = 3;
uint32 sort = 4;
string content = 5;
string attachment = 6;
string attachmentName = 7;
uint32 status = 8;
uint32 display = 9;
string summary = 10;
string operator = 11;
int32 operatorId = 12;
}
message EditResp{
}
message CreateReq{
string title = 1;
uint64 createdAt = 2;
uint32 sort = 3;
string content = 4;
string attachment = 5;
string attachmentName = 6;
uint32 status = 7;
uint32 display = 8;
string summary = 9;
string operator = 10;
int32 operatorId = 11;
}
message CreateResp{
}
message DeleteReq{
uint32 id = 1;
}
message DeleteResp{
}
message GetReq{
int64 id = 1;
}
message GetResp{
uint32 id = 1;
string title = 2;
uint64 createdAt = 3;
string content = 4;
string attachment = 5;
string attachmentName = 6;
string summary = 7;
}

View File

@ -1,5 +1,5 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/pressreleases/press_releases.proto
// source: press_releases.proto
package pressreleases
@ -15,23 +15,7 @@ var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *LangSetting) Validate() error {
return nil
}
func (this *PressReleasesLang) Validate() error {
return nil
}
func (this *PressReleasesData) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *DisplayItem) Validate() error {
func (this *Item) Validate() error {
return nil
}
func (this *ListReq) Validate() error {
@ -47,25 +31,6 @@ func (this *ListResp) Validate() error {
}
return nil
}
func (this *SortAndStatusReq) Validate() error {
return nil
}
func (this *SortAndStatusResp) Validate() error {
return nil
}
func (this *InfoReq) Validate() error {
return nil
}
func (this *InfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *DisplayReq) Validate() error {
return nil
}
@ -80,26 +45,12 @@ func (this *DisplayResp) Validate() error {
return nil
}
func (this *EditReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditResp) Validate() error {
return nil
}
func (this *CreateReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *CreateResp) Validate() error {
@ -115,10 +66,5 @@ func (this *GetReq) Validate() error {
return nil
}
func (this *GetResp) Validate() error {
if this.Data != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Data); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
return nil
}

View File

@ -1,8 +1,8 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// source: api/pressreleases/press_releases.proto
// - protoc-gen-go-triple v1.0.8
// - protoc v3.20.3
// source: press_releases.proto
package pressreleases
@ -29,8 +29,6 @@ const _ = grpc_go.SupportPackageIsVersion7
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type PressReleasesClient interface {
List(ctx context.Context, in *ListReq, opts ...grpc_go.CallOption) (*ListResp, common.ErrorWithAttachment)
SortAndStatus(ctx context.Context, in *SortAndStatusReq, opts ...grpc_go.CallOption) (*SortAndStatusResp, common.ErrorWithAttachment)
Info(ctx context.Context, in *InfoReq, opts ...grpc_go.CallOption) (*InfoResp, common.ErrorWithAttachment)
Display(ctx context.Context, in *DisplayReq, opts ...grpc_go.CallOption) (*DisplayResp, common.ErrorWithAttachment)
Edit(ctx context.Context, in *EditReq, opts ...grpc_go.CallOption) (*EditResp, common.ErrorWithAttachment)
Create(ctx context.Context, in *CreateReq, opts ...grpc_go.CallOption) (*CreateResp, common.ErrorWithAttachment)
@ -43,14 +41,12 @@ type pressReleasesClient struct {
}
type PressReleasesClientImpl struct {
List func(ctx context.Context, in *ListReq) (*ListResp, error)
SortAndStatus func(ctx context.Context, in *SortAndStatusReq) (*SortAndStatusResp, error)
Info func(ctx context.Context, in *InfoReq) (*InfoResp, error)
Display func(ctx context.Context, in *DisplayReq) (*DisplayResp, error)
Edit func(ctx context.Context, in *EditReq) (*EditResp, error)
Create func(ctx context.Context, in *CreateReq) (*CreateResp, error)
Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error)
Get func(ctx context.Context, in *GetReq) (*GetResp, error)
List func(ctx context.Context, in *ListReq) (*ListResp, error)
Display func(ctx context.Context, in *DisplayReq) (*DisplayResp, error)
Edit func(ctx context.Context, in *EditReq) (*EditResp, error)
Create func(ctx context.Context, in *CreateReq) (*CreateResp, error)
Delete func(ctx context.Context, in *DeleteReq) (*DeleteResp, error)
Get func(ctx context.Context, in *GetReq) (*GetResp, error)
}
func (c *PressReleasesClientImpl) GetDubboStub(cc *triple.TripleConn) PressReleasesClient {
@ -71,18 +67,6 @@ func (c *pressReleasesClient) List(ctx context.Context, in *ListReq, opts ...grp
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/List", in, out)
}
func (c *pressReleasesClient) SortAndStatus(ctx context.Context, in *SortAndStatusReq, opts ...grpc_go.CallOption) (*SortAndStatusResp, common.ErrorWithAttachment) {
out := new(SortAndStatusResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SortAndStatus", in, out)
}
func (c *pressReleasesClient) Info(ctx context.Context, in *InfoReq, opts ...grpc_go.CallOption) (*InfoResp, common.ErrorWithAttachment) {
out := new(InfoResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/Info", in, out)
}
func (c *pressReleasesClient) Display(ctx context.Context, in *DisplayReq, opts ...grpc_go.CallOption) (*DisplayResp, common.ErrorWithAttachment) {
out := new(DisplayResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
@ -118,8 +102,6 @@ func (c *pressReleasesClient) Get(ctx context.Context, in *GetReq, opts ...grpc_
// for forward compatibility
type PressReleasesServer interface {
List(context.Context, *ListReq) (*ListResp, error)
SortAndStatus(context.Context, *SortAndStatusReq) (*SortAndStatusResp, error)
Info(context.Context, *InfoReq) (*InfoResp, error)
Display(context.Context, *DisplayReq) (*DisplayResp, error)
Edit(context.Context, *EditReq) (*EditResp, error)
Create(context.Context, *CreateReq) (*CreateResp, error)
@ -136,12 +118,6 @@ type UnimplementedPressReleasesServer struct {
func (UnimplementedPressReleasesServer) List(context.Context, *ListReq) (*ListResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method List not implemented")
}
func (UnimplementedPressReleasesServer) SortAndStatus(context.Context, *SortAndStatusReq) (*SortAndStatusResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method SortAndStatus not implemented")
}
func (UnimplementedPressReleasesServer) Info(context.Context, *InfoReq) (*InfoResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method Info not implemented")
}
func (UnimplementedPressReleasesServer) Display(context.Context, *DisplayReq) (*DisplayResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method Display not implemented")
}
@ -214,64 +190,6 @@ func _PressReleases_List_Handler(srv interface{}, ctx context.Context, dec func(
return interceptor(ctx, in, info, handler)
}
func _PressReleases_SortAndStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(SortAndStatusReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("SortAndStatus", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _PressReleases_Info_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(InfoReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("Info", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _PressReleases_Display_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DisplayReq)
if err := dec(in); err != nil {
@ -428,14 +346,6 @@ var PressReleases_ServiceDesc = grpc_go.ServiceDesc{
MethodName: "List",
Handler: _PressReleases_List_Handler,
},
{
MethodName: "SortAndStatus",
Handler: _PressReleases_SortAndStatus_Handler,
},
{
MethodName: "Info",
Handler: _PressReleases_Info_Handler,
},
{
MethodName: "Display",
Handler: _PressReleases_Display_Handler,
@ -458,5 +368,5 @@ var PressReleases_ServiceDesc = grpc_go.ServiceDesc{
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/pressreleases/press_releases.proto",
Metadata: "press_releases.proto",
}

File diff suppressed because it is too large Load Diff

View File

@ -1,227 +0,0 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/reports/reports.proto
package reports
import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *Filtrate) Validate() error {
return nil
}
func (this *FiltrateWeb) Validate() error {
return nil
}
func (this *LangSetting) Validate() error {
return nil
}
func (this *AnnualReport) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *AnnualReportLang) Validate() error {
return nil
}
func (this *QuarterlyReport) Validate() error {
for _, item := range this.LangSetting {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("LangSetting", err)
}
}
}
return nil
}
func (this *QuarterlyReportLang) Validate() error {
return nil
}
func (this *GetAnnualReportListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetAnnualReportListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetAnnualReportInfoReq) Validate() error {
return nil
}
func (this *GetAnnualReportInfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddAnnualReportReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddAnnualReportResp) Validate() error {
return nil
}
func (this *SortAndStatusAnnualReportReq) Validate() error {
return nil
}
func (this *SortAndStatusAnnualReportResp) Validate() error {
return nil
}
func (this *EditAnnualReportReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditAnnualReportResp) Validate() error {
return nil
}
func (this *DeleteAnnualReportReq) Validate() error {
return nil
}
func (this *DeleteAnnualReportResp) Validate() error {
return nil
}
func (this *DisplayAnnualReportReq) Validate() error {
return nil
}
func (this *DisplayAnnualReportResp) Validate() error {
for _, item := range this.Item {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Item", err)
}
}
}
return nil
}
func (this *DisplayAnnualReportItem) Validate() error {
return nil
}
func (this *GetQuarterlyReportListReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *GetQuarterlyReportListResp) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *GetQuarterlyReportInfoReq) Validate() error {
return nil
}
func (this *GetQuarterlyReportInfoResp) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddQuarterlyReportReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *AddQuarterlyReportResp) Validate() error {
return nil
}
func (this *SortAndStatusQuarterlyReportReq) Validate() error {
return nil
}
func (this *SortAndStatusQuarterlyReportResp) Validate() error {
return nil
}
func (this *EditQuarterlyReportReq) Validate() error {
for _, item := range this.DataByLang {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("DataByLang", err)
}
}
}
return nil
}
func (this *EditQuarterlyReportResp) Validate() error {
return nil
}
func (this *DeleteQuarterlyReportReq) Validate() error {
return nil
}
func (this *DeleteQuarterlyReportResp) Validate() error {
return nil
}
func (this *DisplayQuarterlyReportReq) Validate() error {
if this.Filtrate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filtrate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filtrate", err)
}
}
return nil
}
func (this *DisplayQuarterlyReportResp) Validate() error {
for _, item := range this.Item {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Item", err)
}
}
}
return nil
}
func (this *DisplayQuarterlyReportItem) Validate() error {
return nil
}

View File

@ -1,736 +0,0 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// source: api/reports/reports.proto
package reports
import (
context "context"
protocol "dubbo.apache.org/dubbo-go/v3/protocol"
dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3"
invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
grpc_go "github.com/dubbogo/grpc-go"
codes "github.com/dubbogo/grpc-go/codes"
metadata "github.com/dubbogo/grpc-go/metadata"
status "github.com/dubbogo/grpc-go/status"
common "github.com/dubbogo/triple/pkg/common"
constant "github.com/dubbogo/triple/pkg/common/constant"
triple "github.com/dubbogo/triple/pkg/triple"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc_go.SupportPackageIsVersion7
// ReportsClient is the client API for Reports service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type ReportsClient interface {
// ==================================年度报告======================================
GetAnnualReportList(ctx context.Context, in *GetAnnualReportListReq, opts ...grpc_go.CallOption) (*GetAnnualReportListResp, common.ErrorWithAttachment)
GetAnnualReportInfo(ctx context.Context, in *GetAnnualReportInfoReq, opts ...grpc_go.CallOption) (*GetAnnualReportInfoResp, common.ErrorWithAttachment)
AddAnnualReport(ctx context.Context, in *AddAnnualReportReq, opts ...grpc_go.CallOption) (*AddAnnualReportResp, common.ErrorWithAttachment)
SortAndStatusAnnualReport(ctx context.Context, in *SortAndStatusAnnualReportReq, opts ...grpc_go.CallOption) (*SortAndStatusAnnualReportResp, common.ErrorWithAttachment)
EditAnnualReport(ctx context.Context, in *EditAnnualReportReq, opts ...grpc_go.CallOption) (*EditAnnualReportResp, common.ErrorWithAttachment)
DeleteAnnualReport(ctx context.Context, in *DeleteAnnualReportReq, opts ...grpc_go.CallOption) (*DeleteAnnualReportResp, common.ErrorWithAttachment)
DisplayAnnualReport(ctx context.Context, in *DisplayAnnualReportReq, opts ...grpc_go.CallOption) (*DisplayAnnualReportResp, common.ErrorWithAttachment)
// ==================================季度报告======================================
GetQuarterlyReportList(ctx context.Context, in *GetQuarterlyReportListReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportListResp, common.ErrorWithAttachment)
GetQuarterlyReportInfo(ctx context.Context, in *GetQuarterlyReportInfoReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportInfoResp, common.ErrorWithAttachment)
AddQuarterlyReport(ctx context.Context, in *AddQuarterlyReportReq, opts ...grpc_go.CallOption) (*AddQuarterlyReportResp, common.ErrorWithAttachment)
SortAndStatusQuarterlyReport(ctx context.Context, in *SortAndStatusQuarterlyReportReq, opts ...grpc_go.CallOption) (*SortAndStatusQuarterlyReportResp, common.ErrorWithAttachment)
EditQuarterlyReport(ctx context.Context, in *EditQuarterlyReportReq, opts ...grpc_go.CallOption) (*EditQuarterlyReportResp, common.ErrorWithAttachment)
DeleteQuarterlyReport(ctx context.Context, in *DeleteQuarterlyReportReq, opts ...grpc_go.CallOption) (*DeleteQuarterlyReportResp, common.ErrorWithAttachment)
DisplayQuarterlyReport(ctx context.Context, in *DisplayQuarterlyReportReq, opts ...grpc_go.CallOption) (*DisplayQuarterlyReportResp, common.ErrorWithAttachment)
}
type reportsClient struct {
cc *triple.TripleConn
}
type ReportsClientImpl struct {
GetAnnualReportList func(ctx context.Context, in *GetAnnualReportListReq) (*GetAnnualReportListResp, error)
GetAnnualReportInfo func(ctx context.Context, in *GetAnnualReportInfoReq) (*GetAnnualReportInfoResp, error)
AddAnnualReport func(ctx context.Context, in *AddAnnualReportReq) (*AddAnnualReportResp, error)
SortAndStatusAnnualReport func(ctx context.Context, in *SortAndStatusAnnualReportReq) (*SortAndStatusAnnualReportResp, error)
EditAnnualReport func(ctx context.Context, in *EditAnnualReportReq) (*EditAnnualReportResp, error)
DeleteAnnualReport func(ctx context.Context, in *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error)
DisplayAnnualReport func(ctx context.Context, in *DisplayAnnualReportReq) (*DisplayAnnualReportResp, error)
GetQuarterlyReportList func(ctx context.Context, in *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error)
GetQuarterlyReportInfo func(ctx context.Context, in *GetQuarterlyReportInfoReq) (*GetQuarterlyReportInfoResp, error)
AddQuarterlyReport func(ctx context.Context, in *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error)
SortAndStatusQuarterlyReport func(ctx context.Context, in *SortAndStatusQuarterlyReportReq) (*SortAndStatusQuarterlyReportResp, error)
EditQuarterlyReport func(ctx context.Context, in *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error)
DeleteQuarterlyReport func(ctx context.Context, in *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error)
DisplayQuarterlyReport func(ctx context.Context, in *DisplayQuarterlyReportReq) (*DisplayQuarterlyReportResp, error)
}
func (c *ReportsClientImpl) GetDubboStub(cc *triple.TripleConn) ReportsClient {
return NewReportsClient(cc)
}
func (c *ReportsClientImpl) XXX_InterfaceName() string {
return "reports.Reports"
}
func NewReportsClient(cc *triple.TripleConn) ReportsClient {
return &reportsClient{cc}
}
func (c *reportsClient) GetAnnualReportList(ctx context.Context, in *GetAnnualReportListReq, opts ...grpc_go.CallOption) (*GetAnnualReportListResp, common.ErrorWithAttachment) {
out := new(GetAnnualReportListResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetAnnualReportList", in, out)
}
func (c *reportsClient) GetAnnualReportInfo(ctx context.Context, in *GetAnnualReportInfoReq, opts ...grpc_go.CallOption) (*GetAnnualReportInfoResp, common.ErrorWithAttachment) {
out := new(GetAnnualReportInfoResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetAnnualReportInfo", in, out)
}
func (c *reportsClient) AddAnnualReport(ctx context.Context, in *AddAnnualReportReq, opts ...grpc_go.CallOption) (*AddAnnualReportResp, common.ErrorWithAttachment) {
out := new(AddAnnualReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddAnnualReport", in, out)
}
func (c *reportsClient) SortAndStatusAnnualReport(ctx context.Context, in *SortAndStatusAnnualReportReq, opts ...grpc_go.CallOption) (*SortAndStatusAnnualReportResp, common.ErrorWithAttachment) {
out := new(SortAndStatusAnnualReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SortAndStatusAnnualReport", in, out)
}
func (c *reportsClient) EditAnnualReport(ctx context.Context, in *EditAnnualReportReq, opts ...grpc_go.CallOption) (*EditAnnualReportResp, common.ErrorWithAttachment) {
out := new(EditAnnualReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditAnnualReport", in, out)
}
func (c *reportsClient) DeleteAnnualReport(ctx context.Context, in *DeleteAnnualReportReq, opts ...grpc_go.CallOption) (*DeleteAnnualReportResp, common.ErrorWithAttachment) {
out := new(DeleteAnnualReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteAnnualReport", in, out)
}
func (c *reportsClient) DisplayAnnualReport(ctx context.Context, in *DisplayAnnualReportReq, opts ...grpc_go.CallOption) (*DisplayAnnualReportResp, common.ErrorWithAttachment) {
out := new(DisplayAnnualReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DisplayAnnualReport", in, out)
}
func (c *reportsClient) GetQuarterlyReportList(ctx context.Context, in *GetQuarterlyReportListReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportListResp, common.ErrorWithAttachment) {
out := new(GetQuarterlyReportListResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetQuarterlyReportList", in, out)
}
func (c *reportsClient) GetQuarterlyReportInfo(ctx context.Context, in *GetQuarterlyReportInfoReq, opts ...grpc_go.CallOption) (*GetQuarterlyReportInfoResp, common.ErrorWithAttachment) {
out := new(GetQuarterlyReportInfoResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetQuarterlyReportInfo", in, out)
}
func (c *reportsClient) AddQuarterlyReport(ctx context.Context, in *AddQuarterlyReportReq, opts ...grpc_go.CallOption) (*AddQuarterlyReportResp, common.ErrorWithAttachment) {
out := new(AddQuarterlyReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddQuarterlyReport", in, out)
}
func (c *reportsClient) SortAndStatusQuarterlyReport(ctx context.Context, in *SortAndStatusQuarterlyReportReq, opts ...grpc_go.CallOption) (*SortAndStatusQuarterlyReportResp, common.ErrorWithAttachment) {
out := new(SortAndStatusQuarterlyReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/SortAndStatusQuarterlyReport", in, out)
}
func (c *reportsClient) EditQuarterlyReport(ctx context.Context, in *EditQuarterlyReportReq, opts ...grpc_go.CallOption) (*EditQuarterlyReportResp, common.ErrorWithAttachment) {
out := new(EditQuarterlyReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditQuarterlyReport", in, out)
}
func (c *reportsClient) DeleteQuarterlyReport(ctx context.Context, in *DeleteQuarterlyReportReq, opts ...grpc_go.CallOption) (*DeleteQuarterlyReportResp, common.ErrorWithAttachment) {
out := new(DeleteQuarterlyReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteQuarterlyReport", in, out)
}
func (c *reportsClient) DisplayQuarterlyReport(ctx context.Context, in *DisplayQuarterlyReportReq, opts ...grpc_go.CallOption) (*DisplayQuarterlyReportResp, common.ErrorWithAttachment) {
out := new(DisplayQuarterlyReportResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DisplayQuarterlyReport", in, out)
}
// ReportsServer is the server API for Reports service.
// All implementations must embed UnimplementedReportsServer
// for forward compatibility
type ReportsServer interface {
// ==================================年度报告======================================
GetAnnualReportList(context.Context, *GetAnnualReportListReq) (*GetAnnualReportListResp, error)
GetAnnualReportInfo(context.Context, *GetAnnualReportInfoReq) (*GetAnnualReportInfoResp, error)
AddAnnualReport(context.Context, *AddAnnualReportReq) (*AddAnnualReportResp, error)
SortAndStatusAnnualReport(context.Context, *SortAndStatusAnnualReportReq) (*SortAndStatusAnnualReportResp, error)
EditAnnualReport(context.Context, *EditAnnualReportReq) (*EditAnnualReportResp, error)
DeleteAnnualReport(context.Context, *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error)
DisplayAnnualReport(context.Context, *DisplayAnnualReportReq) (*DisplayAnnualReportResp, error)
// ==================================季度报告======================================
GetQuarterlyReportList(context.Context, *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error)
GetQuarterlyReportInfo(context.Context, *GetQuarterlyReportInfoReq) (*GetQuarterlyReportInfoResp, error)
AddQuarterlyReport(context.Context, *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error)
SortAndStatusQuarterlyReport(context.Context, *SortAndStatusQuarterlyReportReq) (*SortAndStatusQuarterlyReportResp, error)
EditQuarterlyReport(context.Context, *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error)
DeleteQuarterlyReport(context.Context, *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error)
DisplayQuarterlyReport(context.Context, *DisplayQuarterlyReportReq) (*DisplayQuarterlyReportResp, error)
mustEmbedUnimplementedReportsServer()
}
// UnimplementedReportsServer must be embedded to have forward compatible implementations.
type UnimplementedReportsServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedReportsServer) GetAnnualReportList(context.Context, *GetAnnualReportListReq) (*GetAnnualReportListResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetAnnualReportList not implemented")
}
func (UnimplementedReportsServer) GetAnnualReportInfo(context.Context, *GetAnnualReportInfoReq) (*GetAnnualReportInfoResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetAnnualReportInfo not implemented")
}
func (UnimplementedReportsServer) AddAnnualReport(context.Context, *AddAnnualReportReq) (*AddAnnualReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddAnnualReport not implemented")
}
func (UnimplementedReportsServer) SortAndStatusAnnualReport(context.Context, *SortAndStatusAnnualReportReq) (*SortAndStatusAnnualReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method SortAndStatusAnnualReport not implemented")
}
func (UnimplementedReportsServer) EditAnnualReport(context.Context, *EditAnnualReportReq) (*EditAnnualReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditAnnualReport not implemented")
}
func (UnimplementedReportsServer) DeleteAnnualReport(context.Context, *DeleteAnnualReportReq) (*DeleteAnnualReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteAnnualReport not implemented")
}
func (UnimplementedReportsServer) DisplayAnnualReport(context.Context, *DisplayAnnualReportReq) (*DisplayAnnualReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DisplayAnnualReport not implemented")
}
func (UnimplementedReportsServer) GetQuarterlyReportList(context.Context, *GetQuarterlyReportListReq) (*GetQuarterlyReportListResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuarterlyReportList not implemented")
}
func (UnimplementedReportsServer) GetQuarterlyReportInfo(context.Context, *GetQuarterlyReportInfoReq) (*GetQuarterlyReportInfoResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetQuarterlyReportInfo not implemented")
}
func (UnimplementedReportsServer) AddQuarterlyReport(context.Context, *AddQuarterlyReportReq) (*AddQuarterlyReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddQuarterlyReport not implemented")
}
func (UnimplementedReportsServer) SortAndStatusQuarterlyReport(context.Context, *SortAndStatusQuarterlyReportReq) (*SortAndStatusQuarterlyReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method SortAndStatusQuarterlyReport not implemented")
}
func (UnimplementedReportsServer) EditQuarterlyReport(context.Context, *EditQuarterlyReportReq) (*EditQuarterlyReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditQuarterlyReport not implemented")
}
func (UnimplementedReportsServer) DeleteQuarterlyReport(context.Context, *DeleteQuarterlyReportReq) (*DeleteQuarterlyReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteQuarterlyReport not implemented")
}
func (UnimplementedReportsServer) DisplayQuarterlyReport(context.Context, *DisplayQuarterlyReportReq) (*DisplayQuarterlyReportResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DisplayQuarterlyReport not implemented")
}
func (s *UnimplementedReportsServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
func (s *UnimplementedReportsServer) XXX_GetProxyImpl() protocol.Invoker {
return s.proxyImpl
}
func (s *UnimplementedReportsServer) XXX_ServiceDesc() *grpc_go.ServiceDesc {
return &Reports_ServiceDesc
}
func (s *UnimplementedReportsServer) XXX_InterfaceName() string {
return "reports.Reports"
}
func (UnimplementedReportsServer) mustEmbedUnimplementedReportsServer() {}
// UnsafeReportsServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to ReportsServer will
// result in compilation errors.
type UnsafeReportsServer interface {
mustEmbedUnimplementedReportsServer()
}
func RegisterReportsServer(s grpc_go.ServiceRegistrar, srv ReportsServer) {
s.RegisterService(&Reports_ServiceDesc, srv)
}
func _Reports_GetAnnualReportList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetAnnualReportListReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetAnnualReportList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_GetAnnualReportInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetAnnualReportInfoReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetAnnualReportInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_AddAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(AddAnnualReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("AddAnnualReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_SortAndStatusAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(SortAndStatusAnnualReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("SortAndStatusAnnualReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_EditAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditAnnualReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("EditAnnualReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_DeleteAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteAnnualReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("DeleteAnnualReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_DisplayAnnualReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DisplayAnnualReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("DisplayAnnualReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_GetQuarterlyReportList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetQuarterlyReportListReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetQuarterlyReportList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_GetQuarterlyReportInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetQuarterlyReportInfoReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetQuarterlyReportInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_AddQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(AddQuarterlyReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("AddQuarterlyReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_SortAndStatusQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(SortAndStatusQuarterlyReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("SortAndStatusQuarterlyReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_EditQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditQuarterlyReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("EditQuarterlyReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_DeleteQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteQuarterlyReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("DeleteQuarterlyReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Reports_DisplayQuarterlyReport_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DisplayQuarterlyReportReq)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("DisplayQuarterlyReport", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
// Reports_ServiceDesc is the grpc_go.ServiceDesc for Reports service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
var Reports_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "reports.Reports",
HandlerType: (*ReportsServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "GetAnnualReportList",
Handler: _Reports_GetAnnualReportList_Handler,
},
{
MethodName: "GetAnnualReportInfo",
Handler: _Reports_GetAnnualReportInfo_Handler,
},
{
MethodName: "AddAnnualReport",
Handler: _Reports_AddAnnualReport_Handler,
},
{
MethodName: "SortAndStatusAnnualReport",
Handler: _Reports_SortAndStatusAnnualReport_Handler,
},
{
MethodName: "EditAnnualReport",
Handler: _Reports_EditAnnualReport_Handler,
},
{
MethodName: "DeleteAnnualReport",
Handler: _Reports_DeleteAnnualReport_Handler,
},
{
MethodName: "DisplayAnnualReport",
Handler: _Reports_DisplayAnnualReport_Handler,
},
{
MethodName: "GetQuarterlyReportList",
Handler: _Reports_GetQuarterlyReportList_Handler,
},
{
MethodName: "GetQuarterlyReportInfo",
Handler: _Reports_GetQuarterlyReportInfo_Handler,
},
{
MethodName: "AddQuarterlyReport",
Handler: _Reports_AddQuarterlyReport_Handler,
},
{
MethodName: "SortAndStatusQuarterlyReport",
Handler: _Reports_SortAndStatusQuarterlyReport_Handler,
},
{
MethodName: "EditQuarterlyReport",
Handler: _Reports_EditQuarterlyReport_Handler,
},
{
MethodName: "DeleteQuarterlyReport",
Handler: _Reports_DeleteQuarterlyReport_Handler,
},
{
MethodName: "DisplayQuarterlyReport",
Handler: _Reports_DisplayQuarterlyReport_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/reports/reports.proto",
}

File diff suppressed because it is too large Load Diff

View File

@ -1,212 +0,0 @@
syntax = "proto3";
package supplier;
option go_package = "./;supplier";
// FiEE供应商微服务
service Supplier {
//curd
rpc GetSupplier(GetSupplierRequest) returns (UpdateSupplierRequest) {}
rpc CreateSupplier(CreateSupplierRequest) returns (CreateSupplierResponse) {}
rpc UpdateSupplier(UpdateSupplierRequest) returns (CreateSupplierResponse) {}
rpc GetSupplierList(GetSupplierListRequest) returns (GetSupplierListResponse) {}
//
rpc CreateOrganizeDictionary(CreateOrganizeDictionaryRequest) returns (CreateOrganizeDictionaryResponse) {}
rpc GetOrganizeDictionaryList(GetOrganizeDictionaryListRequest) returns (GetOrganizeDictionaryListResponse) {}
rpc GetOrganizeDictionaryInfo(CreateOrganizeDictionaryRequest) returns (OrganizeDictionary) {}
//
rpc GetCountryRegionList(GetCountryRegionListRequest) returns (GetCountryRegionListResponse) {}
rpc GetCountryRegionInfo(GetCountryRegionInfoRequest) returns (CountryRegion) {}
//
rpc CreateImportRecord(CreateImportRecordRequest) returns (CreateImportRecordResponse) {}
rpc GetImportRecordInfo(GetImportRecordRequest) returns (GetImportRecordResponse) {}
}
message GetImportRecordRequest{
string uuid = 1;
}
message GetImportRecordResponse{
uint64 successNum = 1;
uint64 failNum = 2;
string deriveUrl = 3;
}
message CreateImportRecordRequest{
repeated string supplierCodes = 1;
uint64 status = 2;
uint64 userId = 3;
string toLeadUrl = 4;
string deriveUrl = 5;
string uuid = 6;
uint64 successNum = 7;
uint64 failNum = 8;
}
message CreateImportRecordResponse{
uint64 id = 1;
}
message GetCountryRegionListResponse{
repeated CountryRegion data = 1;
uint64 page = 2;
uint64 pageSize = 3;
uint64 total = 4;
}
message CountryRegion{
uint64 id = 1;
string nameEN = 2;
string nameCN = 3;
string code = 4;
}
message GetCountryRegionInfoRequest{
string zhAndCode = 1;
}
message GetCountryRegionListRequest{
uint64 page = 1;
uint64 pageSize = 2;
string nameEN = 3;
string nameCN = 4;
string code = 5;
}
message OrganizeDictionary{
uint64 id = 1;
string name = 2;
}
message GetOrganizeDictionaryListResponse{
repeated OrganizeDictionary data = 1;
uint64 page = 2;
uint64 pageSize = 3;
uint64 total = 4;
}
message CreateOrganizeDictionaryRequest{
string name = 1;
}
message CreateOrganizeDictionaryResponse{
uint64 id = 1;
}
message GetOrganizeDictionaryListRequest{
uint64 page = 1;
uint64 pageSize = 2;
string name = 3;
}
message GetSupplierListRequest{
uint64 page = 1;
uint64 pageSize = 2;
uint64 owningEntityId = 3;
string supplierUniqueCode = 4;
string legalName =5;
string localName = 6;
string abbreviationName =7;
uint64 countryOrRegionId = 8;
string companyRegistrationNumber =9;
string supplierType =10;
string approvalStatus = 11;
string approvalDateStart = 12;
string approvalDateEnd = 13;
string lastReviewDateStart = 14;
string lastReviewDateEnd = 15;
string legalEntityType = 16;
string sanctionsCountryScreeningResult = 17;
string keyFinancial = 18;
string companyAddress = 19;
string primaryContact = 20;
string dataOwnerDepartment = 21;
string basicCompanyInformation = 22;
uint64 status = 23;
string updateStart = 24;
string updateEnd = 25;
string connectedParty = 26;
}
message GetSupplierListResponse{
uint64 total = 1;
repeated SupplierInfo data = 2;
uint64 page = 3;
uint64 pageSize = 4;
}
message SupplierInfo{
uint64 id = 1;
uint64 owningEntityId = 2;
string legalName = 3;
string localName = 4;
string abbreviationName = 5;
uint64 countryOrRegionId = 6;
string companyRegistrationNumber = 7;
string supplierType = 8;
string approvalStatus = 9;
string approvalDate = 10;
string lastReviewDate = 11;
string legalEntityType = 12;
string sanctionsCountryScreeningResult = 13;
string keyFinancial = 14;
string companyAddress = 15;
string primaryContact = 16;
string dataOwnerDepartment = 17;
string basicCompanyInformation = 18;
string linkAddress = 19;
string supplementaryText = 20;
repeated attachment attachments = 21;
uint64 status = 22;
string createdAt = 23;
string updatedAt = 24;
string supplierUniqueCode = 25;
string owningEntityName = 26;
string countryOrRegionCode = 27;
string connectedParty = 28;
}
message UpdateSupplierRequest{
uint64 id = 1;
uint64 owningEntityId = 2;
string legalName = 3;
string localName = 4;
string abbreviationName = 5;
uint64 countryOrRegionId = 6;
string companyRegistrationNumber = 7;
string supplierType = 8;
string approvalStatus = 9;
string approvalDate = 10;
string lastReviewDate = 11;
string legalEntityType = 12;
string sanctionsCountryScreeningResult = 13;
string keyFinancial = 14;
string companyAddress = 15;
string primaryContact = 16;
string dataOwnerDepartment = 17;
string basicCompanyInformation = 18;
string linkAddress = 19;
string supplementaryText = 20;
repeated attachment attachments = 21;
uint64 status = 22;
string connectedParty = 23;
}
message CreateSupplierRequest{
uint64 owningEntityId = 1;
string legalName = 2;
string localName = 3;
string abbreviationName = 4;
uint64 countryOrRegionId = 5;
string companyRegistrationNumber = 6;
string supplierType = 7;
string approvalStatus = 8;
string approvalDate = 9;
string lastReviewDate = 10;
string legalEntityType = 11;
string sanctionsCountryScreeningResult = 12;
string keyFinancial = 13;
string companyAddress = 14;
string primaryContact = 15;
string dataOwnerDepartment = 16;
string basicCompanyInformation = 17;
string linkAddress = 18;
string supplementaryText = 19;
repeated attachment attachments = 20;
uint64 status = 21;
string connectedParty = 22;
}
message attachment{
string url = 1;
string type = 2;
string name = 3;
}
message CreateSupplierResponse{
uint64 id = 1;
string supplierCode = 2;
}
message GetSupplierRequest{
uint64 id = 1;
}

View File

@ -1,122 +0,0 @@
// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: api/supplier/supplier.proto
package supplier
import (
fmt "fmt"
math "math"
proto "github.com/golang/protobuf/proto"
github_com_mwitkow_go_proto_validators "github.com/mwitkow/go-proto-validators"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
func (this *GetImportRecordRequest) Validate() error {
return nil
}
func (this *GetImportRecordResponse) Validate() error {
return nil
}
func (this *CreateImportRecordRequest) Validate() error {
return nil
}
func (this *CreateImportRecordResponse) Validate() error {
return nil
}
func (this *GetCountryRegionListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *CountryRegion) Validate() error {
return nil
}
func (this *GetCountryRegionInfoRequest) Validate() error {
return nil
}
func (this *GetCountryRegionListRequest) Validate() error {
return nil
}
func (this *OrganizeDictionary) Validate() error {
return nil
}
func (this *GetOrganizeDictionaryListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *CreateOrganizeDictionaryRequest) Validate() error {
return nil
}
func (this *CreateOrganizeDictionaryResponse) Validate() error {
return nil
}
func (this *GetOrganizeDictionaryListRequest) Validate() error {
return nil
}
func (this *GetSupplierListRequest) Validate() error {
return nil
}
func (this *GetSupplierListResponse) Validate() error {
for _, item := range this.Data {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Data", err)
}
}
}
return nil
}
func (this *SupplierInfo) Validate() error {
for _, item := range this.Attachments {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err)
}
}
}
return nil
}
func (this *UpdateSupplierRequest) Validate() error {
for _, item := range this.Attachments {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err)
}
}
}
return nil
}
func (this *CreateSupplierRequest) Validate() error {
for _, item := range this.Attachments {
if item != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(item); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Attachments", err)
}
}
}
return nil
}
func (this *Attachment) Validate() error {
return nil
}
func (this *CreateSupplierResponse) Validate() error {
return nil
}
func (this *GetSupplierRequest) Validate() error {
return nil
}

View File

@ -1,605 +0,0 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v6.32.0
// source: api/supplier/supplier.proto
package supplier
import (
context "context"
protocol "dubbo.apache.org/dubbo-go/v3/protocol"
dubbo3 "dubbo.apache.org/dubbo-go/v3/protocol/dubbo3"
invocation "dubbo.apache.org/dubbo-go/v3/protocol/invocation"
grpc_go "github.com/dubbogo/grpc-go"
codes "github.com/dubbogo/grpc-go/codes"
metadata "github.com/dubbogo/grpc-go/metadata"
status "github.com/dubbogo/grpc-go/status"
common "github.com/dubbogo/triple/pkg/common"
constant "github.com/dubbogo/triple/pkg/common/constant"
triple "github.com/dubbogo/triple/pkg/triple"
)
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc_go.SupportPackageIsVersion7
// SupplierClient is the client API for Supplier service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
type SupplierClient interface {
// 供应商curd
GetSupplier(ctx context.Context, in *GetSupplierRequest, opts ...grpc_go.CallOption) (*UpdateSupplierRequest, common.ErrorWithAttachment)
CreateSupplier(ctx context.Context, in *CreateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment)
UpdateSupplier(ctx context.Context, in *UpdateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment)
GetSupplierList(ctx context.Context, in *GetSupplierListRequest, opts ...grpc_go.CallOption) (*GetSupplierListResponse, common.ErrorWithAttachment)
// 组织字典
CreateOrganizeDictionary(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*CreateOrganizeDictionaryResponse, common.ErrorWithAttachment)
GetOrganizeDictionaryList(ctx context.Context, in *GetOrganizeDictionaryListRequest, opts ...grpc_go.CallOption) (*GetOrganizeDictionaryListResponse, common.ErrorWithAttachment)
GetOrganizeDictionaryInfo(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*OrganizeDictionary, common.ErrorWithAttachment)
// 国家组织
GetCountryRegionList(ctx context.Context, in *GetCountryRegionListRequest, opts ...grpc_go.CallOption) (*GetCountryRegionListResponse, common.ErrorWithAttachment)
GetCountryRegionInfo(ctx context.Context, in *GetCountryRegionInfoRequest, opts ...grpc_go.CallOption) (*CountryRegion, common.ErrorWithAttachment)
// 导入
CreateImportRecord(ctx context.Context, in *CreateImportRecordRequest, opts ...grpc_go.CallOption) (*CreateImportRecordResponse, common.ErrorWithAttachment)
GetImportRecordInfo(ctx context.Context, in *GetImportRecordRequest, opts ...grpc_go.CallOption) (*GetImportRecordResponse, common.ErrorWithAttachment)
}
type supplierClient struct {
cc *triple.TripleConn
}
type SupplierClientImpl struct {
GetSupplier func(ctx context.Context, in *GetSupplierRequest) (*UpdateSupplierRequest, error)
CreateSupplier func(ctx context.Context, in *CreateSupplierRequest) (*CreateSupplierResponse, error)
UpdateSupplier func(ctx context.Context, in *UpdateSupplierRequest) (*CreateSupplierResponse, error)
GetSupplierList func(ctx context.Context, in *GetSupplierListRequest) (*GetSupplierListResponse, error)
CreateOrganizeDictionary func(ctx context.Context, in *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error)
GetOrganizeDictionaryList func(ctx context.Context, in *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error)
GetOrganizeDictionaryInfo func(ctx context.Context, in *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error)
GetCountryRegionList func(ctx context.Context, in *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error)
GetCountryRegionInfo func(ctx context.Context, in *GetCountryRegionInfoRequest) (*CountryRegion, error)
CreateImportRecord func(ctx context.Context, in *CreateImportRecordRequest) (*CreateImportRecordResponse, error)
GetImportRecordInfo func(ctx context.Context, in *GetImportRecordRequest) (*GetImportRecordResponse, error)
}
func (c *SupplierClientImpl) GetDubboStub(cc *triple.TripleConn) SupplierClient {
return NewSupplierClient(cc)
}
func (c *SupplierClientImpl) XXX_InterfaceName() string {
return "supplier.Supplier"
}
func NewSupplierClient(cc *triple.TripleConn) SupplierClient {
return &supplierClient{cc}
}
func (c *supplierClient) GetSupplier(ctx context.Context, in *GetSupplierRequest, opts ...grpc_go.CallOption) (*UpdateSupplierRequest, common.ErrorWithAttachment) {
out := new(UpdateSupplierRequest)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetSupplier", in, out)
}
func (c *supplierClient) CreateSupplier(ctx context.Context, in *CreateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) {
out := new(CreateSupplierResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateSupplier", in, out)
}
func (c *supplierClient) UpdateSupplier(ctx context.Context, in *UpdateSupplierRequest, opts ...grpc_go.CallOption) (*CreateSupplierResponse, common.ErrorWithAttachment) {
out := new(CreateSupplierResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/UpdateSupplier", in, out)
}
func (c *supplierClient) GetSupplierList(ctx context.Context, in *GetSupplierListRequest, opts ...grpc_go.CallOption) (*GetSupplierListResponse, common.ErrorWithAttachment) {
out := new(GetSupplierListResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetSupplierList", in, out)
}
func (c *supplierClient) CreateOrganizeDictionary(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*CreateOrganizeDictionaryResponse, common.ErrorWithAttachment) {
out := new(CreateOrganizeDictionaryResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateOrganizeDictionary", in, out)
}
func (c *supplierClient) GetOrganizeDictionaryList(ctx context.Context, in *GetOrganizeDictionaryListRequest, opts ...grpc_go.CallOption) (*GetOrganizeDictionaryListResponse, common.ErrorWithAttachment) {
out := new(GetOrganizeDictionaryListResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetOrganizeDictionaryList", in, out)
}
func (c *supplierClient) GetOrganizeDictionaryInfo(ctx context.Context, in *CreateOrganizeDictionaryRequest, opts ...grpc_go.CallOption) (*OrganizeDictionary, common.ErrorWithAttachment) {
out := new(OrganizeDictionary)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetOrganizeDictionaryInfo", in, out)
}
func (c *supplierClient) GetCountryRegionList(ctx context.Context, in *GetCountryRegionListRequest, opts ...grpc_go.CallOption) (*GetCountryRegionListResponse, common.ErrorWithAttachment) {
out := new(GetCountryRegionListResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCountryRegionList", in, out)
}
func (c *supplierClient) GetCountryRegionInfo(ctx context.Context, in *GetCountryRegionInfoRequest, opts ...grpc_go.CallOption) (*CountryRegion, common.ErrorWithAttachment) {
out := new(CountryRegion)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetCountryRegionInfo", in, out)
}
func (c *supplierClient) CreateImportRecord(ctx context.Context, in *CreateImportRecordRequest, opts ...grpc_go.CallOption) (*CreateImportRecordResponse, common.ErrorWithAttachment) {
out := new(CreateImportRecordResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/CreateImportRecord", in, out)
}
func (c *supplierClient) GetImportRecordInfo(ctx context.Context, in *GetImportRecordRequest, opts ...grpc_go.CallOption) (*GetImportRecordResponse, common.ErrorWithAttachment) {
out := new(GetImportRecordResponse)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetImportRecordInfo", in, out)
}
// SupplierServer is the server API for Supplier service.
// All implementations must embed UnimplementedSupplierServer
// for forward compatibility
type SupplierServer interface {
// 供应商curd
GetSupplier(context.Context, *GetSupplierRequest) (*UpdateSupplierRequest, error)
CreateSupplier(context.Context, *CreateSupplierRequest) (*CreateSupplierResponse, error)
UpdateSupplier(context.Context, *UpdateSupplierRequest) (*CreateSupplierResponse, error)
GetSupplierList(context.Context, *GetSupplierListRequest) (*GetSupplierListResponse, error)
// 组织字典
CreateOrganizeDictionary(context.Context, *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error)
GetOrganizeDictionaryList(context.Context, *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error)
GetOrganizeDictionaryInfo(context.Context, *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error)
// 国家组织
GetCountryRegionList(context.Context, *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error)
GetCountryRegionInfo(context.Context, *GetCountryRegionInfoRequest) (*CountryRegion, error)
// 导入
CreateImportRecord(context.Context, *CreateImportRecordRequest) (*CreateImportRecordResponse, error)
GetImportRecordInfo(context.Context, *GetImportRecordRequest) (*GetImportRecordResponse, error)
mustEmbedUnimplementedSupplierServer()
}
// UnimplementedSupplierServer must be embedded to have forward compatible implementations.
type UnimplementedSupplierServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedSupplierServer) GetSupplier(context.Context, *GetSupplierRequest) (*UpdateSupplierRequest, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetSupplier not implemented")
}
func (UnimplementedSupplierServer) CreateSupplier(context.Context, *CreateSupplierRequest) (*CreateSupplierResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateSupplier not implemented")
}
func (UnimplementedSupplierServer) UpdateSupplier(context.Context, *UpdateSupplierRequest) (*CreateSupplierResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method UpdateSupplier not implemented")
}
func (UnimplementedSupplierServer) GetSupplierList(context.Context, *GetSupplierListRequest) (*GetSupplierListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetSupplierList not implemented")
}
func (UnimplementedSupplierServer) CreateOrganizeDictionary(context.Context, *CreateOrganizeDictionaryRequest) (*CreateOrganizeDictionaryResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateOrganizeDictionary not implemented")
}
func (UnimplementedSupplierServer) GetOrganizeDictionaryList(context.Context, *GetOrganizeDictionaryListRequest) (*GetOrganizeDictionaryListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetOrganizeDictionaryList not implemented")
}
func (UnimplementedSupplierServer) GetOrganizeDictionaryInfo(context.Context, *CreateOrganizeDictionaryRequest) (*OrganizeDictionary, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetOrganizeDictionaryInfo not implemented")
}
func (UnimplementedSupplierServer) GetCountryRegionList(context.Context, *GetCountryRegionListRequest) (*GetCountryRegionListResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetCountryRegionList not implemented")
}
func (UnimplementedSupplierServer) GetCountryRegionInfo(context.Context, *GetCountryRegionInfoRequest) (*CountryRegion, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetCountryRegionInfo not implemented")
}
func (UnimplementedSupplierServer) CreateImportRecord(context.Context, *CreateImportRecordRequest) (*CreateImportRecordResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateImportRecord not implemented")
}
func (UnimplementedSupplierServer) GetImportRecordInfo(context.Context, *GetImportRecordRequest) (*GetImportRecordResponse, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetImportRecordInfo not implemented")
}
func (s *UnimplementedSupplierServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
func (s *UnimplementedSupplierServer) XXX_GetProxyImpl() protocol.Invoker {
return s.proxyImpl
}
func (s *UnimplementedSupplierServer) XXX_ServiceDesc() *grpc_go.ServiceDesc {
return &Supplier_ServiceDesc
}
func (s *UnimplementedSupplierServer) XXX_InterfaceName() string {
return "supplier.Supplier"
}
func (UnimplementedSupplierServer) mustEmbedUnimplementedSupplierServer() {}
// UnsafeSupplierServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to SupplierServer will
// result in compilation errors.
type UnsafeSupplierServer interface {
mustEmbedUnimplementedSupplierServer()
}
func RegisterSupplierServer(s grpc_go.ServiceRegistrar, srv SupplierServer) {
s.RegisterService(&Supplier_ServiceDesc, srv)
}
func _Supplier_GetSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetSupplierRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetSupplier", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_CreateSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateSupplierRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("CreateSupplier", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_UpdateSupplier_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(UpdateSupplierRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("UpdateSupplier", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetSupplierList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetSupplierListRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetSupplierList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_CreateOrganizeDictionary_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateOrganizeDictionaryRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("CreateOrganizeDictionary", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetOrganizeDictionaryList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetOrganizeDictionaryListRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetOrganizeDictionaryList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetOrganizeDictionaryInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateOrganizeDictionaryRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetOrganizeDictionaryInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetCountryRegionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetCountryRegionListRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetCountryRegionList", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetCountryRegionInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetCountryRegionInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetCountryRegionInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_CreateImportRecord_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateImportRecordRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("CreateImportRecord", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
func _Supplier_GetImportRecordInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetImportRecordRequest)
if err := dec(in); err != nil {
return nil, err
}
base := srv.(dubbo3.Dubbo3GrpcService)
args := []interface{}{}
args = append(args, in)
md, _ := metadata.FromIncomingContext(ctx)
invAttachment := make(map[string]interface{}, len(md))
for k, v := range md {
invAttachment[k] = v
}
invo := invocation.NewRPCInvocation("GetImportRecordInfo", args, invAttachment)
if interceptor == nil {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
info := &grpc_go.UnaryServerInfo{
Server: srv,
FullMethod: ctx.Value("XXX_TRIPLE_GO_INTERFACE_NAME").(string),
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
result := base.XXX_GetProxyImpl().Invoke(ctx, invo)
return result, result.Error()
}
return interceptor(ctx, in, info, handler)
}
// Supplier_ServiceDesc is the grpc_go.ServiceDesc for Supplier service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
var Supplier_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "supplier.Supplier",
HandlerType: (*SupplierServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "GetSupplier",
Handler: _Supplier_GetSupplier_Handler,
},
{
MethodName: "CreateSupplier",
Handler: _Supplier_CreateSupplier_Handler,
},
{
MethodName: "UpdateSupplier",
Handler: _Supplier_UpdateSupplier_Handler,
},
{
MethodName: "GetSupplierList",
Handler: _Supplier_GetSupplierList_Handler,
},
{
MethodName: "CreateOrganizeDictionary",
Handler: _Supplier_CreateOrganizeDictionary_Handler,
},
{
MethodName: "GetOrganizeDictionaryList",
Handler: _Supplier_GetOrganizeDictionaryList_Handler,
},
{
MethodName: "GetOrganizeDictionaryInfo",
Handler: _Supplier_GetOrganizeDictionaryInfo_Handler,
},
{
MethodName: "GetCountryRegionList",
Handler: _Supplier_GetCountryRegionList_Handler,
},
{
MethodName: "GetCountryRegionInfo",
Handler: _Supplier_GetCountryRegionInfo_Handler,
},
{
MethodName: "CreateImportRecord",
Handler: _Supplier_CreateImportRecord_Handler,
},
{
MethodName: "GetImportRecordInfo",
Handler: _Supplier_GetImportRecordInfo_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/supplier/supplier.proto",
}

View File

@ -54,9 +54,6 @@ dubbo:
FieeCronClientImpl:
protocol: tri
interface: com.fontree.microservices.fiee.cron
SupplierClientImpl:
protocol: tri
interface: com.fontree.microservices.common.supplier
logger:
zap-config:
level: error # 日志级别

Binary file not shown.

Binary file not shown.

View File

@ -61,9 +61,6 @@ dubbo:
methods:
- name: SecurityScan
timeout: 120000
SupplierClientImpl:
protocol: tri
interface: com.fontree.microservices.common.supplier
logger:
zap-config:
level: error # 日志级别

View File

@ -63,9 +63,6 @@ dubbo:
methods:
- name: SecurityScan
timeout: 120000
SupplierClientImpl:
protocol: tri
interface: com.fontree.microservices.common.supplier
logger:
zap-config:
level: error # 日志级别

View File

@ -61,9 +61,6 @@ dubbo:
methods:
- name: SecurityScan
timeout: 120000
SupplierClientImpl:
protocol: tri
interface: com.fontree.microservices.common.supplier
logger:
zap-config:
level: error # 日志级别

View File

@ -182,30 +182,6 @@ var EnMessages = map[string]string{
"未知增值服务": "Unknown value-added service",
"套餐未绑定增值服务": "Bundle not bound to value-added service",
"网络错误": "Network error",
// Website report related messages
"创建官网报告失败": "Failed to create website report",
"删除官网报告失败": "Failed to delete website report",
"官网报告列表查询失败": "Failed to query website report list",
"编辑官网报告失败": "Failed to edit website report",
"显示官网报告失败": "Failed to display website report",
// Website member management related messages
"创建官网成员失败": "Failed to create website member",
"删除官网成员失败": "Failed to delete website member",
"官网成员列表查询失败": "Failed to query website member list",
"编辑官网成员失败": "Failed to edit website member",
"显示官网成员失败": "Failed to display website member",
"编辑董事会成员失败": "Failed to edit board of directors member",
"编辑委员会成员失败": "Failed to edit committee member",
"显示委员会成员失败": "Failed to display committee member",
"编辑管理员失败": "Failed to edit administrator",
"显示管理员失败": "Failed to display administrator",
"显示董事会成员失败": "Failed to display board of directors member",
// Website email alert related messages
"提交邮箱通知失败": "Failed to submit email alert",
"获取邮箱通知列表失败": "Failed to get email information list",
}
var DeDEMessages = map[string]string{
@ -382,30 +358,6 @@ var DeDEMessages = map[string]string{
"未知增值服务": "Unbekannter Mehrwertdienst",
"套餐未绑定增值服务": "Bundle nicht an Mehrwertdienst gebunden",
"网络错误": "Netzwerkfehler",
// Website report related messages
"创建官网报告失败": "Fehler beim Erstellen des Website-Berichts",
"删除官网报告失败": "Fehler beim Löschen des Website-Berichts",
"官网报告列表查询失败": "Fehler beim Abfragen der Website-Berichtsliste",
"编辑官网报告失败": "Fehler beim Bearbeiten des Website-Berichts",
"显示官网报告失败": "Fehler beim Anzeigen des Website-Berichts",
// Website member management related messages
"创建官网成员失败": "Fehler beim Erstellen des Website-Mitglieds",
"删除官网成员失败": "Fehler beim Löschen des Website-Mitglieds",
"官网成员列表查询失败": "Fehler beim Abfragen der Website-Mitgliederliste",
"编辑官网成员失败": "Fehler beim Bearbeiten des Website-Mitglieds",
"显示官网成员失败": "Fehler beim Anzeigen des Website-Mitglieds",
"编辑董事会成员失败": "Fehler beim Bearbeiten des Vorstandsmitglieds",
"编辑委员会成员失败": "Fehler beim Bearbeiten des Ausschussmitglieds",
"显示委员会成员失败": "Fehler beim Anzeigen des Ausschussmitglieds",
"编辑管理员失败": "Fehler beim Bearbeiten des Administrators",
"显示管理员失败": "Fehler beim Anzeigen des Administrators",
"显示董事会成员失败": "Fehler beim Anzeigen des Vorstandsmitglieds",
// Website email alert related messages
"提交邮箱通知失败": "Fehler beim Senden der E-Mail-Benachrichtigung",
"获取邮箱通知列表失败": "Fehler beim Abrufen der E-Mail-Informationsliste",
}
var JaJPMessages = map[string]string{
@ -583,30 +535,6 @@ var JaJPMessages = map[string]string{
"未知增值服务": "未知の付加価値サービス",
"套餐未绑定增值服务": "バンドルが付加価値サービスにバインドされていません",
"网络错误": "ネットワークエラー",
// Website report related messages
"创建官网报告失败": "ウェブサイトレポートの作成に失敗しました",
"删除官网报告失败": "ウェブサイトレポートの削除に失敗しました",
"官网报告列表查询失败": "ウェブサイトレポートリストの検索に失敗しました",
"编辑官网报告失败": "ウェブサイトレポートの編集に失敗しました",
"显示官网报告失败": "ウェブサイトレポートの表示に失敗しました",
// Website member management related messages
"创建官网成员失败": "ウェブサイトメンバーの作成に失敗しました",
"删除官网成员失败": "ウェブサイトメンバーの削除に失敗しました",
"官网成员列表查询失败": "ウェブサイトメンバーリストの検索に失敗しました",
"编辑官网成员失败": "ウェブサイトメンバーの編集に失敗しました",
"显示官网成员失败": "ウェブサイトメンバーの表示に失敗しました",
"编辑董事会成员失败": "取締役会メンバーの編集に失敗しました",
"编辑委员会成员失败": "委員会メンバーの編集に失敗しました",
"显示委员会成员失败": "委員会メンバーの表示に失敗しました",
"编辑管理员失败": "管理者の編集に失敗しました",
"显示管理员失败": "管理者の表示に失敗しました",
"显示董事会成员失败": "取締役会メンバーの表示に失敗しました",
// Website email alert related messages
"提交邮箱通知失败": "メール通知の送信に失敗しました",
"获取邮箱通知列表失败": "メール情報リストの取得に失敗しました",
}
var ZhTWMessages = map[string]string{
@ -794,28 +722,4 @@ var ZhTWMessages = map[string]string{
"未知增值服务": "未知增值服務",
"套餐未绑定增值服务": "套餐未綁定增值服務",
"网络错误": "網絡錯誤",
// Website report related messages
"创建官网报告失败": "創建官網報告失敗",
"删除官网报告失败": "刪除官網報告失敗",
"官网报告列表查询失败": "官網報告列表查詢失敗",
"编辑官网报告失败": "編輯官網報告失敗",
"显示官网报告失败": "顯示官網報告失敗",
// Website member management related messages
"创建官网成员失败": "創建官網成員失敗",
"删除官网成员失败": "刪除官網成員失敗",
"官网成员列表查询失败": "官網成員列表查詢失敗",
"编辑官网成员失败": "編輯官網成員失敗",
"显示官网成员失败": "顯示官網成員失敗",
"编辑董事会成员失败": "編輯董事會成員失敗",
"编辑委员会成员失败": "編輯委員會成員失敗",
"显示委员会成员失败": "顯示委員會成員失敗",
"编辑管理员失败": "編輯管理員失敗",
"显示管理员失败": "顯示管理員失敗",
"显示董事会成员失败": "顯示董事會成員失敗",
// Website email alert related messages
"提交邮箱通知失败": "提交郵箱通知失敗",
"获取邮箱通知列表失败": "獲取郵箱通知列表失敗",
}

View File

@ -236,7 +236,6 @@ func (o *ChatRoom) SendSessionMessage(sender *accountFiee.ChatUserData, sessionI
o.Session[sessionId] = usableClients
fmt.Printf("sessionId:[%s],客户端数量%d\n", sessionId, len(o.Session[sessionId]))
fmt.Println("userIdInSession", userIdInSession)
fmt.Println("pushed", pushed)
return
}
func (o *ChatRoom) GetUserIdInSession(sessionId string, withoutUserId ...int64) (userIds []int64) {

View File

@ -5,19 +5,16 @@ import (
"encoding/json"
"errors"
"fmt"
"fonchain-fiee/api/aryshare"
"fonchain-fiee/api/bundle"
"fonchain-fiee/api/cast"
"fonchain-fiee/pkg/cache"
bundleModel "fonchain-fiee/pkg/model/bundle"
modelCast "fonchain-fiee/pkg/model/cast"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/bundle/common"
serverCast "fonchain-fiee/pkg/service/cast"
"log"
"math/rand"
"strconv"
"strings"
"time"
"github.com/go-redis/redis"
@ -29,26 +26,21 @@ func InitTasks() error {
cm := GetCronManager()
err := cm.AddTask("refreshWorkApprovalStatus", "0 */1 * * * *", RefreshWorkApprovalStatusTask)
err = cm.AddTask("artistAutoConfirm", "0 */1 * * * *", ArtistAutoConfirmTask)
err = cm.AddTask("refreshPublishStatus", "0 */1 * * * *", PublishTask)
err = cm.AddTask("scheduledPublish", "0 */10 * * * *", ScheduledPublishTask)
err = cm.AddTask("refreshPublishStatus", "0 */1 * * * *", RefreshPublishStatusTask)
err = cm.AddTask("scheduledPublish", "0 */1 * * * *", ScheduledPublishTask)
err = cm.AddTask("artistAutoConfirmAnalysis", "0 */1 * * * *", ArtistAutoConfirmAnalysisTask)
err = cm.AddTask("refreshWorkAnalysisApprovalStatus", "0 */1 * * * *", RefreshWorkAnalysisApprovalStatusTask)
err = cm.AddTask("refreshArtistOrder", "0 */30 * * * *", RefreshArtistOrderTask)
// 每天 00:30 和 12:30 执行 Ayrshare 指标采集任务
// err = cm.AddTask("ayrshareMetricsCollector", "0 30 0,12 * * *", AyrshareMetricsCollectorTask)
err = cm.AddTask("ayrshareMetricsCollector", "0 30 0 * * *", AyrshareMetricsCollectorTask)
err = cm.AddTask("ayrshareMetricsCollector", "0 30 0,12 * * *", AyrshareMetricsCollectorTask)
if err != nil {
log.Printf("添加定时任务失败: %v", err)
}
// 每2分钟执行一次标签观看次数更新任务
// err = cm.AddTask("updateCastTagWatchCount", "0 */1 * * * *", UpdateCastTagWatchCountTask)
cm.Start()
// 启动队列消费者
//go WorkPublishQueueConsumer()
go WorkPublishQueueConsumer()
// 启动随机间隔的自动确认任务
go AutoManuallyConfirmWorkTaskWithRandomInterval()
@ -144,17 +136,6 @@ func AutoManuallyConfirmWorkTask() {
continue
}
if balanceInfoRes.BundleStatus == common.BundleExpired {
_, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
WorkAction: cast.WorkActionENUM_CONFIRM,
WorkUuid: req.WorkUuid,
ConfirmRemark: req.ConfirmRemark,
ConfirmStatus: 3,
})
log.Printf("套餐已过期,作品uuid:"+req.WorkUuid, zap.Error(err))
continue
}
wordInfoRes, err := service.CastProvider.WorkDetail(context.Background(), &cast.WorkDetailReq{
WorkUuid: req.WorkUuid,
})
@ -249,7 +230,7 @@ func ArtistAutoConfirmTask() {
return
}
if len(workUuids) == 0 {
zap.L().Info("没有到期的任务")
zap.L().Debug("没有到期的任务")
return
}
zap.L().Info("发现到期任务", zap.Int("count", len(workUuids)))
@ -277,15 +258,11 @@ func RefreshPublishStatusTask() {
//zap.L().Info("刷新发布状态成功")
}
// PublishTask 定时发布任务从Redis Sorted Set中获取所有workUuid并根据score判断处理
func PublishTask() {
go RefreshPublishStatusTask() // 刷新发布状态
go TaskStatus() // 异步任务状态
}
// ScheduledPublishTask 定时发布任务从Redis Sorted Set中获取所有workUuid并根据score判断处理
func ScheduledPublishTask() {
// 加上锁
lockKey := "scheduled_publish:lock"
reply := cache.RedisClient.SetNX(lockKey, time.Now().Format("2006-01-02 15:04:05"), 2*time.Hour)
reply := cache.RedisClient.SetNX(lockKey, time.Now().Format("2006-01-02 15:04:05"), 1*time.Hour)
if !reply.Val() {
zap.L().Warn("定时发布任务正在被其他实例处理")
return
@ -306,27 +283,20 @@ func ScheduledPublishTask() {
return
}
if len(workList) == 0 {
zap.L().Info("没有定时发布任务")
zap.L().Debug("没有定时发布任务")
return
}
publishCount := 0
expiredCount := 0
const batchSize = 8 // 每批发布8个与PublishWork的workerCount保持一致
zap.L().Info("发现定时发布任务", zap.Int("total_count", len(workList)))
zap.L().Info("发现定时发布任务 列表", zap.Any("workList", workList))
now := float64(time.Now().Unix())
publishBatch := make([]string, 0, batchSize)
// 使用 map 进行去重,防止同一个 work_uuid 被多次添加
publishedUuids := make(map[string]bool)
// 遍历所有数据根据score判断处理
for _, item := range workList {
workUuid := item.Member.(string)
score := item.Score
now := float64(time.Now().Unix())
// 如果score小于当前时间删除但不消费不发布
if score < now {
zap.L().Info("发现过期的定时发布任务,直接删除不发布",
@ -343,115 +313,27 @@ func ScheduledPublishTask() {
continue
}
// 先从 Redis 中删除,采用"先删后处理"的策略,防止重复处理
// score大于等于当前时间正常发布
zap.L().Info("处理定时发布任务",
zap.String("work_uuid", workUuid),
zap.Float64("score", score))
_ = serverCast.PublishWork(context.Background(), &cast.PublishReq{
WorkUuids: []string{workUuid},
})
removed, delErr := cache.RedisClient.ZRem(modelCast.ScheduledPublishQueueKey, workUuid).Result()
if delErr != nil {
zap.L().Error("删除定时发布任务失败", zap.Error(delErr), zap.String("work_uuid", workUuid))
continue // 删除失败则跳过,避免重复处理
}
if removed == 0 {
zap.L().Warn("定时发布任务已被删除,跳过",
zap.String("work_uuid", workUuid))
continue // 已被其他实例删除,跳过
}
// 检查是否已经在当前批次中(去重)
if publishedUuids[workUuid] {
zap.L().Warn("发现重复的定时发布任务,跳过",
zap.String("work_uuid", workUuid))
continue
}
// score大于等于当前时间添加到待发布批次
zap.L().Info("添加到发布批次",
zap.String("work_uuid", workUuid),
zap.Float64("score", score))
publishBatch = append(publishBatch, workUuid)
publishedUuids[workUuid] = true
publishCount++
// 当批次达到指定大小时,批量发布
if len(publishBatch) >= batchSize {
zap.L().Info("批量发布作品", zap.Int("batch_size", len(publishBatch)), zap.Strings("work_uuids", publishBatch))
_ = serverCast.PublishWork(context.Background(), &cast.PublishReq{
WorkUuids: publishBatch,
})
zap.L().Info("批次发布完成", zap.Int("published", len(publishBatch)))
// 清空批次,准备下一批
publishBatch = make([]string, 0, batchSize)
} else if removed > 0 {
publishCount++
zap.L().Info("已发布并删除定时发布任务", zap.String("work_uuid", workUuid))
}
}
// 处理剩余的作品(不足一批的)
if len(publishBatch) > 0 {
zap.L().Info("批量发布剩余作品", zap.Int("batch_size", len(publishBatch)), zap.Strings("work_uuids", publishBatch))
_ = serverCast.PublishWork(context.Background(), &cast.PublishReq{
WorkUuids: publishBatch,
})
zap.L().Info("剩余批次发布完成", zap.Int("published", len(publishBatch)))
}
zap.L().Info("定时发布任务处理完成",
zap.Int("published_count", publishCount),
zap.Int("expired_count", expiredCount),
zap.Int("total_count", len(workList)))
}
func TaskStatus() {
var actions []string = []string{"publishBatch1", "publishBatch2"}
for _, action := range actions {
resp, err := service.CastProvider.ListTaskList(context.Background(), &cast.ListTaskListReq{
Action: action,
Status: 1,
Page: 1,
PageSize: 100,
})
if err != nil {
zap.L().Error("获取任务列表失败", zap.Error(err))
return
}
for _, v := range resp.Data {
var extraData modelCast.PublishTaskDto
if v.ExtraData == "" {
continue
}
_ = json.Unmarshal([]byte(v.ExtraData), &extraData)
var allDone = true
for _, workUuid := range extraData.WorkUuids {
infoResp, _err := service.CastProvider.WorkInfo(context.Background(), &cast.WorkInfoReq{WorkUuid: workUuid})
if _err != nil {
zap.L().Error("获取作品信息失败", zap.Error(_err))
allDone = false
break
}
if infoResp.PublishStatus != cast.PublishStatusENUM_PublishMediaStatus_DONE {
allDone = false
break
}
}
var excelUrl string
if allDone {
excelUrl, err = serverCast.PublishTaskExcel(extraData.WorkUuids, true, v.Action)
if err != nil {
zap.L().Error("生成发布任务Excel失败", zap.Error(err))
continue
}
_, err = service.CastProvider.UpsertTaskList(context.Background(), &cast.UpsertTaskListReq{
Uuid: v.Uuid,
Action: v.Action,
Url: excelUrl,
Status: 3,
})
if err != nil {
zap.L().Error("更新任务状态失败", zap.Error(err))
continue
}
zap.L().Info("任务已完成,更新状态为完成", zap.String("task_uuid", v.Uuid), zap.String("excel_url", excelUrl))
}
}
}
}
// WorkPublishQueueConsumer 监听work:publish:queue队列的消费者
func WorkPublishQueueConsumer() {
zap.L().Info("开始监听work:publish:queue队列批量处理模式")
@ -574,135 +456,3 @@ func ArtistAutoConfirmAnalysisTask() {
func AyrshareMetricsCollectorTask() {
serverCast.ExecuteAyrshareMetricsCollector()
}
func RefreshArtistOrderTask() {
_, _ = service.CastProvider.Tools(context.Background(), &cast.ToolsReq{Action: "artistOrderInfo"})
}
// UpdateCastTagWatchCountTask 更新标签观看次数的定时任务每5分钟执行一次
func UpdateCastTagWatchCountTask() {
ctx := context.Background()
// 计算两天前的00:00:00
now := time.Now()
twoDaysAgo := now.AddDate(0, 0, -2)
createdAtStart := time.Date(twoDaysAgo.Year(), twoDaysAgo.Month(), twoDaysAgo.Day(), 0, 0, 0, 0, twoDaysAgo.Location())
createdAtEnd := now
// 格式化时间字符串2026-01-01 00:00:00
createdAtStartStr := createdAtStart.Format("2006-01-02 15:04:05")
createdAtEndStr := createdAtEnd.Format("2006-01-02 15:04:05")
// 调用 ListCastTags 接口,筛选 IsWatchCountCalled = 2 的数据
listReq := &cast.ListCastTagsReq{
CreatedAtStart: createdAtStartStr,
CreatedAtEnd: createdAtEndStr,
IsWatchCountCalled: 2, // 2表示未调用
Page: 1,
PageSize: 10,
}
listResp, err := service.CastProvider.ListCastTags(ctx, listReq)
if err != nil {
zap.L().Error("获取标签列表失败", zap.Error(err))
return
}
if listResp.Data == nil || len(listResp.Data) == 0 {
return
}
zap.L().Info("获取到需要更新的标签", zap.Int("count", len(listResp.Data)))
// 获取有效的 profileKey
profileKey, err := serverCast.GetValidProfileKey(ctx, []uint32{1})
if err != nil {
zap.L().Error("获取有效profileKey失败", zap.Error(err))
return
}
// 准备批量更新的数据
updateData := make([]*cast.CastTagInfo, 0, len(listResp.Data))
// 遍历每个标签,调用 RecommendHashtags 接口
for _, tag := range listResp.Data {
if tag.HashTag == "" {
zap.L().Warn("标签HashTag为空跳过", zap.String("uuid", tag.Uuid))
// 即使HashTag为空也要更新IsWatchCountCalled为1
updateData = append(updateData, &cast.CastTagInfo{
Uuid: tag.Uuid,
WatchCount: 1,
IsWatchCountCalled: 1,
})
continue
}
// 调用 RecommendHashtags 接口
recommendReq := &aryshare.RecommendHashtagsRequest{
Keyword: tag.HashTag,
ProfileKey: profileKey,
}
recommendResp, err := service.AyrshareProvider.RecommendHashtags(ctx, recommendReq)
if err != nil {
zap.L().Error("调用RecommendHashtags接口失败",
zap.String("hashTag", tag.HashTag),
zap.String("uuid", tag.Uuid),
zap.Error(err))
// 调用失败时将WatchCount更新为1IsWatchCountCalled更新为1
updateData = append(updateData, &cast.CastTagInfo{
Uuid: tag.Uuid,
WatchCount: 1,
IsWatchCountCalled: 1,
})
continue
}
// 对比返回结果,查找完全一致的标签
var matchedViewCount int64 = 0
if recommendResp.Recommendations != nil {
for _, recommendation := range recommendResp.Recommendations {
// 完全一致匹配(不区分大小写)
if strings.EqualFold(recommendation.Name, tag.HashTag) {
matchedViewCount = recommendation.ViewCount
break
}
}
}
// 根据匹配结果更新WatchCount
var watchCount int32 = 1
if matchedViewCount > 0 {
watchCount = int32(matchedViewCount)
}
// 添加到更新列表
updateData = append(updateData, &cast.CastTagInfo{
Uuid: tag.Uuid,
WatchCount: watchCount,
IsWatchCountCalled: 1,
})
zap.L().Debug("处理标签完成",
zap.String("hashTag", tag.HashTag),
zap.String("uuid", tag.Uuid),
zap.Int64("matchedViewCount", matchedViewCount),
zap.Int32("watchCount", watchCount))
}
// 如果没有需要更新的数据,直接返回
if len(updateData) == 0 {
return
}
// 批量更新标签
batchUpdateReq := &cast.BatchUpdateCastTagsReq{
Data: updateData,
}
_, err = service.CastProvider.BatchUpdateCastTags(ctx, batchUpdateReq)
if err != nil {
zap.L().Error("批量更新标签失败", zap.Error(err), zap.Int("count", len(updateData)))
return
}
}

View File

@ -24,7 +24,7 @@ func (w *Work) ExportExcelWorkList(data []*cast.WorkListResp_Info) (*excelize.Fi
// 表头
headers := []interface{}{
"艺人", "手机号", "用户编号", "作品标题", "脚本", "作品类型", "类型", "Ins", "Tiktok", "DM", "Youtube", "Bulesky", "作品状态", "验收确认类型",
"艺人", "手机号", "用户编号", "作品标题", "脚本", "作品类型", "类型", "Ins", "Tiktok", "DM", "作品状态", "验收确认类型",
"说明", "发布账号", "管理人", "上传时间", "待艺人确认时间", "验收确认通过时间", "发布成功时间",
}
if err := sw.SetRow("A1", headers); err != nil {
@ -72,14 +72,12 @@ func (w *Work) ExportExcelWorkList(data []*cast.WorkListResp_Info) (*excelize.Fi
modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.InsStatus)],
modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.TiktokStatus)],
modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.DmStatus)],
modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.YoutubeStatus)],
modelCast.PlatformPublishStatusMM[cast.PublishStatusENUM(info.BlueskyStatus)],
modelCast.WorkStatusMM[int(info.WorkStatus)],
modelCast.ConfirmTypeMM[int(info.ConfirmType)],
info.Remark,
mediaAccountNames,
managerNames,
info.SubmitTime,
info.Status1Time,
info.Status4Time,
info.Status9Time,
info.Status6Time,

View File

@ -1,182 +0,0 @@
package logic
import (
"crypto/sha256"
"errors"
"fmt"
"strconv"
"strings"
"time"
"github.com/tealeg/xlsx"
)
type SupplierLogic struct {
OwningEntityName string `json:"owningEntityName"`
LegalName string `json:"legalName"`
LocalName string `json:"localName"`
AbbreviationName string `json:"abbreviationName"`
CountryOrRegionName string `json:"countryOrRegionName"`
CompanyRegistrationNumber string `json:"companyRegistrationNumber"`
SupplierType string `json:"supplierType"`
ApprovalStatus string `json:"approvalStatus"`
ApprovalDate string `json:"approvalDate"`
LastReviewDate string `json:"lastReviewDate"`
LegalEntityType string `json:"legalEntityType"`
SanctionsCountryScreeningResult string `json:"sanctionsCountryScreeningResult"`
KeyFinancial string `json:"keyFinancial"`
CompanyAddress string `json:"companyAddress"`
PrimaryContact string `json:"primaryContact"`
DataOwnerDepartment string `json:"dataOwnerDepartment"`
BasicCompanyInformation string `json:"basicCompanyInformation"`
SupplementaryText string `json:"supplementaryText"`
ConnectedParty string `json:"connectedParty"`
}
type ErrSupplierRes struct {
ID int `json:"id"`
LegalName string `json:"legalName"`
Remark string `json:"remark"`
}
func ImportSupplier(filePath string) ([]*SupplierLogic, error) {
xlFile, err := xlsx.OpenFile(filePath)
if err != nil {
return nil, err
}
//开辟除表头外的行数的数组内存
//遍历sheet
for sheetIndex, sheet := range xlFile.Sheets {
var resourceArr []map[int]string
//遍历每一行
//for rowIndex, row := range sheet.Rows {
for _, row := range sheet.Rows {
//开辟除表头外的行数的数组内存
objMap := make(map[int]string)
//if len(row.Cells) <= 0 || row.Cells[0].String() == "" {
// continue
//}
for cellIndex, cell := range row.Cells {
text := cell.String()
//如果是每一行的第一个单元格
objMap[cellIndex] = text
}
resourceArr = append(resourceArr, objMap)
}
if len(resourceArr) >= 2 {
suppliers, err := getListFromRaw(resourceArr)
if err != nil {
return nil, errors.New(fmt.Sprintf("页码:%d文件读取错误信息%s", sheetIndex+1, err.Error()))
}
if len(suppliers) > 0 {
return suppliers, nil
}
}
break
}
return nil, nil
}
func getListFromRaw(list []map[int]string) ([]*SupplierLogic, error) {
var entrusts []*SupplierLogic
kkMap := map[string]string{
"*使用组织/Owning Entity": "owningEntityName",
"*供应商法定全称/Legal Name": "legalName",
"供应商本地名称(如有)/Local Name (if applicable)": "localName",
"供应商简称(如有)/Abbreviation/Trade Name (if applicable)": "abbreviationName",
"*所在国家或地区/Country or Region": "countryOrRegionName",
"*公司注册编号/Company Registration Number": "companyRegistrationNumber",
"*供应商类型/Supplier Type": "supplierType",
"*准入状态/Approval Status": "approvalStatus",
"准入日期/Approval Date": "approvalDate",
"法律实体形式/Legal Entity Type": "legalEntityType",
"制裁与高风险国家筛查结果/Sanctions & High-Risk Country Screening Result": "sanctionsCountryScreeningResult",
"关键财务与付款信息/Key Financial & Payment Information": "keyFinancial",
"公司地址/Company Address": "companyAddress",
"主要联系人、职位及联系方式/Primary Contact, Position&Details": "primaryContact",
"数据维护部门&人员/Data Owner Department/Personnel": "dataOwnerDepartment",
"公司信息概要/Summary of Basic Company Information": "basicCompanyInformation",
"其他补充信息/Other Supplementary Information": "supplementaryText",
"*是否关联方/Connected party": "connectedParty",
}
keyMap := list[0]
for index, tt := range list {
if index == 0 {
continue
}
temp := &SupplierLogic{}
for i, r := range tt {
t := strings.TrimSpace(r)
if _, ok := keyMap[i]; !ok {
continue
}
keyString := strings.TrimSpace(keyMap[i])
if _, ok := kkMap[keyString]; !ok {
fmt.Println(fmt.Sprintf("行数:%d字段信息(%s)没有匹配,请以模版为准", i, keyString))
continue
}
switch kkMap[keyString] {
case "owningEntityName":
temp.OwningEntityName = t
case "legalName":
temp.LegalName = t
case "localName":
temp.LocalName = t
case "abbreviationName":
temp.AbbreviationName = t
case "countryOrRegionName":
temp.CountryOrRegionName = t
case "companyRegistrationNumber":
temp.CompanyRegistrationNumber = t
case "supplierType":
temp.SupplierType = t
case "approvalStatus":
temp.ApprovalStatus = t
case "approvalDate":
temp.ApprovalDate = ParseExcelDate(t)
//temp.ApprovalDate = t
case "legalEntityType":
temp.LegalEntityType = t
case "sanctionsCountryScreeningResult":
temp.SanctionsCountryScreeningResult = t
case "keyFinancial":
temp.KeyFinancial = t
case "companyAddress":
temp.CompanyAddress = t
case "primaryContact":
temp.PrimaryContact = t
case "dataOwnerDepartment":
temp.DataOwnerDepartment = t
case "basicCompanyInformation":
temp.BasicCompanyInformation = t
case "supplementaryText":
temp.SupplementaryText = t
case "connectedParty":
temp.ConnectedParty = t
}
}
entrusts = append(entrusts, temp)
}
sha256.New()
return entrusts, nil
}
func ParseExcelDate(v string) string {
if v == "" {
return ""
}
// 非数字,直接认为是 yyyy-mm-dd
if _, err := strconv.ParseFloat(v, 64); err != nil {
t, err := time.Parse("2006-01-02", v)
if err != nil {
return ""
}
return t.Format("2006-01-02")
}
// Excel 序列号
f, _ := strconv.ParseFloat(v, 64)
base := time.Date(1899, 12, 30, 0, 0, 0, 0, time.Local)
return base.AddDate(0, 0, int(f)).Format("2006-01-02")
}

View File

@ -70,7 +70,6 @@ func CheckLogin(provider *api.AccountFieeClientImpl) gin.HandlerFunc {
TelNum: jwt.Phone,
SubscriberNumber: infoRes.SubscriberNumber,
IdNumber: infoRes.IdNumber,
InviterID: infoRes.InviterId,
}
ctx.Set("jwtInfo", loginInfo)

View File

@ -16,16 +16,17 @@ const (
var PlatformNameKv = map[uint32]string{
1: "tiktok",
2: "youtube",
3: "instagram",
4: "DM",
5: "bluesky",
}
var NamePlatformIDKv = map[string]uint32{
"tiktok": 1,
"youtube": 2,
"instagram": 3,
"DM": 4,
"bluesky": 5,
}
var PlatformIDStrKv = map[string]uint8{
"TIKTOK": 1,
"INS": 2,
"DM": 4,
}

View File

@ -1,13 +0,0 @@
package cast
type PublishTaskDto struct {
WorkUuids []string
MediaAccountUuids []string
PlatformIds []string
}
var TaskActionName = map[string]string{
"importWorkBatch": "批量导入图文",
"publishBatch1": "批量发布",
"publishBatch2": "多账号同步",
}

View File

@ -29,7 +29,6 @@ type Info struct {
TelNum string `json:"telNum"`
SubscriberNumber string `json:"subscriberNumber"`
IdNumber string `json:"idNumber"`
InviterID uint64 `json:"inviterId"`
}
func GetUserInfoFromC(c *gin.Context) Info {

View File

@ -10,7 +10,7 @@ import (
)
func AnalysisRouter(r *gin.RouterGroup) {
// r.POST("analysis/trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector)
r.POST("analysis/trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector)
analysis := r.Group("analysis")
analysis.Use(middleware.CheckWebLogin(service.AccountProvider))
@ -31,8 +31,7 @@ func AnalysisRouter(r *gin.RouterGroup) {
analysis.POST("artist-metrics-single", serviceCast.ArtistMetricsDailyWindow) // 艺人指标日窗口
analysis.POST("tobe-confirmed-list", serviceCast.TobeConfirmedList) // 待确认数据列表
analysis.POST("update-approval-id", serviceCast.UpdateWorkAnalysisApprovalID) // 更新作品分析审批ID
analysis.POST("trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector) // 手动触发 Ayrshare 指标采集任务
// analysis.POST("trigger-ayrshare-metrics", serviceCast.TriggerAyrshareMetricsCollector) // 手动触发 Ayrshare 指标采集任务
}

View File

@ -23,7 +23,6 @@ func cronRouter(r *gin.RouterGroup) {
cron.POST("exportExcelExecutionResult", cronService.ExportExcelExecutionResult)
cron.POST("getListExecutionRecord", cronService.GetListExecutionRecord)
cron.POST("getScheduleTaskStatus", cronService.GetScheduleTaskStatus)
cron.POST("getImportData", cronService.GetImportData)
}
}

View File

@ -62,8 +62,6 @@ func MediaRouter(r *gin.RouterGroup) {
task := auth.Group("task")
{
task.POST("list", serviceCast.TaskList)
task.POST("delete", serviceCast.DeleteTasK)
task.POST("download", serviceCast.DownloadTaskFile)
}
layout := auth.Group("layout")
@ -81,18 +79,6 @@ func MediaRouter(r *gin.RouterGroup) {
prompt.POST("delete", serviceCast.DeletePrompt)
}
tag := auth.Group("tag")
{
tag.POST("update", serviceCast.UpdateCastTag)
tag.POST("list", serviceCast.ListCastTags)
tag.POST("import-batch", serviceCast.ImportTagBatch)
tag.POST("recalculate-quote-count", serviceCast.RecalculateCastTagQuoteCount)
// tag.POST("auto-hashtags", serviceCast.AutoHashtags)
// 这两个接口需要关闭ins通过facebook授权
// tag.POST("recommend-hashtags", serviceCast.RecommendHashtags)
// tag.POST("search-hashtags", serviceCast.SearchHashtags)
}
//AI 生图
aiNoAuth := noAuth.Group("ai")
{

View File

@ -7,17 +7,13 @@ import (
"fonchain-fiee/pkg/service/account"
"fonchain-fiee/pkg/service/asChat"
"fonchain-fiee/pkg/service/auth"
"fonchain-fiee/pkg/service/bundle"
emailAlert "fonchain-fiee/pkg/service/emailAlerts"
"fonchain-fiee/pkg/service/file"
"fonchain-fiee/pkg/service/governance"
imports "fonchain-fiee/pkg/service/import"
"fonchain-fiee/pkg/service/lang"
"fonchain-fiee/pkg/service/members"
"fonchain-fiee/pkg/service/pressreleases"
"fonchain-fiee/pkg/service/qr"
"fonchain-fiee/pkg/service/redirect"
"fonchain-fiee/pkg/service/reports"
"fonchain-fiee/pkg/service/upload"
"fonchain-fiee/pkg/service/version"
"net/http"
@ -61,7 +57,6 @@ func NewRouter() *gin.Engine {
SecFilingRouter(privateGroup)
app.MediaAppRouter(privateGroup)
cronRouter(privateGroup)
SupplierRouter(privateGroup)
{
v1.POST("version", version.Version) //版本号公共
}
@ -74,7 +69,6 @@ func NewRouter() *gin.Engine {
privateGroup.POST("user/check/msg", account.CheckMsg) //校验验证码
privateGroup.POST("generate/captcha", account.GenerateCaptcha) //生成滑块验证码
privateGroup.POST("validate/captcha", account.ValidateCaptcha) //验证滑块验证码
privateGroup.POST("check/register", account.CheckRegister) //校验是否注册
acRoute := privateGroup.Group("/user")
acRoute.Use(middleware.CheckLogin(service.AccountFieeProvider))
{
@ -82,7 +76,6 @@ func NewRouter() *gin.Engine {
acRoute.POST("info", account.UserInfo) //用户详情
acRoute.POST("update", account.UserUpdate) //用户更新
acRoute.POST("ocr", account.CheckIdOcr) //
acRoute.POST("write/off", account.WriteOff) //
}
webAcRouter := privateGroup.Group("/user")
//webAcRouter.Use(middleware.CheckWebLogin(service.AccountProvider))
@ -90,7 +83,6 @@ func NewRouter() *gin.Engine {
{
webAcRouter.POST("list", account.UserList) //用户列表
webAcRouter.POST("approval", account.UserApproval) //实名审核
webAcRouter.POST("admin-update", account.AdminUpdate) //更新用户信息
webAcRouter.POST("excel/download", account.UserExcelDownload) //excel下载
}
}
@ -185,13 +177,11 @@ func NewRouter() *gin.Engine {
governanceRoute := v1.Group("/governance")
governanceRouteLogin := governanceRoute.Group("", middleware.CheckWebLogin(service.AccountProvider))
governanceRoute.POST("/display", middleware.Cors(), governance.Display)
governanceRoute.GET("/display", middleware.Cors(), governance.Display)
governanceRouteLogin.POST("/list", governance.List)
governanceRouteLogin.POST("", governance.Create)
governanceRouteLogin.POST("/edit", governance.Edit)
governanceRouteLogin.POST("/delete", governance.Delete)
governanceRouteLogin.POST("/updataStatus", governance.UpdataStatus)
governanceRouteLogin.POST("/getGovernanceInfo", governance.GetGovernanceInfo)
}
{
@ -201,72 +191,12 @@ func NewRouter() *gin.Engine {
pressreleasesRoute.POST("/display", middleware.Cors(), pressreleases.Display)
pressreleasesRoute.GET("", middleware.Cors(), pressreleases.Get)
pressreleasesRouteLogin.POST("/sortAndStatus", pressreleases.SortAndStatus)
pressreleasesRouteLogin.POST("/info", pressreleases.Info)
pressreleasesRouteLogin.POST("/list", pressreleases.List)
pressreleasesRouteLogin.POST("", pressreleases.Create)
pressreleasesRouteLogin.POST("/edit", pressreleases.Edit)
pressreleasesRouteLogin.POST("/delete", pressreleases.Delete)
}
{
// 官网报告
reportsRoute := v1.Group("/reports")
reportsRouteLogin := reportsRoute.Group("", middleware.CheckWebLogin(service.AccountProvider))
// 年度报告
reportsRoute.POST("/annual/display", middleware.Cors(), reports.AnnualReportDisplay)
reportsRouteLogin.POST("/annual/create", reports.AnnualReportCreate)
reportsRouteLogin.POST("/annual/sortAndStatus", reports.AnnualReportSortAndStatus)
reportsRouteLogin.POST("/annual/info", reports.AnnualReportInfo)
reportsRouteLogin.POST("/annual/list", reports.AnnualReportList)
reportsRouteLogin.POST("/annual/delete", reports.AnnualReportDelete)
reportsRouteLogin.POST("/annual/edit", reports.AnnualReportEdit)
// 季度报告
reportsRoute.POST("/quarterly/display", middleware.Cors(), reports.QuarterlyReportDisplay)
reportsRouteLogin.POST("/quarterly/create", reports.QuarterlyReportCreate)
reportsRouteLogin.POST("/quarterly/sortAndStatus", reports.QuarterlyReportSortAndStatus)
reportsRouteLogin.POST("/quarterly/info", reports.QuarterlyReportInfo)
reportsRouteLogin.POST("/quarterly/list", reports.QuarterlyReportList)
reportsRouteLogin.POST("/quarterly/delete", reports.QuarterlyReportDelete)
reportsRouteLogin.POST("/quarterly/edit", reports.QuarterlyReportEdit)
}
{
// 邮箱通知
emailAlertsRoute := v1.Group("/emailalerts")
emailAlertsRouteLogin := emailAlertsRoute.Group("", middleware.CheckWebLogin(service.AccountProvider))
emailAlertsRoute.POST("/submit", middleware.Cors(), emailAlert.EmailAlertSubmit)
emailAlertsRouteLogin.POST("/list", emailAlert.GetEmailInformationList)
}
{
// 成员管理
membersRoute := v1.Group("/members")
membersRouteLogin := membersRoute.Group("", middleware.CheckWebLogin(service.AccountProvider))
// 成员部门信息管理
membersRouteLogin.POST("/management/add", members.AddManagement)
membersRouteLogin.POST("/management/list", members.GetManagementList)
membersRouteLogin.POST("/management/info", members.GetManagementInfo)
membersRouteLogin.POST("/management/delete", members.DeleteManagement)
membersRouteLogin.POST("/management/updata", members.UpdataManagement)
membersRouteLogin.POST("/management/edit", members.EditManagement)
membersRoute.POST("/management/display", middleware.Cors(), members.DisplayManagement)
// 董事会信息管理
membersRouteLogin.POST("/boardofdirectors/add", members.AddBoardOfDirectors)
membersRouteLogin.POST("/boardofdirectors/list", members.GetBoardOfDirectorsList)
membersRouteLogin.POST("/boardofdirectors/info", members.GetBoardOfDirectorsInfo)
membersRouteLogin.POST("/boardofdirectors/delete", members.DeleteBoardOfDirectors)
membersRouteLogin.POST("/boardofdirectors/updata", members.UpdataBoardOfDirectors)
membersRouteLogin.POST("/boardofdirectors/edit", members.EditBoardOfDirectors)
membersRoute.POST("/boardofdirectors/display", middleware.Cors(), members.DisplayBoardOfDirectors)
// 委员会任命管理
membersRouteLogin.POST("/committeeappointments/add", members.AddCommitteeAppointments)
membersRouteLogin.POST("/committeeappointments/list", members.GetCommitteeAppointmentsList)
membersRouteLogin.POST("/committeeappointments/info", members.GetCommitteeAppointmentsInfo)
membersRouteLogin.POST("/committeeappointments/delete", members.DeleteCommitteeAppointments)
membersRouteLogin.POST("/committeeappointments/updata", members.UpdataCommitteeAppointments)
membersRouteLogin.POST("/committeeappointments/edit", members.EditCommitteeAppointments)
membersRoute.POST("/committeeappointments/display", middleware.Cors(), members.DisplayCommitteeAppointments)
}
{
importRoute := v1.Group("/import")
importRoute.Use(middleware.CheckWebLogin(service.AccountProvider))
@ -285,10 +215,6 @@ func NewRouter() *gin.Engine {
importRoute.GET("generate/photo/test2", imports.Test2)
}
{
//健康检测
v1.GET("health", bundle.HealthCheck)
}
//静态文件
r.StaticFS("/api/fiee/static", http.Dir("./runtime"))
r.NoRoute(func(c *gin.Context) {

View File

@ -1,35 +0,0 @@
package router
import (
"fonchain-fiee/pkg/middleware"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/supplier"
"github.com/gin-gonic/gin"
)
func SupplierRouter(r *gin.RouterGroup) {
supplierRoute := r.Group("supplier/web")
supplierRoute.Use(middleware.CheckWebLogin(service.AccountProvider))
{
supplierRoute.POST("info", supplier.GetSupplier)
supplierRoute.POST("create", supplier.CreateSupplier)
supplierRoute.POST("update", supplier.UpdateSupplier)
supplierRoute.POST("list", supplier.GetSupplierList)
}
{
supplierRoute.POST("dictionary/create", supplier.CreateOrganizeDictionary)
supplierRoute.POST("dictionary/list", supplier.GetOrganizeDictionaryList)
}
{
supplierRoute.POST("country-region/list", supplier.GetCountryRegionList)
}
{
supplierRoute.POST("import/record", supplier.CreateImportRecord)
supplierRoute.POST("import/info", supplier.GetImportRecordInfo)
supplierRoute.POST("export/list", supplier.GetExportList)
}
}

View File

@ -126,41 +126,10 @@ func UserUpdate(c *gin.Context) {
req.ID = user.ID
req.Domain = user.Domain
res, err := service.AccountFieeProvider.Update(c, &account.UpdateRequest{
ID: req.ID,
Domain: req.Domain,
Language: req.Language,
NickName: req.NickName,
Email: req.Email,
AbroadTel: req.AbroadTel,
AbroadTelAreaCode: req.AbroadTelAreaCode,
})
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func AdminUpdate(c *gin.Context) {
var req account.UpdateRequest
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
if req.ID == 0 {
service.Error(c, errors.New("用户ID不能为空"))
return
}
req.Domain = "app"
res, err := service.AccountFieeProvider.Update(c, &account.UpdateRequest{
ID: req.ID,
Domain: req.Domain,
//Language: req.Language,
//NickName: req.NickName,
Email: req.Email,
AbroadTel: req.AbroadTel,
AbroadTelAreaCode: req.AbroadTelAreaCode,
ID: req.ID,
Domain: req.Domain,
Language: req.Language,
NickName: req.NickName,
})
if err != nil {
service.Error(c, err)
@ -188,26 +157,6 @@ func CheckIdOcr(c *gin.Context) {
return
}
func WriteOff(c *gin.Context) {
var req account.WriteOffRequest
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
user := login.GetUserInfoFromC(c)
res, err := service.AccountFieeProvider.WriteOff(c, &account.WriteOffRequest{
Id: user.ID,
})
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
/**
* 获取身份证OCR识别结果
* @param realIDImgA string - 身份证图片的URL地址
@ -292,11 +241,6 @@ func SendMsg(c *gin.Context) {
}
req.Project = "fiee"
req.TelNum = req.Zone + req.TelNum
//todo 审核使用账号
if req.TelNum == "8618888888888" {
service.Success1(c, "发送成功", &account.SendMsgStatusResponse{})
return
}
if req.Zone != e.ZoneCn && req.Zone != "" {
// ============================== redis检查ip开始
ip := c.ClientIP()
@ -341,6 +285,7 @@ func SendMsg(c *gin.Context) {
//cache.RedisClient.Incr(daykey)
//cache.RedisClient.Incr(minutekey)
// ============================== redis检查ip结束
tempReq := &account.SendNationMsgRequest{
Domain: req.Domain,
TelNum: req.TelNum,
@ -464,31 +409,6 @@ func ValidateCaptcha(c *gin.Context) {
service.Success(c, res)
}
func CheckRegister(c *gin.Context) {
type CheckRegisterRes struct {
IsRegister bool `json:"is_register"`
}
req := account.UserByTelRequest{}
req.Domain = "app"
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
data, err := service.AccountFieeProvider.UserByTel(context.Background(), &req)
if err != nil {
service.Error(c, err)
return
}
var res CheckRegisterRes
if data.Id == 0 {
res.IsRegister = false
} else {
res.IsRegister = true
}
service.Success(c, res)
return
}
func UserLogout(c *gin.Context) {
req := account.DecryptJwtRequest{}
req.Token = c.GetHeader(e.Authorization)
@ -508,16 +428,6 @@ func UserRegister(c *gin.Context) {
return
}
req.Domain = "app"
if req.InviterCode != "" {
codeRes, err := service.AccountFieeProvider.GetInviterInfo(context.Background(), &account.InviterInfoRequest{
Code: req.InviterCode,
})
if err != nil || codeRes.Id == 0 {
service.Error(c, errors.New("邀请码错误"))
return
}
req.InviterID = codeRes.Id
}
res, err := service.AccountFieeProvider.Register(context.Background(), &req)
if err != nil {
service.Error(c, err)
@ -533,10 +443,6 @@ func UserRegister(c *gin.Context) {
service.Error(c, err)
return
}
if tokenInfo.AccountInfo.WriteOff == true {
service.Error(c, errors.New("此账号已注销,无法登录"))
return
}
res.Token = tokenInfo.Token
service.Success(c, res)
return

View File

@ -630,13 +630,13 @@ func (a *ChatHandler) UserSwitchAutoReplyStatus(c *gin.Context) {
}
service.Success(c, resp)
}
func (a *ChatHandler) SetSwitchAutoReplyStatus(c *gin.Context) {
chatUser, code := jwt.ParseToChatUser(c)
if code != 0 {
service.ErrWithCode(c, code)
return
}
sessionId := a.cache.GetUserSession(chatUser.ID)
var req dto.UserSwitchAutoReplyReq
if err := c.ShouldBindJSON(&req); err != nil {
service.Error(c, err)
@ -652,18 +652,9 @@ func (a *ChatHandler) SetSwitchAutoReplyStatus(c *gin.Context) {
} else {
msg.Text = "已进入人工,不会接收自动消息"
}
sender := &accountFiee.ChatUserData{
ID: a.robot.Info.ID,
NickName: a.robot.Name,
Account: a.robot.Info.Account,
Role: 3,
Origin: a.robot.Info.Origin,
OriginId: a.robot.Info.OriginId,
Avatar: a.robot.Info.Avatar,
}
err := logic.NewMessage(c, &a.cache, sender, dto.NewMessageRequest{
err := logic.NewMessage(c, &a.cache, chatUser, dto.NewMessageRequest{
Robot: true,
SessionId: sessionId,
SessionId: fmt.Sprintf("%d", chatUser.ID),
Message: msg,
})
if err != nil {

View File

@ -105,7 +105,6 @@ func NewMessage(ctx context.Context, cache *chatCache.ChatCache, sender *account
notice.BuildMessage(resp.Data)
fmt.Printf("ws消息提醒:%+v\n", notice)
_, err = consts.ChatRoom.SendSessionMessage(sender, request.SessionId, ws.NewChatMsgType, notice)
fmt.Println("消息提醒结果:", err)
if err != nil {
log.Print("发送新消息通知失败", zap.Error(err), zap.Any("notice", notice))
}

View File

@ -197,18 +197,6 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量
service.Error(c, errors.New(common.GetWorkDetailFailed))
return
}
if balanceInfoRes.BundleStatus == common.BundleExpired {
_, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{
WorkAction: cast.WorkActionENUM_CONFIRM,
WorkUuid: req.WorkUuid,
ConfirmRemark: req.ConfirmRemark,
ConfirmStatus: 3,
})
service.Error(c, errors.New("套餐已过期"))
return
}
if wordInfoRes.WorkStatus != 4 {
service.Error(c, errors.New("作品不是待确认状态"))
return
@ -221,12 +209,6 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量
case 1:
{
if balanceInfoRes.ImageExtendConsumptionNumber >= balanceInfoRes.ImageExtendNumber { // 图文余量不足
_, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{
WorkAction: cast.WorkActionENUM_CONFIRM,
WorkUuid: req.WorkUuid,
ConfirmRemark: req.ConfirmRemark,
ConfirmStatus: 3,
})
service.Error(c, errors.New("图文余量不足"))
return
}
@ -235,12 +217,6 @@ func WorkConfirm(c *gin.Context) { // 确认作品并扣除余量
case 2:
{
if balanceInfoRes.VideoExtendConsumptionNumber >= balanceInfoRes.VideoExtendNumber { // 视频余量不足
_, err = service.CastProvider.UpdateStatus(c, &cast.UpdateStatusReq{
WorkAction: cast.WorkActionENUM_CONFIRM,
WorkUuid: req.WorkUuid,
ConfirmRemark: req.ConfirmRemark,
ConfirmStatus: 3,
})
service.Error(c, errors.New("视频余量不足"))
return
}
@ -452,7 +428,6 @@ func writeToExcel(filename string, items []*bundle.BundleBalanceExportItem) erro
"所属月份", "用户编号", "姓名", "手机号", "购买套餐时间",
"套餐金额", "增值服务金额", "支付金额", "币种", "手续费",
"套餐视频总数", "增值服务视频总数", "套餐视频单价", "增值视频单价",
"当月消耗套餐金额($)", "当月消耗增值金额($)",
"套餐账号总数", "增值账号总数", "套餐账号使用数", "增值账号使用数",
"当前可用套餐视频数", "当前可用增值视频数", "当前已用套餐视频数", "当前已用增值视频数", "当前作废套餐视频数", "当前作废增值视频数", "当月新增可用套餐视频数", "当月新增可用增值视频数", "当月使用套餐视频数", "当月使用增值视频数", "当月作废套餐视频数", "当月作废增值视频数",
"当前可用套餐图文数", "当前可用增值图文数", "当前已用套餐图文数", "当前已用增值图文数", "当前作废套餐图文数", "当前作废增值图文数", "当月新增可用套餐图文数", "当月新增可用增值图文数", "当月使用套餐图文数", "当月使用增值图文数", "当月作废套餐图文数", "当月作废增值图文数",
@ -495,76 +470,64 @@ func writeToExcel(filename string, items []*bundle.BundleBalanceExportItem) erro
_ = write(13, fmt.Sprintf("%.2f", it.BundleVideoUnitPrice))
_ = write(14, fmt.Sprintf("%.2f", it.IncreaseVideoUnitPrice))
// 当月视频消耗金额($)
monthlyBundleVideoConsumptionPrice, err := strconv.ParseFloat(it.MonthlyBundleVideoConsumptionPrice, 64)
if err != nil {
return err
}
monthlyIncreaseVideoConsumptionPrice, err := strconv.ParseFloat(it.MonthlyIncreaseVideoConsumptionPrice, 64)
if err != nil {
return err
}
_ = write(15, fmt.Sprintf("%.2f", monthlyBundleVideoConsumptionPrice))
_ = write(16, fmt.Sprintf("%.2f", monthlyIncreaseVideoConsumptionPrice))
// 账号类
_ = write(17, int(it.BundleAccountNumber))
_ = write(18, int(it.IncreaseAccountNumber))
_ = write(19, int(it.BundleAccountConsumptionNumber))
_ = write(20, int(it.IncreaseAccountConsumptionNumber))
_ = write(15, int(it.BundleAccountNumber))
_ = write(16, int(it.IncreaseAccountNumber))
_ = write(17, int(it.BundleAccountConsumptionNumber))
_ = write(18, int(it.IncreaseAccountConsumptionNumber))
// 视频类
_ = write(21, int(it.MonthlyBundleVideoNumber))
_ = write(22, int(it.MonthlyIncreaseVideoNumber))
_ = write(23, int(it.BundleVideoConsumptionNumber))
_ = write(24, int(it.IncreaseVideoConsumptionNumber))
_ = write(25, int(it.InvalidBundleVideoNumber))
_ = write(26, int(it.InvalidIncreaseVideoNumber))
_ = write(27, int(it.MonthlyNewBundleVideoNumber))
_ = write(28, int(it.MonthlyNewIncreaseVideoNumber))
_ = write(29, int(it.MonthlyBundleVideoConsumptionNumber))
_ = write(30, int(it.MonthlyIncreaseVideoConsumptionNumber))
_ = write(31, int(it.MonthlyInvalidBundleVideoNumber))
_ = write(32, int(it.MonthlyInvalidIncreaseVideoNumber))
_ = write(19, int(it.MonthlyBundleVideoNumber))
_ = write(20, int(it.MonthlyIncreaseVideoNumber))
_ = write(21, int(it.BundleVideoConsumptionNumber))
_ = write(22, int(it.IncreaseVideoConsumptionNumber))
_ = write(23, int(it.InvalidBundleVideoNumber))
_ = write(24, int(it.InvalidIncreaseVideoNumber))
_ = write(25, int(it.MonthlyNewBundleVideoNumber))
_ = write(26, int(it.MonthlyNewIncreaseVideoNumber))
_ = write(27, int(it.MonthlyBundleVideoConsumptionNumber))
_ = write(28, int(it.MonthlyIncreaseVideoConsumptionNumber))
_ = write(29, int(it.MonthlyInvalidBundleVideoNumber))
_ = write(30, int(it.MonthlyInvalidIncreaseVideoNumber))
// 图文类
_ = write(33, int(it.MonthlyBundleImageNumber))
_ = write(34, int(it.MonthlyIncreaseImageNumber))
_ = write(35, int(it.BundleImageConsumptionNumber))
_ = write(36, int(it.IncreaseImageConsumptionNumber))
_ = write(37, int(it.InvalidBundleImageNumber))
_ = write(38, int(it.InvalidIncreaseImageNumber))
_ = write(39, int(it.MonthlyNewBundleImageNumber))
_ = write(40, int(it.MonthlyNewIncreaseImageNumber))
_ = write(41, int(it.MonthlyBundleImageConsumptionNumber))
_ = write(42, int(it.MonthlyIncreaseImageConsumptionNumber))
_ = write(43, int(it.MonthlyInvalidBundleImageNumber))
_ = write(44, int(it.MonthlyInvalidIncreaseImageNumber))
_ = write(31, int(it.MonthlyBundleImageNumber))
_ = write(32, int(it.MonthlyIncreaseImageNumber))
_ = write(33, int(it.BundleImageConsumptionNumber))
_ = write(34, int(it.IncreaseImageConsumptionNumber))
_ = write(35, int(it.InvalidBundleImageNumber))
_ = write(36, int(it.InvalidIncreaseImageNumber))
_ = write(37, int(it.MonthlyNewBundleImageNumber))
_ = write(38, int(it.MonthlyNewIncreaseImageNumber))
_ = write(39, int(it.MonthlyBundleImageConsumptionNumber))
_ = write(40, int(it.MonthlyIncreaseImageConsumptionNumber))
_ = write(41, int(it.MonthlyInvalidBundleImageNumber))
_ = write(42, int(it.MonthlyInvalidIncreaseImageNumber))
// 数据分析类
_ = write(45, int(it.MonthlyBundleDataAnalysisNumber))
_ = write(46, int(it.MonthlyIncreaseDataAnalysisNumber))
_ = write(47, int(it.BundleDataAnalysisConsumptionNumber))
_ = write(48, int(it.IncreaseDataAnalysisConsumptionNumber))
_ = write(49, int(it.InvalidBundleDataAnalysisNumber))
_ = write(50, int(it.InvalidIncreaseDataAnalysisNumber))
_ = write(51, int(it.MonthlyNewBundleDataAnalysisNumber))
_ = write(52, int(it.MonthlyNewIncreaseDataAnalysisNumber))
_ = write(53, int(it.MonthlyBundleDataAnalysisConsumptionNumber))
_ = write(54, int(it.MonthlyIncreaseDataAnalysisConsumptionNumber))
_ = write(55, int(it.MonthlyInvalidBundleDataAnalysisNumber))
_ = write(56, int(it.MonthlyInvalidIncreaseDataAnalysisNumber))
_ = write(43, int(it.MonthlyBundleDataAnalysisNumber))
_ = write(44, int(it.MonthlyIncreaseDataAnalysisNumber))
_ = write(45, int(it.BundleDataAnalysisConsumptionNumber))
_ = write(46, int(it.IncreaseDataAnalysisConsumptionNumber))
_ = write(47, int(it.InvalidBundleDataAnalysisNumber))
_ = write(48, int(it.InvalidIncreaseDataAnalysisNumber))
_ = write(49, int(it.MonthlyNewBundleDataAnalysisNumber))
_ = write(50, int(it.MonthlyNewIncreaseDataAnalysisNumber))
_ = write(51, int(it.MonthlyBundleDataAnalysisConsumptionNumber))
_ = write(52, int(it.MonthlyIncreaseDataAnalysisConsumptionNumber))
_ = write(53, int(it.MonthlyInvalidBundleDataAnalysisNumber))
_ = write(54, int(it.MonthlyInvalidIncreaseDataAnalysisNumber))
// 手动扩展类
_ = write(57, int(it.MonthlyNewManualAccountNumber))
_ = write(58, int(it.MonthlyNewManualVideoNumber))
_ = write(59, int(it.MonthlyNewManualImageNumber))
_ = write(60, int(it.MonthlyNewManualDataAnalysisNumber))
_ = write(61, int(it.MonthlyNewDurationNumber))
_ = write(62, int(it.MonthlyManualAccountConsumptionNumber))
_ = write(63, int(it.MonthlyManualVideoConsumptionNumber))
_ = write(64, int(it.MonthlyManualImageConsumptionNumber))
_ = write(65, int(it.MonthlyManualDataAnalysisConsumptionNumber))
_ = write(55, int(it.MonthlyNewManualAccountNumber))
_ = write(56, int(it.MonthlyNewManualVideoNumber))
_ = write(57, int(it.MonthlyNewManualImageNumber))
_ = write(58, int(it.MonthlyNewManualDataAnalysisNumber))
_ = write(59, int(it.MonthlyNewDurationNumber))
_ = write(60, int(it.MonthlyManualAccountConsumptionNumber))
_ = write(61, int(it.MonthlyManualVideoConsumptionNumber))
_ = write(62, int(it.MonthlyManualImageConsumptionNumber))
_ = write(63, int(it.MonthlyManualDataAnalysisConsumptionNumber))
}
@ -584,7 +547,7 @@ func GetAccountBundleBalance(c *gin.Context) {
service.Error(c, err)
return
}
req.Month = []string{time.Now().Format("2006-01")}
req.Month = time.Now().Format("2006-01")
res, err := service.BundleProvider.GetBundleBalanceList(context.Background(), &req)
if err != nil {
service.Error(c, errors.New(common.GetBundleBalanceListFailed))

View File

@ -17,6 +17,7 @@ import (
"strings"
"time"
"github.com/duke-git/lancet/v2/datetime"
"github.com/shopspring/decimal"
"github.com/gin-gonic/gin"
@ -92,30 +93,9 @@ func MetricsBundlePurchaseExport(ctx *gin.Context) {
sumFee := decimal.Zero
for _, i := range data {
s := fmt.Sprintf("%.2f", i.PaymentAmount)
d, err := decimal.NewFromString(s)
if err != nil {
service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed))
return
}
sumPayment = sumPayment.Add(d)
s = fmt.Sprintf("%.2f", i.FinalAmount)
d, err = decimal.NewFromString(s)
if err != nil {
service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed))
return
}
sumFinal = sumFinal.Add(d)
s = fmt.Sprintf("%.2f", i.FeeAmount)
d, err = decimal.NewFromString(s)
if err != nil {
service.Error(ctx, errors.New(common.MetricsBundlePurchaseExportFailed))
return
}
sumFee = sumFee.Add(d)
sumPayment = sumPayment.Add(decimal.NewFromFloat(float64(i.PaymentAmount)))
sumFinal = sumFinal.Add(decimal.NewFromFloat(float64(i.FinalAmount)))
sumFee = sumFee.Add(decimal.NewFromFloat(float64(i.FeeAmount)))
}
f.SetCellValue(sheet, fmt.Sprintf("A%d", endRow+1), "合计支付金额(美元)")
@ -191,7 +171,7 @@ func MetricsArtistAccountExport(ctx *gin.Context) {
utils.CheckDirPath("./runtime/"+fmt.Sprint(userInfo.ID), true)
sheet := "Sheet1"
f := excelize.NewFile()
headers := []string{"序号", "艺人", "用户编号", "DM账号名", "DM账号状态", "Instagram账号名", "Instagram账号状态", "TikTok账号名", "TikTok账号状态", "Bluesky账号名", "Bluesky账号状态", "Youtube账号名", "Youtube账号状态"}
headers := []string{"序号", "艺人", "用户编号", "DM账号名", "DM账号状态", "Instagram账号名", "Instagram账号状态", "TikTok账号名", "TikTok账号状态"}
for i, h := range headers {
col, _ := excelize.ColumnNumberToName(i + 1)
cell := col + "1"
@ -226,10 +206,6 @@ func MetricsArtistAccountExport(ctx *gin.Context) {
_ = write(7, authStatus[it.InsAuthStatus])
_ = write(8, it.TiktokNickname)
_ = write(9, authStatus[it.TiktokAuthStatus])
_ = write(10, it.BlueskyNickname)
_ = write(11, authStatus[it.BlueskyAuthStatus])
_ = write(12, it.YoutubeNickname)
_ = write(13, authStatus[it.YoutubeAuthStatus])
}
// 可选:设置列宽,使表格更美观
_ = f.SetColWidth(sheet, "A", "AZ", 18)
@ -256,11 +232,13 @@ func MetricsVideoSubmitExport(ctx *gin.Context) {
return
}
newCtx := serviceCast.NewCtxWithUserInfo(ctx)
if len(req.Month) > 0 {
t, err := time.Parse("2006-01", req.Month)
if err == nil {
resp, err = service.CastProvider.WorkList(newCtx, &cast.WorkListReq{
SubmitTimeMonths: req.Month,
Page: 1,
PageSize: 99999,
SubmitStartTime: datetime.BeginOfMonth(t).Format(time.DateTime),
SubmitEndTime: datetime.EndOfMonth(t).Format(time.DateTime),
Page: 1,
PageSize: 99999,
})
fmt.Printf("resp.Count: %v\n", resp.Count)
} else {

View File

@ -246,16 +246,10 @@ func CreateBundleOrderSignature(c *gin.Context) {
service.Error(c, err)
return
}
if userInfo.InviterID != 0 && logic.CheckUserFirstOrder(userInfo.ID) {
req.InviterId = userInfo.InviterID
}
// 组装订单信息
req = logic.BuildOrderRequest(req, userInfo, bundleDetail, addRecords, addTotalPrice, lastContractNo, signContract)
// 校验发布平台
if len(req.PlatformIds) == 0 {
req.PlatformIds = []uint32{1, 4, 5}
}
// 创建订单
res, err := service.BundleProvider.CreateOrderRecord(context.Background(), &req)
if err != nil {
@ -520,6 +514,7 @@ func OrderRecordsListV2(c *gin.Context) {
for id := range userIdSet {
userIds = append(userIds, id)
}
userListResp, err := service.AccountFieeProvider.UserList(context.Background(), &accountFiee.UserListRequest{
Ids: userIds,
Domain: "app",
@ -541,10 +536,6 @@ func OrderRecordsListV2(c *gin.Context) {
item.CustomerName = u.Name
item.TelNum = u.TelNum
item.SubNum = u.SubNum
if item.InviterId != 0 {
item.InviterCode = u.InviterCode
item.InviterName = u.InviterName
}
}
}
}
@ -627,10 +618,6 @@ func OrderRecordsListDownload(c *gin.Context) {
item.CustomerName = u.Name
item.TelNum = u.TelNum
item.SubNum = u.SubNum
if item.InviterId != 0 {
item.InviterCode = u.InviterCode
item.InviterName = u.InviterName
}
}
}
}
@ -655,7 +642,7 @@ func exportExcel(orderList []*bundle.OrderBundleRecordInfo) (*excelize.File, err
headers := []string{
"套餐订单号", "套餐类型", "套餐付款状态", "艺人手机号", "用户编号", "艺人", "套餐订单创建时间", "套餐支付时间", "套餐金额",
"增值服务订单号", "增值税服务金额", "支付金额", "币种", "手续费", "增值订单创建时间", "增值付款状态", "邀请码", "邀请码所属人",
"增值服务订单号", "增值税服务金额", "支付金额", "币种", "手续费", "增值订单创建时间", "增值付款状态",
}
for i, h := range headers {
cell := fmt.Sprintf("%s%d", string(rune('A'+i)), 1)
@ -689,8 +676,6 @@ func exportExcel(orderList []*bundle.OrderBundleRecordInfo) (*excelize.File, err
f.SetCellValue(sheetName, fmt.Sprintf("G%d", rowIndex), bundleInfo.BundleCreateAt)
f.SetCellValue(sheetName, fmt.Sprintf("H%d", rowIndex), bundleInfo.PayTime)
f.SetCellValue(sheetName, fmt.Sprintf("I%d", rowIndex), bundleInfo.Amount)
f.SetCellValue(sheetName, fmt.Sprintf("Q%d", rowIndex), bundleInfo.InviterCode)
f.SetCellValue(sheetName, fmt.Sprintf("R%d", rowIndex), bundleInfo.InviterName)
if addCount > 0 {
for i, add := range bundleInfo.AddBundleInfo {

View File

@ -105,8 +105,6 @@ const (
GetWorkDetailFailed = "获取作品详情失败"
)
//用户套餐状态
// 余量
const (
BundleExtendFailed = "套餐扩展失败"
@ -124,10 +122,9 @@ const (
InsufficientBalance = "余量不足"
)
//用户套餐状态
const (
BundleExpired = 1 //已过期
BundleNotExpired = 0 //未过期
BundleExpired = 1
BundleNotExpired = 0
)
// 数据指标

View File

@ -1,180 +0,0 @@
package bundle
import (
"context"
"fonchain-fiee/api/bundle"
"fonchain-fiee/api/cast"
"fonchain-fiee/api/files"
"fonchain-fiee/api/governance"
"fonchain-fiee/api/order"
"fonchain-fiee/api/payment"
"fonchain-fiee/pkg/cache"
"fonchain-fiee/pkg/service"
"net/http"
"time"
"github.com/gin-gonic/gin"
)
// HealthCheck 健康检测接口
func HealthCheck(c *gin.Context) {
healthStatus := gin.H{
"status": "ok",
"timestamp": time.Now().Unix(),
"checks": make(map[string]interface{}),
}
// 检查 Redis 连接
redisStatus := "ok"
redisErr := ""
if cache.RedisClient != nil {
_, cancel := context.WithTimeout(context.Background(), 2*time.Second)
defer cancel()
_, err := cache.RedisClient.Ping().Result()
if err != nil {
redisStatus = "failed"
redisErr = err.Error()
}
} else {
redisStatus = "failed"
redisErr = "Redis client is nil"
}
healthStatus["checks"].(map[string]interface{})["redis"] = gin.H{
"status": redisStatus,
"error": redisErr,
}
// 检查微服务连接(调用一个简单的服务方法)
serviceStatus := "ok"
serviceErr := ""
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
// 调用 BundleProvider 的简单方法进行健康检测
_, err := service.BundleProvider.GetBundleBalanceByUserId(ctx, &bundle.GetBundleBalanceByUserIdReq{
UserId: 0, // 使用一个不存在的用户ID只检测服务连通性
})
if err != nil {
// 检查是否是超时或连接错误
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Bundle Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["bundleService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
//调用 OrderProvider 的简单方法进行健康检测
_, err = service.OrderProvider.GetOrder(ctx, &order.CommonRequest{
ID: 0,
Domain: "",
SeriesUid: "", // 使用一个不存在的订单ID只检测服务连通性
})
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Order Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["orderService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
//调用 FilesProvider 的简单方法进行健康检测
_, err = service.FilesProvider.List(ctx, &files.FileListReq{
Path: "/",
UserSpacePath: "/fiee",
Page: 1,
PageSize: 50,
})
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Filesbrowser Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["filesbrowserService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
//调用 PaymentProvider 的简单方法进行健康检测
_, err = service.PaymentProvider.QueryPayByOutTradeNo(ctx, &payment.PayQueryRequest{
PayType: "2",
OutTradeNo: "1234567890",
})
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Payment Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["paymentService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
//调用 CastProvider 的简单方法进行健康检测
_, err = service.CastProvider.WorkList(ctx, &cast.WorkListReq{
Page: 1,
PageSize: 10,
})
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Cast Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["castService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
//调用 GovernanceProvider 的简单方法进行健康检测
_, err = service.GovernanceProvider.List(ctx, &governance.ListReq{
Page: 1,
PageSize: 10,
})
if err != nil {
if ctx.Err() == context.DeadlineExceeded {
serviceStatus = "Document Service timeout"
serviceErr = "Service timeout"
} else {
// 其他错误(如业务错误)认为服务是可用的
serviceStatus = "ok"
serviceErr = ""
}
}
healthStatus["checks"].(map[string]interface{})["documentService"] = gin.H{
"status": serviceStatus,
"error": serviceErr,
}
// 如果所有检查都通过,返回 200否则返回 503
httpStatus := http.StatusOK
if redisStatus != "ok" || serviceStatus != "ok" {
httpStatus = http.StatusServiceUnavailable
healthStatus["status"] = "degraded"
}
c.JSON(httpStatus, healthStatus)
}

View File

@ -63,24 +63,6 @@ func CheckUserOrder(userID uint64) error {
return nil
}
// 校验用户是否首次购买
func CheckUserFirstOrder(userID uint64) bool {
req := bundle.OrderRecordsDetailRequest{
CustomerID: strconv.FormatUint(userID, 10),
Status: 2,
}
records, _ := service.BundleProvider.OrderRecordsDetail(context.Background(), &req)
// 用户没有任何订单记录
if records.OrderRecord == nil {
return true
}
// 检查订单是否属于该用户
if records.OrderRecord.CustomerID != strconv.FormatUint(userID, 10) {
return true
}
return false
}
// 获取最后一次合同编号
func GetLastContractNo() (string, error) {
records, err := service.BundleProvider.OrderRecordsList(context.Background(), &bundle.OrderRecordsRequest{

View File

@ -277,7 +277,6 @@ func AutoCreateUserAndOrder(c *gin.Context) {
var TotalPrice float32
var expirationDay string
numMap := make(map[string]int32)
numMap["1500.00"] = 0
numMap["3150.00"] = 3
numMap["4200.00"] = 5
numMap["5600.00"] = 8
@ -290,7 +289,6 @@ func AutoCreateUserAndOrder(c *gin.Context) {
numMap["18300.00"] = 40
numMap["26700.00"] = 60
incrMap := make(map[string]float32)
incrMap["1500.00"] = 0
incrMap["3150.00"] = 1650
incrMap["4200.00"] = 2700
incrMap["5600.00"] = 4100
@ -366,7 +364,7 @@ func AutoCreateUserAndOrder(c *gin.Context) {
ValueUid: accountUuid,
CurrencyType: 2, //美元
Amount: 0, //增值服务金额
Num: 5,
Num: 3,
Unit: "个",
Source: 1,
PaymentStatus: 1,
@ -418,7 +416,6 @@ func AutoCreateUserAndOrder(c *gin.Context) {
orderReq.OrderNo = unfinishInfo.OrderNo
//expirationTime := t.AddDate(10, 0, 0).Format("2006-01-02 15:04:05")
//orderReq.ExpirationTime = expirationTime
orderReq.PlatformIds = []uint32{1, 4, 5}
_, err = service.BundleProvider.CreateOrderRecord(context.Background(), &orderReq)
if err != nil {
service.Error(c, err)

View File

@ -780,9 +780,8 @@ func executeAyrshareMetricsCollector() {
zap.L().Info("Ayrshare 指标采集任务执行完成")
fmt.Printf("[%s] [INFO] Ayrshare 指标采集任务执行完成\n", time.Now().Format("2006-01-02 15:04:05"))
// 暂停重试
// 第三步:重试失败的记录(使用并发处理)
// retryFailedMetricsForAyrshareConcurrent(ctx, dateCN)
retryFailedMetricsForAyrshareConcurrent(ctx, dateCN)
// 第四步:根据作品数据计算并更新账号日级指标
zap.L().Info("开始计算账号日级指标")

View File

@ -1,40 +0,0 @@
package cast
import (
"context"
"fonchain-fiee/api/cast"
"fonchain-fiee/pkg/service"
)
func CheckImage(workUuid string) error {
detailResp, err := service.CastProvider.WorkDetail(context.Background(), &cast.WorkDetailReq{WorkUuid: workUuid})
if err != nil {
return err
}
if detailResp.CoverUrl == "" {
return nil
}
if detailResp.WorkCategory == 1 {
return nil
}
resourceResp, err := service.CastProvider.WorkResource(context.Background(), &cast.WorkResourceReq{WorkUuid: workUuid})
if err != nil {
return err
}
if detailResp.CoverUrl == resourceResp.OldCoverUrl {
return nil
}
mediaUrls, err := ProcessImg([]string{detailResp.CoverUrl})
if err != nil {
return err
}
if len(mediaUrls) > 0 {
_, _ = service.CastProvider.UpdateWorkResource(context.Background(), &cast.UpdateWorkResourceReq{
Uuid: "",
WorkUuid: detailResp.WorkUuid,
OldCoverUrl: detailResp.CoverUrl,
NewCoverUrl: mediaUrls[0],
})
}
return nil
}

View File

@ -44,45 +44,35 @@ func MediaUserList(ctx *gin.Context) {
service.Error(ctx, err)
return
}
var statResp *bundle.ArtistUploadStatsResponse
if req.NeedStats {
var statResp *bundle.ArtistUploadStatsResponse
zap.L().Info("MediaUserList 1")
//取出艺人num
var artistSubNums []string
for _, v := range resp.Data {
artistSubNums = append(artistSubNums, v.ArtistSubNum)
}
statResp, err = service.BundleProvider.GetArtistUploadStatsList(context.Background(), &bundle.TaskQueryRequest{
Keyword: "",
Page: 0,
PageSize: 0,
SortBy: "",
SortType: "",
LastTaskAssignee: "",
SubNums: artistSubNums,
})
zap.L().Info("MediaUserList 2")
if err != nil {
service.Error(ctx, err)
return
}
for _, v := range resp.Data {
for _, vv := range statResp.Items {
if v.ArtistSubNum == vv.SubNum {
info := vv
// "pendingVideoCount": 10, // 待上传视频数 "uploadedVideoCount": 25, // 已上传视频数 "releasedVideoTotal": 35, // 已释放视频总数
//"pendingPostCount": 14, // 待上传图文数 "uploadedPostCount": 21, // 已上传图文数 "releasedPostTotal": 35, // 已释放图文总数
v.PendingVideoCount = info.PendingVideoCount
v.UploadedVideoCount = info.UploadedVideoCount
v.ReleasedVideoTotal = info.ReleasedVideoTotal
v.PendingPostCount = info.PendingPostCount
v.UploadedPostCount = info.UploadedPostCount
v.ReleasedPostTotal = info.ReleasedPostTotal
}
statResp, err = service.BundleProvider.GetArtistUploadStatsList(context.Background(), &bundle.TaskQueryRequest{
Keyword: v.ArtistPhone,
Page: 0,
PageSize: 0,
SortBy: "",
SortType: "",
LastTaskAssignee: "",
SubNums: nil,
})
if err != nil {
service.Error(ctx, errors.New("查询艺人数据错误"))
return
}
if statResp != nil && len(statResp.Items) > 0 {
info := statResp.Items[0]
// "pendingVideoCount": 10, // 待上传视频数 "uploadedVideoCount": 25, // 已上传视频数 "releasedVideoTotal": 35, // 已释放视频总数
//"pendingPostCount": 14, // 待上传图文数 "uploadedPostCount": 21, // 已上传图文数 "releasedPostTotal": 35, // 已释放图文总数
v.PendingVideoCount = info.PendingVideoCount
v.UploadedVideoCount = info.UploadedVideoCount
v.ReleasedVideoTotal = info.ReleasedVideoTotal
v.PendingPostCount = info.PendingPostCount
v.UploadedPostCount = info.UploadedPostCount
v.ReleasedPostTotal = info.ReleasedPostTotal
}
}
}
zap.L().Info("MediaUserList 3")
go func() {
for _, v := range resp.Data {
_ = SyncAsAuth(v.ArtistUuid)
@ -169,7 +159,7 @@ func UpdateMediaAccount(ctx *gin.Context) {
}
if userResp != nil && len(userResp.Data) > 0 {
for _, v := range userResp.Data {
if v.PlatformID == uint32(req.PlatformID) && v.Expired == 1 {
if v.PlatformID == uint32(req.PlatformID) {
service.Error(ctx, errors.New("账号已存在"))
return
}
@ -258,10 +248,6 @@ func OAuthAccount(ctx *gin.Context) {
service.Error(ctx, errors.New("未找到该账号"))
return
}
if mediaResp.Data[0].Expired != 1 {
service.Error(ctx, errors.New("账号已过期"))
return
}
if err = SyncAsAuth(mediaResp.Data[0].ArtistUuid); err != nil {
service.Error(ctx, err)
return
@ -329,7 +315,6 @@ func OAuth2Callback(ctx *gin.Context) {
service.Error(ctx, errors.New(e.GetMsg(e.InvalidParams)))
return
}
req.State = state
zap.L().Info("OAuth2Callback", zap.Any("req", req), zap.Any("code", code), zap.Any("state", state))
_, err := service.CastProvider.OAuthCodeToToken(ctx, req)
if err != nil {
@ -386,7 +371,6 @@ func SyncAsAuth(artistUuid string) error {
InstagramDetails: true,
})
if err != nil {
zap.L().Error("SyncAsAuth error", zap.Error(err))
return errors.New("获取艺人绑定信息错误")
}
authReq := &cast.UpdateOAuthReq{Data: make([]*cast.UpdateOAuthReq_Info, 0)}
@ -413,14 +397,10 @@ func SyncAsAuth(artistUuid string) error {
if platformIDENUM == cast.PlatformIDENUM_UNKNOWN {
continue
}
asID := v.Id
if platformIDENUM == cast.PlatformIDENUM_BULESKY && asID == "" {
asID = v.Username
}
authReq.Data = append(authReq.Data, &cast.UpdateOAuthReq_Info{
ArtistUuid: artistUuid,
PlatformID: platformIDENUM,
AsID: asID,
AsID: v.Id,
PlatformUserName: v.Username,
AutInfo: string(asInfoB),
})
@ -616,7 +596,7 @@ func ImportMediaAccount(ctx *gin.Context) {
excelSetRemark(excelData, line, "艺人不存在")
continue
}
var tiktokName, insName, dmName, youtubeName, blueskyName string
var tiktokName, insName, dmName string
if len(row) >= 3 {
tiktokName = strings.TrimSpace(row[2])
}
@ -626,13 +606,7 @@ func ImportMediaAccount(ctx *gin.Context) {
if len(row) >= 5 {
dmName = strings.TrimSpace(row[4])
}
if len(row) >= 6 {
youtubeName = strings.TrimSpace(row[5])
}
if len(row) >= 7 {
blueskyName = strings.TrimSpace(row[6])
}
if tiktokName == "" && insName == "" && dmName == "" && youtubeName == "" && blueskyName == "" {
if tiktokName == "" && insName == "" && dmName == "" {
excelSetRemark(excelData, line, "请填写账号")
continue
}
@ -651,17 +625,6 @@ func ImportMediaAccount(ctx *gin.Context) {
excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", dmName, err.Error()))
}
}
if youtubeName != "" {
if err = updateMediaAccount(youtubeName, cast.PlatformIDENUM_YOUTUBE, subInfoResp, loginInfo); err != nil {
excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", youtubeName, err.Error()))
}
}
if blueskyName != "" {
if err = updateMediaAccount(blueskyName, cast.PlatformIDENUM_BULESKY, subInfoResp, loginInfo); err != nil {
excelSetRemark(excelData, line, fmt.Sprintf("%s:%s", blueskyName, err.Error()))
}
}
_ = CheckAsProfile(subInfoResp)
}
// 保存Excel文件到磁盘
resultPath := fmt.Sprintf("./runtime/media/%s", fileName)
@ -685,14 +648,14 @@ func ImportMediaAccount(ctx *gin.Context) {
// 记录需要删除的行(从后往前删除,避免行号变化)
rowsToDelete := make([]int, 0)
for line := 1; line < len(rows); line++ { // 从第2行开始跳过表头
remarkCell := fmt.Sprintf("H%d", line+1) // 备注列已移动到H列
remarkCell := fmt.Sprintf("F%d", line+1)
remark, _ := excelData.GetCellValue("Sheet1", remarkCell)
if remark == "" {
// H列没有数据,表示成功
// F列没有数据,表示成功
successCount++
rowsToDelete = append(rowsToDelete, line+1)
} else {
// H列有值,表示失败
// F列有值,表示失败
failCount++
}
}
@ -725,11 +688,11 @@ func ImportMediaAccount(ctx *gin.Context) {
func excelSetRemark(excelData *excelize.File, line int, remark string) {
zap.L().Info("设置备注", zap.Int("line", line), zap.String("remark", remark))
oldRemark, _ := excelData.GetCellValue("Sheet1", fmt.Sprintf("%s%d", "H", line+1))
oldRemark, _ := excelData.GetCellValue("Sheet1", fmt.Sprintf("%s%d", "F", line+1))
if oldRemark != "" {
remark = fmt.Sprintf("%s\n%s", oldRemark, remark)
}
excelData.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "H", line+1), remark)
excelData.SetCellValue("Sheet1", fmt.Sprintf("%s%d", "F", line+1), remark)
}
func updateMediaAccount(platformName string, platformId cast.PlatformIDENUM, subInfoResp *accountFiee.UserInfoResponse, loginInfo login.Info) error {

View File

@ -1,440 +0,0 @@
package cast
import (
"context"
"errors"
"fmt"
"fonchain-fiee/api/aryshare"
"fonchain-fiee/api/cast"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/utils"
"math/rand"
"path/filepath"
"strings"
"time"
"github.com/gin-gonic/gin"
"github.com/xuri/excelize/v2"
"go.uber.org/zap"
"google.golang.org/protobuf/types/known/emptypb"
)
// UpdateCastTag 更新话题标签
func UpdateCastTag(ctx *gin.Context) {
var req *cast.UpdateCastTagReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.UpdateCastTag(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// ListCastTags 获取话题标签列表
func ListCastTags(ctx *gin.Context) {
var req *cast.ListCastTagsReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.ListCastTags(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// ImportTagBatch 批量导入话题标签
func ImportTagBatch(ctx *gin.Context) {
// 接收form表单的Excel保存到本地进行解析
excelFile, err := ctx.FormFile("file")
if err != nil {
service.Error(ctx, err)
return
}
tempDir := "./runtime/tag"
_, err = utils.CheckDirPath(tempDir, true)
fileName := time.Now().Format("20060102150405") + "_in_tag.xlsx"
excelPath := filepath.Join(tempDir, fileName)
if err = ctx.SaveUploadedFile(excelFile, excelPath); err != nil {
service.Error(ctx, err)
return
}
// 读取Excel中的数据
excelData, err := excelize.OpenFile(excelPath)
if err != nil {
service.Error(ctx, err)
return
}
defer excelData.Close()
// 解析Excel中的数据
rows, err := excelData.GetRows("Sheet1")
if err != nil {
service.Error(ctx, err)
return
}
req := cast.UpdateCastTagBatchReq{
Data: make([]*cast.CastTagInfo, 0),
}
userInfo := login.GetUserInfoFromC(ctx)
for line, row := range rows {
if line == 0 {
continue
}
temp := cast.CastTagInfo{
CreatorUuid: fmt.Sprint(userInfo.ID),
CreatorName: userInfo.Name,
Source: 1, // 固定来源:人工导入
Status: 1, // 固定状态:有效
}
// 解析Excel列A-话题标签B-备注
if len(row) > 0 {
temp.HashTag = strings.TrimSpace(row[0])
}
if len(row) > 1 {
temp.Remark = strings.TrimSpace(row[1])
}
zap.L().Info("ImportTagBatch row", zap.Int("line", line), zap.Strings("row", row))
// 验证必填字段:话题标签不能为空
if utils.CleanString(temp.HashTag) == "" {
temp.Remark = "必填项未填"
req.Data = append(req.Data, &temp)
continue
}
req.Data = append(req.Data, &temp)
}
newCtx := NewCtxWithUserInfo(ctx)
resp, _err := service.CastProvider.UpdateCastTagBatch(newCtx, &req)
if _err != nil {
service.Error(ctx, _err)
return
}
// 打开模板 写入resp 返回的数据
templatePath := "./data/话题标签导入模板.xlsx"
template, err := excelize.OpenFile(templatePath)
if err != nil {
service.Error(ctx, err)
return
}
defer template.Close()
var urlResult string
if resp.FailCount != 0 {
rowIndex := 2 // 从第2行开始写入第1行是表头
for _, v := range resp.Data {
if v.Success {
continue
}
// 写入失败的数据到Excel模板只写入话题标签和备注两列
template.SetCellValue("Sheet1", fmt.Sprintf("A%d", rowIndex), v.HashTag)
template.SetCellValue("Sheet1", fmt.Sprintf("B%d", rowIndex), v.Remark)
rowIndex++
}
resultFilename := strings.Replace(fileName, "_in_tag.xlsx", "_out_tag.xlsx", -1)
resultPath := fmt.Sprintf("./runtime/tag/%s", resultFilename)
if err = template.SaveAs(resultPath); err != nil {
service.Error(ctx, err)
return
}
urlHost := config.AppConfig.System.FieeHost
urlResult = fmt.Sprintf("%s/api/fiee/static/tag/%s", urlHost, resultFilename)
}
service.Success(ctx, map[string]interface{}{
"successCount": resp.SuccessCount,
"failCount": resp.FailCount,
"resultUrl": urlResult,
})
return
}
// RecalculateCastTagQuoteCount 重新计算话题标签引用数量
func RecalculateCastTagQuoteCount(ctx *gin.Context) {
newCtx := NewCtxWithUserInfo(ctx)
// 创建空的请求对象
req := &emptypb.Empty{}
resp, err := service.CastProvider.RecalculateCastTagQuoteCount(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// findNewTags 对比两次标签,找出新增的标签
func findNewTags(beforeTags, afterTags []string) []string {
// 将 beforeTags 转换为 map方便查找
beforeMap := make(map[string]bool)
for _, tag := range beforeTags {
cleanTag := strings.TrimSpace(tag)
if cleanTag != "" {
beforeMap[cleanTag] = true
}
}
// 找出 afterTags 中不在 beforeTags 中的标签
newTags := make([]string, 0)
for _, tag := range afterTags {
cleanTag := strings.TrimSpace(tag)
if cleanTag != "" && !beforeMap[cleanTag] {
newTags = append(newTags, cleanTag)
}
}
return newTags
}
func GetValidProfileKey(ctx context.Context, platformIDs []uint32) (string, error) {
if len(platformIDs) == 0 {
platformIDs = []uint32{1, 2, 3, 5}
}
profileKeys, err := service.CastProvider.GetArtistAyrShareInfoByPlatformIDs(ctx, &cast.GetArtistAyrShareInfoByPlatformIDsReq{
PlatformIDs: platformIDs,
Page: 1,
PageSize: 20,
})
if err != nil {
zap.L().Error("GetArtistAyrShareInfoByPlatformIDs failed", zap.Error(err))
return "", errors.New("获取有效profileKey失败")
}
if len(profileKeys.Data) == 0 {
return "", errors.New("当前没有有效的profileKey")
}
// 过滤出所有非空的 profileKey
validProfileKeys := make([]string, 0)
for _, item := range profileKeys.Data {
if item.ProfileKey != "" {
validProfileKeys = append(validProfileKeys, item.ProfileKey)
}
}
if len(validProfileKeys) == 0 {
return "", errors.New("profileKey为空")
}
// 从有效的 profileKey 中随机选择一个
randIndex := rand.Intn(len(validProfileKeys))
return validProfileKeys[randIndex], nil
}
// SaveTagsToDatabase 将标签保存到数据库
func SaveTagsToDatabase(ctx *gin.Context, tags []string, source uint32) error {
if len(tags) == 0 {
return nil
}
// 获取用户信息
userInfo := login.GetUserInfoFromC(ctx)
newCtx := NewCtxWithUserInfo(ctx)
// 构建批量导入请求
req := cast.UpdateCastTagBatchReq{
Data: make([]*cast.CastTagInfo, 0, len(tags)),
}
for _, tag := range tags {
tagInfo := &cast.CastTagInfo{
HashTag: tag,
CreatorUuid: fmt.Sprint(userInfo.ID),
CreatorName: userInfo.Name,
Source: source, // 4: 自动标签(从内容中自动提取)
Status: 1, // 1: 有效
}
req.Data = append(req.Data, tagInfo)
}
// 调用批量导入接口
_, err := service.CastProvider.UpdateCastTagBatch(newCtx, &req)
if err != nil {
err = errors.New("标签保存到数据库失败")
zap.L().Error("SaveTagsToDatabase UpdateCastTagBatch failed", zap.Error(err))
return err
}
zap.L().Info("SaveTagsToDatabase success", zap.Int("tagCount", len(tags)), zap.Strings("tags", tags), zap.Uint32("source", source))
return nil
}
func GenerateAutoHashtags(ctx context.Context, post string, max int32, position, language string) (*aryshare.AutoHashtagsResponse, []string, bool, error) {
// 验证帖子内容
if post == "" {
return nil, nil, false, errors.New("帖子内容不能为空")
}
// post 的长度不能超过1000个字符
if len(post) > 1000 {
return nil, nil, false, errors.New("自动生成标签的帖子内容不能超过1000个字符")
}
// 提取生成前的标签
beforeTags := utils.ExtractTags(post)
zap.L().Info("GenerateAutoHashtags beforeTags", zap.Strings("beforeTags", beforeTags))
// 如果标签数量已经达到或超过5个不需要生成
if len(beforeTags) >= 5 {
return nil, nil, false, nil
}
// 设置默认值
if position == "" {
position = "end"
}
if language == "" {
language = "zh"
}
// 如果 max 为0则根据现有标签数自动计算确保总数为5
if max == 0 {
max = int32(5 - len(beforeTags))
}
// 如果此时 max 小于等于0则直接返回
if max <= 0 {
return nil, nil, false, nil
}
profileKey, err := GetValidProfileKey(ctx, []uint32{1, 2, 3, 5})
if err != nil {
return nil, nil, false, err
}
// 构建请求
req := &aryshare.AutoHashtagsRequest{
Post: post,
Max: max,
Position: position,
Language: language,
ProfileKey: profileKey,
}
// 调用 Ayrshare 的 AutoHashtags 接口
resp, err := service.AyrshareProvider.AutoHashtags(ctx, req)
if err != nil {
zap.L().Error("AutoHashtags failed", zap.Error(err))
return nil, nil, false, errors.New("自动生成标签失败")
}
if resp.Post == "" {
return nil, nil, false, errors.New("自动生成标签返回的帖子内容为空")
}
// 去掉自动标签返回的帖子内容多余的引号
resp.Post = utils.CleanAutoHashtagsQuote(resp.Post)
// 提取生成后的标签
afterTags := utils.ExtractTags(resp.Post)
zap.L().Info("GenerateAutoHashtags afterTags", zap.Strings("afterTags", afterTags))
// 对比两次标签,找出新增的标签
newTags := findNewTags(beforeTags, afterTags)
return resp, newTags, true, nil
}
// AutoHashtags 自动生成标签
func AutoHashtags(ctx *gin.Context) {
var req *aryshare.AutoHashtagsRequest
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
// 调用核心逻辑生成标签
resp, newTags, needMore, err := GenerateAutoHashtags(
context.Background(),
req.Post,
req.Max,
req.Position,
req.Language,
)
if err != nil {
service.Error(ctx, err)
return
}
// 如果标签已满5个直接返回
if !needMore {
service.Success(ctx, map[string]interface{}{
"message": "当前帖子的标签已经有5个了",
})
return
}
// 保存新增的标签到数据库Source 设置为 4自动标签
if len(newTags) > 0 {
if err = SaveTagsToDatabase(ctx, newTags, 4); err != nil {
zap.L().Error("SaveTagsToDatabase failed", zap.Error(err), zap.Strings("newTags", newTags))
err = errors.New("标签保存到数据库失败")
service.Error(ctx, err)
return
}
}
service.Success(ctx, resp)
return
}
// RecommendHashtags 推荐标签
func RecommendHashtags(ctx *gin.Context) {
var req *aryshare.RecommendHashtagsRequest
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
profileKey, err := GetValidProfileKey(context.Background(), []uint32{1})
if err != nil {
service.Error(ctx, err)
return
}
req.ProfileKey = profileKey
resp, err := service.AyrshareProvider.RecommendHashtags(context.Background(), req)
if err != nil {
fmt.Println("err", err)
zap.L().Error("RecommendHashtags failed", zap.Error(err))
err = errors.New("推荐标签失败")
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
// SearchHashtags 搜索标签
func SearchHashtags(ctx *gin.Context) {
var req *aryshare.SearchHashtagsRequest
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
profileKey, err := GetValidProfileKey(context.Background(), []uint32{3})
if err != nil {
service.Error(ctx, err)
return
}
req.ProfileKey = profileKey
resp, err := service.AyrshareProvider.SearchHashtags(context.Background(), req)
if err != nil {
fmt.Println("err", err)
err = errors.New("获取热门话题标签失败")
zap.L().Error("SearchHashtags failed", zap.Error(err))
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}

View File

@ -2,23 +2,12 @@ package cast
import (
"context"
"encoding/json"
"errors"
"fmt"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/service/upload"
"os"
"strings"
"time"
"fonchain-fiee/api/cast"
modelCast "fonchain-fiee/pkg/model/cast"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
"github.com/xuri/excelize/v2"
"go.uber.org/zap"
)
func TaskList(ctx *gin.Context) {
@ -37,164 +26,3 @@ func TaskList(ctx *gin.Context) {
}
service.Success(ctx, resp)
}
func DeleteTasK(ctx *gin.Context) {
var req *cast.DeleteTaskListReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
//loginInfo := login.GetUserInfoFromC(ctx)
//req.OperatorID = fmt.Sprint(loginInfo.ID)
resp, err := service.CastProvider.DeleteTaskList(context.Background(), req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DownloadTaskFile(ctx *gin.Context) {
var req *cast.GetTaskListReq
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.CastProvider.GetTaskList(context.Background(), req)
if err != nil {
service.Error(ctx, err)
return
}
if resp == nil || resp.Data == nil {
service.Error(ctx, errors.New("没有此任务"))
return
}
var taskInfo modelCast.PublishTaskDto
if resp.Data.ExtraData != "" {
_ = json.Unmarshal([]byte(resp.Data.ExtraData), &taskInfo)
}
exportUrl, err := PublishTaskExcel(taskInfo.WorkUuids, false, resp.Data.Action)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, gin.H{
"url": exportUrl,
})
}
func PublishTaskExcel(workUuids []string, uploadOss bool, action string) (string, error) {
// 创建Excel文件
f := excelize.NewFile()
sheetName := "Sheet1"
f.SetSheetName("Sheet1", sheetName)
// 设置表头
headers := []interface{}{
"艺人编号", "艺人姓名", "内容类型", "内容标题",
"执行结果", "TIKTOK", "YOUTUBE", "INS", "DM", "BULESKY",
}
sw, err := f.NewStreamWriter(sheetName)
if err != nil {
return "", err
}
if err = sw.SetRow("A1", headers); err != nil {
return "", err
}
// 遍历所有作品,收集数据
rowIndex := 2
for _, workUuid := range workUuids {
var workResp *cast.WorkDetailResp
workResp, err = service.CastProvider.WorkDetail(context.Background(), &cast.WorkDetailReq{WorkUuid: workUuid})
if err != nil {
continue // 如果某个作品获取失败,跳过继续处理其他作品
}
// 内容类型
contentType := ""
if workResp.WorkCategory == 1 {
contentType = "图文"
} else if workResp.WorkCategory == 2 {
contentType = "视频"
}
// 执行结果
executionResult := modelCast.WorkStatusMM[int(workResp.WorkStatus)]
tiktokStatus := ""
youtubeStatus := ""
insStatus := ""
dmStatus := ""
blueskyStatus := ""
// 获取平台信息和艺人姓名
artistName := ""
var infoResp *cast.WorkInfoResp
infoResp, err = service.CastProvider.WorkInfo(context.Background(), &cast.WorkInfoReq{WorkUuid: workUuid})
if err == nil && infoResp != nil {
artistName = infoResp.ArtistName
if infoResp.PlatformInfoData != nil {
for _, platform := range infoResp.PlatformInfoData {
statusText := modelCast.PlatformPublishStatusMM[platform.PublishMediaStatus]
switch cast.PlatformIDENUM(platform.PlatformID) {
case cast.PlatformIDENUM_TIKTOK:
tiktokStatus = statusText
case cast.PlatformIDENUM_YOUTUBE:
youtubeStatus = statusText
case cast.PlatformIDENUM_INS:
insStatus = statusText
case cast.PlatformIDENUM_DM:
dmStatus = statusText
case cast.PlatformIDENUM_BULESKY:
blueskyStatus = statusText
}
}
}
}
row := []interface{}{
workResp.ArtistSubNum,
artistName,
contentType,
workResp.Title,
executionResult,
tiktokStatus,
youtubeStatus,
insStatus,
dmStatus,
blueskyStatus,
}
cell, _ := excelize.CoordinatesToCellName(1, rowIndex)
if err = sw.SetRow(cell, row); err != nil {
continue
}
rowIndex++
}
if err = sw.Flush(); err != nil {
zap.L().Error("PublishTaskExcel Flush err", zap.Error(err))
return "", errors.New("生成Excel文件失败")
}
tempDir := "./runtime/task"
if _, err = os.Stat(tempDir); os.IsNotExist(err) {
if err = os.MkdirAll(tempDir, 0755); err != nil {
return "", err
}
}
TaskActionName, ok := modelCast.TaskActionName[action]
if !ok {
TaskActionName = "未知任务"
}
filename := fmt.Sprintf("%s_%s.xlsx", TaskActionName, time.Now().Format("20060102150405"))
filePath := tempDir + "/" + filename
var exportUrl string = fmt.Sprintf("%s/api/fiee/static/%s", config.AppConfig.System.FieeHost, strings.Replace(filePath, "./runtime/", "", 1))
if err = f.SaveAs(filePath); err != nil {
zap.L().Error("PublishTaskExcel SaveAs err", zap.Error(err))
return "", errors.New("保存Excel文件失败")
}
if uploadOss {
// 上传到阿里云
exportUrl, err = upload.PutBos(filePath, "excel", true)
if err != nil {
return "", err
}
}
return exportUrl, nil
}

View File

@ -2,13 +2,11 @@ package cast
import (
"context"
"errors"
"fmt"
"fonchain-fiee/api/aryshare"
"fonchain-fiee/api/cast"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/check"
"fonchain-fiee/pkg/utils"
"github.com/gin-gonic/gin"
@ -16,17 +14,6 @@ import (
func Test(ctx *gin.Context) {
action := ctx.PostForm("action")
if action == "" {
workUuid := ctx.PostForm("workUuid")
err := CheckImage(workUuid)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, nil)
return
}
if action == "getPost" {
id := ctx.PostForm("id")
profileKey := ctx.PostForm("profileKey")
@ -81,6 +68,19 @@ func Test(ctx *gin.Context) {
return
}
if action == "" {
profileKey := ctx.PostForm("profileKey")
resp, err := service.AyrshareProvider.GetUser(context.Background(), &aryshare.GetUserRequest{
ProfileKey: profileKey,
InstagramDetails: true,
})
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
if action == "getProfile" {
//profileKey := ctx.PostForm("profileKey")
resp, err := service.AyrshareProvider.GetProfiles(context.Background(), &aryshare.GetProfilesRequest{
@ -127,52 +127,6 @@ func Test(ctx *gin.Context) {
service.CastProvider.Tools(context.Background(), &cast.ToolsReq{Action: action})
return
}
if action == "SecurityText" {
val := ctx.PostForm("val")
ok, err := check.SecurityFile(val)
if err != nil {
service.Error(ctx, err)
return
}
if !ok {
service.Error(ctx, errors.New("标题鉴定未通过"))
return
}
service.Success(ctx, "ok")
}
if action == "SecurityFile" {
val := ctx.PostForm("val")
ok, err := check.SecurityFile(val)
if err != nil {
service.Error(ctx, err)
return
}
if !ok {
service.Error(ctx, errors.New("标题鉴定未通过"))
return
}
service.Success(ctx, "ok")
}
if action == "SyncAsAuth" {
artistUuid := ctx.PostForm("artistUuid")
err := SyncAsAuth(artistUuid)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, "ok")
}
if action == "RefreshWorkList" {
resp, err := service.CastProvider.RefreshWorkList(context.Background(), &cast.RefreshWorkListReq{PublishStatus: 1})
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
service.Success(ctx, "unknow")
return

File diff suppressed because it is too large Load Diff

View File

@ -12,7 +12,6 @@ import (
pkgSecurity "fonchain-fiee/pkg/security"
"github.com/fonchain/utils/security"
"go.uber.org/zap"
)
// ImageCheckUrlValid 图片黄疸检测 true 是通过
@ -56,10 +55,11 @@ func ImageCheckByte(file *multipart.FileHeader) (bool, error) {
}
func SecurityFile(textVal string) (bool, error) {
return true, nil
if textVal == "" {
return true, nil
}
//FIXMX
return true, nil
var fileInfo modelSecurity.FileInfo
fileInfo.FileName = textVal
fileInfo.FileUrl = textVal
@ -80,6 +80,7 @@ func SecurityFile(textVal string) (bool, error) {
return true, nil
}
func SecurityText(textVal string) (bool, error) {
//FIXMX
return true, nil
aliConfig, err := pkgSecurity.GetGlobalConfig("./data/alibabacloud.env")
if err != nil {
@ -87,8 +88,7 @@ func SecurityText(textVal string) (bool, error) {
}
err = aliConfig.GetSTSToken()
if err != nil {
zap.L().Error("获取凭证失败", zap.Error(err))
return false, errors.New("获取凭证失败")
return false, errors.New("获取图片失败")
}
if err = handleTextScan(aliConfig, textVal); err != nil {
return false, err
@ -104,7 +104,6 @@ func securityScan(fileInfo *modelSecurity.FileInfo) (err error) {
}
err = aliConfig.GetSTSToken()
if err != nil {
zap.L().Error("获取凭证失败", zap.Error(err))
return errors.New("获取凭证失败")
}
switch fileInfo.FileType {

View File

@ -4,19 +4,13 @@ import (
"context"
"errors"
"fmt"
account "fonchain-fiee/api/accountFiee"
"fonchain-fiee/api/cron"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/utils"
"log"
"os"
"path/filepath"
"strings"
"time"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/xuri/excelize/v2"
"google.golang.org/protobuf/types/known/emptypb"
)
@ -118,36 +112,20 @@ func ExportExcelExecutionResult(c *gin.Context) {
service.Error(c, errors.New("网络超时,请重试"))
return
}
userListRes, err := service.AccountFieeProvider.UserList(context.Background(), &account.UserListRequest{
Domain: "app",
})
if err != nil {
service.Error(c, errors.New("用户查询失败"))
return
}
idFindSubName := make(map[uint64]string)
for _, v := range userListRes.UserList {
idFindSubName[v.Id] = v.SubNum
}
titleList := []string{
"任务标题", "艺人编号", "艺人姓名", "内容类型", "内容标题", "执行结果", "原因", "TIKTOK", "YOUTUBE", "INS", "DM", "BULESKY",
"任务标题", "艺人编号", "艺人姓名", "内容类型", "内容标题", "执行结果", "原因",
}
var dataList []interface{}
for _, task := range res.Data {
data := []interface{}{
task.TaskTitle,
idFindSubName[uint64(task.ArtistId)],
task.ArtistId,
task.ArtistName,
task.ContentTypeDescription,
task.WorkTitle,
task.ResultDescription,
task.ResultDesc,
task.TIKTOKStatusDesc,
task.YOUTUBEStatusDesc,
task.INSStatusDesc,
task.DMStatusDesc,
task.BULESKYStatusDesc,
}
dataList = append(dataList, &data)
}
@ -227,160 +205,3 @@ func GetScheduleTaskStatus(c *gin.Context) {
}
service.Success(c, res)
}
func GetImportData(c *gin.Context) {
defer func() {
if r := recover(); r != nil {
service.Error(c, errors.New("操作失败"))
}
}()
// 导入excel
excelFile, err := c.FormFile("excel")
if err != nil {
service.Error(c, errors.New("缺少excel文件"))
return
}
// 创建临时文件
tempDir := "tmp"
if err = os.MkdirAll(tempDir, 0755); err != nil {
service.Error(c, errors.New("创建临时目录失败"))
return
}
defer os.RemoveAll(tempDir)
// 保存excel
excelPath := filepath.Join(tempDir, "excel.xlsx")
if err = c.SaveUploadedFile(excelFile, excelPath); err != nil {
service.Error(c, errors.New("保存excel文件失败"))
return
}
// 读取excel
readExcelResult, err := readExcel(excelPath)
if err != nil {
service.Error(c, fmt.Errorf("读取excel失败: %v", err))
return
}
if len(readExcelResult) == 0 {
service.Error(c, errors.New("请检查excel文件"))
return
}
//去重操作
set := make(map[string]struct{})
var uniqueExcelData []excelData
for _, data := range readExcelResult {
if _, exists := set[data.SubName]; !exists {
set[data.SubName] = struct{}{}
uniqueExcelData = append(uniqueExcelData, data)
}
}
res, err := service.AccountFieeProvider.UserList(context.Background(), &account.UserListRequest{
Domain: "app",
})
if err != nil {
service.Error(c, errors.New("用户查询失败"))
return
}
//检查subname是否正确是否存在
subNames := make(map[string]struct{}, len(res.UserList))
for _, v := range res.UserList {
subNames[v.SubNum] = struct{}{}
}
for _, v := range uniqueExcelData {
if _, ok := subNames[v.SubName]; !ok {
service.Error(c, errors.New(fmt.Sprintf("第 %d 行数据错误,请检查数据!", v.Line)))
return
}
}
//检查subname和name是否匹配
subNameFindExcelData := make(map[string]excelData, len(uniqueExcelData))
for _, v := range uniqueExcelData {
subNameFindExcelData[v.SubName] = v
}
subNameFindID := make(map[string]uint64, len(uniqueExcelData))
result := make([]excelDataResult, 0, len(uniqueExcelData))
for _, v := range res.UserList {
subNameFindID[v.SubNum] = v.Id
if subNameFindExcelData[v.SubNum].Name != v.Name && subNameFindExcelData[v.SubNum].Name != "" {
fmt.Println(subNameFindExcelData[v.SubNum], v.Name)
service.Error(c, errors.New(fmt.Sprintf("第 %d 行数据错误,请检查数据!", subNameFindExcelData[v.SubNum].Line)))
return
}
}
for _, v := range uniqueExcelData {
result = append(result, excelDataResult{
Id: subNameFindID[v.SubName],
Name: v.Name,
})
}
service.Success(c, result)
return
}
type excelData struct {
Line uint `json:"line"`
SubName string `json:"subName"`
Name string `json:"name"`
}
type excelDataResult struct {
Id uint64 `json:"id"`
Name string `json:"name"`
}
func readExcel(excelPath string) ([]excelData, error) {
//打开excel
f, err := excelize.OpenFile(excelPath)
if err != nil {
return nil, err
}
defer f.Close()
//读取第一页
sheetName := f.GetSheetName(0)
if sheetName == "" {
return nil, errors.New("excel文件中没有工作表")
}
//读取数据
rows, err := f.GetRows(sheetName)
if err != nil {
return nil, fmt.Errorf("读取工作表失败: %v", err)
}
if len(rows) <= 1 {
return nil, errors.New("excel文件没有数据行只有表头或为空")
}
var result []excelData
for i := 1; i < len(rows); i++ { // 从第2行开始跳过表头
row := rows[i]
if len(row) == 0 {
continue
}
subName := getCellValue(f, sheetName, i, 0)
name := getCellValue(f, sheetName, i, 1)
data := excelData{
Line: uint(i + 1),
SubName: subName,
Name: name,
}
result = append(result, data)
}
return result, nil
}
func getCellValue(f *excelize.File, sheetName string, rowIndex, colIndex int) string {
colName, _ := excelize.ColumnNumberToName(colIndex + 1)
cell := fmt.Sprintf("%s%d", colName, rowIndex+1)
value, err := f.GetCellValue(sheetName, cell)
if err != nil {
log.Printf("读取单元格 %s 失败: %v", cell, err)
return ""
}
return strings.TrimSpace(value)
}

View File

@ -1,38 +0,0 @@
package emailalerts
import (
"errors"
"fonchain-fiee/api/emailAlerts"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/bundle/common"
"github.com/gin-gonic/gin"
)
func EmailAlertSubmit(ctx *gin.Context) {
var req emailAlerts.EmailAlertsSubmitReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.EmailAlertsProvider.EmailAlertsSubmit(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorEmailAlertSubmitFailed))
return
}
service.Success(ctx, resp)
}
func GetEmailInformationList(ctx *gin.Context) {
var req emailAlerts.GetEmailInformationListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.EmailAlertsProvider.GetEmailInformationList(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorGetEmailInformationListFailed))
return
}
service.Success(ctx, resp)
}

View File

@ -4,7 +4,6 @@ import (
"bytes"
"context"
"errors"
"fmt"
"fonchain-fiee/api/files"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/bundle/common"
@ -103,15 +102,6 @@ func Create(ctx *gin.Context) {
}
func Delete(ctx *gin.Context) {
path := ctx.DefaultQuery("path", "/")
nowYear := time.Now().Year()
nowMonth := time.Now().Month()
nowYearPath := fmt.Sprintf("/fiee/video/%d", nowYear)
nowMonthPath := fmt.Sprintf("/fiee/video/%d/%d-%d", nowYear, nowYear, nowMonth)
if path == nowYearPath || path == nowMonthPath || path == "/fiee" || path == "/fiee/video" || path == "/fiee/video/old" {
service.Error(ctx, errors.New("无法删除该目录"))
return
}
resp, err := service.FilesProvider.Delete(ctx, &files.DeleteReq{
Path: ctx.DefaultQuery("path", "/"),
UserSpacePath: getUserSpacePath(ctx),

View File

@ -47,12 +47,7 @@ func Delete(ctx *gin.Context) {
}
func Display(ctx *gin.Context) {
var req governance.DisplayReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.GovernanceProvider.Display(ctx, &req)
resp, err := service.GovernanceProvider.Display(ctx, &governance.DisplayReq{})
if err != nil {
service.Error(ctx, errors.New(common.DisplayGovernanceFailed))
return
@ -90,34 +85,3 @@ func Edit(ctx *gin.Context) {
}
service.Success(ctx, resp)
}
func UpdataStatus(ctx *gin.Context) {
var req governance.UpdataStatusReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.GovernanceProvider.UpdataStatus(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetGovernanceInfo(ctx *gin.Context) {
var req governance.GetGovernanceInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.GovernanceProvider.GetGovernanceInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}

View File

@ -30,8 +30,6 @@ type excelData struct {
SubNum string //用户编号 必须字段
TikTok string
Instagram string
YouTube string
BlueSky string
Youtube string
Desc string //艺人简介
TitleRequire string //标题要求 必须字段
@ -180,30 +178,27 @@ func readExcel(excelPath string) ([]excelData, error) {
if subNum == "" {
return nil, fmt.Errorf("第%d行应该有编号", i+1)
}
blueSky := getCellValue(f, sheetName, i, 2)
if blueSky == "" {
return nil, fmt.Errorf("第%d行应该有bluesky账号昵称", i+1)
}
tikTok := getCellValue(f, sheetName, i, 3)
tikTok := getCellValue(f, sheetName, i, 2)
if tikTok == "" {
return nil, fmt.Errorf("第%d行应该有tiktok账号昵称", i+1)
}
instagram := getCellValue(f, sheetName, i, 4)
desc := getCellValue(f, sheetName, i, 5)
titleRequire := getCellValue(f, sheetName, i, 6)
instagram := getCellValue(f, sheetName, i, 3)
if instagram == "" {
return nil, fmt.Errorf("第%d行应该有ins账号昵称", i+1)
}
desc := getCellValue(f, sheetName, i, 4)
titleRequire := getCellValue(f, sheetName, i, 5)
if titleRequire == "" {
return nil, fmt.Errorf("第%d行应该有标题要求", i+1)
}
contentRequire := getCellValue(f, sheetName, i, 7)
contentRequire := getCellValue(f, sheetName, i, 6)
if contentRequire == "" {
return nil, fmt.Errorf("第%d行应该有内容要求", i+1)
}
photoRequire := getCellValue(f, sheetName, i, 8)
photoUrl := getCellValue(f, sheetName, i, 9)
photoNumStr := getCellValue(f, sheetName, i, 10)
photoDpi := getCellValue(f, sheetName, i, 11)
photoRequire := getCellValue(f, sheetName, i, 7)
photoUrl := getCellValue(f, sheetName, i, 8)
photoNumStr := getCellValue(f, sheetName, i, 9)
photoDpi := getCellValue(f, sheetName, i, 10)
var num int
if photoUrl == "" { //如果没有关联画作,数量必须有,需求必须有
//需求必须有
@ -225,7 +220,6 @@ func readExcel(excelPath string) ([]excelData, error) {
data := excelData{
ArtistName: artistName,
SubNum: subNum,
BlueSky: blueSky,
TikTok: tikTok,
Instagram: instagram,
Desc: desc,

View File

@ -1,7 +1,6 @@
package imports
import (
"bytes"
"context"
"errors"
"fmt"
@ -9,9 +8,6 @@ import (
apiCast "fonchain-fiee/api/cast"
"fonchain-fiee/pkg/config"
"fonchain-fiee/pkg/service"
"image"
"image/draw"
"image/jpeg"
"io"
"log"
"math/rand"
@ -297,62 +293,33 @@ func (p *BatchProcessor) submitTask(req *excelData) error {
if !tiktokFound {
return fmt.Errorf("未找到匹配的TikTok账号: %s", req.TikTok)
}
if req.Instagram != "" {
// 获取 Instagram 自媒体账号
accountListIns, err := service.CastProvider.MediaUserList(context.Background(), &apiCast.MediaUserListReq{
ArtistVal: req.ArtistName,
PlatformID: 3,
Page: 1,
PageSize: 10,
ArtistUuid: strconv.FormatUint(list.UserList[0].Id, 10),
})
if err != nil {
return fmt.Errorf("获取 Instagram 账号失败: %s", err.Error())
}
if accountListIns == nil || len(accountListIns.Data) == 0 {
return fmt.Errorf("ins自媒体账号数量为0")
}
// 查找 Instagram 账号
insFound := false
for _, user := range accountListIns.Data {
if user.PlatformUserName == req.Instagram {
req.MediaAccountNames = append(req.MediaAccountNames, user.PlatformUserName)
req.MediaAccountUuids = append(req.MediaAccountUuids, user.MediaAccountUuid)
insFound = true
break
}
}
if !insFound {
return fmt.Errorf("未找到匹配的Instagram账号: %s", req.Instagram)
}
}
// 获取 Bluesky 自媒体账号
accountListBlueSky, err := service.CastProvider.MediaUserList(context.Background(), &apiCast.MediaUserListReq{
// 获取 Instagram 自媒体账号
accountListIns, err := service.CastProvider.MediaUserList(context.Background(), &apiCast.MediaUserListReq{
ArtistVal: req.ArtistName,
PlatformID: 5, // Bluesky platform ID
PlatformID: 3,
Page: 1,
PageSize: 10,
ArtistUuid: strconv.FormatUint(list.UserList[0].Id, 10),
})
if err != nil {
return fmt.Errorf("获取 Bluesky 账号失败: %s", err.Error())
return fmt.Errorf("获取 Instagram 账号失败: %s", err.Error())
}
if accountListBlueSky == nil || len(accountListBlueSky.Data) == 0 {
return fmt.Errorf("bluesky自媒体账号数量为0")
if accountListIns == nil || len(accountListIns.Data) == 0 {
return fmt.Errorf("ins自媒体账号数量为0")
}
// 查找 Bluesky 账号
blueSkyFound := false
for _, user := range accountListBlueSky.Data {
if user.PlatformUserName == req.BlueSky {
// 查找 Instagram 账号
insFound := false
for _, user := range accountListIns.Data {
if user.PlatformUserName == req.Instagram {
req.MediaAccountNames = append(req.MediaAccountNames, user.PlatformUserName)
req.MediaAccountUuids = append(req.MediaAccountUuids, user.MediaAccountUuid)
blueSkyFound = true
insFound = true
break
}
}
if !blueSkyFound {
return fmt.Errorf("未找到匹配的Bluesky账号: %s", req.BlueSky)
if !insFound {
return fmt.Errorf("未找到匹配的Instagram账号: %s", req.Instagram)
}
switch {
@ -576,17 +543,21 @@ func downloadAndUploadToBucket(imageURL string) (string, error) {
return "", fmt.Errorf("创建临时目录失败: %v", err)
}
defer os.RemoveAll(tempDir) // 程序结束时清理整个目录
// 生成唯一文件名
rand.Seed(time.Now().UnixNano())
timestamp := time.Now().Unix()
randomNum := rand.Intn(10000)
fileName := fmt.Sprintf("%d%04d.jpg", timestamp, randomNum)
fileName := fmt.Sprintf("%d%04d.jpg", time.Now().Unix(), rand.Intn(10000))
// 构建文件路径
imgPath := filepath.Join(tempDir, fileName)
// 下载图片
// 创建文件
file, err := os.Create(imgPath)
if err != nil {
return "", fmt.Errorf("创建文件失败: %v", err)
}
defer file.Close()
log.Printf("文件创建在: %s", imgPath)
// 下载图片到文件
resp, err := http.Get(imageURL)
if err != nil {
return "", fmt.Errorf("下载图片失败: %v", err)
@ -597,62 +568,50 @@ func downloadAndUploadToBucket(imageURL string) (string, error) {
return "", fmt.Errorf("下载失败,状态码: %d", resp.StatusCode)
}
// 读取图片数据
imgData, err := io.ReadAll(resp.Body)
// 复制到文件
_, err = io.Copy(file, resp.Body)
if err != nil {
return "", fmt.Errorf("读取图片数据失败: %v", err)
return "", fmt.Errorf("保存文件失败: %v", err)
}
// 检测图片格式并转换为JPG
jpgData, err := convertToJPG(imgData)
file.Sync()
fileBytes, err := os.ReadFile(imgPath)
if err != nil {
return "", fmt.Errorf("转换图片格式失败: %v", err)
return "", fmt.Errorf("读取本地文件失败: %v", err)
}
// 保存转换后的JPG文件
if err := os.WriteFile(imgPath, jpgData, 0644); err != nil {
return "", fmt.Errorf("保存JPG文件失败: %v", err)
}
// 上传到对象存储
BOSClient, err := objstorage.NewOSS(
os.Getenv(config.ConfigData.Oss.AccessKeyId),
os.Getenv(config.ConfigData.Oss.AccessKeySecret),
os.Getenv(config.ConfigData.Oss.Endpoint),
)
if err != nil {
return "", fmt.Errorf("创建OSS客户端失败: %v", err)
}
if BOSClient == nil {
return "", fmt.Errorf("OSS客户端为空")
return "", fmt.Errorf("上传文件失败: %v", err)
}
_, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), fileName, jpgData)
_, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), fileName, fileBytes)
if err != nil {
return "", fmt.Errorf("上传文件失败: %v", err)
}
//if BOSClient == nil {
// 返回CDN URL
url := fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), fileName)
//上传到桶
//BOSClient, err := objstorage.NewOSS(
// config.ConfigData.Oss.AccessKeyId,
// config.ConfigData.Oss.AccessKeySecret,
// config.ConfigData.Oss.Endpoint,
//)
//if BOSClient == nil {
// return "", fmt.Errorf("上传文件失败: %v", err)
//}
//_, err = BOSClient.PutObjectFromBytes(config.ConfigData.Oss.BucketName, fileName, fileBytes)
//if err != nil {
// return "", fmt.Errorf("上传文件失败: %v", err)
//}
//url := fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, fileName)
return url, nil
}
//上传到桶
//BOSClient, err := objstorage.NewOSS(
// config.ConfigData.Oss.AccessKeyId,
// config.ConfigData.Oss.AccessKeySecret,
// config.ConfigData.Oss.Endpoint,
//)
//if BOSClient == nil {
// return "", fmt.Errorf("上传文件失败: %v", err)
//}
//_, err = BOSClient.PutObjectFromBytes(config.ConfigData.Oss.BucketName, fileName, fileBytes)
//if err != nil {
// return "", fmt.Errorf("上传文件失败: %v", err)
//}
//url := fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, fileName)
func (p *BatchProcessor) generateTitleAndContent(req *excelData) (string, string, error) {
if req.PhotoUrl != "" {
title, content, err := NewAiGenerator().GenerateTitleAndContentFromImage(
@ -692,7 +651,7 @@ func (p *BatchProcessor) generateImage(req *excelData) (string, error) {
prompt += "\n要求不能出现:低质量、残缺、人物正脸、多余的手指、乱码字符和文字、比例不良,场景以国内场景为主"
if req.PhotoDpi == "" {
req.PhotoDpi = "1024*1024"
req.PhotoDpi = "720*1280"
}
result, err := NewAiGenerator().TextToImage(
@ -706,33 +665,6 @@ func (p *BatchProcessor) generateImage(req *excelData) (string, error) {
return result.Output.TaskID, nil
}
// convertToJPG 将图片数据转换为JPG格式
func convertToJPG(imgData []byte) ([]byte, error) {
// 使用标准库解码
img, format, err := image.Decode(bytes.NewReader(imgData))
if err != nil {
return nil, fmt.Errorf("解码图片失败: %v", err)
}
log.Printf("检测到图片格式: %s, 尺寸: %dx%d", format, img.Bounds().Dx(), img.Bounds().Dy())
// 创建新的RGBA图片
bounds := img.Bounds()
rgba := image.NewRGBA(bounds)
// 绘制到RGBA
draw.Draw(rgba, bounds, img, bounds.Min, draw.Src)
// 编码为JPG
var buf bytes.Buffer
opts := &jpeg.Options{Quality: 90} // 设置质量为90%
if err := jpeg.Encode(&buf, rgba, opts); err != nil {
return nil, fmt.Errorf("编码JPG失败: %v", err)
}
return buf.Bytes(), nil
}
//func (p *BatchProcessor) StartPolling() {
// go func() {
// ticker := time.NewTicker(p.pollInterval) // 1秒间隔

View File

@ -58,7 +58,6 @@ func publishImage(req publishImageReq) (err error) {
//---------------------------------------------------发布
_, err = service.CastProvider.UpdateWorkImage(context.Background(), &apiCast.UpdateWorkImageReq{
ArtistSubNum: list.UserList[0].SubNum,
Title: req.Title,
Content: req.Content,
Images: req.GeneratePhotoUrl,

View File

@ -8,16 +8,12 @@ import (
"fonchain-fiee/api/bundle"
"fonchain-fiee/api/cast"
"fonchain-fiee/api/cron"
"fonchain-fiee/api/emailAlerts"
"fonchain-fiee/api/files"
"fonchain-fiee/api/governance"
"fonchain-fiee/api/members"
"fonchain-fiee/api/order"
"fonchain-fiee/api/payment"
"fonchain-fiee/api/pressreleases"
"fonchain-fiee/api/reports"
"fonchain-fiee/api/secFilings"
"fonchain-fiee/api/supplier"
pkConfig "fonchain-fiee/pkg/config"
"os"
@ -39,10 +35,6 @@ var PressReleasesProvider = new(pressreleases.PressReleasesClientImpl)
var SecFilingProvider = new(secFilings.SecFilingsClientImpl)
var AyrshareProvider = new(aryshare.AyrshareClientImpl)
var CronProvider = new(cron.CronClientImpl)
var SupplierProvider = new(supplier.SupplierClientImpl)
var ReportsProvider = new(reports.ReportsClientImpl)
var EmailAlertsProvider = new(emailAlerts.EmailAlertsClientImpl)
var MembersProvider = new(members.MembersClientImpl)
func init() {
config.SetConsumerService(BundleProvider)
@ -57,10 +49,6 @@ func init() {
config.SetConsumerService(SecFilingProvider)
config.SetConsumerService(AyrshareProvider)
config.SetConsumerService(CronProvider)
config.SetConsumerService(SupplierProvider)
config.SetConsumerService(ReportsProvider)
config.SetConsumerService(EmailAlertsProvider)
config.SetConsumerService(MembersProvider)
if err := config.Load(); err != nil {
panic(err)

View File

@ -1,319 +0,0 @@
package members
import (
"fonchain-fiee/api/members"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
)
// =======================成员管理==============================
func AddManagement(ctx *gin.Context) {
var req members.AddManagementReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.AddManagement(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetManagementList(ctx *gin.Context) {
var req members.GetManagementListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetManagementList(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetManagementInfo(ctx *gin.Context) {
var req members.GetManagementInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetManagementInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DeleteManagement(ctx *gin.Context) {
var req members.DeleteManagementReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DeleteManagement(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func UpdataManagement(ctx *gin.Context) {
var req members.SortAndStatusManagementReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.SortAndStatusManagement(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func EditManagement(ctx *gin.Context) {
var req members.EditManagementReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.EditManagement(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DisplayManagement(ctx *gin.Context) {
var req members.DisplayManagementReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DisplayManagement(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
// ======================董事会管理===========================
func AddBoardOfDirectors(ctx *gin.Context) {
var req members.AddBoardOfDirectorsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.AddBoardOfDirectors(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetBoardOfDirectorsList(ctx *gin.Context) {
var req members.GetBoardOfDirectorsListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetBoardOfDirectorsList(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetBoardOfDirectorsInfo(ctx *gin.Context) {
var req members.GetBoardOfDirectorsInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetBoardOfDirectorsInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DeleteBoardOfDirectors(ctx *gin.Context) {
var req members.DeleteBoardOfDirectorsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DeleteBoardOfDirectors(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func UpdataBoardOfDirectors(ctx *gin.Context) {
var req members.SortAndStatusBoardOfDirectorsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.SortAndStatusBoardOfDirectors(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func EditBoardOfDirectors(ctx *gin.Context) {
var req members.EditBoardOfDirectorsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.EditBoardOfDirectors(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DisplayBoardOfDirectors(ctx *gin.Context) {
var req members.DisplayBoardOfDirectorsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DisplayBoardOfDirectors(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
// ======================委员会任命管理===========================
func AddCommitteeAppointments(ctx *gin.Context) {
var req members.AddCommitteeAppointmentsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.AddCommitteeAppointments(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetCommitteeAppointmentsList(ctx *gin.Context) {
var req members.GetCommitteeAppointmentsListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetCommitteeAppointmentsList(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func GetCommitteeAppointmentsInfo(ctx *gin.Context) {
var req members.GetCommitteeAppointmentsInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.GetCommitteeAppointmentsInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DeleteCommitteeAppointments(ctx *gin.Context) {
var req members.DeleteCommitteeAppointmentsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DeleteCommitteeAppointments(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func UpdataCommitteeAppointments(ctx *gin.Context) {
var req members.SortAndStatusCommitteeAppointmentsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.SortAndStatusCommitteeAppointments(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func EditCommitteeAppointments(ctx *gin.Context) {
var req members.EditCommitteeAppointmentsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.MembersProvider.EditCommitteeAppointments(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func DisplayCommitteeAppointments(ctx *gin.Context) {
var req members.DisplayCommitteeAppointmentsReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.MembersProvider.DisplayCommitteeAppointments(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}

View File

@ -2,6 +2,7 @@ package pressreleases
import (
"errors"
"strconv"
"github.com/gin-gonic/gin"
@ -48,10 +49,6 @@ func Display(ctx *gin.Context) {
service.Error(ctx, err)
return
}
if req.LangType == "" {
service.Error(ctx, errors.New("语言类型为空"))
return
}
resp, err := service.PressReleasesProvider.Display(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ListPressReleasesFailed))
@ -60,34 +57,6 @@ func Display(ctx *gin.Context) {
service.Success(ctx, resp)
}
func SortAndStatus(ctx *gin.Context) {
var req pressreleases.SortAndStatusReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.PressReleasesProvider.SortAndStatus(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func Info(ctx *gin.Context) {
var req pressreleases.InfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.PressReleasesProvider.Info(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func List(ctx *gin.Context) {
var req pressreleases.ListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
@ -120,20 +89,14 @@ func Edit(ctx *gin.Context) {
}
func Get(ctx *gin.Context) {
var req pressreleases.GetReq
uuid := ctx.Query("uuid")
if uuid == "" {
service.Error(ctx, errors.New("uuid 参数不能为空"))
id, err := strconv.Atoi(ctx.Query("id"))
if err != nil {
service.Error(ctx, err)
return
}
langType := ctx.Query("langType")
if langType == "" {
service.Error(ctx, errors.New("langType 参数不能为空"))
return
}
req.Uuid = uuid
req.LangType = langType
resp, err := service.PressReleasesProvider.Get(ctx, &req)
resp, err := service.PressReleasesProvider.Get(ctx, &pressreleases.GetReq{
Id: int64(id),
})
if err != nil {
service.Error(ctx, errors.New(common.GetPressReleasesFailed))
return

View File

@ -1,132 +0,0 @@
package reports
import (
"errors"
"fonchain-fiee/api/reports"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/bundle/common"
"github.com/gin-gonic/gin"
)
func AnnualReportCreate(ctx *gin.Context) {
var req reports.AddAnnualReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.ReportsProvider.AddAnnualReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorCreateReportFailed))
return
}
service.Success(ctx, resp)
}
// 修改年度报告排序和状态
func AnnualReportSortAndStatus(ctx *gin.Context) {
var req reports.SortAndStatusAnnualReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.SortAndStatusAnnualReport(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
// 获取年度报告信息
func AnnualReportInfo(ctx *gin.Context) {
var req reports.GetAnnualReportInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.GetAnnualReportInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
// 获取年度报告列表
func AnnualReportList(ctx *gin.Context) {
var req reports.GetAnnualReportListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.GetAnnualReportList(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorListReportFailed))
return
}
service.Success(ctx, resp)
}
func AnnualReportDelete(ctx *gin.Context) {
var req reports.DeleteAnnualReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.DeleteAnnualReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorDeleteReportFailed))
return
}
service.Success(ctx, resp)
}
func AnnualReportEdit(ctx *gin.Context) {
var req reports.EditAnnualReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.ReportsProvider.EditAnnualReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorEditReportFailed))
return
}
service.Success(ctx, resp)
}
func AnnualReportDisplay(ctx *gin.Context) {
var req reports.DisplayAnnualReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.DisplayAnnualReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorDisplayReportFailed))
return
}
service.Success(ctx, resp)
}
func QuarterlyReportDisplay(ctx *gin.Context) {
var req reports.DisplayQuarterlyReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.DisplayQuarterlyReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorDisplayReportFailed))
return
}
service.Success(ctx, resp)
}

View File

@ -1,103 +0,0 @@
package reports
import (
"errors"
"fonchain-fiee/api/reports"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/bundle/common"
"github.com/gin-gonic/gin"
)
func QuarterlyReportCreate(ctx *gin.Context) {
var req reports.AddQuarterlyReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.ReportsProvider.AddQuarterlyReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorCreateReportFailed))
return
}
service.Success(ctx, resp)
}
// 修改季度报告排序和状态
func QuarterlyReportSortAndStatus(ctx *gin.Context) {
var req reports.SortAndStatusQuarterlyReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.SortAndStatusQuarterlyReport(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
// 获取季度报告信息
func QuarterlyReportInfo(ctx *gin.Context) {
var req reports.GetQuarterlyReportInfoReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.GetQuarterlyReportInfo(ctx, &req)
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
}
func QuarterlyReportList(ctx *gin.Context) {
var req reports.GetQuarterlyReportListReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.GetQuarterlyReportList(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorListReportFailed))
return
}
service.Success(ctx, resp)
}
func QuarterlyReportDelete(ctx *gin.Context) {
var req reports.DeleteQuarterlyReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
resp, err := service.ReportsProvider.DeleteQuarterlyReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorDeleteReportFailed))
return
}
service.Success(ctx, resp)
}
func QuarterlyReportEdit(ctx *gin.Context) {
var req reports.EditQuarterlyReportReq
if err := ctx.ShouldBindJSON(&req); err != nil {
service.Error(ctx, err)
return
}
user := login.GetUserInfoFromC(ctx)
req.Operator = user.Name
req.OperatorId = int32(user.ID)
resp, err := service.ReportsProvider.EditQuarterlyReport(ctx, &req)
if err != nil {
service.Error(ctx, errors.New(common.ErrorEditReportFailed))
return
}
service.Success(ctx, resp)
}

View File

@ -1,394 +0,0 @@
package supplier
import (
"errors"
"fmt"
"fonchain-fiee/api/supplier"
"fonchain-fiee/pkg/logic"
"fonchain-fiee/pkg/model/login"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/service/upload"
"fonchain-fiee/pkg/utils"
"fonchain-fiee/pkg/utils/excel"
"os"
"time"
"github.com/gin-gonic/gin"
"github.com/gin-gonic/gin/binding"
"github.com/google/uuid"
)
func GetSupplier(c *gin.Context) {
req := &supplier.GetSupplierRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.GetSupplier(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func CreateSupplier(c *gin.Context) {
req := &supplier.CreateSupplierRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.CreateSupplier(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func UpdateSupplier(c *gin.Context) {
req := &supplier.UpdateSupplierRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
info, err := service.SupplierProvider.GetSupplier(c, &supplier.GetSupplierRequest{Id: req.Id})
if err != nil {
service.Error(c, err)
return
}
if info.Status == 3 {
service.Error(c, errors.New("审核中不可修改")) //todo 修改:审核中并且存在审核人 不可修改
return
}
if req.Status != 1 && req.Status != 2 {
service.Error(c, errors.New("审批状态错误")) //todo 只允许前端暂存或提交审核申请
}
res, err := service.SupplierProvider.UpdateSupplier(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func GetSupplierList(c *gin.Context) {
req := &supplier.GetSupplierListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.GetSupplierList(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func CreateOrganizeDictionary(c *gin.Context) {
req := &supplier.CreateOrganizeDictionaryRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.CreateOrganizeDictionary(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func GetOrganizeDictionaryList(c *gin.Context) {
req := &supplier.GetOrganizeDictionaryListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.GetOrganizeDictionaryList(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func GetCountryRegionList(c *gin.Context) {
req := &supplier.GetCountryRegionListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.GetCountryRegionList(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func CreateImportRecord(c *gin.Context) {
file, err := c.FormFile("file")
if err != nil {
service.Error(c, err)
}
safeFilename := fmt.Sprintf("%d", time.Now().Unix()) + "_" + file.Filename
userInfo := login.GetUserInfoFromC(c)
fileDir := fmt.Sprintf("/fiee/supplier/%s/%s_%s", time.Now().Format("2006-01-02"), userInfo.Name, safeFilename)
// 保存上传的文件到本地
if err = c.SaveUploadedFile(file, safeFilename); err != nil {
service.Error(c, err)
return
}
defer func() {
if err := os.Remove(safeFilename); err != nil {
// 处理删除文件失败的情况
fmt.Println("Failed to delete file:", err)
}
}()
inputUrl, err := upload.PutBosWithName(safeFilename, false, fileDir)
if err != nil {
service.Error(c, err)
return
}
supplierList, err := logic.ImportSupplier(safeFilename)
if err != nil {
service.Error(c, err)
return
}
if len(supplierList) == 0 {
service.Error(c, errors.New("导入数据为空"))
return
}
uuid, _ := uuid.NewUUID()
var SuccessNum uint64
var SupplierCodes []string
var ErrSupplierRes []*logic.ErrSupplierRes
for idx, i := range supplierList {
rowNum := idx + 1
if i.OwningEntityName == "" || i.LegalName == "" || i.CountryOrRegionName == "" || i.CompanyRegistrationNumber == "" || i.SupplierType == "" || i.ApprovalStatus == "" || i.ConnectedParty == "" {
ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{
ID: rowNum,
LegalName: i.LegalName,
Remark: "必填项存在空值",
})
continue
}
OwningEntityRes, _ := service.SupplierProvider.GetOrganizeDictionaryInfo(c, &supplier.CreateOrganizeDictionaryRequest{Name: i.OwningEntityName})
if OwningEntityRes == nil || OwningEntityRes.Id == 0 {
ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{
ID: rowNum,
LegalName: i.LegalName,
Remark: "所属组织不存在",
})
continue
}
countryRegionRes, _ := service.SupplierProvider.GetCountryRegionInfo(c, &supplier.GetCountryRegionInfoRequest{ZhAndCode: i.CountryOrRegionName})
if countryRegionRes == nil || countryRegionRes.Id == 0 {
ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{
ID: rowNum,
LegalName: i.LegalName,
Remark: "所属国家或地区不存在",
})
continue
}
var LastReviewDate string
if i.ApprovalDate != "" {
t, err := time.Parse("2006-01-02", i.ApprovalDate)
if err != nil {
LastReviewDate = ""
i.ApprovalDate = ""
} else {
LastReviewDate = t.AddDate(1, 0, 0).Format("2006-01-02")
}
}
createRes, err := service.SupplierProvider.CreateSupplier(c, &supplier.CreateSupplierRequest{
OwningEntityId: OwningEntityRes.Id,
LegalName: i.LegalName,
LocalName: i.LocalName,
AbbreviationName: i.AbbreviationName,
CountryOrRegionId: countryRegionRes.Id,
CompanyRegistrationNumber: i.CompanyRegistrationNumber,
SupplierType: i.SupplierType,
ApprovalStatus: i.ApprovalStatus,
ApprovalDate: i.ApprovalDate,
LastReviewDate: LastReviewDate,
LegalEntityType: i.LegalEntityType,
SanctionsCountryScreeningResult: i.SanctionsCountryScreeningResult,
KeyFinancial: i.KeyFinancial,
CompanyAddress: i.CompanyAddress,
PrimaryContact: i.PrimaryContact,
DataOwnerDepartment: i.DataOwnerDepartment,
BasicCompanyInformation: i.BasicCompanyInformation,
SupplementaryText: i.SupplementaryText,
Status: 1,
ConnectedParty: i.ConnectedParty,
})
if err != nil {
ErrSupplierRes = append(ErrSupplierRes, &logic.ErrSupplierRes{
ID: rowNum,
LegalName: i.LegalName,
Remark: err.Error(),
})
continue
} else {
SupplierCodes = append(SupplierCodes, createRes.SupplierCode)
SuccessNum++
}
}
status := 2
outUrl := ""
if len(ErrSupplierRes) == 0 {
status = 1
} else {
var sheet1Columns = []string{"行数", "供应商法定全称", "错误信息"}
var sheet1 = excel.NewSheet("Sheet1", ErrSupplierRes, sheet1Columns)
ex, err := excel.NewExcelCreatorFromTemplate("./mistake.xlsx", "./supplier/excel/", "", sheet1)
ex.UseOption(excel.OptionFileNameSuffixWithUnixTime)
path, _, err := ex.WriteToFile()
outUrl, err = upload.PutBos(path, "", false)
if err != nil {
service.Error(c, err)
return
}
defer func() {
os.RemoveAll("./supplier")
}()
}
req := &supplier.CreateImportRecordRequest{
SupplierCodes: SupplierCodes,
Status: uint64(status),
UserId: userInfo.ID,
ToLeadUrl: inputUrl,
DeriveUrl: outUrl,
Uuid: uuid.String(),
SuccessNum: SuccessNum,
FailNum: uint64(len(ErrSupplierRes)),
}
_, err = service.SupplierProvider.CreateImportRecord(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, req)
return
}
func GetImportRecordInfo(c *gin.Context) {
req := &supplier.GetImportRecordRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
res, err := service.SupplierProvider.GetImportRecordInfo(c, req)
if err != nil {
service.Error(c, err)
return
}
service.Success(c, res)
return
}
func GetExportList(c *gin.Context) {
req := &supplier.GetSupplierListRequest{}
if err := c.ShouldBindBodyWith(&req, binding.JSON); err != nil {
service.Error(c, err)
return
}
infoRes, err := service.SupplierProvider.GetSupplierList(c, req)
if err != nil {
service.Error(c, err)
return
}
// 定义标题列表
titleList := []string{
"状态/State", "使用组织/Owning Entity", "供应商唯一编码/SupplierUnique Code", "供应商法定全称(英文)/LegalName (English)", "供应商本地名称(如有)/LocalName (if applicable)",
"所在国家或地区/Country or Region", "公司注册编号/Company RegistrationNumber", "供应商类型/Supplier Type", "*是否关联方/Connected party", "准入状态/Approval Status", "准入日期/ApprovalDate",
"法律实体形式/Legal Entity Type", "制裁与高风险国家筛查结果/Sanctions & High-RiskCountry Screening Result", "关键财务与付款信息/Key Financial & Payment Information",
"公司地址/Company Address", "主要联系人、职位及联系方式/Primary Contact,Position&Details", "数据维护部门&人员/Data Owner Department/Personnel", "最后更新日期/Last Updated Date",
"公司信息概要/Summary of Basic Company Information",
}
// 定义数据结构
type DataInfo struct {
Status string
OwningEntity string
SupplierUniqueCode string
LegalName string
LocalName string
CountryOrRegion string
CompanyRegistrationNumber string
SupplierType string
ConnectedParty string
ApprovalStatus string
ApprovalDate string
LegalEntityType string
SanctionsCountryScreeningResult string
KeyFinancial string
CompanyAddress string
PrimaryContact string
DataOwnerDepartment string
UpdatedAt string
BasicCompanyInformation string
}
// 创建员工ID到DataInfo的映射
dataMap := make(map[string]*DataInfo)
statusMap := map[uint64]string{
1: "草稿",
2: "审核中",
3: "已驳回",
4: "已成功",
}
for _, info := range infoRes.Data {
dataMap[info.SupplierUniqueCode] = &DataInfo{
Status: statusMap[info.Status],
OwningEntity: info.OwningEntityName,
SupplierUniqueCode: info.SupplierUniqueCode,
LegalName: info.LegalName,
LocalName: info.LocalName,
CountryOrRegion: info.CountryOrRegionCode,
CompanyRegistrationNumber: info.CompanyRegistrationNumber,
SupplierType: info.SupplierType,
ConnectedParty: info.ConnectedParty,
ApprovalStatus: info.ApprovalStatus,
ApprovalDate: info.ApprovalDate,
LegalEntityType: info.LegalEntityType,
SanctionsCountryScreeningResult: info.SanctionsCountryScreeningResult,
KeyFinancial: info.KeyFinancial,
CompanyAddress: info.CompanyAddress,
PrimaryContact: info.PrimaryContact,
DataOwnerDepartment: info.DataOwnerDepartment,
UpdatedAt: info.UpdatedAt,
BasicCompanyInformation: info.BasicCompanyInformation,
}
}
// 生成最终数据列表
var dataList []interface{}
for _, data := range dataMap {
dataList = append(dataList, &[]any{
data.Status, data.OwningEntity, data.SupplierUniqueCode, data.LegalName, data.LocalName,
data.CountryOrRegion, data.CompanyRegistrationNumber, data.SupplierType, data.ConnectedParty, data.ApprovalStatus, data.ApprovalDate,
data.LegalEntityType, data.SanctionsCountryScreeningResult, data.KeyFinancial, data.CompanyAddress, data.PrimaryContact,
data.DataOwnerDepartment, data.UpdatedAt, data.BasicCompanyInformation,
})
}
// 生成Excel文件
content, err := utils.ToExcelByType(titleList, dataList, "slice", "")
if err != nil {
service.Error(c, err)
return
}
// 返回Excel文件
utils.ResponseXls(c, content, "供应商库")
return
}

View File

@ -376,11 +376,6 @@ func UpdateWorkImageWithTaskUUID(ctx *gin.Context) {
service.Error(ctx, errors.New("任务已中止,不能上传图文"))
return
}
resp, err := castService.UpdateWorkImageCore(ctx, req.UpdateWorkImageReq)
if err != nil {
service.Error(ctx, err)
return
}
if config.AppConfig.System.AppMode != "dev" {
artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{
@ -398,6 +393,21 @@ func UpdateWorkImageWithTaskUUID(ctx *gin.Context) {
TelAreaCode: "86",
}
}
req.ArtistName = infoResp.Name
req.ArtistPhone = infoResp.TelNum
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
// artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
// if _, err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil {
// service.Error(ctx, err)
// return
// }
newCtx := castService.NewCtxWithUserInfo(ctx)
req.Source = 1
resp, err := service.CastProvider.UpdateWorkImage(newCtx, req.UpdateWorkImageReq)
if err != nil {
service.Error(ctx, err)
return
}
// EmployeeName 和 EmployeeNum 从 toekn 里面拿
userInfo := login.GetUserInfoFromC(ctx)
// 调用员工实际任务状态更新
@ -464,11 +474,6 @@ func UpdateWorkVideoWithUUID(ctx *gin.Context) {
service.Error(ctx, errors.New("任务已中止,不能上传视频"))
return
}
resp, err := castService.UpdateWorkVideoCore(ctx, req.UpdateWorkVideoReq)
if err != nil {
service.Error(ctx, err)
return
}
if config.AppConfig.System.AppMode != "dev" {
artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{
@ -486,6 +491,21 @@ func UpdateWorkVideoWithUUID(ctx *gin.Context) {
TelAreaCode: "86",
}
}
// artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
// if _, err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil {
// service.Error(ctx, err)
// return
// }
req.ArtistName = infoResp.Name
req.ArtistPhone = infoResp.TelNum
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
newCtx := castService.NewCtxWithUserInfo(ctx)
req.Source = 1
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req.UpdateWorkVideoReq)
if err != nil {
service.Error(ctx, err)
return
}
// EmployeeName 和 EmployeeNum 从 toekn 里面拿
userInfo := login.GetUserInfoFromC(ctx)
// 调用员工实际任务状态更新

View File

@ -12,15 +12,14 @@ import (
"fonchain-fiee/pkg/model"
"fonchain-fiee/pkg/service"
"fonchain-fiee/pkg/utils"
"io"
cmdConf "fonchain-fiee/cmd/config"
"github.com/disintegration/imaging"
"github.com/fonchain_enterprise/utils/objstorage"
"github.com/gin-gonic/gin"
uuid "github.com/satori/go.uuid"
"io"
ffmpeg "github.com/u2takey/ffmpeg-go"
"go.uber.org/zap"
"io/ioutil"
"mime/multipart"
"net/url"
@ -29,9 +28,6 @@ import (
"path/filepath"
"strconv"
"strings"
ffmpeg "github.com/u2takey/ffmpeg-go"
"go.uber.org/zap"
)
const (
@ -220,7 +216,7 @@ func quickBos(file *multipart.FileHeader, mediaType string, mask string, source
return
}
}
var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, filePath)
var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, config.Env, filePath)
BOSClient, _ := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
_, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes)
if err != nil {
@ -294,7 +290,7 @@ func PutBos(filePath string, mediaType string, needRemove bool) (url string, err
}
}
filePath = strings.Replace(filePath, model.MediaPath, "", 1)
var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, filePath)
var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath)
_, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes)
if err != nil {
fmt.Println("=== PutBos PutObject err ", err)
@ -351,30 +347,3 @@ func getEnvDir(cloudStoreSubPath string) (ep string) {
ep, _ = url.JoinPath("fiee", cloudStoreSubPath)
return ep
}
func PutBosWithName(filePath string, needRemove bool, ossPath string) (url string, err error) {
BOSClient, err := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
//BOSClient, err := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint)
if err != nil {
//logger.Errorf("PutBosWithName err1 ", err)
err = errors.New(e.GetMsg(e.ErrorUploadBos))
return
}
if ossPath == "" {
ossPath = filePath[1:]
}
var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, cmdConf.AppConfig.System.AppMode, ossPath)
_, err = BOSClient.PutObject(os.Getenv(config.ConfigData.Oss.BucketName), objectName, filePath)
//_, err = BOSClient.PutObject(config.ConfigData.Oss.BucketName, objectName, filePath)
if err != nil {
//logger.Errorf("PutBosWithName err2 ", err)
err = errors.New(e.GetMsg(e.ErrorUploadBos))
return
}
//删除本地文件
if needRemove {
_ = os.Remove(filePath)
}
url = fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), objectName)
//url = fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, objectName)
return
}

View File

@ -1,381 +0,0 @@
// Package excel -----------------------------
// @file : templateInter.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2022/7/23 15:34
// -------------------------------------------
package excel
import (
"bytes"
"errors"
"fmt"
"io"
"log"
"os"
"path/filepath"
"reflect"
"sync"
"github.com/tealeg/xlsx"
"github.com/xuri/excelize/v2"
)
var (
ErrSheetNotExist = errors.New("sheet does not exist")
ErrSheetDataFormatNotSupport = errors.New("sheet data format not support")
//ErrSheetNameNotInTemplate = errors.New("sheet name not in emailTemplate")
)
// ======================================================================================================================
//
// Sheet define
type HeaderRow struct {
RowNum int //行号
Values []string
}
// 抽象工作簿
type Sheet interface {
GetData() any //数据支持struct、[]struct、[]*struct三种类型
SheetName() string //表名称
SheetHeaders() []string //表头名称,没有则跳过插入表头的步骤
GetJsonFiledList() []string //指定字段的排列顺序,默认按照结构体中的顺序排列(表头与数据没有关联,使用这个指定字段插入顺序)
}
// 实例化工作簿,使用模板生成excel的话用这个
func NewTemplateSheet(sheetName string, datas any) Sheet {
return &newSheetDefine{
Datas: datas,
Name: sheetName,
}
}
// 实例化工作簿不通过模板生成excel的话用这个
func NewSheet(sheetName string, datas any, headers []string, jsonFiledList ...[]string) Sheet {
st := &newSheetDefine{
Datas: datas,
Name: sheetName,
Headers: headers,
}
if jsonFiledList != nil {
st.JsonFiledList = jsonFiledList[0]
}
return st
}
// 定义一个能够通用的工作簿结构此结构必须遵循Sheet接口规范
type newSheetDefine struct {
Datas any
Name string
Headers []string
JsonFiledList []string
}
func (s *newSheetDefine) GetData() any {
return s.Datas
}
func (s *newSheetDefine) SheetName() string {
return s.Name
}
func (s *newSheetDefine) SheetHeaders() []string {
return s.Headers
}
func (s *newSheetDefine) GetJsonFiledList() []string {
return s.JsonFiledList
}
//======================================================================================================================
// Sheet define
// WriteToExcel 通过模板文件写入数据并另存为
// param fileName : 文件名
// param filesSuffix : 文件后缀名生成函数
// param fileRoot : 导出目录
// param templatePath : 模板文件路径
// param sheets : Sheet类型的数据类型为[]Sheet
// return path : 文件路径
// return exfileName : 导出后的文件名
// return err
func WriteToExcel(fileName string, fileRoot string, templatePath string, sheets ...Sheet) (path string, exFileName string, err error) {
var exc *Excel
exc, err = NewExcelCreatorFromTemplate(fileName, fileRoot, templatePath, sheets...)
if err != nil {
return
}
exc.UseOption(OptionFileNameSuffixWithUnixTime)
return exc.WriteToFile()
}
// ReadDataFromExcel 从excel文件读取数据
func ReadDataFromExcel(filepath string, sheetName string, handler func(rowIndex int, rows []string)) error {
ex := Excel{OriginFilePath: filepath}
return ex.ReadSheetData(sheetName, handler)
}
// ReadDataFromBytes 从io口读取数据用户http上传的附件
func ReadDataFromBytes(file io.Reader, sheetName string, handler func(rowIndex int, row []string)) error {
exce, err := excelize.OpenReader(file)
if err != nil {
return err
}
var ex = Excel{ex: exce}
return ex.ReadSheetData(sheetName, handler)
}
// 读取模板并创建工作表生成器
func NewExcelCreatorFromTemplate(fileName string, fileRoot string, templatePath string, sheets ...Sheet) (exc *Excel, err error) {
exc = &Excel{
SaveRoot: fileRoot,
SaveName: fileName,
OriginFilePath: templatePath,
rwLock: sync.RWMutex{},
}
if sheets != nil {
err = exc.AddSheets(sheets...)
if err != nil {
return
}
}
return exc, nil
}
// 新建文件并创建工作表生成器
func NewExcelCreatorWithNewFile(fileName string, fileRoot string, sheets ...Sheet) (exc *Excel, err error) {
return NewExcelCreatorFromTemplate(fileName, fileRoot, "", sheets...)
}
type Excel struct {
ex *excelize.File
SaveRoot string
SaveName string
OriginFilePath string
Sheets map[string]Sheet
rwLock sync.RWMutex
Opts []Option
After []Option
}
// UseOption 使用可选项
func (s *Excel) UseOption(opts ...Option) {
if opts != nil {
s.Opts = append(s.Opts, opts...)
}
}
func (s *Excel) AfterAddData(after ...Option) {
if after != nil {
s.After = append(s.After, after...)
}
}
// 添加工作簿
// 注意如果添加相同的工作簿,之前的会被覆盖
func (s *Excel) AddSheets(sheets ...Sheet) (err error) {
if s.Sheets == nil {
s.Sheets = make(map[string]Sheet, 0)
}
for _, sheet := range sheets {
var sheetName = sheet.SheetName()
s.Sheets[sheetName] = sheet
}
return
}
// 删除工作簿
func (s *Excel) DeleteSheets(sheetName string) error {
if s.Sheets == nil {
return nil
} else if s.Sheets[sheetName] != nil {
delete(s.Sheets, sheetName)
} else {
return ErrSheetNotExist
}
return nil
}
// 读取工作簿
func (s *Excel) ReadSheetData(sheetName string, handler func(rowIndex int, row []string)) (err error) {
if s.ex == nil {
s.ex, err = excelize.OpenFile(s.OriginFilePath)
if err != nil {
return
}
}
datas, err := s.ex.GetRows(sheetName)
for i, row := range datas {
handler(i, row)
}
return nil
}
// 写入到文件
func (s *Excel) WriteToFile() (path string, fileName string, err error) {
if s.ex == nil {
if s.OriginFilePath == "" {
s.ex = excelize.NewFile()
} else {
s.ex, err = excelize.OpenFile(s.OriginFilePath)
if err != nil {
return
}
}
}
if s.Opts != nil {
for _, opt := range s.Opts {
opt(s)
}
}
//插入数据
for sheetName, st := range s.Sheets {
//添加表头,没有定义则不插入
if st.SheetHeaders() != nil {
for i, c := range st.SheetHeaders() {
err = s.ex.SetCellValue(sheetName, GetCellIndex(1, i+1), c)
if err != nil {
fmt.Println(err.Error())
return
}
}
headerStyleID, errs := s.ex.NewStyle(NewDefaultHeaderStyle())
if errs != nil {
fmt.Println(errs)
err = errs
return
}
//表头设置为默认样式,边框加粗、字体加粗
if err = s.ex.SetCellStyle(st.SheetName(), "A1", GetCellIndex(1, len(st.SheetHeaders())), headerStyleID); err != nil {
return
}
}
//添加数据
var firstRow = s.getFirstEmptyRowIndex(s.ex, sheetName)
var SheetData = reflect.ValueOf(st.GetData())
var SheetType = reflect.TypeOf(st.GetData())
writerFunc, exists := writerMap[SheetData.Kind()]
if exists {
err = writerFunc(s, st, SheetData, SheetType, firstRow)
} else {
return "", "", ErrSheetDataFormatNotSupport
}
}
if s.After != nil {
for _, after := range s.After {
after(s)
}
}
//检测并生成目录
_ = os.MkdirAll(s.SaveRoot, os.ModePerm)
//保存
path = filepath.ToSlash(filepath.Join(s.SaveRoot, s.SaveName))
fileName = s.SaveName
s.rwLock.Lock()
if err = s.ex.SaveAs(path); err != nil {
log.Println(fmt.Sprintf("save file error :%v", err))
s.rwLock.Unlock()
return
}
s.rwLock.Unlock()
return
}
// getJsonFieldList 获取json字段列表
func (s *Excel) getJsonFieldList(sheetType reflect.Type) (tagList []string) {
t := sheetType.Elem()
if t.Kind() == reflect.Ptr {
t = t.Elem()
if t.Kind() != reflect.Struct {
return
}
}
for i := 0; i < t.NumField(); i++ {
var tag = t.Field(i).Tag.Get("json")
if tag != "" {
tagList = append(tagList, tag)
}
}
return
}
// dataToMap 数据转字典
func (s *Excel) dataToMap(sheet reflect.Value, sheetType reflect.Type) (dataMap map[string]any) {
dataMap = make(map[string]any)
t := sheetType.Elem()
//指针类型结构体拿真实的对象
if t.Kind() == reflect.Ptr {
t = t.Elem()
sheet = sheet.Elem()
}
for i := 0; i < t.NumField(); i++ {
var tag = t.Field(i).Tag.Get("json")
if tag != "" {
dataMap[t.Field(i).Tag.Get("json")] = sheet.Field(i).Interface()
}
}
return dataMap
}
// getFirstEmptyRowIndex 获取首个空行的索引位置
func (s *Excel) getFirstEmptyRowIndex(ex *excelize.File, sheetName string) (index int) {
rows, err := ex.GetRows(sheetName)
if err != nil {
return 1
}
return len(rows)
}
func ToExcel(titleList []string, dataList []interface{}) (content io.ReadSeeker) {
// 生成一个新的文件
file := xlsx.NewFile()
// 添加sheet页
sheet, _ := file.AddSheet("Sheet1")
// 插入表头
titleRow := sheet.AddRow()
for _, v := range titleList {
cell := titleRow.AddCell()
cell.Value = v
}
// 插入内容
for _, v := range dataList {
row := sheet.AddRow()
row.WriteStruct(v, -1)
}
var buffer bytes.Buffer
_ = file.Write(&buffer)
file.Save("1.xlsx")
content = bytes.NewReader(buffer.Bytes())
return
}
// 自动设置单元格宽度
func (s *Excel) autoResetCellWidth(sheetObj Sheet) {
// 获取最大字符宽度
maxWidths := make(map[int]int)
var sheetData = reflect.ValueOf(sheetObj.GetData())
var rowLen = 1
var columnLen = len(sheetObj.GetJsonFiledList())
if sheetData.Kind() == reflect.Slice {
rowLen = sheetData.Len()
}
limitWidth := 90
for col := 1; col <= columnLen; col++ {
var maxWidth int
for row := 0; row < rowLen; row++ {
value, _ := s.ex.GetCellValue(sheetObj.SheetName(), GetCellIndex(row+1, col))
width := len(value)
if width > limitWidth {
width = limitWidth
}
if width > maxWidth {
maxWidth = width
}
}
maxWidths[col] = maxWidth
}
// 设置列宽度
for col, width := range maxWidths {
colChar := GetColumnIndex(col)
s.ex.SetColWidth(sheetObj.SheetName(), colChar, colChar, float64(width+2))
}
}

View File

@ -1,52 +0,0 @@
// Package excel -----------------------------
// @file : options.go
// @author : JJXu
// @contact : wavingBear@163.com
// @time : 2022/12/19 12:41:40
// -------------------------------------------
package excel
import (
"fmt"
"path/filepath"
"strings"
"time"
)
type Option func(excel *Excel)
// func AddSaveFileSuffixWithUnixTime(excel *Excel) {
// excel.SaveName
// fmt.Sprintf("%v", time.Now().Unix())
// }
//
// 时间戳作为文件后缀
func OptionFileNameSuffixWithUnixTime(excel *Excel) {
ext := filepath.Ext(excel.SaveName)
name := strings.Split(excel.SaveName, ext)[0]
excel.SaveName = fmt.Sprintf("%s_%v%s", name, time.Now().Unix(), ext)
}
// 为第一行添加表头
func AfterAddHeader1(sheet Sheet, text string) func(excel *Excel) {
return func(excel *Excel) {
err := excel.ex.InsertRows(sheet.SheetName(), 1, 1)
if err != nil {
panic(err)
}
err = excel.ex.SetCellValue(sheet.SheetName(), GetCellIndex(1, 1), text)
if err != nil {
panic(err)
}
headerStyleID, errs := excel.ex.NewStyle(NewHeaderOneStyle())
if errs != nil {
fmt.Println(errs)
err = errs
return
}
//表头设置为默认样式,边框加粗、字体加粗
_ = excel.ex.SetCellStyle(sheet.SheetName(), "A1", GetCellIndex(1, len(sheet.SheetHeaders())), headerStyleID)
_ = excel.ex.MergeCell(sheet.SheetName(), "A1", GetCellIndex(1, len(sheet.SheetHeaders())))
}
}

View File

@ -1,54 +0,0 @@
// Package excel -----------------------------
// @file : style.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/9/1 13:50
// -------------------------------------------
package excel
import (
"github.com/xuri/excelize/v2"
)
func NewDefaultHeaderStyle() *excelize.Style {
return &excelize.Style{
Border: []excelize.Border{
{Type: "left", Color: "000000", Style: 2},
{Type: "top", Color: "000000", Style: 2},
{Type: "bottom", Color: "000000", Style: 2},
{Type: "right", Color: "000000", Style: 2},
},
Font: &excelize.Font{Bold: true, Size: 12},
Alignment: &excelize.Alignment{
Horizontal: "center",
},
}
}
func NewDefaultDataStyle() *excelize.Style {
return &excelize.Style{
Border: []excelize.Border{
{Type: "left", Color: "000000", Style: 1},
{Type: "bottom", Color: "000000", Style: 1},
{Type: "right", Color: "000000", Style: 1},
},
Font: &excelize.Font{Size: 12},
Alignment: &excelize.Alignment{
Horizontal: "left",
},
}
}
func NewHeaderOneStyle() *excelize.Style {
return &excelize.Style{
Border: []excelize.Border{
{Type: "left", Color: "000000", Style: 2},
{Type: "top", Color: "000000", Style: 2},
{Type: "bottom", Color: "000000", Style: 2},
{Type: "right", Color: "000000", Style: 2},
},
Font: &excelize.Font{Bold: true, Size: 14},
Alignment: &excelize.Alignment{
Horizontal: "center",
},
}
}

View File

@ -1,41 +0,0 @@
// Package utils -----------------------------
// @file : excelHelper.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2022/6/9 13:41
// -------------------------------------------
package excel
import (
"fmt"
"strconv"
)
// 行列坐标值转换为excel的坐标。注意row和columnCount的初始值都是1
func GetCellIndex(row int, columnCount int) string {
var column = GetColumnIndex(columnCount)
return fmt.Sprintf("%s%d", column, row)
}
// 获取excel的列索引
var columnIndices = []string{"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"}
func GetColumnIndex(num int) string {
num--
var column = columnIndices[num%26]
for num = num / 26; num > 0; num = num / 26 {
column = columnIndices[(num-1)%26] + column
num--
}
return column
}
func Int[T int | uint | uint8 | uint32 | uint64 | int32 | int64](value string) T {
v, _ := strconv.Atoi(value)
return T(v)
}
func Float[T float64 | float32](value string) T {
v, _ := strconv.ParseFloat(value, 64)
return T(v)
}

View File

@ -1,81 +0,0 @@
// Package excel -----------------------------
// @file : writer.go
// @author : JJXu
// @contact : wavingbear@163.com
// @time : 2023/9/1 14:11
// -------------------------------------------
package excel
import (
"errors"
"fmt"
"reflect"
)
var writerMap = map[reflect.Kind]func(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error{
reflect.Slice: sliceWriter,
reflect.Struct: structWriter,
}
func RegisterWriter(dataKind reflect.Kind, function func(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error) error {
if _, exists := writerMap[dataKind]; exists {
return errors.New(fmt.Sprintf("dataKind: %v has existed", dataKind))
}
writerMap[dataKind] = function
return nil
}
func sliceWriter(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetDataType reflect.Type, firstRow int) error {
var cellNameList = sheetObj.GetJsonFiledList()
if cellNameList == nil {
cellNameList = exc.getJsonFieldList(SheetDataType)
}
var rowLen = SheetData.Len()
for i := 0; i < rowLen; i++ {
var dataMap = exc.dataToMap(SheetData.Index(i), SheetDataType)
for column, v := range cellNameList {
var axis = GetCellIndex(i+firstRow+1, column+1)
err := exc.ex.SetCellValue(sheetObj.SheetName(), axis, dataMap[v])
if err != nil {
return err
}
}
}
//设置数据格式
dataStyleID, errs := exc.ex.NewStyle(NewDefaultDataStyle())
if errs != nil {
return errs
}
if err := exc.ex.SetCellStyle(sheetObj.SheetName(), GetCellIndex(firstRow+1, 1), GetCellIndex(rowLen+1, len(sheetObj.SheetHeaders())), dataStyleID); err != nil {
return err
}
//设置默认列宽
//exc.ex.SetColWidth(sheetObj.SheetName(), GetColumnIndex(1), GetColumnIndex(len(sheetObj.SheetHeaders())), 12.0)
exc.autoResetCellWidth(sheetObj)
return nil
}
func structWriter(exc *Excel, sheetObj Sheet, SheetData reflect.Value, SheetType reflect.Type, firstRow int) error {
var cellNameList = exc.getJsonFieldList(SheetType)
var dataMap = exc.dataToMap(SheetData, SheetType)
for column, v := range cellNameList {
var axis = GetCellIndex(firstRow+1, column+1)
err := exc.ex.SetCellValue(sheetObj.SheetName(), axis, dataMap[v])
if err != nil {
fmt.Println(err.Error())
return err
}
}
//设置数据格式
dataStyleID, err := exc.ex.NewStyle(NewDefaultDataStyle())
if err != nil {
return err
}
if err = exc.ex.SetCellStyle(sheetObj.SheetName(), GetCellIndex(firstRow, 1), GetCellIndex(firstRow+1, len(sheetObj.SheetHeaders())), dataStyleID); err != nil {
return err
}
//设置默认列宽
//exc.ex.SetColWidth(sheetObj.SheetName(), GetColumnIndex(1), GetColumnIndex(len(sheetObj.SheetHeaders())), 12.0)
exc.autoResetCellWidth(sheetObj)
return nil
}

View File

@ -1,555 +0,0 @@
package img
import (
"bytes"
"context"
"crypto/sha256"
"encoding/hex"
"errors"
"fmt"
"image"
"image/color"
"image/gif"
"image/jpeg"
"image/png"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"strings"
"time"
"github.com/disintegration/imaging"
)
// ResizeMode controls how the source image is mapped to the target WxH.
//
// - ResizeModeFit: contain (keep aspect), no cropping; resulting image may be smaller than WxH
// - ResizeModeFill: cover + crop (center crop) to exactly WxH
// - ResizeModePad: keep aspect + pad (letterbox) to exactly WxH (no crop, no stretch)
//
// If you only pass a single dimension (e.g. W>0, H=0), Fit will keep aspect.
// Fill/Pad requires both W and H.
//
// Note: GIF input will be processed as a single frame (first frame).
// If you need animated GIF support, we can extend this later.
type ResizeMode string
const (
ResizeModeFit ResizeMode = "fit"
ResizeModeFill ResizeMode = "fill"
// ResizeModePad keeps aspect ratio (no crop, no stretch) and pads to exactly WxH.
// Typical use: 16:9 -> 1024x1024 with white/black bars.
ResizeModePad ResizeMode = "pad"
)
type Options struct {
TargetWidth int
TargetHeight int
MaxSizeMB float64
Mode ResizeMode
// PadColor is used only when Mode == ResizeModePad.
// Default: white.
PadColor color.Color
// OutputDir is where the processed image will be written.
// Default: ./runtime/tmp/images/processed
OutputDir string
// Timeout controls total download time.
// Default: 30s.
Timeout time.Duration
// MaxDownloadMB caps download size to protect memory/disk.
// Default: max( maxSizeMB*6, 30MB ).
MaxDownloadMB float64
// MinQuality is the minimum JPEG quality to try (1-100).
// Default: 10. If compression still can't meet MaxSizeMB, returns error.
MinQuality int
// MaxRetries controls how many quality adjustments to attempt.
// Default: 15.
MaxRetries int
// AllowResolutionReduction allows reducing resolution further if compression fails.
// Default: false.
AllowResolutionReduction bool
// ForceJPEG forces output to JPEG format even if input is PNG/GIF/etc.
// If image has alpha channel, it will be flattened to white background.
// Default: false.
ForceJPEG bool
}
// ProcessFromURL downloads an image from imgURL, resizes it, compresses it to <= MaxSizeMB,
// and returns the local output path.
//
// Contract:
// - imgURL: http/https
// - TargetWidth/TargetHeight: pixels, >=0
// - MaxSizeMB: >0
// - returns: absolute or relative file path (depending on OutputDir), and error
func ProcessFromURL(imgURL string, opt Options) (string, error) {
if strings.TrimSpace(imgURL) == "" {
return "", errors.New("imgURL is empty")
}
u, err := url.Parse(imgURL)
if err != nil || (u.Scheme != "http" && u.Scheme != "https") {
return "", errors.New("imgURL must be http/https")
}
if opt.MaxSizeMB <= 0 {
return "", errors.New("MaxSizeMB must be > 0")
}
if opt.TargetWidth < 0 || opt.TargetHeight < 0 {
return "", errors.New("TargetWidth/TargetHeight must be >= 0")
}
if opt.TargetWidth == 0 && opt.TargetHeight == 0 {
return "", errors.New("TargetWidth and TargetHeight cannot both be 0")
}
if opt.Mode == "" {
opt.Mode = ResizeModeFit
}
if opt.Mode != ResizeModeFit && opt.Mode != ResizeModeFill && opt.Mode != ResizeModePad {
return "", errors.New("invalid resize Mode")
}
if (opt.Mode == ResizeModeFill || opt.Mode == ResizeModePad) && (opt.TargetWidth == 0 || opt.TargetHeight == 0) {
return "", errors.New("fill/pad mode requires both TargetWidth and TargetHeight")
}
if opt.Timeout <= 0 {
opt.Timeout = 30 * time.Second
}
if opt.OutputDir == "" {
opt.OutputDir = filepath.FromSlash("./runtime/tmp/images/processed")
}
if opt.MaxDownloadMB <= 0 {
opt.MaxDownloadMB = opt.MaxSizeMB * 6
if opt.MaxDownloadMB < 30 {
opt.MaxDownloadMB = 30
}
if opt.MaxDownloadMB > 200 {
opt.MaxDownloadMB = 200
}
}
if opt.MinQuality <= 0 {
opt.MinQuality = 10
}
if opt.MinQuality > 100 {
opt.MinQuality = 100
}
if opt.MaxRetries <= 0 {
opt.MaxRetries = 15
}
// Ensure output dir exists.
if err := os.MkdirAll(opt.OutputDir, os.ModePerm); err != nil {
return "", err
}
ctx, cancel := context.WithTimeout(context.Background(), opt.Timeout)
defer cancel()
data, contentType, err := downloadWithLimit(ctx, imgURL, int64(opt.MaxDownloadMB*1024*1024))
if err != nil {
return "", err
}
img, fmtName, err := decodeImage(data, contentType)
if err != nil {
return "", err
}
// Check if image already meets requirements
if alreadyMeetsRequirements(img, data, opt) {
return "", nil
}
img = applyResize(img, opt)
// Determine output format
outExt := ".jpg"
outFormat := "jpeg"
if opt.ForceJPEG {
// Force JPEG output, flatten alpha if needed
outFormat = "jpeg"
outExt = ".jpg"
if imageHasAlpha(img) {
img = flattenToWhite(img)
}
} else {
// Auto-detect: if image has alpha, output PNG; otherwise JPEG
hasAlpha := imageHasAlpha(img)
if hasAlpha {
outExt = ".png"
outFormat = "png"
}
}
// Create a stable file name based on url + options + content signature.
h := sha256.New()
h.Write([]byte(imgURL))
h.Write([]byte(fmt.Sprintf("|%d|%d|%f|%s|%s", opt.TargetWidth, opt.TargetHeight, opt.MaxSizeMB, opt.Mode, outFormat)))
h.Write(data[:minInt(len(data), 1024)])
name := hex.EncodeToString(h.Sum(nil))[:32] + outExt
outPath := filepath.Join(opt.OutputDir, name)
maxBytes := int64(opt.MaxSizeMB * 1024 * 1024)
encoded, err := encodeUnderSize(img, outFormat, maxBytes, opt.MinQuality, opt.MaxRetries)
if err != nil {
// Fallback: if PNG can't fit, try JPEG (dropping alpha with white background).
if outFormat == "png" {
flattened := flattenToWhite(img)
encoded, err = encodeUnderSize(flattened, "jpeg", maxBytes, opt.MinQuality, opt.MaxRetries)
if err == nil {
outPath = strings.TrimSuffix(outPath, filepath.Ext(outPath)) + ".jpg"
} else {
// If AllowResolutionReduction is true, try reducing resolution
if opt.AllowResolutionReduction {
return tryWithReducedResolution(img, opt, outPath, maxBytes)
}
return "", err
}
} else {
// If AllowResolutionReduction is true, try reducing resolution
if opt.AllowResolutionReduction {
return tryWithReducedResolution(img, opt, outPath, maxBytes)
}
return "", err
}
}
tmpPath := outPath + ".tmp"
if err := os.WriteFile(tmpPath, encoded, 0o644); err != nil {
return "", err
}
if err := os.Rename(tmpPath, outPath); err != nil {
_ = os.Remove(tmpPath)
return "", err
}
_ = fmtName // reserved for future behavior
return outPath, nil
}
func downloadWithLimit(ctx context.Context, imgURL string, maxBytes int64) ([]byte, string, error) {
req, err := http.NewRequestWithContext(ctx, http.MethodGet, imgURL, nil)
if err != nil {
return nil, "", err
}
// Reasonable defaults; could be overridden later.
req.Header.Set("User-Agent", "fonchain-tools/1.0")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, "", err
}
defer func() { _ = resp.Body.Close() }()
if resp.StatusCode < 200 || resp.StatusCode >= 300 {
return nil, "", fmt.Errorf("download failed: %s", resp.Status)
}
if resp.ContentLength > 0 && resp.ContentLength > maxBytes {
return nil, "", fmt.Errorf("remote file too large: %d > %d", resp.ContentLength, maxBytes)
}
lr := &io.LimitedReader{R: resp.Body, N: maxBytes + 1}
b, err := io.ReadAll(lr)
if err != nil {
return nil, "", err
}
if int64(len(b)) > maxBytes {
return nil, "", fmt.Errorf("download exceeded limit: %d > %d", len(b), maxBytes)
}
return b, resp.Header.Get("Content-Type"), nil
}
func decodeImage(data []byte, contentType string) (image.Image, string, error) {
// Register gif (jpeg/png already registered) for Decode.
_ = gif.GIF{}
reader := bytes.NewReader(data)
img, fmtName, err := image.Decode(reader)
if err == nil {
return img, fmtName, nil
}
// Some servers set odd content-type; try simple sniff.
_ = contentType
return nil, "", fmt.Errorf("decode image failed: %w", err)
}
func applyResize(img image.Image, opt Options) image.Image {
w := opt.TargetWidth
h := opt.TargetHeight
srcW := img.Bounds().Dx()
srcH := img.Bounds().Dy()
if srcW <= 0 || srcH <= 0 {
return img
}
switch opt.Mode {
case ResizeModeFill:
return imaging.Fill(img, w, h, imaging.Center, imaging.Lanczos)
case ResizeModeFit:
// If only one dimension is provided, keep aspect.
if w == 0 {
w = int(float64(srcW) * (float64(h) / float64(srcH)))
if w < 1 {
w = 1
}
}
if h == 0 {
h = int(float64(srcH) * (float64(w) / float64(srcW)))
if h < 1 {
h = 1
}
}
// imaging.Fit ensures the result fits within w,h without cropping.
return imaging.Fit(img, w, h, imaging.Lanczos)
case ResizeModePad:
bg := opt.PadColor
if bg == nil {
bg = color.White
}
// First, fit within WxH (no crop).
fitted := imaging.Fit(img, w, h, imaging.Lanczos)
// Then, paste centered onto WxH canvas.
canvas := imaging.New(w, h, bg)
x := (w - fitted.Bounds().Dx()) / 2
y := (h - fitted.Bounds().Dy()) / 2
return imaging.Paste(canvas, fitted, image.Pt(x, y))
default:
return img
}
}
func encodeUnderSize(img image.Image, format string, maxBytes int64, minQuality, maxRetries int) ([]byte, error) {
if maxBytes <= 0 {
return nil, errors.New("maxBytes must be > 0")
}
switch format {
case "jpeg":
// Binary search quality.
lo, hi := minQuality, 92
var best []byte
iterations := 0
maxIterations := maxInt(8, maxRetries/2)
for i := 0; i < maxIterations && lo <= hi; i++ {
iterations++
q := (lo + hi) / 2
b, err := encodeJPEG(img, q)
if err != nil {
return nil, err
}
if int64(len(b)) <= maxBytes {
best = b
lo = q + 1
} else {
hi = q - 1
}
}
if best != nil {
return best, nil
}
// Try more aggressive qualities from minQuality down to 1
qualities := []int{}
for q := minQuality; q >= 1; q -= 5 {
qualities = append(qualities, q)
}
// Ensure we try the lowest qualities
if minQuality > 3 {
qualities = append(qualities, 3, 1)
}
var lastSize int64
for _, q := range qualities {
if iterations >= maxRetries {
break
}
iterations++
b, err := encodeJPEG(img, q)
if err != nil {
return nil, err
}
lastSize = int64(len(b))
if lastSize <= maxBytes {
return b, nil
}
}
sizeMB := float64(lastSize) / (1024 * 1024)
targetMB := float64(maxBytes) / (1024 * 1024)
return nil, fmt.Errorf("cannot compress to %.2fMB (best: %.2fMB at quality %d after %d attempts). Consider increasing MaxSizeMB or enabling AllowResolutionReduction",
targetMB, sizeMB, minQuality, iterations)
case "png":
// PNG size depends heavily on content; try best compression.
b, err := encodePNG(img, png.BestCompression)
if err != nil {
return nil, err
}
if int64(len(b)) <= maxBytes {
return b, nil
}
sizeMB := float64(len(b)) / (1024 * 1024)
targetMB := float64(maxBytes) / (1024 * 1024)
return nil, fmt.Errorf("PNG cannot compress to %.2fMB (got %.2fMB). Consider using JPEG format or enabling AllowResolutionReduction",
targetMB, sizeMB)
default:
return nil, errors.New("unsupported output format")
}
}
func encodeJPEG(img image.Image, quality int) ([]byte, error) {
var buf bytes.Buffer
// Use 4:2:0 subsampling (default) for smaller size.
err := jpeg.Encode(&buf, img, &jpeg.Options{Quality: quality})
if err != nil {
return nil, err
}
return buf.Bytes(), nil
}
func encodePNG(img image.Image, level png.CompressionLevel) ([]byte, error) {
var buf bytes.Buffer
enc := png.Encoder{CompressionLevel: level}
if err := enc.Encode(&buf, img); err != nil {
return nil, err
}
return buf.Bytes(), nil
}
func imageHasAlpha(img image.Image) bool {
switch img.(type) {
case *image.NRGBA, *image.NRGBA64, *image.RGBA, *image.RGBA64, *image.Alpha, *image.Alpha16, *image.Paletted:
// Need to inspect pixels if we want exactness; but this is good enough and stable.
return true
default:
return false
}
}
func flattenToWhite(img image.Image) image.Image {
b := img.Bounds()
dst := image.NewRGBA(b)
// Fill with white.
for y := b.Min.Y; y < b.Max.Y; y++ {
for x := b.Min.X; x < b.Max.X; x++ {
dst.Set(x, y, image.White)
}
}
// Draw original image over white background.
return imaging.Overlay(dst, img, image.Pt(0, 0), 1.0)
}
func minInt(a, b int) int {
if a < b {
return a
}
return b
}
func maxInt(a, b int) int {
if a > b {
return a
}
return b
}
// alreadyMeetsRequirements checks if the image already satisfies the size and dimension requirements
func alreadyMeetsRequirements(img image.Image, data []byte, opt Options) bool {
// Check file size
maxBytes := int64(opt.MaxSizeMB * 1024 * 1024)
if int64(len(data)) > maxBytes {
return false
}
// Check dimensions based on mode
srcW := img.Bounds().Dx()
srcH := img.Bounds().Dy()
targetW := opt.TargetWidth
targetH := opt.TargetHeight
switch opt.Mode {
case ResizeModeFit:
// For fit mode, check if image is already within or equal to target dimensions
if targetW > 0 && srcW > targetW {
return false
}
if targetH > 0 && srcH > targetH {
return false
}
// If only one dimension is specified, check aspect ratio compatibility
if targetW > 0 && targetH == 0 && srcW <= targetW {
return true
}
if targetH > 0 && targetW == 0 && srcH <= targetH {
return true
}
if targetW > 0 && targetH > 0 && srcW <= targetW && srcH <= targetH {
return true
}
return false
case ResizeModeFill, ResizeModePad:
// For fill/pad mode, image must be exactly the target dimensions
if srcW != targetW || srcH != targetH {
return false
}
return true
default:
return false
}
}
// tryWithReducedResolution attempts to compress by progressively reducing resolution
func tryWithReducedResolution(img image.Image, opt Options, outPath string, maxBytes int64) (string, error) {
bounds := img.Bounds()
w := bounds.Dx()
h := bounds.Dy()
// Try reducing resolution in steps: 90%, 80%, 70%, 60%, 50%
reductions := []float64{0.9, 0.8, 0.7, 0.6, 0.5}
for _, factor := range reductions {
newW := int(float64(w) * factor)
newH := int(float64(h) * factor)
if newW < 100 || newH < 100 {
break // Don't reduce too much
}
resized := imaging.Resize(img, newW, newH, imaging.Lanczos)
// Try to encode with reduced resolution
encoded, err := encodeUnderSize(resized, "jpeg", maxBytes, opt.MinQuality, opt.MaxRetries/2)
if err == nil {
// Success! Save it
tmpPath := outPath + ".tmp"
if err := os.WriteFile(tmpPath, encoded, 0o644); err != nil {
return "", err
}
if err := os.Rename(tmpPath, outPath); err != nil {
_ = os.Remove(tmpPath)
return "", err
}
return outPath, nil
}
}
targetMB := float64(maxBytes) / (1024 * 1024)
return "", fmt.Errorf("cannot compress to %.2fMB even after reducing resolution to 50%%. Original size too large", targetMB)
}

View File

@ -1,9 +1,6 @@
package utils
import (
"regexp"
"strings"
)
import "strings"
// CleanString 移除所有空白字符
func CleanString(s string) string {
@ -21,33 +18,3 @@ func TruncateString(s string, maxLen int) string {
}
return string(runes[:maxLen])
}
// ExtractTags 从文本中提取标签,标签以 # 开头,后面不能直接跟空格
func ExtractTags(s string) []string {
if len(s) == 0 {
return []string{}
}
re := regexp.MustCompile(`#[^\s#\p{P}]+`)
matches := re.FindAllString(s, -1)
tags := make([]string, 0, len(matches))
for _, match := range matches {
// 去掉开头的 #,只保留标签内容
tag := match[1:]
if len(tag) > 0 {
tags = append(tags, tag)
}
}
return tags
}
// 去掉自动标签里面多余的引号
func CleanAutoHashtagsQuote(input string) string {
if input == "" {
return ""
}
cleaned := strings.ReplaceAll(input, "\\\"", "")
cleaned = strings.ReplaceAll(cleaned, "\"", "")
return cleaned
}