diff --git a/common/infrastructure/mongodb/dao.go b/common/infrastructure/mongodb/dao.go index 6229ae0..924a685 100644 --- a/common/infrastructure/mongodb/dao.go +++ b/common/infrastructure/mongodb/dao.go @@ -335,6 +335,34 @@ func (impl *daoImpl) GetDocs(filter, project bson.M, result interface{}) error { }) } +func (impl *daoImpl) GetDocsPage(filter, project bson.M, intPage, intPageSize int, result interface{}) error { + return impl.withContext(func(ctx context.Context) error { + // 构建查询选项 + opts := options.Find() + if len(project) > 0 { + opts.SetProjection(project) + } + opts.SetSkip(int64((intPage - 1) * intPageSize)) + opts.SetLimit(int64(intPageSize)) + // 执行查询 + cursor, err := impl.col.Find(ctx, filter, opts) + if err != nil { + return err + } + return cursor.All(ctx, result) + }) +} + +func (impl *daoImpl) GetDocsCount(filter bson.M) (int64, error) { + var count int64 + err := impl.withContext(func(ctx context.Context) error { + var err error + count, err = impl.col.CountDocuments(ctx, filter) + return err + }) + return count, err +} + func (impl *daoImpl) GetDocAndDelete(filter, project bson.M, result interface{}) error { return impl.withContext(func(ctx context.Context) error { var sr *mongo.SingleResult diff --git a/controllers/corp_signing.go b/controllers/corp_signing.go index 6b625a5..20c3731 100644 --- a/controllers/corp_signing.go +++ b/controllers/corp_signing.go @@ -200,6 +200,47 @@ func (ctl *CorporationSigningController) GetAll() { } } +// @Title GetPage +// @Description get all the corporations by page +// @Tags CorpSigning +// @Accept json +// @Param link_id path string true "link id" +// @Success 200 {object} models.CorporationSigningSummary +// @Failure 400 missing_url_path_parameter: missing url path parameter +// @Failure 401 missing_token: token is missing +// @Failure 402 unknown_token: token is unknown +// @Failure 403 expired_token: token is expired +// @Failure 404 unauthorized_token: the permission of token is unmatched +// @Failure 405 unknown_link: unkown link id +// @Failure 406 not_yours_org: the link doesn't belong to your community +// @Failure 500 system_error: system error +// @router /page/:link_id [get] +func (ctl *CorporationSigningController) GetPage() { + action := "community manager lists page corp signings" + linkID := ctl.GetString(":link_id") + page, pageErr := ctl.GetInt("page", 1) + if pageErr != nil { + ctl.sendModelErrorAsResp(models.NewModelError(models.ErrSystemError, pageErr), action) + return + } + pageSize, sizeErr := ctl.GetInt("page_size", 10) + if sizeErr != nil { + ctl.sendModelErrorAsResp(models.NewModelError(models.ErrSystemError, sizeErr), action) + return + } + adminAdded, sizeErr := ctl.GetBool("admin_added", false) + pl, fr := ctl.tokenPayloadBasedOnCorpManager() + if fr != nil { + ctl.sendFailedResultAsResp(fr, action) + return + } + if r, merr := models.ListPageCorpSigning(pl.UserId, linkID, page, pageSize, adminAdded); merr != nil { + ctl.sendModelErrorAsResp(merr, action) + } else { + ctl.sendSuccessResp(action, r) + } +} + // @Title ListDeleted // @Description get all the corporations which have been deleted // @Tags CorpSigning diff --git a/models/adapter.go b/models/adapter.go index d9510f6..0165b13 100644 --- a/models/adapter.go +++ b/models/adapter.go @@ -84,6 +84,10 @@ func ListCorpSigning(userId, linkID string) ([]CorporationSigningSummary, IModel return corpSigningAdapterInstance.List(userId, linkID) } +func ListPageCorpSigning(userId, linkID string, page, pageSize int, adminAdded bool) (CorporationSigningPageSummary, IModelError) { + return corpSigningAdapterInstance.ListPage(userId, linkID, page, pageSize, adminAdded) +} + func GetCorpSigning(userId, csId string, email dp.EmailAddr) (string, CorporationSigning, IModelError) { return corpSigningAdapterInstance.Get(userId, csId, email) } diff --git a/models/corp_signing.go b/models/corp_signing.go index b558b0f..02a9309 100644 --- a/models/corp_signing.go +++ b/models/corp_signing.go @@ -35,6 +35,11 @@ func (opt *CorporationSigningCreateOption) ToCorporationSigning() CorporationSig } } +type CorporationSigningPageSummary struct { + Total int64 `json:"total"` + Data []CorporationSigningSummary `json:"page_data"` +} + type CorporationSigningSummary struct { CorporationSigningBasicInfo diff --git a/models/init.go b/models/init.go index d7a2c23..d431bc9 100644 --- a/models/init.go +++ b/models/init.go @@ -23,6 +23,7 @@ type corpSigningAdapter interface { Remove(string, string) IModelError Get(userId, csId string, email dp.EmailAddr) (string, CorporationSigning, IModelError) List(userId, linkId string) ([]CorporationSigningSummary, IModelError) + ListPage(userId, linkId string, page, pageSize int, adminAdded bool) (CorporationSigningPageSummary, IModelError) FindCorpSummary(linkId string, email string) (interface{}, IModelError) FindDiffCLAFile(signingId string) (string, IModelError) Agree(signingId string) IModelError diff --git a/routers/commentsRouter.go b/routers/commentsRouter.go index 4952e13..e9c8471 100644 --- a/routers/commentsRouter.go +++ b/routers/commentsRouter.go @@ -7,436 +7,445 @@ import ( func init() { - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "Add", - Router: `/:link_id`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:link_id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "List", - Router: `/:link_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:link_id/:id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "DownloadPDF", - Router: `/:link_id/:id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], - beego.ControllerComments{ - Method: "DownloadDiffPDF", - Router: `/individual/diff/:link_id/:email`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], - beego.ControllerComments{ - Method: "Add", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], - beego.ControllerComments{ - Method: "GetAll", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], - beego.ControllerComments{ - Method: "Verify", - Router: `/code`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], - beego.ControllerComments{ - Method: "ChangePassword", - Router: `/`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], - beego.ControllerComments{ - Method: "GetBasicInfo", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], - beego.ControllerComments{ - Method: "AddCorpAdmin", - Router: `/:link_id/:signing_id`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], - beego.ControllerComments{ - Method: "Logout", - Router: `/auth`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], - beego.ControllerComments{ - Method: "Login", - Router: `/auth`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], - beego.ControllerComments{ - Method: "Review", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], - beego.ControllerComments{ - Method: "Upload", - Router: `/:link_id/:signing_id`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], - beego.ControllerComments{ - Method: "Download", - Router: `/:link_id/:signing_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "GetAll", - Router: `/:link_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "Sign", - Router: `/:link_id/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:link_id/:signing_id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "ResendCorpSigningEmail", - Router: `/:link_id/:signing_id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "SendVerificationCode", - Router: `/:link_id/code`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "GetCorpInfo", - Router: `/:link_id/corps/:email`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "Agree", - Router: `/cla/agree`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "DownloadDiffPDF", - Router: `/cla/diff`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], - beego.ControllerComments{ - Method: "ListDeleted", - Router: `/deleted/:link_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], - beego.ControllerComments{ - Method: "Post", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], - beego.ControllerComments{ - Method: "GetAll", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], - beego.ControllerComments{ - Method: "GetAll", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], - beego.ControllerComments{ - Method: "Sign", - Router: `/:link_id/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], - beego.ControllerComments{ - Method: "SendVerificationCode", - Router: `/:link_id/:signing_id/code`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], - beego.ControllerComments{ - Method: "Update", - Router: `/:signing_id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:signing_id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:HeartbeatController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:HeartbeatController"], - beego.ControllerComments{ - Method: "Heartbeat", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], - beego.ControllerComments{ - Method: "Check", - Router: `/:link_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], - beego.ControllerComments{ - Method: "Sign", - Router: `/:link_id/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], - beego.ControllerComments{ - Method: "Agree", - Router: `/:link_id/`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], - beego.ControllerComments{ - Method: "SendVerificationCode", - Router: `/:link_id/code`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], - beego.ControllerComments{ - Method: "Link", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], - beego.ControllerComments{ - Method: "ListLinks", - Router: `/`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], - beego.ControllerComments{ - Method: "Delete", - Router: `/:link_id`, - AllowHTTPMethods: []string{"delete"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], - beego.ControllerComments{ - Method: "Get", - Router: `/:link_id`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], - beego.ControllerComments{ - Method: "GetCLAForSigning", - Router: `/:link_id/:apply_to`, - AllowHTTPMethods: []string{"get"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"], - beego.ControllerComments{ - Method: "Post", - Router: `/`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"], - beego.ControllerComments{ - Method: "Reset", - Router: `/:link_id`, - AllowHTTPMethods: []string{"put"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"], - beego.ControllerComments{ - Method: "Authorize", - Router: `/authorize`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) - - beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"], - beego.ControllerComments{ - Method: "Verify", - Router: `/verify`, - AllowHTTPMethods: []string{"post"}, - MethodParams: param.Make(), - Filters: nil, - Params: nil}) + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "Add", + Router: `/:link_id`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "Update", + Router: `/:link_id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "List", + Router: `/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:link_id/:id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "DownloadPDF", + Router: `/:link_id/:id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CLAController"], + beego.ControllerComments{ + Method: "DownloadDiffPDF", + Router: `/individual/diff/:link_id/:email`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], + beego.ControllerComments{ + Method: "Add", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], + beego.ControllerComments{ + Method: "GetAll", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorpEmailDomainController"], + beego.ControllerComments{ + Method: "Verify", + Router: `/code`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], + beego.ControllerComments{ + Method: "ChangePassword", + Router: `/`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], + beego.ControllerComments{ + Method: "GetBasicInfo", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], + beego.ControllerComments{ + Method: "AddCorpAdmin", + Router: `/:link_id/:signing_id`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], + beego.ControllerComments{ + Method: "Logout", + Router: `/auth`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationManagerController"], + beego.ControllerComments{ + Method: "Login", + Router: `/auth`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], + beego.ControllerComments{ + Method: "Review", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], + beego.ControllerComments{ + Method: "Upload", + Router: `/:link_id/:signing_id`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationPDFController"], + beego.ControllerComments{ + Method: "Download", + Router: `/:link_id/:signing_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "GetAll", + Router: `/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "GetPage", + Router: `/page/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "Sign", + Router: `/:link_id/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:link_id/:signing_id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "ResendCorpSigningEmail", + Router: `/:link_id/:signing_id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "SendVerificationCode", + Router: `/:link_id/code`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "GetCorpInfo", + Router: `/:link_id/corps/:email`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "Agree", + Router: `/cla/agree`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "DownloadDiffPDF", + Router: `/cla/diff`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:CorporationSigningController"], + beego.ControllerComments{ + Method: "ListDeleted", + Router: `/deleted/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], + beego.ControllerComments{ + Method: "Post", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeManagerController"], + beego.ControllerComments{ + Method: "GetAll", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], + beego.ControllerComments{ + Method: "GetAll", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], + beego.ControllerComments{ + Method: "Sign", + Router: `/:link_id/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], + beego.ControllerComments{ + Method: "SendVerificationCode", + Router: `/:link_id/:signing_id/code`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], + beego.ControllerComments{ + Method: "Update", + Router: `/:signing_id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:EmployeeSigningController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:signing_id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:HeartbeatController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:HeartbeatController"], + beego.ControllerComments{ + Method: "Heartbeat", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], + beego.ControllerComments{ + Method: "Check", + Router: `/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], + beego.ControllerComments{ + Method: "Sign", + Router: `/:link_id/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], + beego.ControllerComments{ + Method: "Agree", + Router: `/:link_id/`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:IndividualSigningController"], + beego.ControllerComments{ + Method: "SendVerificationCode", + Router: `/:link_id/code`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], + beego.ControllerComments{ + Method: "Link", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], + beego.ControllerComments{ + Method: "ListLinks", + Router: `/`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], + beego.ControllerComments{ + Method: "Delete", + Router: `/:link_id`, + AllowHTTPMethods: []string{"delete"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], + beego.ControllerComments{ + Method: "Get", + Router: `/:link_id`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:LinkController"], + beego.ControllerComments{ + Method: "GetCLAForSigning", + Router: `/:link_id/:apply_to`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"], + beego.ControllerComments{ + Method: "Post", + Router: `/`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:PasswordRetrievalController"], + beego.ControllerComments{ + Method: "Reset", + Router: `/:link_id`, + AllowHTTPMethods: []string{"put"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"], + beego.ControllerComments{ + Method: "Authorize", + Router: `/authorize`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) + + beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"] = append(beego.GlobalControllerRouter["github.com/opensourceways/app-cla-server/controllers:SMTPController"], + beego.ControllerComments{ + Method: "Verify", + Router: `/verify`, + AllowHTTPMethods: []string{"post"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) } diff --git a/signing/adapter/corp_signing.go b/signing/adapter/corp_signing.go index e66709e..c823958 100644 --- a/signing/adapter/corp_signing.go +++ b/signing/adapter/corp_signing.go @@ -169,6 +169,41 @@ func (adapter *corpSigningAdatper) List(userId, linkId string) ( return r, nil } +func (adapter *corpSigningAdatper) ListPage(userId, linkId string, page, pageSize int, adminAdded bool) ( + models.CorporationSigningPageSummary, models.IModelError, +) { + var pageData models.CorporationSigningPageSummary + pageData.Total = 0 + if page <= 0 || pageSize <= 0 { + return pageData, toModelError(errors.New("invalid param")) + } + v, err := adapter.s.ListPage(userId, linkId, page, pageSize, adminAdded) + if err != nil { + return pageData, toModelError(err) + } + + r := make([]models.CorporationSigningSummary, len(v.Data)) + for i := range v.Data { + item := &v.Data[i] + + r[i] = models.CorporationSigningSummary{ + CorporationSigningBasicInfo: models.CorporationSigningBasicInfo{ + Date: item.Date, + AdminName: item.RepName, + AdminEmail: item.RepEmail, + CLALanguage: item.Language, + CorporationName: item.CorpName, + }, + Id: item.Id, + AdminAdded: item.HasAdminAdded, + PDFUploaded: item.HasPDFUploaded, + } + } + pageData.Total = v.Total + pageData.Data = r + return pageData, nil +} + // FindCorpSigningId func (adapter *corpSigningAdatper) FindCorpSummary(linkId string, email string) ( interface{}, models.IModelError, diff --git a/signing/app/corp_signing.go b/signing/app/corp_signing.go index 4bc5b4c..1076ee9 100644 --- a/signing/app/corp_signing.go +++ b/signing/app/corp_signing.go @@ -33,6 +33,7 @@ type CorpSigningService interface { Remove(userId, csId string) error Get(userId, csId string, email dp.EmailAddr) (string, CorpSigningInfoDTO, error) List(userId, linkId string) ([]CorpSigningDTO, error) + ListPage(userId, linkId string, page, pageSize int, adminAdded bool) (CorpSigningPageDTO, error) FindCorpSummary(cmd *CmdToFindCorpSummary) ([]CorpSummaryDTO, error) FindDiffCLAFile(signingId string) (string, error) AgreeWithLatestCLA(signingId string) error @@ -146,6 +147,40 @@ func (s *corpSigningService) List(userId, linkId string) ([]CorpSigningDTO, erro return dtos, nil } +func (s *corpSigningService) ListPage(userId, linkId string, page, pageSize int, adminAdded bool) (CorpSigningPageDTO, error) { + var pageData CorpSigningPageDTO + pageData.Total = 0 + if _, err := checkIfCommunityManager(userId, linkId, s.linkRepo); err != nil { + return pageData, err + } + + v, err := s.repo.FindPage(linkId, page, pageSize, adminAdded) + if err != nil || v.Total == 0 { + return pageData, err + } + + dtos := make([]CorpSigningDTO, len(v.Data)) + + for i := range v.Data { + item := &v.Data[i] + + dtos[i] = CorpSigningDTO{ + Id: item.Id, + Date: item.Date, + Language: item.Link.Language.Language(), + CorpName: item.Corp.Name.CorpName(), + RepName: item.Rep.Name.Name(), + RepEmail: item.Rep.EmailAddr.EmailAddr(), + HasAdminAdded: !item.Admin.IsEmpty(), + HasPDFUploaded: item.HasPDF, + } + } + pageData.Data = dtos + pageData.Total = v.Total + + return pageData, nil +} + func (s *corpSigningService) FindCorpSummary(cmd *CmdToFindCorpSummary) ([]CorpSummaryDTO, error) { v, err := s.repo.FindCorpSummary(cmd.LinkId, cmd.EmailAddr.Domain()) if err != nil || len(v) == 0 { diff --git a/signing/app/corp_signing_dto.go b/signing/app/corp_signing_dto.go index 313b155..73d0c5b 100644 --- a/signing/app/corp_signing_dto.go +++ b/signing/app/corp_signing_dto.go @@ -31,6 +31,11 @@ func (cmd *CmdToSignCorpCLA) toCmd() cmdToCreateCodeForCorpSigning { } } +type CorpSigningPageDTO struct { + Total int64 + Data []CorpSigningDTO +} + type CorpSigningDTO struct { Id string `json:"id"` Date string `json:"date"` diff --git a/signing/domain/claservice/service.go b/signing/domain/claservice/service.go index 5b86f1f..33b98bb 100644 --- a/signing/domain/claservice/service.go +++ b/signing/domain/claservice/service.go @@ -169,6 +169,11 @@ func (s *claService) AddLink(link *domain.Link) error { clean() return err + } else { + for i := range link.CLAs { + item := &link.CLAs[i] + s.linkCache.update(link.Id, item) + } } return nil diff --git a/signing/domain/repository/corp_signing.go b/signing/domain/repository/corp_signing.go index a0a7c66..f936891 100644 --- a/signing/domain/repository/corp_signing.go +++ b/signing/domain/repository/corp_signing.go @@ -16,6 +16,11 @@ type CorpSigningSummary struct { Admin domain.Manager } +type CorpSigningSummaryPage struct { + Total int64 + Data []CorpSigningSummary +} + type EmployeeSigningSummary struct { Enabled bool ClaId string @@ -34,6 +39,7 @@ type CorpSigning interface { Find(string) (domain.CorpSigning, error) Remove(*domain.CorpSigning) error FindAll(linkId string) ([]CorpSigningSummary, error) + FindPage(linkId string, intPage, intPageSize int, adminAdded bool) (CorpSigningSummaryPage, error) AddEmployee(*domain.CorpSigning, *domain.EmployeeSigning) error SaveEmployee(*domain.CorpSigning, *domain.EmployeeSigning) error diff --git a/signing/infrastructure/repositoryimpl/corp_signing.go b/signing/infrastructure/repositoryimpl/corp_signing.go index b2824b5..b3d5a09 100644 --- a/signing/infrastructure/repositoryimpl/corp_signing.go +++ b/signing/infrastructure/repositoryimpl/corp_signing.go @@ -143,6 +143,53 @@ func (impl *corpSigning) FindAll(linkId string) ([]repository.CorpSigningSummary return v, nil } +func (impl *corpSigning) FindPage(linkId string, intPage, intPageSize int, adminAdded bool) (repository.CorpSigningSummaryPage, error) { + filter := linkIdFilter(linkId) + if adminAdded { + filter["admin.id"] = bson.M{"$ne": ""} + } else { + filter["$or"] = []bson.M{ + {"admin.id": ""}, + {"admin": nil}, + } + } + project := bson.M{ + fieldDate: 1, + fieldCLAId: 1, + fieldLang: 1, + fieldRep: 1, + fieldCorp: 1, + fieldAdmin: 1, + fieldLinkId: 1, + fieldHasPDF: 1, + fieldCLANotify: 1, + } + + var docsPage repository.CorpSigningSummaryPage + docsPage.Total = 0 + total, err := impl.dao.GetDocsCount(filter) + if err != nil { + return docsPage, err + } + if total == 0 { + return docsPage, nil + } + + var dos []corpSigningDO + + if err := impl.dao.GetDocsPage(filter, project, intPage, intPageSize, &dos); err != nil { + return docsPage, err + } + + v := make([]repository.CorpSigningSummary, len(dos)) + for i := range dos { + v[i] = dos[i].toCorpSigningSummary() + } + docsPage.Data = v + docsPage.Total = total + return docsPage, nil +} + func (impl *corpSigning) HasSignedLink(linkId string) (bool, error) { filter := linkIdFilter(linkId) diff --git a/signing/infrastructure/repositoryimpl/mongodb.go b/signing/infrastructure/repositoryimpl/mongodb.go index 67f46d8..fa7c78d 100644 --- a/signing/infrastructure/repositoryimpl/mongodb.go +++ b/signing/infrastructure/repositoryimpl/mongodb.go @@ -46,6 +46,8 @@ type dao interface { GetDocs(filter, project bson.M, result interface{}) error GetDocAndDelete(filter, project bson.M, result interface{}) error GetArrayItem(filter bson.M, array string, filterOfArray, project bson.M, result interface{}) error + GetDocsPage(filter, project bson.M, intPage, intPageSize int, result interface{}) error + GetDocsCount(filter bson.M) (int64, error) } func genDoc(doc interface{}) (m bson.M, err error) { diff --git a/signing/infrastructure/smtpimpl/impl.go b/signing/infrastructure/smtpimpl/impl.go index aa53e64..0bca5bb 100644 --- a/signing/infrastructure/smtpimpl/impl.go +++ b/signing/infrastructure/smtpimpl/impl.go @@ -16,7 +16,7 @@ type Config struct { func (cfg *Config) SetDefault() { if cfg.Host == "" || cfg.Port <= 0 || cfg.Platform == "" { cfg.Port = 465 - cfg.Host = "smtp.exmail.qq.com" + cfg.Host = "smtp.qq.com" cfg.Platform = "smtp" } } diff --git a/signing/watch/notify_corp_admin.go b/signing/watch/notify_corp_admin.go index 97003ad..60f8f39 100644 --- a/signing/watch/notify_corp_admin.go +++ b/signing/watch/notify_corp_admin.go @@ -1,6 +1,7 @@ package watch import ( + "fmt" "sync" "time" @@ -151,6 +152,9 @@ func (impl *notifyAdminWatchImpl) isCorpSigningLatest(latestCLAs []domain.CLA, s } func (impl *notifyAdminWatchImpl) handleSendEmail(link *repository.LinkCLA, corp *repository.CorpSigningSummary) error { + if corp.Admin.Name == nil { + return fmt.Errorf("failed to send email msg: admin name is null: %s", link.Id) + } builder := emailtmpl.CLAUpdated{ Org: link.Org.Alias, AdminName: corp.Admin.Name.Name(),