diff --git a/config/config.yaml b/config/config.yaml index 7ef492d6f..6ffb11f92 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -731,6 +731,10 @@ demo: smtpPort: 25 #需开放此端口 出口方向 testDepartMentID: 001 imAPIURL: http://127.0.0.1:10002 + onboardProcess: false # 是否开启注册流程 + joinDepartmentIDList: [] # 用户注册进来默认加的部门ID列表 不填就随机 + joinDepartmentGroups: false # 注册是否加部门群 + oaNotification: false # 注册是否发送OA通知 rtc: signalTimeout: 35 diff --git a/internal/demo/register/onboarding_process.go b/internal/demo/register/onboarding_process.go index c87074ad9..5a10b6ec0 100644 --- a/internal/demo/register/onboarding_process.go +++ b/internal/demo/register/onboarding_process.go @@ -50,23 +50,38 @@ func onboardingProcess(operationID, userID, userName, faceURL, phoneNumber, emai if err := createOrganizationUser(operationID, userID, userName, phoneNumber, email); err != nil { log.NewError(operationID, utils.GetSelfFuncName(), "createOrganizationUser failed", err.Error()) } - departmentID, err := imdb.GetRandomDepartmentID() + var joinDepartmentIDList []string + if len(config.Config.Demo.JoinDepartmentIDList) == 0 { + departmentID, err := imdb.GetRandomDepartmentID() + if err != nil { + log.NewError(utils.GetSelfFuncName(), "GetRandomDepartmentID failed", err.Error()) + return + } + joinDepartmentIDList = []string{departmentID} + } else { + joinDepartmentIDList = config.Config.Demo.JoinDepartmentIDList + } - if err := joinTestDepartment(operationID, userID, departmentID); err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), "joinTestDepartment failed", err.Error()) + for _, departmentID := range joinDepartmentIDList { + if err := joinTestDepartment(operationID, userID, departmentID); err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), "joinTestDepartment failed", err.Error()) + } } - log.NewInfo(operationID, utils.GetSelfFuncName(), "random departmentID", departmentID) - if err != nil { - log.NewError(utils.GetSelfFuncName(), "GetRandomDepartmentID failed", err.Error()) - return + + if config.Config.Demo.JoinDepartmentGroups { + for _, departmentID := range joinDepartmentIDList { + groupIDList, err := GetDepartmentGroupIDList(operationID, departmentID) + if err != nil { + log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + } + joinGroups(operationID, userID, userName, faceURL, groupIDList) + log.NewInfo(operationID, utils.GetSelfFuncName(), "fineshed") + } } - groupIDList, err := GetDepartmentGroupIDList(operationID, departmentID) - if err != nil { - log.NewError(operationID, utils.GetSelfFuncName(), err.Error()) + + if config.Config.Demo.OaNotification { + oaNotification(operationID, userID) } - joinGroups(operationID, userID, userName, faceURL, groupIDList) - log.NewInfo(operationID, utils.GetSelfFuncName(), "fineshed") - oaNotification(operationID, userID) } func createOrganizationUser(operationID, userID, userName, phoneNumber, email string) error { diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 89e746aaf..c6728edb4 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -107,7 +107,7 @@ func SetPassword(c *gin.Context) { } log.Info(params.OperationID, "end setPassword", account, params.Password) // demo onboarding - if params.UserID == "" { + if params.UserID == "" && config.Config.Demo.OnboardProcess { select { case Ch <- OnboardingProcessReq{ OperationID: params.OperationID, diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f7d7d20f2..74c03ca4a 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -488,8 +488,12 @@ type config struct { SmtpAddr string `yaml:"smtpAddr"` SmtpPort int `yaml:"smtpPort"` } - TestDepartMentID string `yaml:"testDepartMentID"` - ImAPIURL string `yaml:"imAPIURL"` + TestDepartMentID string `yaml:"testDepartMentID"` + ImAPIURL string `yaml:"imAPIURL"` + OnboardProcess bool `yaml:"onboardProcess"` + JoinDepartmentIDList []string `yaml:"joinDepartmentIDList"` + JoinDepartmentGroups bool `yaml:"joinDepartmentGroups"` + OaNotification bool `yaml:"oaNotification"` } Rtc struct { SignalTimeout string `yaml:"signalTimeout"`