正在显示
8 个修改的文件
包含
134 行增加
和
28 行删除
| @@ -39,6 +39,7 @@ func CreateReturnGoodsService(options map[string]interface{}) (service.ReturnGoo | @@ -39,6 +39,7 @@ func CreateReturnGoodsService(options map[string]interface{}) (service.ReturnGoo | ||
| 39 | } | 39 | } |
| 40 | 40 | ||
| 41 | func CreateUserCreateService(options map[string]interface{}) (service.UserCreateService, error) { | 41 | func CreateUserCreateService(options map[string]interface{}) (service.UserCreateService, error) { |
| 42 | + | ||
| 42 | var transactionContext *pgTransaction.TransactionContext | 43 | var transactionContext *pgTransaction.TransactionContext |
| 43 | if value, ok := options["transactionContext"]; ok { | 44 | if value, ok := options["transactionContext"]; ok { |
| 44 | transactionContext = value.(*pgTransaction.TransactionContext) | 45 | transactionContext = value.(*pgTransaction.TransactionContext) |
| @@ -53,3 +54,11 @@ func CreatePhoneAuthService(options map[string]interface{}) (service.PhoneAuthSe | @@ -53,3 +54,11 @@ func CreatePhoneAuthService(options map[string]interface{}) (service.PhoneAuthSe | ||
| 53 | } | 54 | } |
| 54 | return domainService.NewPhoneAuthenticationService(transactionContext) | 55 | return domainService.NewPhoneAuthenticationService(transactionContext) |
| 55 | } | 56 | } |
| 57 | + | ||
| 58 | +func CreateAddUserService(options map[string]interface{}) (service.AddUserService, error) { | ||
| 59 | + var transactionContext *pgTransaction.TransactionContext | ||
| 60 | + if value, ok := options["transactionContext"]; ok { | ||
| 61 | + transactionContext = value.(*pgTransaction.TransactionContext) | ||
| 62 | + } | ||
| 63 | + return domainService.NewAddUserService(transactionContext) | ||
| 64 | +} |
| @@ -14,6 +14,8 @@ type CreateUserCommand struct { | @@ -14,6 +14,8 @@ type CreateUserCommand struct { | ||
| 14 | AdminType int `json:"adminType" valid:"Required"` | 14 | AdminType int `json:"adminType" valid:"Required"` |
| 15 | // 状态 1正常 2禁用 | 15 | // 状态 1正常 2禁用 |
| 16 | Status int64 `json:"status" valid:"Required"` | 16 | Status int64 `json:"status" valid:"Required"` |
| 17 | + //用户账号(手机号) | ||
| 18 | + UserAccount string `json:"userAccount" valid:"Required"` | ||
| 17 | // 业务员 | 19 | // 业务员 |
| 18 | Salesmans []*domain.Salesman `json:"salesmans,omitempty"` | 20 | Salesmans []*domain.Salesman `json:"salesmans,omitempty"` |
| 19 | // 用户信息 | 21 | // 用户信息 |
| @@ -8,6 +8,7 @@ import ( | @@ -8,6 +8,7 @@ import ( | ||
| 8 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/user/command" | 8 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/user/command" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/user/query" | 9 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/application/user/query" |
| 10 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" | 10 | "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" |
| 11 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain/service" | ||
| 11 | ) | 12 | ) |
| 12 | 13 | ||
| 13 | // 用户管理服务 | 14 | // 用户管理服务 |
| @@ -53,21 +54,22 @@ func (userService *UserService) CreateUser(createUserCommand *command.CreateUser | @@ -53,21 +54,22 @@ func (userService *UserService) CreateUser(createUserCommand *command.CreateUser | ||
| 53 | newUser := &domain.User{ | 54 | newUser := &domain.User{ |
| 54 | UserType: createUserCommand.UserType, | 55 | UserType: createUserCommand.UserType, |
| 55 | AdminType: createUserCommand.AdminType, | 56 | AdminType: createUserCommand.AdminType, |
| 57 | + UserAccount: createUserCommand.UserAccount, | ||
| 56 | Status: createUserCommand.Status, | 58 | Status: createUserCommand.Status, |
| 57 | UserInfo: createUserCommand.UserInfo, | 59 | UserInfo: createUserCommand.UserInfo, |
| 58 | PartnerInfo: createUserCommand.PartnerInfo, | 60 | PartnerInfo: createUserCommand.PartnerInfo, |
| 59 | AccessPartners: createUserCommand.AccessPartners, | 61 | AccessPartners: createUserCommand.AccessPartners, |
| 60 | } | 62 | } |
| 61 | - var userRepository domain.UserRepository | ||
| 62 | - if value, err := factory.CreateUserRepository(map[string]interface{}{ | 63 | + var addUserService service.AddUserService |
| 64 | + if value, err := factory.CreateAddUserService(map[string]interface{}{ | ||
| 63 | "transactionContext": transactionContext, | 65 | "transactionContext": transactionContext, |
| 64 | }); err != nil { | 66 | }); err != nil { |
| 65 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 67 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 66 | } else { | 68 | } else { |
| 67 | - userRepository = value | 69 | + addUserService = value |
| 68 | } | 70 | } |
| 69 | 71 | ||
| 70 | - if user, err := userRepository.Save(newUser); err != nil { | 72 | + if user, err := addUserService.AddUser(newUser); err != nil { |
| 71 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) | 73 | return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error()) |
| 72 | } else { | 74 | } else { |
| 73 | if err := transactionContext.CommitTransaction(); err != nil { | 75 | if err := transactionContext.CommitTransaction(); err != nil { |
pkg/domain/service/add_user.go
0 → 100644
| @@ -9,6 +9,7 @@ const ( | @@ -9,6 +9,7 @@ const ( | ||
| 9 | StatusEnable int64 = 1 //启用 | 9 | StatusEnable int64 = 1 //启用 |
| 10 | StatusDisable int64 = 2 //禁用 | 10 | StatusDisable int64 = 2 //禁用 |
| 11 | ) | 11 | ) |
| 12 | + | ||
| 12 | // 管理员类型 1.超级管理员 10:企业管理员 100:普通用户 | 13 | // 管理员类型 1.超级管理员 10:企业管理员 100:普通用户 |
| 13 | const ( | 14 | const ( |
| 14 | SuperAdministrator = 1 //超级管理员 | 15 | SuperAdministrator = 1 //超级管理员 |
| @@ -23,13 +24,14 @@ const ( | @@ -23,13 +24,14 @@ const ( | ||
| 23 | Guest = 3 //游客 | 24 | Guest = 3 //游客 |
| 24 | ) | 25 | ) |
| 25 | 26 | ||
| 26 | - | ||
| 27 | // 用户实体 | 27 | // 用户实体 |
| 28 | type User struct { | 28 | type User struct { |
| 29 | // 用户id | 29 | // 用户id |
| 30 | UserId int64 `json:"userId"` | 30 | UserId int64 `json:"userId"` |
| 31 | // 1.高管 2.合伙人 4:游客 | 31 | // 1.高管 2.合伙人 4:游客 |
| 32 | UserType int `json:"userType"` | 32 | UserType int `json:"userType"` |
| 33 | + //用户账号(手机号) | ||
| 34 | + UserAccount string `json:"userAccount"` | ||
| 33 | // 用户权限 | 35 | // 用户权限 |
| 34 | Permissions []int `json:"permissions"` | 36 | Permissions []int `json:"permissions"` |
| 35 | // 公司Id | 37 | // 公司Id |
| @@ -129,43 +131,43 @@ func (user *User) Update(data map[string]interface{}) error { | @@ -129,43 +131,43 @@ func (user *User) Update(data map[string]interface{}) error { | ||
| 129 | 131 | ||
| 130 | //添加/编辑高管 | 132 | //添加/编辑高管 |
| 131 | 133 | ||
| 132 | -func CheckAdminUserType (dm *User)(*User,error) { | ||
| 133 | - if dm.UserInfo.Uid == int64(0){ | ||
| 134 | - return nil,fmt.Errorf("高管的uid不能为空") | 134 | +func CheckAdminUserType(dm *User) (*User, error) { |
| 135 | + if dm.UserInfo.Uid == int64(0) { | ||
| 136 | + return nil, fmt.Errorf("高管的uid不能为空") | ||
| 135 | } | 137 | } |
| 136 | - if dm.UserInfo.Email == ""{ | ||
| 137 | - return nil,fmt.Errorf("高管的Email不能为空") | 138 | + if dm.UserInfo.Email == "" { |
| 139 | + return nil, fmt.Errorf("高管的Email不能为空") | ||
| 138 | } | 140 | } |
| 139 | if dm.UserInfo.EntryTime.IsZero() { | 141 | if dm.UserInfo.EntryTime.IsZero() { |
| 140 | - return nil,fmt.Errorf("高管的入职时间不能为空") | 142 | + return nil, fmt.Errorf("高管的入职时间不能为空") |
| 141 | } | 143 | } |
| 142 | - if dm.UserInfo.Workplace == ""{ | ||
| 143 | - return nil,fmt.Errorf("高管的工作地不能为空") | 144 | + if dm.UserInfo.Workplace == "" { |
| 145 | + return nil, fmt.Errorf("高管的工作地不能为空") | ||
| 144 | } | 146 | } |
| 145 | - if dm.UserInfo.JobNumber == ""{ | ||
| 146 | - return nil,fmt.Errorf("高管的工号不能为空") | 147 | + if dm.UserInfo.JobNumber == "" { |
| 148 | + return nil, fmt.Errorf("高管的工号不能为空") | ||
| 147 | } | 149 | } |
| 148 | - return dm,nil | 150 | + return dm, nil |
| 149 | } | 151 | } |
| 150 | 152 | ||
| 151 | //添加/编辑合伙人 | 153 | //添加/编辑合伙人 |
| 152 | -type PartnerUserType struct {} | 154 | +type PartnerUserType struct{} |
| 153 | 155 | ||
| 154 | -func CheckPartnerUserType (dm *User)(*User,error) { | ||
| 155 | - if dm.PartnerInfo.Status == 0{ | ||
| 156 | - return nil,fmt.Errorf("合伙人的状态不能为空") | 156 | +func CheckPartnerUserType(dm *User) (*User, error) { |
| 157 | + if dm.PartnerInfo.Status == 0 { | ||
| 158 | + return nil, fmt.Errorf("合伙人的状态不能为空") | ||
| 157 | } | 159 | } |
| 158 | - if dm.PartnerInfo.PartnerAccount == ""{ | ||
| 159 | - return nil,fmt.Errorf("合伙人账号不能为空") | 160 | + if dm.PartnerInfo.PartnerAccount == "" { |
| 161 | + return nil, fmt.Errorf("合伙人账号不能为空") | ||
| 160 | } | 162 | } |
| 161 | - if dm.PartnerInfo.PartnerName == ""{ | ||
| 162 | - return nil,fmt.Errorf("合伙人姓名不能为空") | 163 | + if dm.PartnerInfo.PartnerName == "" { |
| 164 | + return nil, fmt.Errorf("合伙人姓名不能为空") | ||
| 163 | } | 165 | } |
| 164 | if len(dm.PartnerInfo.PartnerCategorys) == 0 { | 166 | if len(dm.PartnerInfo.PartnerCategorys) == 0 { |
| 165 | - return nil,fmt.Errorf("合伙人类别不能为空") | 167 | + return nil, fmt.Errorf("合伙人类别不能为空") |
| 166 | } | 168 | } |
| 167 | - if len(dm.PartnerInfo.Salesmans) == 0{ | ||
| 168 | - return nil,fmt.Errorf("合伙人查看合伙人账号不能为空") | 169 | + if len(dm.PartnerInfo.Salesmans) == 0 { |
| 170 | + return nil, fmt.Errorf("合伙人查看合伙人账号不能为空") | ||
| 169 | } | 171 | } |
| 170 | - return dm,nil | 172 | + return dm, nil |
| 171 | } | 173 | } |
| 1 | +package domainService | ||
| 2 | + | ||
| 3 | +import ( | ||
| 4 | + "fmt" | ||
| 5 | + coreDomain "github.com/linmadan/egglib-go/core/domain" | ||
| 6 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/domain" | ||
| 7 | + "gitlab.fjmaimaimai.com/mmm-go-pp/partner01/pkg/infrastructure/repository" | ||
| 8 | + | ||
| 9 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
| 10 | +) | ||
| 11 | + | ||
| 12 | +type AddUserService struct { | ||
| 13 | + coreDomain.BaseEventPublisher | ||
| 14 | + transactionContext *pgTransaction.TransactionContext | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +func (service *AddUserService) AddUser(user *domain.User) (*domain.User, error) { | ||
| 18 | + | ||
| 19 | + if user.UserType&1 > 0 { | ||
| 20 | + if _, err := domain.CheckAdminUserType(user); err != nil { | ||
| 21 | + return nil, err | ||
| 22 | + } | ||
| 23 | + } | ||
| 24 | + | ||
| 25 | + if user.UserType&2 > 0 { | ||
| 26 | + if _, err := domain.CheckPartnerUserType(user); err != nil { | ||
| 27 | + return nil, err | ||
| 28 | + } | ||
| 29 | + } | ||
| 30 | + | ||
| 31 | + var userRepository domain.UserRepository | ||
| 32 | + if repository, err := repository.NewUserRepository(service.transactionContext); err != nil { | ||
| 33 | + return nil, err | ||
| 34 | + } else { | ||
| 35 | + userRepository = repository | ||
| 36 | + } | ||
| 37 | + | ||
| 38 | + count, existUser, err := userRepository.Find(map[string]interface{}{ | ||
| 39 | + "userAccount": user.UserAccount, | ||
| 40 | + "companyId": user.CompanyId, | ||
| 41 | + }) | ||
| 42 | + | ||
| 43 | + if count != 0 { | ||
| 44 | + if existUser[0].UserType^user.UserType == 0 { | ||
| 45 | + return nil, fmt.Errorf("用户已存在") | ||
| 46 | + } | ||
| 47 | + if existUser[0].UserType&1 > 0 { | ||
| 48 | + user.UserInfo = existUser[0].UserInfo | ||
| 49 | + } | ||
| 50 | + if existUser[0].UserType&2 > 0 { | ||
| 51 | + user.PartnerInfo = existUser[0].PartnerInfo | ||
| 52 | + } | ||
| 53 | + user.UserType = existUser[0].UserType + user.UserType | ||
| 54 | + } | ||
| 55 | + | ||
| 56 | + user, err = userRepository.Save(user) | ||
| 57 | + | ||
| 58 | + if err != nil { | ||
| 59 | + return nil, err | ||
| 60 | + } | ||
| 61 | + | ||
| 62 | + return user, nil | ||
| 63 | +} | ||
| 64 | + | ||
| 65 | +func NewAddUserService(transactionContext *pgTransaction.TransactionContext) (*AddUserService, error) { | ||
| 66 | + if transactionContext == nil { | ||
| 67 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
| 68 | + } else { | ||
| 69 | + return &AddUserService{ | ||
| 70 | + transactionContext: transactionContext, | ||
| 71 | + }, nil | ||
| 72 | + } | ||
| 73 | +} |
| @@ -13,6 +13,8 @@ type User struct { | @@ -13,6 +13,8 @@ type User struct { | ||
| 13 | UserType int | 13 | UserType int |
| 14 | // 用户权限 | 14 | // 用户权限 |
| 15 | Permissions []int `pg:",array"` | 15 | Permissions []int `pg:",array"` |
| 16 | + //用户账号(手机号) | ||
| 17 | + UserAccount string | ||
| 16 | // 公司Id | 18 | // 公司Id |
| 17 | CompanyId int64 | 19 | CompanyId int64 |
| 18 | // 用户信息 | 20 | // 用户信息 |
| @@ -30,6 +30,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | @@ -30,6 +30,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | ||
| 30 | "user_type", | 30 | "user_type", |
| 31 | "permissions", | 31 | "permissions", |
| 32 | "company_id", | 32 | "company_id", |
| 33 | + "user_account", | ||
| 33 | "user_info", | 34 | "user_info", |
| 34 | "partner_info", | 35 | "partner_info", |
| 35 | "status", | 36 | "status", |
| @@ -58,6 +59,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | @@ -58,6 +59,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | ||
| 58 | &user.UserType, | 59 | &user.UserType, |
| 59 | pg.Array(&user.Permissions), | 60 | pg.Array(&user.Permissions), |
| 60 | &user.CompanyId, | 61 | &user.CompanyId, |
| 62 | + &user.UserAccount, | ||
| 61 | &user.UserInfo, | 63 | &user.UserInfo, |
| 62 | &user.PartnerInfo, | 64 | &user.PartnerInfo, |
| 63 | &user.Status, | 65 | &user.Status, |
| @@ -72,6 +74,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | @@ -72,6 +74,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | ||
| 72 | user.UserType, | 74 | user.UserType, |
| 73 | pg.Array(user.Permissions), | 75 | pg.Array(user.Permissions), |
| 74 | user.CompanyId, | 76 | user.CompanyId, |
| 77 | + user.UserAccount, | ||
| 75 | user.UserInfo, | 78 | user.UserInfo, |
| 76 | user.PartnerInfo, | 79 | user.PartnerInfo, |
| 77 | user.Status, | 80 | user.Status, |
| @@ -90,6 +93,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | @@ -90,6 +93,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | ||
| 90 | &user.UserType, | 93 | &user.UserType, |
| 91 | pg.Array(&user.Permissions), | 94 | pg.Array(&user.Permissions), |
| 92 | &user.CompanyId, | 95 | &user.CompanyId, |
| 96 | + &user.UserAccount, | ||
| 93 | &user.UserInfo, | 97 | &user.UserInfo, |
| 94 | &user.PartnerInfo, | 98 | &user.PartnerInfo, |
| 95 | &user.Status, | 99 | &user.Status, |
| @@ -104,6 +108,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | @@ -104,6 +108,7 @@ func (repository *UserRepository) Save(user *domain.User) (*domain.User, error) | ||
| 104 | user.UserType, | 108 | user.UserType, |
| 105 | pg.Array(user.Permissions), | 109 | pg.Array(user.Permissions), |
| 106 | user.CompanyId, | 110 | user.CompanyId, |
| 111 | + user.UserAccount, | ||
| 107 | user.UserInfo, | 112 | user.UserInfo, |
| 108 | user.PartnerInfo, | 113 | user.PartnerInfo, |
| 109 | user.Status, | 114 | user.Status, |
-
请 注册 或 登录 后发表评论