作者 庄敏学

增加调整部门

  1 +package command
  2 +
  3 +type BatchRemove struct {
  4 + CompanyId int64 `json:"company_id"`
  5 + UserIds []int64 `json:"user_ids"`
  6 + DepartmentIds []int `json:"department_ids"`
  7 +}
@@ -62,6 +62,13 @@ func (srv SyncDataUserService) FromBusinessAdmin(param *domain.MessageBody) erro @@ -62,6 +62,13 @@ func (srv SyncDataUserService) FromBusinessAdmin(param *domain.MessageBody) erro
62 return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) 62 return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
63 } 63 }
64 err = srv.importUser(&param4) 64 err = srv.importUser(&param4)
  65 + case "employee/batchRemove":
  66 + batchRemove := &command.BatchRemove{}
  67 + err = json.Unmarshal(param.Data, batchRemove)
  68 + if err != nil {
  69 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  70 + }
  71 + err = srv.BatchRemove(batchRemove)
65 default: 72 default:
66 log.Logger.Error("action err:" + action) 73 log.Logger.Error("action err:" + action)
67 } 74 }
@@ -320,3 +327,38 @@ func (srv SyncDataUserService) importUser(param *command.ImportUserCommand) erro @@ -320,3 +327,38 @@ func (srv SyncDataUserService) importUser(param *command.ImportUserCommand) erro
320 327
321 return nil 328 return nil
322 } 329 }
  330 +
  331 +// BatchRemove 调整部门
  332 +func (srv SyncDataUserService) BatchRemove(batchRemove *command.BatchRemove) error {
  333 + transactionContext, err := factory.CreateTransactionContext(nil)
  334 + if err != nil {
  335 + return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  336 + }
  337 + if err := transactionContext.StartTransaction(); err != nil {
  338 + return application.ThrowError(application.TRANSACTION_ERROR, err.Error())
  339 + }
  340 + defer func() {
  341 + _ = transactionContext.RollbackTransaction()
  342 + }()
  343 + userRepo := factory.CreateUserRepository(map[string]interface{}{
  344 + "transactionContext": transactionContext,
  345 + })
  346 + if len(batchRemove.UserIds) > 0 {
  347 + for _, item := range batchRemove.UserIds {
  348 + user, err := userRepo.FindOne(map[string]interface{}{"id": item, "companyId": batchRemove.CompanyId})
  349 + if err != nil {
  350 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  351 + }
  352 + user.DepartmentId = batchRemove.DepartmentIds
  353 + user.UpdatedAt = time.Now()
  354 + _, err = userRepo.Update(user)
  355 + if err != nil {
  356 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  357 + }
  358 + }
  359 + }
  360 + if err := transactionContext.CommitTransaction(); err != nil {
  361 + return application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())
  362 + }
  363 + return nil
  364 +}
@@ -26,6 +26,8 @@ func (repo *UserRepository) Insert(user *domain.User) (*domain.User, error) { @@ -26,6 +26,8 @@ func (repo *UserRepository) Insert(user *domain.User) (*domain.User, error) {
26 AvatarUrl: user.AvatarUrl, 26 AvatarUrl: user.AvatarUrl,
27 CompanyId: user.CompanyId, 27 CompanyId: user.CompanyId,
28 AdminType: user.AdminType, 28 AdminType: user.AdminType,
  29 + DepartmentId: user.DepartmentId,
  30 + PositionId: user.PositionId,
29 Name: user.Name, 31 Name: user.Name,
30 Status: user.Status, 32 Status: user.Status,
31 UpdatedAt: user.UpdatedAt, 33 UpdatedAt: user.UpdatedAt,
@@ -48,6 +50,8 @@ func (repo *UserRepository) Update(user *domain.User) (*domain.User, error) { @@ -48,6 +50,8 @@ func (repo *UserRepository) Update(user *domain.User) (*domain.User, error) {
48 AvatarUrl: user.AvatarUrl, 50 AvatarUrl: user.AvatarUrl,
49 CompanyId: user.CompanyId, 51 CompanyId: user.CompanyId,
50 AdminType: user.AdminType, 52 AdminType: user.AdminType,
  53 + DepartmentId: user.DepartmentId,
  54 + PositionId: user.PositionId,
51 Name: user.Name, 55 Name: user.Name,
52 Email: user.Email, 56 Email: user.Email,
53 Status: user.Status, 57 Status: user.Status,