mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-06 10:00:24 +08:00
优化代码/实现基础的实名认证功能
This commit is contained in:
@@ -27,12 +27,16 @@ func (this *UserIdentityService) CreateUserIdentity(ctx context.Context, req *pb
|
||||
if len(req.FileIds) < 2 {
|
||||
return nil, errors.New("need for file(s) for id card")
|
||||
}
|
||||
case userconfigs.UserIdentityTypeEnterpriseLicense:
|
||||
if len(req.FileIds) != 1 {
|
||||
return nil, errors.New("need for file(s) for license")
|
||||
}
|
||||
default:
|
||||
return nil, errors.New("unknown identity type '" + req.Type + "'")
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
identityId, err := models.SharedUserIdentityDAO.CreateUserIdentity(tx, userId, req.Type, req.RealName, req.Number, req.FileIds)
|
||||
identityId, err := models.SharedUserIdentityDAO.CreateUserIdentity(tx, userId, req.OrgType, req.Type, req.RealName, req.Number, req.FileIds)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -40,8 +44,51 @@ func (this *UserIdentityService) CreateUserIdentity(ctx context.Context, req *pb
|
||||
return &pb.CreateUserIdentityResponse{UserIdentityId: identityId}, nil
|
||||
}
|
||||
|
||||
// FindUserEnabledUserIdentityWithType 查看身份认证信息
|
||||
func (this *UserIdentityService) FindUserEnabledUserIdentityWithType(ctx context.Context, req *pb.FindUserEnabledUserIdentityWithTypeRequest) (*pb.FindUserEnabledUserIdentityWithTypeResponse, error) {
|
||||
// FindEnabledUserIdentity 查找单个身份认证信息
|
||||
func (this *UserIdentityService) FindEnabledUserIdentity(ctx context.Context, req *pb.FindEnabledUserIdentityRequest) (*pb.FindEnabledUserIdentityResponse, error) {
|
||||
_, userId, err := this.ValidateAdminAndUser(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
if userId > 0 {
|
||||
err = models.SharedUserIdentityDAO.CheckUserIdentity(tx, userId, req.UserIdentityId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
identity, err := models.SharedUserIdentityDAO.FindEnabledUserIdentity(tx, req.UserIdentityId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if identity == nil {
|
||||
return &pb.FindEnabledUserIdentityResponse{
|
||||
UserIdentity: nil,
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &pb.FindEnabledUserIdentityResponse{
|
||||
UserIdentity: &pb.UserIdentity{
|
||||
Id: int64(identity.Id),
|
||||
Type: identity.Type,
|
||||
RealName: identity.RealName,
|
||||
Number: identity.Number,
|
||||
FileIds: identity.DecodeFileIds(),
|
||||
Status: identity.Status,
|
||||
CreatedAt: int64(identity.CreatedAt),
|
||||
UpdatedAt: int64(identity.UpdatedAt),
|
||||
SubmittedAt: int64(identity.SubmittedAt),
|
||||
RejectedAt: int64(identity.RejectedAt),
|
||||
VerifiedAt: int64(identity.VerifiedAt),
|
||||
RejectedReason: identity.RejectedReason,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FindEnabledUserIdentityWithOrgType 查看最新的身份认证信息
|
||||
func (this *UserIdentityService) FindEnabledUserIdentityWithOrgType(ctx context.Context, req *pb.FindEnabledUserIdentityWithOrgTypeRequest) (*pb.FindEnabledUserIdentityWithOrgTypeResponse, error) {
|
||||
_, userId, err := this.ValidateAdminAndUser(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -52,29 +99,30 @@ func (this *UserIdentityService) FindUserEnabledUserIdentityWithType(ctx context
|
||||
}
|
||||
|
||||
var tx = this.NullTx()
|
||||
identity, err := models.SharedUserIdentityDAO.FindEnabledUserIdentityWithType(tx, req.UserId, req.Type)
|
||||
identity, err := models.SharedUserIdentityDAO.FindEnabledUserIdentityWithOrgType(tx, req.UserId, req.OrgType)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if identity == nil {
|
||||
return &pb.FindUserEnabledUserIdentityWithTypeResponse{
|
||||
return &pb.FindEnabledUserIdentityWithOrgTypeResponse{
|
||||
UserIdentity: nil,
|
||||
}, nil
|
||||
}
|
||||
|
||||
return &pb.FindUserEnabledUserIdentityWithTypeResponse{
|
||||
return &pb.FindEnabledUserIdentityWithOrgTypeResponse{
|
||||
UserIdentity: &pb.UserIdentity{
|
||||
Id: int64(identity.Id),
|
||||
Type: identity.Type,
|
||||
RealName: identity.RealName,
|
||||
Number: identity.Number,
|
||||
FileIds: identity.DecodeFileIds(),
|
||||
Status: identity.Status,
|
||||
CreatedAt: int64(identity.CreatedAt),
|
||||
UpdatedAt: int64(identity.UpdatedAt),
|
||||
SubmittedAt: int64(identity.SubmittedAt),
|
||||
RejectedAt: int64(identity.RejectedAt),
|
||||
VerifiedAt: int64(identity.VerifiedAt),
|
||||
Id: int64(identity.Id),
|
||||
Type: identity.Type,
|
||||
RealName: identity.RealName,
|
||||
Number: identity.Number,
|
||||
FileIds: identity.DecodeFileIds(),
|
||||
Status: identity.Status,
|
||||
CreatedAt: int64(identity.CreatedAt),
|
||||
UpdatedAt: int64(identity.UpdatedAt),
|
||||
SubmittedAt: int64(identity.SubmittedAt),
|
||||
RejectedAt: int64(identity.RejectedAt),
|
||||
VerifiedAt: int64(identity.VerifiedAt),
|
||||
RejectedReason: identity.RejectedReason,
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
@@ -88,6 +136,23 @@ func (this *UserIdentityService) UpdateUserIdentity(ctx context.Context, req *pb
|
||||
|
||||
var tx = this.NullTx()
|
||||
|
||||
if len(req.RealName) > 100 {
|
||||
return nil, errors.New("realName too long")
|
||||
}
|
||||
|
||||
switch req.Type {
|
||||
case userconfigs.UserIdentityTypeIDCard:
|
||||
if len(req.FileIds) < 2 {
|
||||
return nil, errors.New("need for file(s) for id card")
|
||||
}
|
||||
case userconfigs.UserIdentityTypeEnterpriseLicense:
|
||||
if len(req.FileIds) != 1 {
|
||||
return nil, errors.New("need for file(s) for license")
|
||||
}
|
||||
default:
|
||||
return nil, errors.New("unknown identity type '" + req.Type + "'")
|
||||
}
|
||||
|
||||
// 检查用户
|
||||
err = models.SharedUserIdentityDAO.CheckUserIdentity(tx, userId, req.UserIdentityId)
|
||||
if err != nil {
|
||||
@@ -99,7 +164,7 @@ func (this *UserIdentityService) UpdateUserIdentity(ctx context.Context, req *pb
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(status) > 0 && status != userconfigs.UserIdentityStatusNone {
|
||||
if len(status) > 0 && (status != userconfigs.UserIdentityStatusNone && status != userconfigs.UserIdentityStatusRejected) {
|
||||
return nil, errors.New("identity status should be '" + userconfigs.UserIdentityStatusNone + "' instead of '" + status + "'")
|
||||
}
|
||||
|
||||
@@ -131,7 +196,7 @@ func (this *UserIdentityService) SubmitUserIdentity(ctx context.Context, req *pb
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if len(status) > 0 && status != userconfigs.UserIdentityStatusNone {
|
||||
if len(status) > 0 && status != userconfigs.UserIdentityStatusNone && status != userconfigs.UserIdentityStatusRejected {
|
||||
return nil, errors.New("identity status should be '" + userconfigs.UserIdentityStatusNone + "' instead of '" + status + "'")
|
||||
}
|
||||
|
||||
@@ -193,7 +258,7 @@ func (this *UserIdentityService) RejectUserIdentity(ctx context.Context, req *pb
|
||||
return nil, errors.New("identity status should be '" + userconfigs.UserIdentityStatusSubmitted + "' instead of '" + status + "'")
|
||||
}
|
||||
|
||||
err = models.SharedUserIdentityDAO.RejectUserIdentity(tx, req.UserIdentityId)
|
||||
err = models.SharedUserIdentityDAO.RejectUserIdentity(tx, req.UserIdentityId, req.Reason)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user