用户处罚管理

dev
truthhun 11 months ago
parent 7bc1cb40ef
commit b09629b117

@ -354,6 +354,106 @@ func (m *ListPunishmentRequest) GetUserId() []int64 {
return nil return nil
} }
type CreatePunishmentRequest struct {
StartTime *time.Time `protobuf:"bytes,1,opt,name=start_time,json=startTime,proto3,stdtime" json:"start_time,omitempty"`
EndTime *time.Time `protobuf:"bytes,2,opt,name=end_time,json=endTime,proto3,stdtime" json:"end_time,omitempty"`
Id int64 `protobuf:"varint,3,opt,name=id,proto3" json:"id,omitempty"`
UserId []int64 `protobuf:"varint,4,rep,packed,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
Type []int32 `protobuf:"varint,5,rep,packed,name=type,proto3" json:"type,omitempty"`
Enable bool `protobuf:"varint,6,opt,name=enable,proto3" json:"enable,omitempty"`
Remark string `protobuf:"bytes,7,opt,name=remark,proto3" json:"remark,omitempty"`
Reason string `protobuf:"bytes,8,opt,name=reason,proto3" json:"reason,omitempty"`
}
func (m *CreatePunishmentRequest) Reset() { *m = CreatePunishmentRequest{} }
func (m *CreatePunishmentRequest) String() string { return proto.CompactTextString(m) }
func (*CreatePunishmentRequest) ProtoMessage() {}
func (*CreatePunishmentRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_165d39e292001fbd, []int{4}
}
func (m *CreatePunishmentRequest) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b)
}
func (m *CreatePunishmentRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
if deterministic {
return xxx_messageInfo_CreatePunishmentRequest.Marshal(b, m, deterministic)
} else {
b = b[:cap(b)]
n, err := m.MarshalToSizedBuffer(b)
if err != nil {
return nil, err
}
return b[:n], nil
}
}
func (m *CreatePunishmentRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_CreatePunishmentRequest.Merge(m, src)
}
func (m *CreatePunishmentRequest) XXX_Size() int {
return m.Size()
}
func (m *CreatePunishmentRequest) XXX_DiscardUnknown() {
xxx_messageInfo_CreatePunishmentRequest.DiscardUnknown(m)
}
var xxx_messageInfo_CreatePunishmentRequest proto.InternalMessageInfo
func (m *CreatePunishmentRequest) GetStartTime() *time.Time {
if m != nil {
return m.StartTime
}
return nil
}
func (m *CreatePunishmentRequest) GetEndTime() *time.Time {
if m != nil {
return m.EndTime
}
return nil
}
func (m *CreatePunishmentRequest) GetId() int64 {
if m != nil {
return m.Id
}
return 0
}
func (m *CreatePunishmentRequest) GetUserId() []int64 {
if m != nil {
return m.UserId
}
return nil
}
func (m *CreatePunishmentRequest) GetType() []int32 {
if m != nil {
return m.Type
}
return nil
}
func (m *CreatePunishmentRequest) GetEnable() bool {
if m != nil {
return m.Enable
}
return false
}
func (m *CreatePunishmentRequest) GetRemark() string {
if m != nil {
return m.Remark
}
return ""
}
func (m *CreatePunishmentRequest) GetReason() string {
if m != nil {
return m.Reason
}
return ""
}
type ListPunishmentReply struct { type ListPunishmentReply struct {
Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"` Total int64 `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
Punishment []*Punishment `protobuf:"bytes,2,rep,name=punishment,proto3" json:"punishment,omitempty"` Punishment []*Punishment `protobuf:"bytes,2,rep,name=punishment,proto3" json:"punishment,omitempty"`
@ -363,7 +463,7 @@ func (m *ListPunishmentReply) Reset() { *m = ListPunishmentReply{} }
func (m *ListPunishmentReply) String() string { return proto.CompactTextString(m) } func (m *ListPunishmentReply) String() string { return proto.CompactTextString(m) }
func (*ListPunishmentReply) ProtoMessage() {} func (*ListPunishmentReply) ProtoMessage() {}
func (*ListPunishmentReply) Descriptor() ([]byte, []int) { func (*ListPunishmentReply) Descriptor() ([]byte, []int) {
return fileDescriptor_165d39e292001fbd, []int{4} return fileDescriptor_165d39e292001fbd, []int{5}
} }
func (m *ListPunishmentReply) XXX_Unmarshal(b []byte) error { func (m *ListPunishmentReply) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -411,56 +511,61 @@ func init() {
proto.RegisterType((*CancelPunishmentRequest)(nil), "api.v1.CancelPunishmentRequest") proto.RegisterType((*CancelPunishmentRequest)(nil), "api.v1.CancelPunishmentRequest")
proto.RegisterType((*GetPunishmentRequest)(nil), "api.v1.GetPunishmentRequest") proto.RegisterType((*GetPunishmentRequest)(nil), "api.v1.GetPunishmentRequest")
proto.RegisterType((*ListPunishmentRequest)(nil), "api.v1.ListPunishmentRequest") proto.RegisterType((*ListPunishmentRequest)(nil), "api.v1.ListPunishmentRequest")
proto.RegisterType((*CreatePunishmentRequest)(nil), "api.v1.CreatePunishmentRequest")
proto.RegisterType((*ListPunishmentReply)(nil), "api.v1.ListPunishmentReply") proto.RegisterType((*ListPunishmentReply)(nil), "api.v1.ListPunishmentReply")
} }
func init() { proto.RegisterFile("api/v1/punishment.proto", fileDescriptor_165d39e292001fbd) } func init() { proto.RegisterFile("api/v1/punishment.proto", fileDescriptor_165d39e292001fbd) }
var fileDescriptor_165d39e292001fbd = []byte{ var fileDescriptor_165d39e292001fbd = []byte{
// 683 bytes of a gzipped FileDescriptorProto // 737 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcf, 0x4f, 0xd4, 0x40, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xcd, 0x6e, 0xd3, 0x40,
0x14, 0xa6, 0xdb, 0x65, 0x7f, 0x3c, 0x84, 0xe0, 0xb8, 0xb2, 0xa5, 0xc0, 0x6e, 0xed, 0xc1, 0x54, 0x10, 0xee, 0xda, 0xf9, 0x9d, 0xd2, 0xaa, 0x2c, 0xa1, 0x71, 0xdd, 0x36, 0xb1, 0x2c, 0x84, 0x42,
0x0f, 0x6d, 0x58, 0xe3, 0x45, 0x0e, 0x04, 0x88, 0x31, 0x24, 0x1e, 0x48, 0xa3, 0x07, 0x4d, 0xcc, 0x0f, 0x89, 0x1a, 0xc4, 0xa5, 0x3d, 0x54, 0x6d, 0x85, 0x50, 0x25, 0x0e, 0x95, 0x05, 0x17, 0x24,
0x66, 0xd8, 0x19, 0xd6, 0xc6, 0xb6, 0x53, 0xdb, 0x59, 0xc8, 0x7a, 0xf4, 0xe2, 0x95, 0xc4, 0x7f, 0x14, 0x6d, 0xe3, 0x6d, 0x30, 0xd8, 0x5e, 0xd7, 0xde, 0xb4, 0x0a, 0x47, 0x9e, 0xa0, 0x12, 0x47,
0xc8, 0xa3, 0x89, 0x17, 0x12, 0x2f, 0xde, 0x34, 0xe0, 0x1f, 0x62, 0x66, 0x3a, 0x65, 0x17, 0xe8, 0x78, 0x18, 0x8e, 0x48, 0x5c, 0x2a, 0x71, 0xe1, 0x06, 0x6a, 0x79, 0x10, 0xe4, 0xf5, 0x3a, 0xbf,
0x46, 0x6e, 0xf3, 0xbe, 0xf7, 0xde, 0xf7, 0xcd, 0x7b, 0xf3, 0xde, 0x40, 0x1b, 0x27, 0x81, 0x77, 0x8e, 0x28, 0xe2, 0xb6, 0x33, 0xb3, 0xf3, 0x7d, 0x3b, 0xdf, 0x8c, 0xc7, 0x50, 0x25, 0x81, 0xd3,
0xbc, 0xe9, 0x25, 0xa3, 0x38, 0xc8, 0xde, 0x47, 0x34, 0xe6, 0x6e, 0x92, 0x32, 0xce, 0x50, 0x0d, 0x3a, 0xdf, 0x6e, 0x05, 0x7d, 0xdf, 0x89, 0xde, 0x78, 0xd4, 0xe7, 0xcd, 0x20, 0x64, 0x9c, 0xe1,
0x27, 0x81, 0x7b, 0xbc, 0x69, 0x76, 0x87, 0x8c, 0x0d, 0x43, 0xea, 0x49, 0xf4, 0x70, 0x74, 0xe4, 0x02, 0x09, 0x9c, 0xe6, 0xf9, 0xb6, 0x5e, 0xef, 0x31, 0xd6, 0x73, 0x69, 0x4b, 0x78, 0x4f, 0xfa,
0xf1, 0x20, 0xa2, 0x19, 0xc7, 0x51, 0x92, 0x07, 0x9a, 0xad, 0x21, 0x1b, 0x32, 0x79, 0xf4, 0xc4, 0xa7, 0x2d, 0xee, 0x78, 0x34, 0xe2, 0xc4, 0x0b, 0x92, 0x8b, 0x7a, 0xa5, 0xc7, 0x7a, 0x4c, 0x1c,
0x49, 0xa1, 0xeb, 0x2a, 0x4d, 0xd0, 0xe3, 0x38, 0x66, 0x1c, 0xf3, 0x80, 0xc5, 0x99, 0xf2, 0xae, 0x5b, 0xf1, 0x49, 0x7a, 0x37, 0x64, 0x5a, 0x0c, 0x4f, 0x7c, 0x9f, 0x71, 0xc2, 0x1d, 0xe6, 0x47,
0x5d, 0x27, 0xa5, 0x51, 0xc2, 0xc7, 0xb9, 0xd3, 0xfe, 0xa1, 0x03, 0x1c, 0x5c, 0x5e, 0x07, 0x6d, 0x32, 0xba, 0x3e, 0x0d, 0x4a, 0xbd, 0x80, 0x0f, 0x92, 0xa0, 0xf9, 0x4d, 0x05, 0x38, 0x1e, 0x3e,
0x03, 0x64, 0x1c, 0xa7, 0xbc, 0x2f, 0x84, 0x8d, 0x9a, 0xa5, 0x39, 0x0b, 0x3d, 0xd3, 0xcd, 0x09, 0x07, 0xef, 0x01, 0x44, 0x9c, 0x84, 0xbc, 0x13, 0x13, 0x6b, 0x05, 0x03, 0x35, 0x16, 0xdb, 0x7a,
0xdc, 0x82, 0xc0, 0x7d, 0x55, 0xdc, 0x6a, 0xb7, 0x7a, 0xfa, 0xbb, 0xab, 0xf9, 0x4d, 0x99, 0x23, 0x33, 0x01, 0x68, 0xa6, 0x00, 0xcd, 0x17, 0xe9, 0xab, 0x0e, 0x72, 0x97, 0x3f, 0xeb, 0xc8, 0x2a,
0x50, 0xb4, 0x05, 0x0d, 0x1a, 0x93, 0x3c, 0xbd, 0x7e, 0xcb, 0xf4, 0x3a, 0x8d, 0x89, 0x4c, 0xde, 0x8b, 0x9c, 0xd8, 0x8b, 0x77, 0xa1, 0x44, 0x7d, 0x3b, 0x49, 0x2f, 0xde, 0x32, 0xbd, 0x48, 0x7d,
0x06, 0x18, 0xa4, 0x14, 0x73, 0x4a, 0xfa, 0x98, 0x1b, 0x8d, 0xdb, 0xaa, 0xab, 0x9c, 0x1d, 0x79, 0x5b, 0x24, 0xef, 0x01, 0x74, 0x43, 0x4a, 0x38, 0xb5, 0x3b, 0x84, 0x6b, 0xa5, 0xdb, 0xb2, 0xcb,
0xfd, 0x51, 0x42, 0x0a, 0x82, 0xe6, 0x6d, 0x09, 0x54, 0xce, 0x0e, 0x47, 0x4b, 0x50, 0x09, 0x88, 0x9c, 0x7d, 0xf1, 0xfc, 0x7e, 0x60, 0xa7, 0x00, 0xe5, 0xdb, 0x02, 0xc8, 0x9c, 0x7d, 0x8e, 0x97,
0xa1, 0x59, 0x9a, 0xa3, 0xfb, 0x95, 0x80, 0xa0, 0x36, 0xd4, 0x47, 0x19, 0x4d, 0xfb, 0x01, 0x31, 0x41, 0x71, 0x6c, 0x0d, 0x19, 0xa8, 0xa1, 0x5a, 0x8a, 0x63, 0xe3, 0x2a, 0x14, 0xfb, 0x11, 0x0d,
0x2a, 0x12, 0xac, 0x09, 0x73, 0x9f, 0x20, 0x04, 0x55, 0x3e, 0x4e, 0xa8, 0xa1, 0x5b, 0x9a, 0x33, 0x3b, 0x8e, 0xad, 0x29, 0xc2, 0x59, 0x88, 0xcd, 0x23, 0x1b, 0x63, 0xc8, 0xf1, 0x41, 0x40, 0x35,
0xef, 0xcb, 0x33, 0x5a, 0x81, 0x1a, 0x8d, 0xf1, 0x61, 0x48, 0x8d, 0xaa, 0xa5, 0x39, 0x0d, 0x5f, 0xd5, 0x40, 0x8d, 0xbc, 0x25, 0xce, 0x78, 0x15, 0x0a, 0xd4, 0x27, 0x27, 0x2e, 0xd5, 0x72, 0x06,
0x59, 0x68, 0x1d, 0x9a, 0x2c, 0xa1, 0x29, 0xe6, 0x2c, 0xcd, 0x8c, 0x79, 0x4b, 0x73, 0x9a, 0xfe, 0x6a, 0x94, 0x2c, 0x69, 0xe1, 0x0d, 0x28, 0xb3, 0x80, 0x86, 0x84, 0xb3, 0x30, 0xd2, 0xf2, 0x06,
0x04, 0x10, 0x59, 0x29, 0x8d, 0x70, 0xfa, 0xc1, 0x00, 0xe9, 0x52, 0x56, 0x8e, 0xe3, 0x8c, 0xc5, 0x6a, 0x94, 0xad, 0x91, 0x23, 0xce, 0x0a, 0xa9, 0x47, 0xc2, 0x77, 0x1a, 0x88, 0x90, 0xb4, 0x12,
0xc6, 0x42, 0x81, 0x0b, 0x0b, 0x99, 0xd0, 0x10, 0x77, 0x88, 0x71, 0x44, 0x8d, 0x3b, 0xd2, 0x73, 0x3f, 0x89, 0x98, 0xaf, 0x2d, 0xa6, 0xfe, 0xd8, 0xc2, 0x3a, 0x94, 0xe2, 0x37, 0xf8, 0xc4, 0xa3,
0x69, 0xdb, 0x8f, 0xa0, 0xbd, 0x87, 0xe3, 0x01, 0x0d, 0x27, 0x4f, 0xea, 0xd3, 0x8f, 0x23, 0x9a, 0xda, 0x1d, 0x11, 0x19, 0xda, 0xe6, 0x23, 0xa8, 0x1e, 0x12, 0xbf, 0x4b, 0xdd, 0x51, 0x4b, 0x2d,
0x4d, 0x2a, 0xd3, 0xf3, 0xca, 0xec, 0x87, 0xd0, 0x7a, 0x41, 0xf9, 0xec, 0x38, 0xd5, 0x01, 0xfb, 0x7a, 0xd6, 0xa7, 0xd1, 0xa8, 0x32, 0x35, 0xa9, 0xcc, 0x7c, 0x08, 0x95, 0x67, 0x94, 0xcf, 0xbf,
0x9b, 0x06, 0xf7, 0x5f, 0x06, 0x59, 0x49, 0x24, 0x82, 0x6a, 0x82, 0x87, 0x54, 0xc5, 0xca, 0xb3, 0x27, 0x15, 0x30, 0xbf, 0x20, 0xb8, 0xff, 0xdc, 0x89, 0x32, 0x6e, 0x62, 0xc8, 0x05, 0xa4, 0x47,
0xc0, 0xb2, 0xe0, 0x13, 0x55, 0xcd, 0x92, 0x67, 0xc1, 0x78, 0x42, 0x64, 0xa3, 0x9a, 0x7e, 0xe5, 0xe5, 0x5d, 0x71, 0x8e, 0x7d, 0x91, 0xf3, 0x9e, 0x4a, 0xb1, 0xc4, 0x39, 0x46, 0xbc, 0xb0, 0x85,
0x84, 0xa0, 0x16, 0xcc, 0x1f, 0x05, 0x34, 0x24, 0x46, 0xd5, 0xd2, 0x9d, 0xa6, 0x9f, 0x1b, 0x02, 0x50, 0x65, 0x4b, 0xb9, 0xb0, 0x71, 0x05, 0xf2, 0xa7, 0x0e, 0x75, 0x6d, 0x2d, 0x67, 0xa8, 0x8d,
0x65, 0x29, 0xa1, 0xa9, 0x6a, 0x50, 0x6e, 0x5c, 0xb6, 0xb9, 0x66, 0xe9, 0x25, 0x6d, 0xae, 0x4b, 0xb2, 0x95, 0x18, 0xb1, 0x97, 0x85, 0x36, 0x0d, 0xa5, 0x40, 0x89, 0x31, 0x94, 0xb9, 0x60, 0xa8,
0xb4, 0x68, 0xf3, 0xd4, 0x5b, 0x35, 0x64, 0x99, 0xea, 0xad, 0xec, 0x3e, 0xdc, 0xbb, 0x5e, 0x41, 0x19, 0x32, 0x17, 0x85, 0x37, 0x95, 0x79, 0xac, 0x57, 0x25, 0x51, 0xa6, 0xec, 0x95, 0xf9, 0x59,
0x12, 0x8e, 0x85, 0x22, 0x67, 0x1c, 0x87, 0xaa, 0x80, 0xdc, 0x40, 0x3d, 0x80, 0xc9, 0x7a, 0x1a, 0x81, 0xea, 0xa1, 0x98, 0x91, 0xd9, 0x22, 0x26, 0x07, 0x1e, 0xfd, 0xdf, 0xc0, 0x2b, 0xff, 0x3a,
0x15, 0x4b, 0x77, 0x16, 0x7a, 0xc8, 0xcd, 0xf7, 0xd3, 0x9d, 0xa2, 0x98, 0x8a, 0xea, 0x7d, 0xa9, 0xf0, 0x89, 0xd8, 0x6a, 0xd6, 0xb8, 0xe5, 0xc6, 0x4b, 0x18, 0xea, 0x90, 0xcf, 0xd4, 0xa1, 0x30,
0xc2, 0xe2, 0xc4, 0xb5, 0x73, 0xb0, 0x8f, 0xde, 0xc0, 0xf2, 0x9e, 0x9c, 0xca, 0xa9, 0xdd, 0x2a, 0x31, 0x6e, 0xa3, 0x81, 0x2a, 0xce, 0x19, 0xa8, 0xd2, 0xf8, 0x40, 0x99, 0x1d, 0xb8, 0x37, 0xdd,
0x61, 0x31, 0x4b, 0x30, 0x7b, 0xe3, 0xf3, 0xcf, 0xbf, 0x5f, 0x2b, 0x6d, 0x1b, 0x79, 0x37, 0xbe, 0xe0, 0xc0, 0x1d, 0xc4, 0x0d, 0xe1, 0x8c, 0x13, 0x57, 0xf6, 0x37, 0x31, 0x70, 0x1b, 0x60, 0xb4,
0x8b, 0x67, 0xda, 0x63, 0xf4, 0x0e, 0x96, 0x5f, 0xcb, 0x79, 0xfd, 0x0f, 0xf5, 0xca, 0x8d, 0xb9, 0xbd, 0x34, 0xc5, 0x50, 0x1b, 0x8b, 0x6d, 0xdc, 0x4c, 0xd6, 0x57, 0x73, 0x0c, 0x62, 0xec, 0x56,
0x7f, 0x2e, 0xf6, 0xbe, 0xa0, 0x37, 0x67, 0xd2, 0x2f, 0x5e, 0x99, 0x0b, 0xb4, 0x5e, 0x70, 0x97, 0xfb, 0x53, 0x0e, 0x96, 0x46, 0xa1, 0xfd, 0xe3, 0x23, 0xfc, 0x16, 0x56, 0xa6, 0x1b, 0x82, 0xeb,
0x8d, 0x4b, 0x69, 0x01, 0xa6, 0x54, 0x68, 0xa1, 0x12, 0x05, 0x14, 0xc1, 0xd2, 0xd5, 0xb7, 0x40, 0x29, 0xca, 0x9c, 0x56, 0xe9, 0xab, 0x33, 0xba, 0x3e, 0x8d, 0x17, 0x99, 0xb9, 0xf9, 0xe1, 0xfb,
0x1b, 0x05, 0x43, 0xe9, 0x94, 0x99, 0x6b, 0xb3, 0xdc, 0x49, 0x38, 0xb6, 0xbb, 0x52, 0x69, 0x15, 0xef, 0x8f, 0x4a, 0xd5, 0xc4, 0xad, 0x99, 0xf5, 0xba, 0x83, 0xb6, 0xf0, 0x6b, 0x58, 0x79, 0x29,
0xb5, 0x6f, 0x2a, 0x79, 0x61, 0x90, 0x71, 0x14, 0xc3, 0xf2, 0xf5, 0x85, 0x40, 0xdd, 0x82, 0x71, 0xbe, 0xef, 0x31, 0xae, 0x8c, 0x17, 0xff, 0x0d, 0x5e, 0x9f, 0x0b, 0xbf, 0x34, 0xf1, 0x1d, 0xe1,
0xc6, 0xaa, 0xcc, 0xec, 0xdc, 0x03, 0xa9, 0xb6, 0x66, 0xae, 0x96, 0xa8, 0x0d, 0x24, 0xd7, 0xee, 0x8d, 0x14, 0x3b, 0xeb, 0xf3, 0xd2, 0x33, 0x98, 0x4d, 0x5d, 0x30, 0x54, 0x70, 0x06, 0x03, 0xf6,
0xd3, 0xef, 0xe7, 0x1d, 0xed, 0xec, 0xbc, 0xa3, 0xfd, 0x39, 0xef, 0x68, 0xa7, 0x17, 0x9d, 0xb9, 0x60, 0x79, 0xb2, 0x39, 0x78, 0x33, 0x45, 0xc8, 0xfc, 0x2a, 0xf5, 0xf5, 0x79, 0xe1, 0xc0, 0x1d,
0xb3, 0x8b, 0xce, 0xdc, 0xaf, 0x8b, 0xce, 0x1c, 0xa8, 0x2f, 0xfe, 0x40, 0x7b, 0x7b, 0x37, 0x62, 0x98, 0x75, 0xc1, 0xb4, 0x86, 0xab, 0xb3, 0x4c, 0x2d, 0xd7, 0x89, 0x38, 0x3e, 0x83, 0x95, 0xe9,
0x29, 0x25, 0x6c, 0xa0, 0x58, 0xb6, 0x8e, 0x37, 0x0f, 0x6b, 0x52, 0xe9, 0xc9, 0xbf, 0x00, 0x00, 0x05, 0x32, 0xd6, 0x98, 0xec, 0xd5, 0x32, 0x57, 0xb9, 0x07, 0x82, 0xad, 0xa6, 0xaf, 0x65, 0xb0,
0x00, 0xff, 0xff, 0x26, 0x59, 0x4f, 0x8f, 0x21, 0x06, 0x00, 0x00, 0x75, 0x05, 0xd6, 0x0e, 0xda, 0x3a, 0x78, 0xf2, 0xf5, 0xba, 0x86, 0xae, 0xae, 0x6b, 0xe8, 0xd7,
0x75, 0x0d, 0x5d, 0xde, 0xd4, 0x16, 0xae, 0x6e, 0x6a, 0x0b, 0x3f, 0x6e, 0x6a, 0x0b, 0x20, 0xff,
0x8a, 0xc7, 0xe8, 0xd5, 0x5d, 0x8f, 0x85, 0xd4, 0x66, 0x5d, 0x09, 0xb4, 0x7b, 0xbe, 0x7d, 0x52,
0x10, 0x64, 0x8f, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x70, 0x53, 0x08, 0x46, 0x54, 0x07, 0x00,
0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.
@ -475,7 +580,7 @@ const _ = grpc.SupportPackageIsVersion4
// //
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type PunishmentAPIClient interface { type PunishmentAPIClient interface {
CreatePunishment(ctx context.Context, in *Punishment, opts ...grpc.CallOption) (*Punishment, error) CreatePunishment(ctx context.Context, in *CreatePunishmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error)
UpdatePunishment(ctx context.Context, in *Punishment, opts ...grpc.CallOption) (*emptypb.Empty, error) UpdatePunishment(ctx context.Context, in *Punishment, opts ...grpc.CallOption) (*emptypb.Empty, error)
GetPunishment(ctx context.Context, in *GetPunishmentRequest, opts ...grpc.CallOption) (*Punishment, error) GetPunishment(ctx context.Context, in *GetPunishmentRequest, opts ...grpc.CallOption) (*Punishment, error)
ListPunishment(ctx context.Context, in *ListPunishmentRequest, opts ...grpc.CallOption) (*ListPunishmentReply, error) ListPunishment(ctx context.Context, in *ListPunishmentRequest, opts ...grpc.CallOption) (*ListPunishmentReply, error)
@ -491,8 +596,8 @@ func NewPunishmentAPIClient(cc *grpc.ClientConn) PunishmentAPIClient {
return &punishmentAPIClient{cc} return &punishmentAPIClient{cc}
} }
func (c *punishmentAPIClient) CreatePunishment(ctx context.Context, in *Punishment, opts ...grpc.CallOption) (*Punishment, error) { func (c *punishmentAPIClient) CreatePunishment(ctx context.Context, in *CreatePunishmentRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) {
out := new(Punishment) out := new(emptypb.Empty)
err := c.cc.Invoke(ctx, "/api.v1.PunishmentAPI/CreatePunishment", in, out, opts...) err := c.cc.Invoke(ctx, "/api.v1.PunishmentAPI/CreatePunishment", in, out, opts...)
if err != nil { if err != nil {
return nil, err return nil, err
@ -538,7 +643,7 @@ func (c *punishmentAPIClient) CancelPunishment(ctx context.Context, in *CancelPu
// PunishmentAPIServer is the server API for PunishmentAPI service. // PunishmentAPIServer is the server API for PunishmentAPI service.
type PunishmentAPIServer interface { type PunishmentAPIServer interface {
CreatePunishment(context.Context, *Punishment) (*Punishment, error) CreatePunishment(context.Context, *CreatePunishmentRequest) (*emptypb.Empty, error)
UpdatePunishment(context.Context, *Punishment) (*emptypb.Empty, error) UpdatePunishment(context.Context, *Punishment) (*emptypb.Empty, error)
GetPunishment(context.Context, *GetPunishmentRequest) (*Punishment, error) GetPunishment(context.Context, *GetPunishmentRequest) (*Punishment, error)
ListPunishment(context.Context, *ListPunishmentRequest) (*ListPunishmentReply, error) ListPunishment(context.Context, *ListPunishmentRequest) (*ListPunishmentReply, error)
@ -550,7 +655,7 @@ type PunishmentAPIServer interface {
type UnimplementedPunishmentAPIServer struct { type UnimplementedPunishmentAPIServer struct {
} }
func (*UnimplementedPunishmentAPIServer) CreatePunishment(ctx context.Context, req *Punishment) (*Punishment, error) { func (*UnimplementedPunishmentAPIServer) CreatePunishment(ctx context.Context, req *CreatePunishmentRequest) (*emptypb.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreatePunishment not implemented") return nil, status.Errorf(codes.Unimplemented, "method CreatePunishment not implemented")
} }
func (*UnimplementedPunishmentAPIServer) UpdatePunishment(ctx context.Context, req *Punishment) (*emptypb.Empty, error) { func (*UnimplementedPunishmentAPIServer) UpdatePunishment(ctx context.Context, req *Punishment) (*emptypb.Empty, error) {
@ -571,7 +676,7 @@ func RegisterPunishmentAPIServer(s *grpc.Server, srv PunishmentAPIServer) {
} }
func _PunishmentAPI_CreatePunishment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { func _PunishmentAPI_CreatePunishment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(Punishment) in := new(CreatePunishmentRequest)
if err := dec(in); err != nil { if err := dec(in); err != nil {
return nil, err return nil, err
} }
@ -583,7 +688,7 @@ func _PunishmentAPI_CreatePunishment_Handler(srv interface{}, ctx context.Contex
FullMethod: "/api.v1.PunishmentAPI/CreatePunishment", FullMethod: "/api.v1.PunishmentAPI/CreatePunishment",
} }
handler := func(ctx context.Context, req interface{}) (interface{}, error) { handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(PunishmentAPIServer).CreatePunishment(ctx, req.(*Punishment)) return srv.(PunishmentAPIServer).CreatePunishment(ctx, req.(*CreatePunishmentRequest))
} }
return interceptor(ctx, in, info, handler) return interceptor(ctx, in, info, handler)
} }
@ -988,6 +1093,116 @@ func (m *ListPunishmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
return len(dAtA) - i, nil return len(dAtA) - i, nil
} }
func (m *CreatePunishmentRequest) Marshal() (dAtA []byte, err error) {
size := m.Size()
dAtA = make([]byte, size)
n, err := m.MarshalToSizedBuffer(dAtA[:size])
if err != nil {
return nil, err
}
return dAtA[:n], nil
}
func (m *CreatePunishmentRequest) MarshalTo(dAtA []byte) (int, error) {
size := m.Size()
return m.MarshalToSizedBuffer(dAtA[:size])
}
func (m *CreatePunishmentRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i := len(dAtA)
_ = i
var l int
_ = l
if len(m.Reason) > 0 {
i -= len(m.Reason)
copy(dAtA[i:], m.Reason)
i = encodeVarintPunishment(dAtA, i, uint64(len(m.Reason)))
i--
dAtA[i] = 0x42
}
if len(m.Remark) > 0 {
i -= len(m.Remark)
copy(dAtA[i:], m.Remark)
i = encodeVarintPunishment(dAtA, i, uint64(len(m.Remark)))
i--
dAtA[i] = 0x3a
}
if m.Enable {
i--
if m.Enable {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i--
dAtA[i] = 0x30
}
if len(m.Type) > 0 {
dAtA14 := make([]byte, len(m.Type)*10)
var j13 int
for _, num1 := range m.Type {
num := uint64(num1)
for num >= 1<<7 {
dAtA14[j13] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j13++
}
dAtA14[j13] = uint8(num)
j13++
}
i -= j13
copy(dAtA[i:], dAtA14[:j13])
i = encodeVarintPunishment(dAtA, i, uint64(j13))
i--
dAtA[i] = 0x2a
}
if len(m.UserId) > 0 {
dAtA16 := make([]byte, len(m.UserId)*10)
var j15 int
for _, num1 := range m.UserId {
num := uint64(num1)
for num >= 1<<7 {
dAtA16[j15] = uint8(uint64(num)&0x7f | 0x80)
num >>= 7
j15++
}
dAtA16[j15] = uint8(num)
j15++
}
i -= j15
copy(dAtA[i:], dAtA16[:j15])
i = encodeVarintPunishment(dAtA, i, uint64(j15))
i--
dAtA[i] = 0x22
}
if m.Id != 0 {
i = encodeVarintPunishment(dAtA, i, uint64(m.Id))
i--
dAtA[i] = 0x18
}
if m.EndTime != nil {
n17, err17 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.EndTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.EndTime):])
if err17 != nil {
return 0, err17
}
i -= n17
i = encodeVarintPunishment(dAtA, i, uint64(n17))
i--
dAtA[i] = 0x12
}
if m.StartTime != nil {
n18, err18 := github_com_gogo_protobuf_types.StdTimeMarshalTo(*m.StartTime, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTime):])
if err18 != nil {
return 0, err18
}
i -= n18
i = encodeVarintPunishment(dAtA, i, uint64(n18))
i--
dAtA[i] = 0xa
}
return len(dAtA) - i, nil
}
func (m *ListPunishmentReply) Marshal() (dAtA []byte, err error) { func (m *ListPunishmentReply) Marshal() (dAtA []byte, err error) {
size := m.Size() size := m.Size()
dAtA = make([]byte, size) dAtA = make([]byte, size)
@ -1172,6 +1387,51 @@ func (m *ListPunishmentRequest) Size() (n int) {
return n return n
} }
func (m *CreatePunishmentRequest) Size() (n int) {
if m == nil {
return 0
}
var l int
_ = l
if m.StartTime != nil {
l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.StartTime)
n += 1 + l + sovPunishment(uint64(l))
}
if m.EndTime != nil {
l = github_com_gogo_protobuf_types.SizeOfStdTime(*m.EndTime)
n += 1 + l + sovPunishment(uint64(l))
}
if m.Id != 0 {
n += 1 + sovPunishment(uint64(m.Id))
}
if len(m.UserId) > 0 {
l = 0
for _, e := range m.UserId {
l += sovPunishment(uint64(e))
}
n += 1 + sovPunishment(uint64(l)) + l
}
if len(m.Type) > 0 {
l = 0
for _, e := range m.Type {
l += sovPunishment(uint64(e))
}
n += 1 + sovPunishment(uint64(l)) + l
}
if m.Enable {
n += 2
}
l = len(m.Remark)
if l > 0 {
n += 1 + l + sovPunishment(uint64(l))
}
l = len(m.Reason)
if l > 0 {
n += 1 + l + sovPunishment(uint64(l))
}
return n
}
func (m *ListPunishmentReply) Size() (n int) { func (m *ListPunishmentReply) Size() (n int) {
if m == nil { if m == nil {
return 0 return 0
@ -2202,6 +2462,383 @@ func (m *ListPunishmentRequest) Unmarshal(dAtA []byte) error {
} }
return nil return nil
} }
func (m *CreatePunishmentRequest) Unmarshal(dAtA []byte) error {
l := len(dAtA)
iNdEx := 0
for iNdEx < l {
preIndex := iNdEx
var wire uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
wire |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
fieldNum := int32(wire >> 3)
wireType := int(wire & 0x7)
if wireType == 4 {
return fmt.Errorf("proto: CreatePunishmentRequest: wiretype end group for non-group")
}
if fieldNum <= 0 {
return fmt.Errorf("proto: CreatePunishmentRequest: illegal tag %d (wire type %d)", fieldNum, wire)
}
switch fieldNum {
case 1:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field StartTime", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.StartTime == nil {
m.StartTime = new(time.Time)
}
if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.StartTime, dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field EndTime", wireType)
}
var msglen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
msglen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if msglen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + msglen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
if m.EndTime == nil {
m.EndTime = new(time.Time)
}
if err := github_com_gogo_protobuf_types.StdTimeUnmarshal(m.EndTime, dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Id", wireType)
}
m.Id = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Id |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
case 4:
if wireType == 0 {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.UserId = append(m.UserId, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + packedLen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
}
elementCount = count
if elementCount != 0 && len(m.UserId) == 0 {
m.UserId = make([]int64, 0, elementCount)
}
for iNdEx < postIndex {
var v int64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int64(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.UserId = append(m.UserId, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field UserId", wireType)
}
case 5:
if wireType == 0 {
var v int32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Type = append(m.Type, v)
} else if wireType == 2 {
var packedLen int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
packedLen |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
if packedLen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + packedLen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
var elementCount int
var count int
for _, integer := range dAtA[iNdEx:postIndex] {
if integer < 128 {
count++
}
}
elementCount = count
if elementCount != 0 && len(m.Type) == 0 {
m.Type = make([]int32, 0, elementCount)
}
for iNdEx < postIndex {
var v int32
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int32(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Type = append(m.Type, v)
}
} else {
return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
}
case 6:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Enable", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= int(b&0x7F) << shift
if b < 0x80 {
break
}
}
m.Enable = bool(v != 0)
case 7:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Remark", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Remark = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
case 8:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Reason", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowPunishment
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= uint64(b&0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthPunishment
}
postIndex := iNdEx + intStringLen
if postIndex < 0 {
return ErrInvalidLengthPunishment
}
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Reason = string(dAtA[iNdEx:postIndex])
iNdEx = postIndex
default:
iNdEx = preIndex
skippy, err := skipPunishment(dAtA[iNdEx:])
if err != nil {
return err
}
if (skippy < 0) || (iNdEx+skippy) < 0 {
return ErrInvalidLengthPunishment
}
if (iNdEx + skippy) > l {
return io.ErrUnexpectedEOF
}
iNdEx += skippy
}
}
if iNdEx > l {
return io.ErrUnexpectedEOF
}
return nil
}
func (m *ListPunishmentReply) Unmarshal(dAtA []byte) error { func (m *ListPunishmentReply) Unmarshal(dAtA []byte) error {
l := len(dAtA) l := len(dAtA)
iNdEx := 0 iNdEx := 0

@ -34,7 +34,7 @@ var _ = descriptor.ForMessage
var _ = metadata.Join var _ = metadata.Join
func request_PunishmentAPI_CreatePunishment_0(ctx context.Context, marshaler runtime.Marshaler, client PunishmentAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_PunishmentAPI_CreatePunishment_0(ctx context.Context, marshaler runtime.Marshaler, client PunishmentAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq Punishment var protoReq CreatePunishmentRequest
var metadata runtime.ServerMetadata var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body) newReader, berr := utilities.IOReaderFactory(req.Body)
@ -51,7 +51,7 @@ func request_PunishmentAPI_CreatePunishment_0(ctx context.Context, marshaler run
} }
func local_request_PunishmentAPI_CreatePunishment_0(ctx context.Context, marshaler runtime.Marshaler, server PunishmentAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func local_request_PunishmentAPI_CreatePunishment_0(ctx context.Context, marshaler runtime.Marshaler, server PunishmentAPIServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq Punishment var protoReq CreatePunishmentRequest
var metadata runtime.ServerMetadata var metadata runtime.ServerMetadata
newReader, berr := utilities.IOReaderFactory(req.Body) newReader, berr := utilities.IOReaderFactory(req.Body)
@ -173,18 +173,15 @@ func local_request_PunishmentAPI_ListPunishment_0(ctx context.Context, marshaler
} }
var (
filter_PunishmentAPI_CancelPunishment_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)}
)
func request_PunishmentAPI_CancelPunishment_0(ctx context.Context, marshaler runtime.Marshaler, client PunishmentAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_PunishmentAPI_CancelPunishment_0(ctx context.Context, marshaler runtime.Marshaler, client PunishmentAPIClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq CancelPunishmentRequest var protoReq CancelPunishmentRequest
var metadata runtime.ServerMetadata var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil { newReader, berr := utilities.IOReaderFactory(req.Body)
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
} }
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PunishmentAPI_CancelPunishment_0); err != nil { if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
} }
@ -197,10 +194,11 @@ func local_request_PunishmentAPI_CancelPunishment_0(ctx context.Context, marshal
var protoReq CancelPunishmentRequest var protoReq CancelPunishmentRequest
var metadata runtime.ServerMetadata var metadata runtime.ServerMetadata
if err := req.ParseForm(); err != nil { newReader, berr := utilities.IOReaderFactory(req.Body)
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) if berr != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr)
} }
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_PunishmentAPI_CancelPunishment_0); err != nil { if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
} }

@ -43,13 +43,25 @@ message ListPunishmentRequest {
repeated int64 user_id = 8; repeated int64 user_id = 8;
} }
message CreatePunishmentRequest {
google.protobuf.Timestamp start_time = 1 [ (gogoproto.stdtime) = true ];
google.protobuf.Timestamp end_time = 2 [ (gogoproto.stdtime) = true ];
int64 id = 3;
repeated int64 user_id = 4;
repeated int32 type = 5;
bool enable = 6;
string remark = 7;
string reason = 8;
}
message ListPunishmentReply { message ListPunishmentReply {
int64 total = 1; int64 total = 1;
repeated Punishment punishment = 2; repeated Punishment punishment = 2;
} }
service PunishmentAPI { service PunishmentAPI {
rpc CreatePunishment(Punishment) returns (Punishment) { rpc CreatePunishment(CreatePunishmentRequest)
returns (google.protobuf.Empty) {
option (google.api.http) = { option (google.api.http) = {
post : '/api/v1/punishment', post : '/api/v1/punishment',
body : '*', body : '*',
@ -80,6 +92,7 @@ service PunishmentAPI {
returns (google.protobuf.Empty) { returns (google.protobuf.Empty) {
option (google.api.http) = { option (google.api.http) = {
put : '/api/v1/punishment/cancel', put : '/api/v1/punishment/cancel',
body : '*',
}; };
} }
} }

@ -3,6 +3,7 @@ package biz
import ( import (
"context" "context"
"strings" "strings"
"time"
pb "moredoc/api/v1" pb "moredoc/api/v1"
"moredoc/middleware/auth" "moredoc/middleware/auth"
@ -30,36 +31,49 @@ func (s *PunishmentAPIService) checkPermission(ctx context.Context) (userClaims
return checkGRPCPermission(s.dbModel, ctx) return checkGRPCPermission(s.dbModel, ctx)
} }
func (s *PunishmentAPIService) CreatePunishment(ctx context.Context, req *pb.Punishment) (*pb.Punishment, error) { func (s *PunishmentAPIService) CreatePunishment(ctx context.Context, req *pb.CreatePunishmentRequest) (*emptypb.Empty, error) {
userClaims, err := s.checkPermission(ctx) userClaims, err := s.checkPermission(ctx)
if err != nil { if err != nil {
return nil, err return nil, err
} }
punishment := &model.Punishment{} if len(req.UserId) == 0 {
err = util.CopyStruct(req, punishment) return nil, status.Errorf(codes.InvalidArgument, "请选择用户")
if err != nil {
s.logger.Error("CopyStruct", zap.Error(err))
return nil, status.Errorf(codes.InvalidArgument, err.Error())
} }
s.logger.Debug("CreatePunishment", zap.Any("punishment", punishment), zap.Any("req", req)) if len(req.Type) == 0 {
punishment.Operators = s.dbModel.MakePunishmentOperators(userClaims.UserId, req.Type) return nil, status.Errorf(codes.InvalidArgument, "请选择处罚类型")
err = s.dbModel.CreatePunishment(punishment)
if err != nil {
s.logger.Error("CreatePunishment", zap.Error(err))
return nil, status.Errorf(codes.Internal, err.Error())
} }
res := &pb.Punishment{} now := time.Now()
err = util.CopyStruct(punishment, res) startTime := &now
if err != nil { if req.StartTime != nil {
s.logger.Error("CopyStruct", zap.Error(err)) startTime = req.StartTime
return nil, status.Errorf(codes.Internal, err.Error())
} }
for _, userId := range req.UserId {
return res, nil if userId == 1 {
continue
}
for _, typ := range req.Type {
punishment := &model.Punishment{
UserId: userId,
Type: int(typ),
Enable: req.Enable,
Reason: req.Reason,
Remark: req.Remark,
StartTime: startTime,
EndTime: req.EndTime,
}
s.logger.Debug("CreatePunishment", zap.Any("punishment", punishment), zap.Any("req", req))
punishment.Operators = s.dbModel.MakePunishmentOperators(userClaims.UserId, typ)
err = s.dbModel.CreatePunishment(punishment)
if err != nil {
s.logger.Error("CreatePunishment", zap.Error(err))
return nil, status.Errorf(codes.Internal, err.Error())
}
}
}
return &emptypb.Empty{}, nil
} }
func (s *PunishmentAPIService) UpdatePunishment(ctx context.Context, req *pb.Punishment) (*emptypb.Empty, error) { func (s *PunishmentAPIService) UpdatePunishment(ctx context.Context, req *pb.Punishment) (*emptypb.Empty, error) {
@ -109,6 +123,12 @@ func (s *PunishmentAPIService) GetPunishment(ctx context.Context, req *pb.GetPun
return nil, status.Errorf(codes.Internal, err.Error()) return nil, status.Errorf(codes.Internal, err.Error())
} }
if punishment.UserId > 0 {
user, _ := s.dbModel.GetUser(punishment.UserId, "id", "username")
if user.Id > 0 {
res.Username = user.Username
}
}
return res, nil return res, nil
} }
@ -205,6 +225,8 @@ func (s *PunishmentAPIService) CancelPunishment(ctx context.Context, req *pb.Can
return nil, err return nil, err
} }
s.logger.Debug("CancelPunishment", zap.Any("req", req))
data, _, err := s.dbModel.GetPunishmentList(&model.OptionGetPunishmentList{ data, _, err := s.dbModel.GetPunishmentList(&model.OptionGetPunishmentList{
Ids: req.Id, Ids: req.Id,
}) })

@ -162,6 +162,7 @@ func (m *DBModel) SyncDB() (err error) {
&Sign{}, &Sign{},
&Report{}, &Report{},
&Navigation{}, &Navigation{},
&Punishment{},
} }
if err = m.db.AutoMigrate(tableModels...); err != nil { if err = m.db.AutoMigrate(tableModels...); err != nil {
m.logger.Fatal("SyncDB", zap.Error(err)) m.logger.Fatal("SyncDB", zap.Error(err))

@ -31,9 +31,9 @@ type Punishment struct {
} }
type PunishmentOperator struct { type PunishmentOperator struct {
UserId int64 `json:"u"` UserId int64 `json:"u"`
Type int32 `json:"t"` Type int32 `json:"t"`
CreatedAt time.Time `json:"c"` Timestamp int64 `json:"ts"`
} }
func (Punishment) TableName() string { func (Punishment) TableName() string {
@ -54,7 +54,7 @@ func (m *DBModel) MakePunishmentOperators(userId int64, punishmentType int32, op
operators = append(operators, PunishmentOperator{ operators = append(operators, PunishmentOperator{
UserId: userId, UserId: userId,
Type: punishmentType, Type: punishmentType,
CreatedAt: time.Now(), Timestamp: time.Now().Unix(),
}) })
operatersByte, err := jsoniter.Marshal(operators) operatersByte, err := jsoniter.Marshal(operators)

@ -7,47 +7,57 @@
:model="punishment" :model="punishment"
> >
<el-form-item <el-form-item
label="名称" label="用户"
prop="title" prop="user_id"
:rules="[{ required: true, trigger: 'blur', message: '请输入名称' }]" :rules="
punishment.id === 0
? [{ required: true, trigger: 'blur', message: '' }]
: []
"
> >
<el-input <el-select
v-model="punishment.title" v-if="punishment.id === 0"
placeholder="请输入名称" v-model="punishment.user_id"
clearable filterable
></el-input> multiple
remote
reserve-keyword
placeholder="请输入和选择用户"
:remote-method="remoteSearchUser"
:loading="loading"
>
<el-option
v-for="user in users"
:key="'userid' + user.id"
:label="user.username"
:value="user.id"
>
</el-option>
</el-select>
<el-input v-else :disabled="true" v-model="punishment.username" />
</el-form-item> </el-form-item>
<el-form-item <el-form-item label="处罚类型">
label="地址" <el-checkbox-group v-if="punishment.id === 0" v-model="punishment.type">
prop="link" <el-checkbox
:rules="[ v-for="item in punishmentTypeOptions"
{ :label="item.value"
required: true, :key="'checkbox-pt' + item.value"
trigger: 'blur', >{{ item.label }}</el-checkbox
message: ' https://mnt.ltd', >
}, </el-checkbox-group>
]" <el-select v-else v-model="punishment.type" :disabled="true">
> <el-option
<el-input v-for="item in punishmentTypeOptions"
v-model="punishment.link" :label="item.label"
placeholder="请输入友链地址,如 https://mnt.ltd" :key="'select-pt-' + item.value"
clearable :value="item.value"
></el-input> >
</el-option>
</el-select>
</el-form-item> </el-form-item>
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="12"> <el-col :span="6">
<el-form-item label="排序(值越大越靠前)"> <el-form-item label="是否启用处罚">
<el-input-number
v-model.number="punishment.sort"
clearable
:min="0"
:step="1"
placeholder="请输入排序值"
></el-input-number>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="是否启用">
<el-switch <el-switch
v-model="punishment.enable" v-model="punishment.enable"
style="display: block" style="display: block"
@ -58,14 +68,41 @@
> >
</el-switch> </el-form-item </el-switch> </el-form-item
></el-col> ></el-col>
<el-col :span="9">
<el-form-item label="起止时间">
<el-date-picker
v-model="punishment.start_time"
type="datetime"
placeholder="请选择处罚开始时间"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item label="截止时间">
<el-date-picker
v-model="punishment.end_time"
type="datetime"
placeholder="请选择处罚截止时间"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row> </el-row>
<el-form-item label="处罚原因">
<el-form-item label="描述">
<el-input <el-input
v-model="punishment.description"
type="textarea" type="textarea"
rows="3" v-model="punishment.reason"
placeholder="请输入友链相关描述或备注" :rows="3"
placeholder="请输入处罚原因,被处罚用户可见"
></el-input>
</el-form-item>
<el-form-item label="处罚备注">
<el-input
type="textarea"
v-model="punishment.remark"
:rows="3"
placeholder="请输入处罚备注,管理员可见"
></el-input> ></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
@ -83,6 +120,8 @@
</template> </template>
<script> <script>
import { createPunishment, updatePunishment } from '~/api/punishment' import { createPunishment, updatePunishment } from '~/api/punishment'
import { punishmentTypeOptions } from '~/utils/enum'
import { listUser } from '~/api/user'
export default { export default {
name: 'FormPunishment', name: 'FormPunishment',
props: { props: {
@ -95,21 +134,39 @@ export default {
}, },
data() { data() {
return { return {
punishmentTypeOptions,
loading: false, loading: false,
punishment: {}, punishment: {
id: 0,
user_id: '',
remark: '',
reason: '',
type: [],
enable: true,
},
users: [],
} }
}, },
watch: { watch: {
initPunishment: { initPunishment: {
handler(val) { handler(val) {
this.punishment = { ...val } let enable = val.enable || false
this.punishment = {
id: 0,
user_id: '',
remark: '',
reason: '',
type: [],
...val,
enable: enable,
}
}, },
immediate: true, immediate: true,
}, },
}, },
created() { // created() {
this.punishment = { ...this.initPunishment } // this.punishment = { ...this.initPunishment }
}, // },
methods: { methods: {
onSubmit() { onSubmit() {
this.$refs.formPunishment.validate(async (valid) => { this.$refs.formPunishment.validate(async (valid) => {
@ -119,10 +176,10 @@ export default {
this.loading = true this.loading = true
const punishment = { ...this.punishment } const punishment = { ...this.punishment }
if (this.punishment.id > 0) { if (this.punishment.id > 0) {
delete punishment.operators
const res = await updatePunishment(punishment) const res = await updatePunishment(punishment)
if (res.status === 200) { if (res.status === 200) {
this.$message.success('') this.$message.success('')
this.resetFields()
this.$emit('success', res.data) this.$emit('success', res.data)
} else { } else {
this.$message.error(res.data.message) this.$message.error(res.data.message)
@ -131,7 +188,6 @@ export default {
const res = await createPunishment(punishment) const res = await createPunishment(punishment)
if (res.status === 200) { if (res.status === 200) {
this.$message.success('') this.$message.success('')
this.resetFields()
this.$emit('success', res.data) this.$emit('success', res.data)
} else { } else {
this.$message.error(res.data.message) this.$message.error(res.data.message)
@ -140,6 +196,21 @@ export default {
this.loading = false this.loading = false
}) })
}, },
async remoteSearchUser(wd) {
this.searchUser(wd)
},
async searchUser(wd, userId = []) {
const res = await listUser({
page: 1,
size: 10,
wd: wd,
id: userId || [],
field: ['id', 'username'],
})
if (res.status === 200) {
this.users = res.data.user || []
}
},
clearValidate() { clearValidate() {
this.$refs.formPunishment.clearValidate() this.$refs.formPunishment.clearValidate()
}, },

21404
web/package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -20,7 +20,7 @@
"@wangeditor/plugin-md": "^1.0.0", "@wangeditor/plugin-md": "^1.0.0",
"core-js": "^3.19.3", "core-js": "^3.19.3",
"echarts": "^5.4.2", "echarts": "^5.4.2",
"element-ui": "^2.15.10", "element-ui": "^2.15.13",
"hotkeys-js": "^3.10.0", "hotkeys-js": "^3.10.0",
"nuxt": "^2.15.8", "nuxt": "^2.15.8",
"qrcodejs2": "0.0.2", "qrcodejs2": "0.0.2",

@ -164,7 +164,7 @@ export default {
this.initSearchForm() this.initSearchForm()
this.initTableListFields() this.initTableListFields()
// await this.listPunishment() // await this.listPunishment()
if (this.search.user_id.length > 0) { if ((this.search.user_id || []).length > 0) {
this.searchUser('', this.search.user_id) this.searchUser('', this.search.user_id)
} }
}, },
@ -254,11 +254,8 @@ export default {
} }
}, },
onCreate() { onCreate() {
this.punishment = { id: 0 } this.punishment = { id: 0, type: [], enable: true }
this.formPunishmentVisible = true this.formPunishmentVisible = true
this.$nextTick(() => {
this.$refs.punishmentForm.reset()
})
}, },
async editRow(row) { async editRow(row) {
const res = await getPunishment({ id: row.id }) const res = await getPunishment({ id: row.id })
@ -302,6 +299,12 @@ export default {
this.tableListFields = [ this.tableListFields = [
{ prop: 'id', label: 'ID', width: 80, type: 'number', fixed: 'left' }, { prop: 'id', label: 'ID', width: 80, type: 'number', fixed: 'left' },
{
prop: 'enable',
label: '',
width: 80,
type: 'bool',
},
{ {
prop: 'type', prop: 'type',
label: '', label: '',
@ -309,12 +312,6 @@ export default {
type: 'enum', type: 'enum',
enum: enumOptions, enum: enumOptions,
}, },
{
prop: 'enable',
label: '',
width: 80,
type: 'bool',
},
{ {
prop: 'user_html', prop: 'user_html',
label: '', label: '',

Loading…
Cancel
Save