Merge branch 'feat-hjj-ReportsManage' into dev

This commit is contained in:
jiaji.H 2025-09-28 10:27:05 +08:00
commit 93f2139ab5
16 changed files with 3175 additions and 1 deletions

1944
api/members/members.pb.go Normal file

File diff suppressed because it is too large Load Diff

161
api/members/members.proto Normal file
View File

@ -0,0 +1,161 @@
syntax = "proto3";
package members;
//import "descriptor.proto";
//import "validator.proto";
option go_package = "./;members";
service Members{
//========================================================================
rpc AddMember(AddMemberReq) returns (AddMemberResp);
rpc EditMember(EditMemberReq) returns (EditMemberResp);
rpc DeleteMember(DeleteMemberReq) returns (DeleteMemberResp);
rpc GetMemberList(GetMemberListReq) returns (GetMemberListResp);
//==========================================================================
rpc EditManagement(EditManagementReq) returns (EditManagementResp);
//==========================================================================
rpc EditBoardOfDirectors(EditBoardOfDirectorsReq) returns (EditBoardOfDirectorsResp);
//========================================================================
rpc EditCommitteeAppointments(EditCommitteeAppointmentsReq) returns (EditCommitteeAppointmentsResp);
}
//========================================================================
message AddMemberReq{
string uuid = 1;//uuid
string name = 2;//
string brief = 3;//
string introduction = 4;//
string operator = 5;//
int32 operatorId = 6;//Id
}
message AddMemberResp{
string msg = 1;
}
message EditMemberReq{
string uuid = 1;//uuid
string name = 2;//
string brief = 3;//
string introduction = 4;//
int32 sort = 5;//
string operator = 6;//
int32 operatorId = 7;//Id
}
message EditMemberResp{
string msg = 1;
}
message DeleteMemberReq{
string uuid = 1;//uuid
}
message DeleteMemberResp{
string msg = 1;
}
message Filtrate{
string name = 3;//
}
message GetMemberListReq{
int32 page = 1;
int32 pageSize = 2;
Filtrate filterate = 3;//
}
message GetMemberListResp{
string msg = 1;
int32 page=2;
int32 pageSize =3;
int32 total = 4;
repeated Member data = 5;
}
message Member{
string uuid = 1;
string name = 2;
string brief = 3;
string introduction = 4;
Management management = 5;
BoardOfDirectors boardOfDirectors = 6;
CommitteeAppointments committeeAppointments = 7;
string updatedAt = 8;
string operator = 9;
}
//==========================================================================
message Management{
string name = 1;
string image = 2;
int32 status = 3;
string brief = 4;
string introduction = 5;
int32 isSetting = 6;
}
message EditManagementReq{
string uuid = 1;
string name = 2;
string image = 3;
int32 status = 4;
string brief = 5;
string introduction = 6;
int32 isSetting = 7;
string operator = 8;
int32 operatorId = 9;
}
message EditManagementResp{
string msg = 1;
}
//========================================================================
message BoardOfDirectors{
string name = 1;
int32 status = 2;
string brief = 3;
string introduction = 4;
int32 isSetting = 5;
}
message EditBoardOfDirectorsReq{
string uuid = 1;
string name = 2;
int32 status = 3;
string brief = 4;
string introduction = 5;
int32 isSetting = 6;
string operator = 7;
int32 operatorId = 8;
}
message EditBoardOfDirectorsResp{
string msg = 1;
}
//========================================================================
message CommitteeAppointments{
string name = 1;
int32 status = 2;
string auditCommittee = 3;
string compensationCommittee = 4;
string nominatingCommittee = 5;
int32 isSetting = 6;
}
message EditCommitteeAppointmentsReq{
string uuid = 1;
string name = 2;
int32 status = 3;
string auditCommittee = 4;
string compensationCommittee = 5;
string nominatingCommittee = 6;
int32 isSetting = 7;
string operator = 8;
int32 operatorId = 9;
}
message EditCommitteeAppointmentsResp{
string msg = 1;
}

View File

