package authority import ( "chainweaver.org.cn/chainweaver/did/did-mgr-common-service/errorcode" "chainweaver.org.cn/chainweaver/did/did-mgr-common-service/internal/db" "context" "fmt" "time" "chainweaver.org.cn/chainweaver/did/did-mgr-common-service/internal/svc" "chainweaver.org.cn/chainweaver/did/did-mgr-common-service/internal/types" "github.com/zeromicro/go-zero/core/logx" ) type AuthorityBatchAuditLogic struct { logx.Logger ctx context.Context svcCtx *svc.ServiceContext } func NewAuthorityBatchAuditLogic(ctx context.Context, svcCtx *svc.ServiceContext) *AuthorityBatchAuditLogic { return &AuthorityBatchAuditLogic{ Logger: logx.WithContext(ctx), ctx: ctx, svcCtx: svcCtx, } } func (l *AuthorityBatchAuditLogic) AuthorityBatchAudit(req *types.BatchAuditReq) (resp *types.CommonResp, err error) { resp = &types.CommonResp{ Code: types.SucceedCode, Msg: types.SucceedMsg, } // 当前只支持审核通过与审核驳回两种批量操作 if !(req.AuditState == 2 || req.AuditState == 3) { errorcode.SystemInternalError.BuildResult(resp, fmt.Errorf("请求操作类型只能是审核通过与驳回")) return resp, nil } orgInfos := make([]*db.IssueOrganizationInfo, 0) // 检查本地数据是否为空,并判断状态是否属于待审核状态 for _, orgId := range req.OrgId { //查询本地数据库,检查本地颁证机构状态 orgInfo, err := db.FindIssueOrganizationInfoByOrgId(orgId) if err != nil { errorcode.MysqlErrorQuery.BuildResult(resp, err) l.Logger.Errorf("query issueOrganizationInfo failed,err[%s]", err.Error()) return resp, nil } // 检查审核状态是否有效 当前只能支持待审核到通过与驳回状态 if orgInfo.AuditState != 1 { errorcode.SystemInternalError.BuildResult(resp, fmt.Errorf("The current state cannot change ")) return resp, nil } orgInfos = append(orgInfos, orgInfo) } for _, orgInfo := range orgInfos { if req.AuditState == 2 { orgInfo.OldEmail = orgInfo.Email orgInfo.OldPhoneNumber = orgInfo.PhoneNumber orgInfo.OldContactsName = orgInfo.ContactsName } // 更新本地数据库 orgInfo.AuditTime = time.Now() orgInfo.AuditState = req.AuditState err = db.UpdateIssueOrganizationInfo(orgInfo) if err != nil { errorcode.MysqlErrorUpdate.BuildResult(resp, err) l.Logger.Errorf("update issueOrganizationInfo failed,err[%s]", err.Error()) return resp, nil } } return resp, nil }