正在显示
5 个修改的文件
包含
122 行增加
和
2 行删除
@@ -55,6 +55,14 @@ func CreatePgUpdateUserService(options map[string]interface{}) (service.PgUpdate | @@ -55,6 +55,14 @@ func CreatePgUpdateUserService(options map[string]interface{}) (service.PgUpdate | ||
55 | return domainService.NewPgUpdateUserService(transactionContext) | 55 | return domainService.NewPgUpdateUserService(transactionContext) |
56 | } | 56 | } |
57 | 57 | ||
58 | +func CreatePgUpdateUserBaseService(options map[string]interface{}) (service.PgUpdateUserBaseService, error) { | ||
59 | + var transactionContext *pgTransaction.TransactionContext | ||
60 | + if value, ok := options["transactionContext"]; ok { | ||
61 | + transactionContext = value.(*pgTransaction.TransactionContext) | ||
62 | + } | ||
63 | + return domainService.NewPgUpdateUserBaseService(transactionContext) | ||
64 | +} | ||
65 | + | ||
58 | func CreatePgCreateRoleService(options map[string]interface{}) (service.PgCreateRoleService, error) { | 66 | func CreatePgCreateRoleService(options map[string]interface{}) (service.PgCreateRoleService, error) { |
59 | var transactionContext *pgTransaction.TransactionContext | 67 | var transactionContext *pgTransaction.TransactionContext |
60 | if value, ok := options["transactionContext"]; ok { | 68 | if value, ok := options["transactionContext"]; ok { |
@@ -12,7 +12,9 @@ import ( | @@ -12,7 +12,9 @@ import ( | ||
12 | type UpdateUsersBaseCommand struct { | 12 | type UpdateUsersBaseCommand struct { |
13 | OperateInfo *domain.OperateInfo `json:"-"` | 13 | OperateInfo *domain.OperateInfo `json:"-"` |
14 | // 用户Id 用户唯一标识 | 14 | // 用户Id 用户唯一标识 |
15 | - UserId int64 `cname:"用户Id 用户唯一标识" json:"userId,string" valid:"Required"` | 15 | + UserId int64 `cname:"用户Id 用户唯一标识" json:"userId,string"` |
16 | + // 用户基础Id 用户唯一标识 | ||
17 | + UserBaseId int64 `cname:"用户Id 用户唯一标识" json:"userBaseId" valid:"Required"` | ||
16 | // 用户姓名 | 18 | // 用户姓名 |
17 | UserName string `cname:"用户姓名" json:"userName" valid:"Required"` | 19 | UserName string `cname:"用户姓名" json:"userName" valid:"Required"` |
18 | // 头像 | 20 | // 头像 |
@@ -741,7 +741,7 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | @@ -741,7 +741,7 @@ func (userService *UserService) UpdateUser(updateUserCommand *command.UpdateUser | ||
741 | } | 741 | } |
742 | 742 | ||
743 | // 更新用户基础信息数据 | 743 | // 更新用户基础信息数据 |
744 | -func (userService *UserService) UpdateUsersBase(updateUsersBaseCommand *command.UpdateUsersBaseCommand) (interface{}, error) { | 744 | +func (userService *UserService) UpdateUsersBaseOld(updateUsersBaseCommand *command.UpdateUsersBaseCommand) (interface{}, error) { |
745 | if err := updateUsersBaseCommand.ValidateCommand(); err != nil { | 745 | if err := updateUsersBaseCommand.ValidateCommand(); err != nil { |
746 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | 746 | return nil, application.ThrowError(application.ARG_ERROR, err.Error()) |
747 | } | 747 | } |
@@ -778,6 +778,40 @@ func (userService *UserService) UpdateUsersBase(updateUsersBaseCommand *command. | @@ -778,6 +778,40 @@ func (userService *UserService) UpdateUsersBase(updateUsersBaseCommand *command. | ||
778 | return struct{}{}, nil | 778 | return struct{}{}, nil |
779 | } | 779 | } |
780 | 780 | ||
781 | +// 更新用户基础信息数据 | ||
782 | +func (userService *UserService) UpdateUsersBase(updateUsersBaseCommand *command.UpdateUsersBaseCommand) (interface{}, error) { | ||
783 | + if err := updateUsersBaseCommand.ValidateCommand(); err != nil { | ||
784 | + return nil, application.ThrowError(application.ARG_ERROR, err.Error()) | ||
785 | + } | ||
786 | + transactionContext, err := factory.CreateTransactionContext(nil) | ||
787 | + if err != nil { | ||
788 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
789 | + } | ||
790 | + if err := transactionContext.StartTransaction(); err != nil { | ||
791 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
792 | + } | ||
793 | + defer func() { | ||
794 | + transactionContext.RollbackTransaction() | ||
795 | + }() | ||
796 | + | ||
797 | + userInfo := &domain.UserInfo{ | ||
798 | + UserName: updateUsersBaseCommand.UserName, | ||
799 | + Phone: updateUsersBaseCommand.Phone, | ||
800 | + Avatar: updateUsersBaseCommand.Avatar, | ||
801 | + Email: updateUsersBaseCommand.Email, | ||
802 | + } | ||
803 | + updateUserService, _ := factory.CreatePgUpdateUserBaseService(map[string]interface{}{ | ||
804 | + "transactionContext": transactionContext, | ||
805 | + }) | ||
806 | + if _, err = updateUserService.UpdateUserBase(nil, updateUsersBaseCommand.UserBaseId, userInfo); err != nil { | ||
807 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
808 | + } | ||
809 | + if err := transactionContext.CommitTransaction(); err != nil { | ||
810 | + return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error()) | ||
811 | + } | ||
812 | + return struct{}{}, nil | ||
813 | +} | ||
814 | + | ||
781 | func NewUserService(options map[string]interface{}) *UserService { | 815 | func NewUserService(options map[string]interface{}) *UserService { |
782 | newUserService := &UserService{} | 816 | newUserService := &UserService{} |
783 | return newUserService | 817 | return newUserService |
1 | +package service | ||
2 | + | ||
3 | +import "gitlab.fjmaimaimai.com/allied-creation/allied-creation-user/pkg/domain" | ||
4 | + | ||
5 | +// PgUpdateUserBaseService 用户基础更新服务 | ||
6 | +type PgUpdateUserBaseService interface { | ||
7 | + UpdateUserBase(optUser *domain.OperateInfo, userBaseId int64, userInfo *domain.UserInfo) (*domain.UserBase, error) | ||
8 | +} |
1 | +package domainService | ||
2 | + | ||
3 | +import ( | ||
4 | + "fmt" | ||
5 | + pgTransaction "github.com/linmadan/egglib-go/transaction/pg" | ||
6 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-user/pkg/domain" | ||
7 | + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-user/pkg/infrastructure/repository" | ||
8 | + "strings" | ||
9 | + "time" | ||
10 | +) | ||
11 | + | ||
12 | +// PgUpdateUserBaseService 用户基础更新服务 | ||
13 | +type PgUpdateUserBaseService struct { | ||
14 | + transactionContext *pgTransaction.TransactionContext | ||
15 | +} | ||
16 | + | ||
17 | +func (ptr *PgUpdateUserService) UpdateUserBase(optUser *domain.OperateInfo, userBaseId int64, userInfo *domain.UserInfo) (*domain.UserBase, error) { | ||
18 | + var err error | ||
19 | + | ||
20 | + //1.更新用户信息 | ||
21 | + userBaseRepository, _ := repository.NewUserBaseRepository(ptr.transactionContext) | ||
22 | + var userBase *domain.UserBase | ||
23 | + if userBase, err = userBaseRepository.FindOne(map[string]interface{}{"userBaseId": userBaseId}); err != nil { | ||
24 | + return nil, err | ||
25 | + } | ||
26 | + if userBase.Account != strings.TrimSpace(userInfo.Phone) && len(userInfo.Phone) > 0 { // 修改了手机号 | ||
27 | + if _, err = userBaseRepository.FindOne(map[string]interface{}{"account": strings.TrimSpace(userInfo.Phone)}); err == nil { | ||
28 | + return nil, fmt.Errorf("手机号已存在") | ||
29 | + } | ||
30 | + if err = userBase.ResetPhone(userBase.Account, userInfo.Phone); err != nil { | ||
31 | + return nil, err | ||
32 | + } | ||
33 | + } | ||
34 | + if err = userBase.UpdateUserInfo(userInfo); err != nil { | ||
35 | + return nil, err | ||
36 | + } | ||
37 | + if userBase, err = userBaseRepository.Save(userBase); err != nil { | ||
38 | + return nil, err | ||
39 | + } | ||
40 | + | ||
41 | + //2.更新用户、冗余信息 | ||
42 | + var users []*domain.User | ||
43 | + userRepository, _ := repository.NewUserRepository(ptr.transactionContext) | ||
44 | + if _, users, err = userRepository.Find(map[string]interface{}{"userBaseId": userBaseId}); err != nil { | ||
45 | + return nil, err | ||
46 | + } | ||
47 | + for i := range users { | ||
48 | + user := users[i] | ||
49 | + user.Ext.Phone = userBase.UserInfo.Phone | ||
50 | + user.Ext.UserName = userBase.UserInfo.UserName | ||
51 | + user.UpdatedAt = time.Now() | ||
52 | + if user, err = userRepository.Save(user); err != nil { | ||
53 | + return nil, err | ||
54 | + } | ||
55 | + } | ||
56 | + | ||
57 | + return userBase, nil | ||
58 | +} | ||
59 | + | ||
60 | +func NewPgUpdateUserBaseService(transactionContext *pgTransaction.TransactionContext) (*PgUpdateUserService, error) { | ||
61 | + if transactionContext == nil { | ||
62 | + return nil, fmt.Errorf("transactionContext参数不能为nil") | ||
63 | + } else { | ||
64 | + return &PgUpdateUserService{ | ||
65 | + transactionContext: transactionContext, | ||
66 | + }, nil | ||
67 | + } | ||
68 | +} |
-
请 注册 或 登录 后发表评论