@ -0,0 +1,101 @@
// 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 *AddMemberReq) Validate() error {
return nil
}
func (this *AddMemberResp) Validate() error {
return nil
}
func (this *EditMemberReq) Validate() error {
return nil
}
func (this *EditMemberResp) Validate() error {
return nil
}
func (this *DeleteMemberReq) Validate() error {
return nil
}
func (this *DeleteMemberResp) Validate() error {
return nil
}
func (this *Filtrate) Validate() error {
return nil
}
func (this *GetMemberListReq) Validate() error {
if this.Filterate != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Filterate); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Filterate", err)
}
}
return nil
}
func (this *GetMemberListResp) 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 *Member) Validate() error {
if this.Management != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.Management); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("Management", err)
}
}
if this.BoardOfDirectors != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.BoardOfDirectors); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("BoardOfDirectors", err)
}
}
if this.CommitteeAppointments != nil {
if err := github_com_mwitkow_go_proto_validators.CallValidatorIfExists(this.CommitteeAppointments); err != nil {
return github_com_mwitkow_go_proto_validators.FieldError("CommitteeAppointments", err)
}
}
return nil
}
func (this *Management) Validate() error {
return nil
}
func (this *EditManagementReq) Validate() error {
return nil
}
func (this *EditManagementResp) Validate() error {
return nil
}
func (this *BoardOfDirectors) Validate() error {
return nil
}
func (this *EditBoardOfDirectorsReq) Validate() error {
return nil
}
func (this *EditBoardOfDirectorsResp) Validate() error {
return nil
}
func (this *CommitteeAppointments) Validate() error {
return nil
}
func (this *EditCommitteeAppointmentsReq) Validate() error {
return nil
}
func (this *EditCommitteeAppointmentsResp) Validate() error {
return nil
}

View File

@ -0,0 +1,425 @@
// Code generated by protoc-gen-go-triple. DO NOT EDIT.
// versions:
// - protoc-gen-go-triple v1.0.5
// - protoc v5.26.0
// source: api/members/members.proto
package members
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
// MembersClient is the client API for Members 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 MembersClient interface {
// ==================================成员管理======================================
AddMember(ctx context.Context, in *AddMemberReq, opts ...grpc_go.CallOption) (*AddMemberResp, common.ErrorWithAttachment)
EditMember(ctx context.Context, in *EditMemberReq, opts ...grpc_go.CallOption) (*EditMemberResp, common.ErrorWithAttachment)
DeleteMember(ctx context.Context, in *DeleteMemberReq, opts ...grpc_go.CallOption) (*DeleteMemberResp, common.ErrorWithAttachment)
GetMemberList(ctx context.Context, in *GetMemberListReq, opts ...grpc_go.CallOption) (*GetMemberListResp, common.ErrorWithAttachment)
// ===================================成员信息管理=======================================
EditManagement(ctx context.Context, in *EditManagementReq, opts ...grpc_go.CallOption) (*EditManagementResp, common.ErrorWithAttachment)
// ===================================董事会信息管理=======================================
EditBoardOfDirectors(ctx context.Context, in *EditBoardOfDirectorsReq, opts ...grpc_go.CallOption) (*EditBoardOfDirectorsResp, common.ErrorWithAttachment)
// ==================================委员会任命管理======================================
EditCommitteeAppointments(ctx context.Context, in *EditCommitteeAppointmentsReq, opts ...grpc_go.CallOption) (*EditCommitteeAppointmentsResp, common.ErrorWithAttachment)
}
type membersClient struct {
cc *triple.TripleConn
}
type MembersClientImpl struct {
AddMember func(ctx context.Context, in *AddMemberReq) (*AddMemberResp, error)
EditMember func(ctx context.Context, in *EditMemberReq) (*EditMemberResp, error)
DeleteMember func(ctx context.Context, in *DeleteMemberReq) (*DeleteMemberResp, error)
GetMemberList func(ctx context.Context, in *GetMemberListReq) (*GetMemberListResp, error)
EditManagement func(ctx context.Context, in *EditManagementReq) (*EditManagementResp, error)
EditBoardOfDirectors func(ctx context.Context, in *EditBoardOfDirectorsReq) (*EditBoardOfDirectorsResp, error)
EditCommitteeAppointments func(ctx context.Context, in *EditCommitteeAppointmentsReq) (*EditCommitteeAppointmentsResp, error)
}
func (c *MembersClientImpl) GetDubboStub(cc *triple.TripleConn) MembersClient {
return NewMembersClient(cc)
}
func (c *MembersClientImpl) XXX_InterfaceName() string {
return "members.Members"
}
func NewMembersClient(cc *triple.TripleConn) MembersClient {
return &membersClient{cc}
}
func (c *membersClient) AddMember(ctx context.Context, in *AddMemberReq, opts ...grpc_go.CallOption) (*AddMemberResp, common.ErrorWithAttachment) {
out := new(AddMemberResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/AddMember", in, out)
}
func (c *membersClient) EditMember(ctx context.Context, in *EditMemberReq, opts ...grpc_go.CallOption) (*EditMemberResp, common.ErrorWithAttachment) {
out := new(EditMemberResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditMember", in, out)
}
func (c *membersClient) DeleteMember(ctx context.Context, in *DeleteMemberReq, opts ...grpc_go.CallOption) (*DeleteMemberResp, common.ErrorWithAttachment) {
out := new(DeleteMemberResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/DeleteMember", in, out)
}
func (c *membersClient) GetMemberList(ctx context.Context, in *GetMemberListReq, opts ...grpc_go.CallOption) (*GetMemberListResp, common.ErrorWithAttachment) {
out := new(GetMemberListResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/GetMemberList", in, out)
}
func (c *membersClient) EditManagement(ctx context.Context, in *EditManagementReq, opts ...grpc_go.CallOption) (*EditManagementResp, common.ErrorWithAttachment) {
out := new(EditManagementResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditManagement", in, out)
}
func (c *membersClient) EditBoardOfDirectors(ctx context.Context, in *EditBoardOfDirectorsReq, opts ...grpc_go.CallOption) (*EditBoardOfDirectorsResp, common.ErrorWithAttachment) {
out := new(EditBoardOfDirectorsResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditBoardOfDirectors", in, out)
}
func (c *membersClient) EditCommitteeAppointments(ctx context.Context, in *EditCommitteeAppointmentsReq, opts ...grpc_go.CallOption) (*EditCommitteeAppointmentsResp, common.ErrorWithAttachment) {
out := new(EditCommitteeAppointmentsResp)
interfaceKey := ctx.Value(constant.InterfaceKey).(string)
return out, c.cc.Invoke(ctx, "/"+interfaceKey+"/EditCommitteeAppointments", in, out)
}
// MembersServer is the server API for Members service.
// All implementations must embed UnimplementedMembersServer
// for forward compatibility
type MembersServer interface {
// ==================================成员管理======================================
AddMember(context.Context, *AddMemberReq) (*AddMemberResp, error)
EditMember(context.Context, *EditMemberReq) (*EditMemberResp, error)
DeleteMember(context.Context, *DeleteMemberReq) (*DeleteMemberResp, error)
GetMemberList(context.Context, *GetMemberListReq) (*GetMemberListResp, error)
// ===================================成员信息管理=======================================
EditManagement(context.Context, *EditManagementReq) (*EditManagementResp, error)
// ===================================董事会信息管理=======================================
EditBoardOfDirectors(context.Context, *EditBoardOfDirectorsReq) (*EditBoardOfDirectorsResp, error)
// ==================================委员会任命管理======================================
EditCommitteeAppointments(context.Context, *EditCommitteeAppointmentsReq) (*EditCommitteeAppointmentsResp, error)
mustEmbedUnimplementedMembersServer()
}
// UnimplementedMembersServer must be embedded to have forward compatible implementations.
type UnimplementedMembersServer struct {
proxyImpl protocol.Invoker
}
func (UnimplementedMembersServer) AddMember(context.Context, *AddMemberReq) (*AddMemberResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method AddMember not implemented")
}
func (UnimplementedMembersServer) EditMember(context.Context, *EditMemberReq) (*EditMemberResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditMember not implemented")
}
func (UnimplementedMembersServer) DeleteMember(context.Context, *DeleteMemberReq) (*DeleteMemberResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method DeleteMember not implemented")
}
func (UnimplementedMembersServer) GetMemberList(context.Context, *GetMemberListReq) (*GetMemberListResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method GetMemberList not implemented")
}
func (UnimplementedMembersServer) EditManagement(context.Context, *EditManagementReq) (*EditManagementResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditManagement not implemented")
}
func (UnimplementedMembersServer) EditBoardOfDirectors(context.Context, *EditBoardOfDirectorsReq) (*EditBoardOfDirectorsResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditBoardOfDirectors not implemented")
}
func (UnimplementedMembersServer) EditCommitteeAppointments(context.Context, *EditCommitteeAppointmentsReq) (*EditCommitteeAppointmentsResp, error) {
return nil, status.Errorf(codes.Unimplemented, "method EditCommitteeAppointments not implemented")
}
func (s *UnimplementedMembersServer) XXX_SetProxyImpl(impl protocol.Invoker) {
s.proxyImpl = impl
}
func (s *UnimplementedMembersServer) XXX_GetProxyImpl() protocol.Invoker {
return s.proxyImpl
}
func (s *UnimplementedMembersServer) XXX_ServiceDesc() *grpc_go.ServiceDesc {
return &Members_ServiceDesc
}
func (s *UnimplementedMembersServer) XXX_InterfaceName() string {
return "members.Members"
}
func (UnimplementedMembersServer) mustEmbedUnimplementedMembersServer() {}
// UnsafeMembersServer may be embedded to opt out of forward compatibility for this service.
// Use of this interface is not recommended, as added methods to MembersServer will
// result in compilation errors.
type UnsafeMembersServer interface {
mustEmbedUnimplementedMembersServer()
}
func RegisterMembersServer(s grpc_go.ServiceRegistrar, srv MembersServer) {
s.RegisterService(&Members_ServiceDesc, srv)
}
func _Members_AddMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(AddMemberReq)
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("AddMember", 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 _Members_EditMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditMemberReq)
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("EditMember", 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 _Members_DeleteMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteMemberReq)
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("DeleteMember", 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 _Members_GetMemberList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(GetMemberListReq)
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("GetMemberList", 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 _Members_EditManagement_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditManagementReq)
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("EditManagement", 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 _Members_EditBoardOfDirectors_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditBoardOfDirectorsReq)
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("EditBoardOfDirectors", 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 _Members_EditCommitteeAppointments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc_go.UnaryServerInterceptor) (interface{}, error) {
in := new(EditCommitteeAppointmentsReq)
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("EditCommitteeAppointments", 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)
}
// Members_ServiceDesc is the grpc_go.ServiceDesc for Members service.
// It's only intended for direct use with grpc_go.RegisterService,
// and not to be introspected or modified (even as a copy)
var Members_ServiceDesc = grpc_go.ServiceDesc{
ServiceName: "members.Members",
HandlerType: (*MembersServer)(nil),
Methods: []grpc_go.MethodDesc{
{
MethodName: "AddMember",
Handler: _Members_AddMember_Handler,
},
{
MethodName: "EditMember",
Handler: _Members_EditMember_Handler,
},
{
MethodName: "DeleteMember",
Handler: _Members_DeleteMember_Handler,
},
{
MethodName: "GetMemberList",
Handler: _Members_GetMemberList_Handler,
},
{
MethodName: "EditManagement",
Handler: _Members_EditManagement_Handler,
},
{
MethodName: "EditBoardOfDirectors",
Handler: _Members_EditBoardOfDirectors_Handler,
},
{
MethodName: "EditCommitteeAppointments",
Handler: _Members_EditCommitteeAppointments_Handler,
},
},
Streams: []grpc_go.StreamDesc{},
Metadata: "api/members/members.proto",
}

View File

@ -23,6 +23,7 @@ func main() {
config.SetProviderService(&controller.SecFilingsProvider{})
config.SetProviderService(&controller.ReportProvider{})
config.SetProviderService(&controller.EmailAlertsProvider{})
config.SetProviderService(&controller.MembersProvider{})
if err := config.Load(); err != nil {
panic(err)

View File

@ -0,0 +1,43 @@
package controller
import (
"context"
"micro-document/api/members"
"micro-document/internel/logic"
)
type MembersProvider struct {
members.UnimplementedMembersServer
}
// ==================================成员管理======================================
func (MembersProvider) AddMember(_ context.Context, req *members.AddMemberReq) (*members.AddMemberResp, error) {
return logic.MembersLogic.AddMember(req)
}
func (MembersProvider) EditMember(_ context.Context, req *members.EditMemberReq) (*members.EditMemberResp, error) {
return logic.MembersLogic.EditMember(req)
}
func (MembersProvider) DeleteMember(_ context.Context, req *members.DeleteMemberReq) (*members.DeleteMemberResp, error) {
return logic.MembersLogic.DeleteMember(req)
}
func (MembersProvider) GetMemberList(_ context.Context, req *members.GetMemberListReq) (*members.GetMemberListResp, error) {
return logic.MembersLogic.GetMemberList(req)
}
// ===================================成员信息管理=======================================
func (MembersProvider) EditManagement(_ context.Context, req *members.EditManagementReq) (*members.EditManagementResp, error) {
return logic.MembersLogic.EditManagement(req)
}
// ==================================董事会信息管理======================================
func (MembersProvider) EditBoardOfDirectors(_ context.Context, req *members.EditBoardOfDirectorsReq) (*members.EditBoardOfDirectorsResp, error) {
return logic.MembersLogic.EditBoardOfDirectors(req)
}
// ==================================委员会任命管理======================================
func (MembersProvider) EditCommitteeAppointments(_ context.Context, req *members.EditCommitteeAppointmentsReq) (*members.EditCommitteeAppointmentsResp, error) {
return logic.MembersLogic.EditCommitteeAppointments(req)
}

View File

@ -63,6 +63,19 @@ func (annualReportsDao) Edit(req *reports.EditAnnualReportReq) (err error) {
}
func (annualReportsDao) Delete(req *reports.DeleteAnnualReportReq) (err error) {
// 先查询记录是否存在且状态允许删除
var report model.AnnualReport
err = db.DocDB.Model(&model.AnnualReport{}).Where("id = ?", req.Id).First(&report).Error
if err != nil {
return errors.New("查询记录失败")
}
// 检查状态如果status=1则不允许删除
if report.Status == 1 {
return errors.New("该记录已上架,不允许删除")
}
// 执行删除操作
err = db.DocDB.Model(&model.AnnualReport{}).Where("id = ?", req.Id).Delete(&model.AnnualReport{}).Error
if err != nil {
return errors.New("删除年度报告失败")

250
internel/dao/members.go Normal file
View File

@ -0,0 +1,250 @@
package dao
import (
"errors"
"micro-document/api/members"
"micro-document/internel/model"
"micro-document/pkg/db"
"time"
"gorm.io/gorm"
)
type membersDao struct{}
var MembersDao = new(membersDao)
func (membersDao) AddMember(req *members.AddMemberReq) (err error) {
err = db.DocDB.Model(&model.Members{}).Create(&model.Members{
Uuid: req.Uuid,
Name: req.Name,
Brief: req.Brief,
Introduction: req.Introduction,
Operator: req.Operator,
OperatorID: req.OperatorId,
}).Error
if err != nil {
return errors.New("新增成员失败")
}
//同步增加成员管理,委员会,董事会信息
err = db.DocDB.Model(&model.Management{}).Create(&model.Management{
Uuid: req.Uuid,
Name: req.Name,
Brief: req.Brief,
Introduction: req.Introduction,
}).Error
if err != nil {
return errors.New("新增成员管理失败")
}
err = db.DocDB.Model(&model.BoardOfDirectors{}).Create(&model.BoardOfDirectors{
Uuid: req.Uuid,
Name: req.Name,
Brief: req.Brief,
Introduction: req.Introduction,
}).Error
if err != nil {
return errors.New("新增董事会失败")
}
err = db.DocDB.Model(&model.CommitteeAppointments{}).Create(&model.CommitteeAppointments{
Uuid: req.Uuid,
Name: req.Name,
}).Error
if err != nil {
return errors.New("新增委员会失败")
}
return
}
func (membersDao) EditMember(req *members.EditMemberReq) (err error) {
err = db.DocDB.Model(&model.Members{}).Where("uuid = ?", req.Uuid).Updates(&model.Members{
Name: req.Name,
Brief: req.Brief,
Introduction: req.Introduction,
Sort: req.Sort,
Operator: req.Operator,
OperatorID: req.OperatorId,
UpdatedAt: time.Now(),
}).Error
return
}
func (membersDao) DeleteMember(req *members.DeleteMemberReq) (err error) {
return db.DocDB.Transaction(func(tx *gorm.DB) error {
// 检查所有相关记录的状态
if err := checkAllStatus(tx, req.Uuid); err != nil {
return err
}
// 删除所有相关记录
if err := deleteAllRecords(tx, req.Uuid); err != nil {
return err
}
return nil
})
}
// 检查所有记录状态
func checkAllStatus(tx *gorm.DB, uuid string) error {
tables := []struct {
model interface{}
name string
}{
{&model.Management{}, "成员管理"},
{&model.BoardOfDirectors{}, "董事会"},
{&model.CommitteeAppointments{}, "委员会"},
}
for _, table := range tables {
var count int64
err := tx.Model(table.model).Where("uuid = ? AND status = ?", uuid, 1).Count(&count).Error
if err != nil {
return errors.New("查询" + table.name + "失败")
}
if count > 0 {
return errors.New("该" + table.name + "已上架,不允许删除")
}
}
return nil
}
// 删除所有记录
func deleteAllRecords(tx *gorm.DB, uuid string) error {
tables := []struct {
model interface{}
name string
}{
{&model.Members{}, "成员"},
{&model.Management{}, "成员管理"},
{&model.BoardOfDirectors{}, "董事会"},
{&model.CommitteeAppointments{}, "委员会"},
}
for _, table := range tables {
err := tx.Model(table.model).Where("uuid = ?", uuid).Delete(table.model).Error
if err != nil {
return errors.New("删除" + table.name + "失败")
}
}
return nil
}
func (membersDao) GetMemberList(req *members.GetMemberListReq) (data []model.Members, total int64, err error) {
dbQuery := db.DocDB.Model(&model.Members{})
if req.Filterate != nil {
if req.Filterate.Name != "" {
dbQuery = dbQuery.Where("name like ?", "%"+req.Filterate.Name+"%")
}
}
//数据查询
dbQuery.Count(&total)
err = dbQuery.Scopes(db.Pagination(req.Page, req.PageSize)).Find(&data).Error
if err != nil {
return
}
return
}
// 通过uuid查询成员管理
func (membersDao) GetManagementByUuid(uuid string) (management model.Management, err error) {
management = model.Management{}
err = db.DocDB.Model(&model.Management{}).Where("uuid = ?", uuid).First(&management).Error
if err != nil {
return
}
return
}
// 通过uuid查询董事会
func (membersDao) GetBoardOfDirectorsByUuid(uuid string) (boardOfDirectors model.BoardOfDirectors, err error) {
boardOfDirectors = model.BoardOfDirectors{}
err = db.DocDB.Model(&model.BoardOfDirectors{}).Where("uuid = ?", uuid).First(&boardOfDirectors).Error
if err != nil {
return
}
return
}
// 通过uuid查询委员会
func (membersDao) GetCommitteeAppointmentsByUuid(uuid string) (committeeAppointments model.CommitteeAppointments, err error) {
committeeAppointments = model.CommitteeAppointments{}
err = db.DocDB.Model(&model.CommitteeAppointments{}).Where("uuid = ?", uuid).First(&committeeAppointments).Error
if err != nil {
return
}
return
}
// 编辑成员管理
func (membersDao) EditManagement(req *members.EditManagementReq) (err error) {
err = db.DocDB.Model(&model.Management{}).Where("uuid = ?", req.Uuid).Updates(&model.Management{
Name: req.Name,
Image: req.Image,
Status: req.Status,
Brief: req.Brief,
Introduction: req.Introduction,
IsSetting: 1,
}).Error
if err != nil {
return errors.New("编辑成员管理失败")
}
//更新主表操作人员信息和时间
err = db.DocDB.Model(&model.Members{}).Where("uuid = ?", req.Uuid).Updates(&model.Members{
Operator: req.Operator,
OperatorID: req.OperatorId,
UpdatedAt: time.Now(),
}).Error
if err != nil {
return errors.New("更新操作人员信息和时间失败")
}
return
}
// 编辑董事会
func (membersDao) EditBoardOfDirectors(req *members.EditBoardOfDirectorsReq) (err error) {
err = db.DocDB.Model(&model.BoardOfDirectors{}).Where("uuid = ?", req.Uuid).Updates(&model.BoardOfDirectors{
Name: req.Name,
Status: req.Status,
Brief: req.Brief,
Introduction: req.Introduction,
IsSetting: 1,
}).Error
if err != nil {
return errors.New("编辑董事会失败")
}
//更新主表操作人员信息和时间
err = db.DocDB.Model(&model.Members{}).Where("uuid = ?", req.Uuid).Updates(&model.Members{
Operator: req.Operator,
OperatorID: req.OperatorId,
UpdatedAt: time.Now(),
}).Error
if err != nil {
return errors.New("更新操作人员信息和时间失败")
}
return
}
// 编辑委员会
func (membersDao) EditCommitteeAppointments(req *members.EditCommitteeAppointmentsReq) (err error) {
err = db.DocDB.Model(&model.CommitteeAppointments{}).Where("uuid = ?", req.Uuid).Updates(&model.CommitteeAppointments{
Name: req.Name,
Status: req.Status,
AuditCommittee: req.AuditCommittee,
CompensationCommittee: req.CompensationCommittee,
NominatingCommittee: req.NominatingCommittee,
IsSetting: 1,
}).Error
if err != nil {
return errors.New("编辑委员会失败")
}
//更新主表操作人员信息和时间
err = db.DocDB.Model(&model.Members{}).Where("uuid = ?", req.Uuid).Updates(&model.Members{
Operator: req.Operator,
OperatorID: req.OperatorId,
UpdatedAt: time.Now(),
}).Error
if err != nil {
return errors.New("更新操作人员信息和时间失败")
}
return
}

View File

@ -64,6 +64,19 @@ func (quarterlyReportsDao) Edit(req *reports.EditQuarterlyReportReq) (err error)
}
func (quarterlyReportsDao) Delete(req *reports.DeleteQuarterlyReportReq) (err error) {
// 先查询记录是否存在且状态允许删除
var report model.QuarterlyReport
err = db.DocDB.Model(&model.QuarterlyReport{}).Where("id = ?", req.Id).First(&report).Error
if err != nil {
return errors.New("查询记录失败")
}
// 检查状态如果status=1则不允许删除
if report.Status == 1 {
return errors.New("该记录已上架,不允许删除")
}
// 执行删除操作
err = db.DocDB.Model(&model.QuarterlyReport{}).Where("id = ?", req.Id).Delete(&model.QuarterlyReport{}).Error
if err != nil {
return errors.New("删除季度报告失败")

120
internel/logic/members.go Normal file
View File

@ -0,0 +1,120 @@
package logic
import (
"errors"
"micro-document/api/members"
"micro-document/internel/dao"
util "micro-document/pkg/utils"
"github.com/jinzhu/copier"
)
type membersLogic struct{}
var MembersLogic = new(membersLogic)
func (membersLogic) AddMember(req *members.AddMemberReq) (result *members.AddMemberResp, err error) {
result = &members.AddMemberResp{}
if req.Name == "" {
return nil, errors.New("姓名不能为空")
}
err = dao.MembersDao.AddMember(req)
if err != nil {
return nil, errors.New("新增成员失败")
}
result.Msg = "新增成员成功"
return nil, nil
}
func (membersLogic) EditMember(req *members.EditMemberReq) (result *members.EditMemberResp, err error) {
result = &members.EditMemberResp{}
err = dao.MembersDao.EditMember(req)
if err != nil {
return nil, errors.New("编辑成员失败")
}
result.Msg = "编辑成员成功"
return nil, nil
}
func (membersLogic) DeleteMember(req *members.DeleteMemberReq) (result *members.DeleteMemberResp, err error) {
result = &members.DeleteMemberResp{}
err = dao.MembersDao.DeleteMember(req)
if err != nil {
return nil, errors.New("删除成员失败")
}
result.Msg = "删除成员成功"
return nil, nil
}
func (membersLogic) GetMemberList(req *members.GetMemberListReq) (result *members.GetMemberListResp, err error) {
result = &members.GetMemberListResp{}
data, total, err := dao.MembersDao.GetMemberList(req)
if err != nil {
return nil, errors.New("查询成员列表失败")
}
//查询获取成员管理,董事会,委员会信息
result.Total = int32(total)
if err = copier.CopyWithOption(&result.Data, &data, util.CopierProtoOptions); err != nil {
return nil, errors.New("复制成员列表失败")
}
for _, v := range result.Data {
management, err := dao.MembersDao.GetManagementByUuid(v.Uuid)
if err != nil {
return nil, errors.New("查询成员管理失败")
}
if err = copier.CopyWithOption(&v.Management, &management, util.CopierProtoOptions); err != nil {
return nil, errors.New("复制成员管理列表失败")
}
boardOfDirectors, err := dao.MembersDao.GetBoardOfDirectorsByUuid(v.Uuid)
if err != nil {
return nil, errors.New("查询董事会失败")
}
if err = copier.CopyWithOption(&v.BoardOfDirectors, &boardOfDirectors, util.CopierProtoOptions); err != nil {
return nil, errors.New("复制董事会列表失败")
}
committeeAppointments, err := dao.MembersDao.GetCommitteeAppointmentsByUuid(v.Uuid)
if err != nil {
return nil, errors.New("查询委员会失败")
}
if err = copier.CopyWithOption(&v.CommitteeAppointments, &committeeAppointments, util.CopierProtoOptions); err != nil {
return nil, errors.New("复制委员会列表失败")
}
}
return result, nil
}
// 编辑成员管理
func (membersLogic) EditManagement(req *members.EditManagementReq) (result *members.EditManagementResp, err error) {
result = &members.EditManagementResp{}
err = dao.MembersDao.EditManagement(req)
if err != nil {
return nil, errors.New("编辑成员管理失败")
}
result.Msg = "编辑成员管理成功"
return result, nil
}
// 编辑董事会
func (membersLogic) EditBoardOfDirectors(req *members.EditBoardOfDirectorsReq) (result *members.EditBoardOfDirectorsResp, err error) {
result = &members.EditBoardOfDirectorsResp{}
err = dao.MembersDao.EditBoardOfDirectors(req)
if err != nil {
return nil, errors.New("编辑董事会失败")
}
result.Msg = "编辑董事会成功"
return result, nil
}
// 编辑委员会
func (membersLogic) EditCommitteeAppointments(req *members.EditCommitteeAppointmentsReq) (result *members.EditCommitteeAppointmentsResp, err error) {
result = &members.EditCommitteeAppointmentsResp{}
err = dao.MembersDao.EditCommitteeAppointments(req)
if err != nil {
return nil, errors.New("编辑委员会失败")
}
result.Msg = "编辑委员会成功"
return result, nil
}

View File

@ -0,0 +1,24 @@
package model
import (
"time"
"gorm.io/gorm"
)
type BoardOfDirectors struct {
Id int32 `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_board_of_directors_deleted_at;"`
Uuid string `gorm:"column:uuid;type:varchar(256);not null;default:'';comment:uuid"`
Name string `gorm:"column:name;type:varchar(30);not null;default:'';comment:姓名"`
Status int32 `gorm:"column:status;type:int;not null;default:2;comment:状态:1上架 2 下架"`
Brief string `gorm:"column:brief;type:varchar(256);not null;default:'';comment:简介"`
Introduction string `gorm:"column:introduction;type:varchar(1024);not null;default:'';comment:详细介绍"`
IsSetting int32 `gorm:"column:is_setting;type:int;not null;default:0;comment:是否设置:0 否 1 是"`
}
func (*BoardOfDirectors) TableName() string {
return "board_of_directors"
}

View File

@ -0,0 +1,25 @@
package model
import (
"time"
"gorm.io/gorm"
)
type CommitteeAppointments struct {
Id int32 `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_committee_appointments_deleted_at;"`
Uuid string `gorm:"column:uuid;type:varchar(256);not null;default:'';comment:uuid"`
Name string `gorm:"column:name;type:varchar(30);not null;default:'';comment:姓名"`
Status int32 `gorm:"column:status;type:int;not null;default:2;comment:状态:1上架 2 下架"`
AuditCommittee string `gorm:"column:audit_committee;type:varchar(10);not null;default:'';comment:审计委员会"`
CompensationCommittee string `gorm:"column:compensation_committee;type:varchar(10);not null;default:'';comment:薪酬委员会"`
NominatingCommittee string `gorm:"column:nominating_committee;type:varchar(10);not null;default:'';comment:提名委员会"`
IsSetting int32 `gorm:"column:is_setting;type:int;not null;default:0;comment:是否设置:0 否 1 是"`
}
func (*CommitteeAppointments) TableName() string {
return "committee_appointments"
}

View File

@ -7,7 +7,7 @@ import (
)
type EmailAlerts struct {
ID uint `gorm:"primarykey"`
Id int32 `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_email_alerts_deleted_at;"`

View File

@ -0,0 +1,25 @@
package model
import (
"time"
"gorm.io/gorm"
)
type Management struct {
Id int32 `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_management_deleted_at;"`
Uuid string `gorm:"column:uuid;type:varchar(256);not null;default:'';comment:uuid"`
Name string `gorm:"column:name;type:varchar(30);not null;default:'';comment:姓名"`
Image string `gorm:"column:image;type:varchar(1024);not null;default:'';comment:头像"`
Brief string `gorm:"column:brief;type:varchar(256);not null;default:'';comment:简介"`
Introduction string `gorm:"column:introduction;type:varchar(1024);not null;default:'';comment:详细介绍"`
Status int32 `gorm:"column:status;type:int;not null;default:2;comment:状态:1上架 2 下架"`
IsSetting int32 `gorm:"column:is_setting;type:int;not null;default:0;comment:是否设置:0 否 1 是"`
}
func (*Management) TableName() string {
return "management"
}

25
internel/model/members.go Normal file
View File

@ -0,0 +1,25 @@
package model
import (
"time"
"gorm.io/gorm"
)
type Members struct {
Id int32 `gorm:"primarykey"`
CreatedAt time.Time
UpdatedAt time.Time
DeletedAt gorm.DeletedAt `gorm:"column:deleted_at;index:idx_members_deleted_at;"`
Uuid string `gorm:"column:uuid;type:varchar(256);not null;default:'';comment:uuid"`
Name string `gorm:"column:name;type:varchar(30);not null;default:'';comment:姓名"`
Brief string `gorm:"column:brief;type:varchar(256);not null;default:'';comment:简介"`
Introduction string `gorm:"column:introduction;type:varchar(1024);not null;default:'';comment:详细介绍"`
Sort int32 `gorm:"column:sort;type:int;not null;default:1;comment:排序"`
Operator string `gorm:"column:operator;type:varchar(100);not null;default:'';comment:操作人"`
OperatorID int32 `gorm:"column:operator_id;comment:操作人Id"`
}
func (*Members) TableName() string {
return "members"
}

View File

@ -43,6 +43,10 @@ func DbInit() {
&model.AnnualReport{},
&model.QuarterlyReport{},
&model.EmailAlerts{},
&model.Members{},
&model.Management{},
&model.BoardOfDirectors{},
&model.CommitteeAppointments{},
)
}
}