作者 yangfu

移除无用的目录

@@ -4,8 +4,8 @@ import ( @@ -4,8 +4,8 @@ import (
4 "github.com/GeeTeam/gt3-golang-sdk/geetest" 4 "github.com/GeeTeam/gt3-golang-sdk/geetest"
5 "github.com/google/uuid" 5 "github.com/google/uuid"
6 "github.com/linmadan/egglib-go/utils/json" 6 "github.com/linmadan/egglib-go/utils/json"
  7 + "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/auth/dto"
7 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/auth/query" 8 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/auth/query"
8 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/auth/dto"  
9 "time" 9 "time"
10 10
11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log" 11 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log"
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 -  
6 - "github.com/beego/beego/v2/core/validation"  
7 -)  
8 -  
9 -type AccessTokenCommand struct {  
10 - AuthCode string `json:"authCode" valid:"Required"`  
11 -}  
12 -  
13 -func (orgAddCommand *AccessTokenCommand) Valid(validation *validation.Validation) {  
14 -  
15 -}  
16 -  
17 -func (orgAddCommand *AccessTokenCommand) ValidateCommand() error {  
18 - valid := validation.Validation{}  
19 - b, err := valid.Valid(orgAddCommand)  
20 - if err != nil {  
21 - return err  
22 - }  
23 - if !b {  
24 - for _, validErr := range valid.Errors {  
25 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
26 - }  
27 - }  
28 - return nil  
29 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "reflect"  
6 - "strings"  
7 -  
8 - "github.com/beego/beego/v2/core/validation"  
9 -)  
10 -  
11 -type CompanySignUpCommand struct {  
12 - // 企业名称  
13 - CompanyName string `cname:"企业名称" json:"companyName" valid:"Required"`  
14 - // 联系人  
15 - Contacts string `cname:"联系人" json:"userName" valid:"Required"`  
16 - // 手机号码  
17 - Phone string `cname:"手机号码" json:"phone" valid:"Required"`  
18 - // 规模  
19 - Scale string `cname:"规模" json:"scale" valid:"Required"`  
20 - // 所属行业  
21 - IndustryCategory string `cname:"所属行业" json:"industryCategory" valid:"Required"`  
22 - // 密码  
23 - Password string `cname:"密码" json:"password" valid:"Required"`  
24 - // 短信验证码  
25 - SmsCode string `cname:"短信验证码" json:"smsCode" valid:"Required"`  
26 -}  
27 -  
28 -func (companySignUpCommand *CompanySignUpCommand) Valid(validation *validation.Validation) {  
29 - //validation.SetError("CustomValid", "未实现的自定义认证")  
30 -}  
31 -  
32 -func (companySignUpCommand *CompanySignUpCommand) ValidateCommand() error {  
33 - valid := validation.Validation{}  
34 - b, err := valid.Valid(companySignUpCommand)  
35 - if err != nil {  
36 - return err  
37 - }  
38 - if !b {  
39 - elem := reflect.TypeOf(companySignUpCommand).Elem()  
40 - for _, validErr := range valid.Errors {  
41 - field, isExist := elem.FieldByName(validErr.Field)  
42 - if isExist {  
43 - return fmt.Errorf(strings.Replace(validErr.Message, validErr.Field, field.Tag.Get("cname"), -1))  
44 - } else {  
45 - return fmt.Errorf(validErr.Message)  
46 - }  
47 - }  
48 - }  
49 - return nil  
50 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 -  
6 - "github.com/beego/beego/v2/core/validation"  
7 -)  
8 -  
9 -type LoginCommand struct {  
10 - Phone string `json:"phone" valid:"Required"`  
11 - GrantType string `json:"grantType" valid:"Required"` //登录方式(signInPassword 密码登录、signInCaptcha 验证码登录)  
12 - Password string `json:"password"`  
13 - Captcha string `json:"captcha"`  
14 -}  
15 -  
16 -func (orgAddCommand *LoginCommand) Valid(validation *validation.Validation) {  
17 -  
18 -}  
19 -  
20 -func (orgAddCommand *LoginCommand) ValidateCommand() error {  
21 - valid := validation.Validation{}  
22 - b, err := valid.Valid(orgAddCommand)  
23 - if err != nil {  
24 - return err  
25 - }  
26 - if !b {  
27 - for _, validErr := range valid.Errors {  
28 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
29 - }  
30 - }  
31 - return nil  
32 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 -  
6 - "github.com/beego/beego/v2/core/validation"  
7 -)  
8 -  
9 -type RefreshTokenCommand struct {  
10 - RefreshToken string `json:"refreshToken" valid:"Required"`  
11 -}  
12 -  
13 -func (orgAddCommand *RefreshTokenCommand) Valid(validation *validation.Validation) {  
14 -  
15 -}  
16 -  
17 -func (orgAddCommand *RefreshTokenCommand) ValidateCommand() error {  
18 - valid := validation.Validation{}  
19 - b, err := valid.Valid(orgAddCommand)  
20 - if err != nil {  
21 - return err  
22 - }  
23 - if !b {  
24 - for _, validErr := range valid.Errors {  
25 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
26 - }  
27 - }  
28 - return nil  
29 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "reflect"  
6 - "strings"  
7 -  
8 - "github.com/beego/beego/v2/core/validation"  
9 -)  
10 -  
11 -type ResetPasswordCommand struct {  
12 - // 手机号码  
13 - // Phone string `cname:"手机号码" json:"phone" valid:"Required"`  
14 - // 密码  
15 - Password string `cname:"密码" json:"newPassword"`  
16 - // 密码  
17 - RepeatNewPassword string `cname:"密码" json:"repeatNewPassword" valid:"Required"`  
18 - // 密码  
19 - SmsCodeIdentity string `cname:"密码" json:"smsCodeIdentity" valid:"Required"`  
20 -}  
21 -  
22 -func (resetPasswordCommand *ResetPasswordCommand) Valid(validation *validation.Validation) {  
23 - if len(resetPasswordCommand.Password) == 0 {  
24 - validation.Error("登录密码不能为空")  
25 - return  
26 - }  
27 - if resetPasswordCommand.Password != resetPasswordCommand.RepeatNewPassword {  
28 - validation.Error("两次密码输入不一致")  
29 - return  
30 - }  
31 -}  
32 -  
33 -func (resetPasswordCommand *ResetPasswordCommand) ValidateCommand() error {  
34 - valid := validation.Validation{}  
35 - b, err := valid.Valid(resetPasswordCommand)  
36 - if err != nil {  
37 - return err  
38 - }  
39 - if !b {  
40 - elem := reflect.TypeOf(resetPasswordCommand).Elem()  
41 - for _, validErr := range valid.Errors {  
42 - field, isExist := elem.FieldByName(validErr.Field)  
43 - if isExist {  
44 - return fmt.Errorf(strings.Replace(validErr.Message, validErr.Field, field.Tag.Get("cname"), -1))  
45 - } else {  
46 - return fmt.Errorf(validErr.Message)  
47 - }  
48 - }  
49 - }  
50 - return nil  
51 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "github.com/beego/beego/v2/core/validation"  
6 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
7 -)  
8 -  
9 -type SwitchOrgCommand struct {  
10 - //操作人  
11 - Operator domain.Operator `json:"-"`  
12 - // 组织ID  
13 - OrgId int64 `json:"orgId,string"`  
14 -}  
15 -  
16 -func (switchOrgCommand *SwitchOrgCommand) Valid(validation *validation.Validation) {  
17 -  
18 -}  
19 -  
20 -func (switchOrgCommand *SwitchOrgCommand) ValidateCommand() error {  
21 - valid := validation.Validation{}  
22 - b, err := valid.Valid(switchOrgCommand)  
23 - if err != nil {  
24 - return err  
25 - }  
26 - if !b {  
27 - for _, validErr := range valid.Errors {  
28 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
29 - }  
30 - }  
31 - return nil  
32 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
6 -  
7 - "github.com/beego/beego/v2/core/validation"  
8 -)  
9 -  
10 -type UserInfoCommand struct {  
11 - //操作人  
12 - Operator domain.Operator `json:"-"`  
13 -}  
14 -  
15 -func (userInfoCommand *UserInfoCommand) Valid(validation *validation.Validation) {  
16 -  
17 -}  
18 -  
19 -func (userInfoCommand *UserInfoCommand) ValidateCommand() error {  
20 - valid := validation.Validation{}  
21 - b, err := valid.Valid(userInfoCommand)  
22 - if err != nil {  
23 - return err  
24 - }  
25 - if !b {  
26 - for _, validErr := range valid.Errors {  
27 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
28 - }  
29 - }  
30 - return nil  
31 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
6 -  
7 - "github.com/beego/beego/v2/core/validation"  
8 -)  
9 -  
10 -type UserMenusCommand struct {  
11 - //操作人  
12 - Operator domain.Operator `json:"-"`  
13 -}  
14 -  
15 -func (userMenusCommand *UserMenusCommand) Valid(validation *validation.Validation) {  
16 -  
17 -}  
18 -  
19 -func (userMenusCommand *UserMenusCommand) ValidateCommand() error {  
20 - valid := validation.Validation{}  
21 - b, err := valid.Valid(userMenusCommand)  
22 - if err != nil {  
23 - return err  
24 - }  
25 - if !b {  
26 - for _, validErr := range valid.Errors {  
27 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
28 - }  
29 - }  
30 - return nil  
31 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 - "github.com/beego/beego/v2/core/validation"  
6 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
7 -)  
8 -  
9 -type UserOrgCommand struct {  
10 - //操作人  
11 - Operator domain.Operator `json:"-"`  
12 -}  
13 -  
14 -func (userOrgCommand *UserOrgCommand) Valid(validation *validation.Validation) {  
15 -  
16 -}  
17 -  
18 -func (userOrgCommand *UserOrgCommand) ValidateCommand() error {  
19 - valid := validation.Validation{}  
20 - b, err := valid.Valid(userOrgCommand)  
21 - if err != nil {  
22 - return err  
23 - }  
24 - if !b {  
25 - for _, validErr := range valid.Errors {  
26 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
27 - }  
28 - }  
29 - return nil  
30 -}  
1 -package service  
2 -  
3 -import (  
4 - "time"  
5 -  
6 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/log"  
7 -  
8 - "github.com/linmadan/egglib-go/core/application"  
9 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/factory"  
10 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/mobile/auth/command"  
11 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
12 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/cache"  
13 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_user"  
14 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/sms_serve"  
15 -)  
16 -  
17 -// 组织管理  
18 -type AuthService struct {  
19 -}  
20 -  
21 -//AuthLogin 用户登录  
22 -func (srv AuthService) AuthLogin(loginCommand *command.LoginCommand) (interface{}, error) {  
23 - var (  
24 - result interface{}  
25 - err error  
26 - )  
27 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
28 - _, err = creationUserGateway.AuthRefreshIM(allied_creation_user.ReqAuthRefreshIM{  
29 - Phone: loginCommand.Phone,  
30 - })  
31 - if err != nil {  
32 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
33 - }  
34 - switch loginCommand.GrantType {  
35 - case "signInPassword":  
36 - result, err = srv.SignInPassword(loginCommand.Phone, loginCommand.Password)  
37 - case "signInCaptcha":  
38 - result, err = srv.SignInCaptcha(loginCommand.Phone, loginCommand.Captcha)  
39 - default:  
40 - err = application.ThrowError(application.TRANSACTION_ERROR, "登录方式无法解析")  
41 - }  
42 - return result, err  
43 -}  
44 -  
45 -//SignInPassword 使用账号密码校验  
46 -func (srv AuthService) SignInPassword(account string, password string) (interface{}, error) {  
47 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
48 - _, err := creationUserGateway.AuthCheckPassword(allied_creation_user.ReqAuthCheckPassword{  
49 - Password: password,  
50 - Phone: account,  
51 - })  
52 - if err != nil {  
53 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
54 - }  
55 - ltoken := domain.LoginToken{  
56 - UserId: 0,  
57 - Account: account,  
58 - Platform: domain.LoginPlatformApp,  
59 - CompanyId: 0,  
60 - }  
61 - authcode, err := ltoken.GenerateAuthCode()  
62 - if err != nil {  
63 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
64 - }  
65 - result := map[string]string{  
66 - "authCode": authcode,  
67 - }  
68 - return result, nil  
69 -}  
70 -  
71 -//SignInCaptcha 使用手机验证码登录  
72 -func (srv AuthService) SignInCaptcha(phone string, captcha string) (interface{}, error) {  
73 - smsServeGateway := sms_serve.NewHttplibHttplibSmsServe()  
74 - err := smsServeGateway.CheckSmsCode(phone, captcha)  
75 - if err != nil {  
76 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
77 - }  
78 - ltoken := domain.LoginToken{  
79 - UserId: 0,  
80 - Account: phone,  
81 - Platform: domain.LoginPlatformApp,  
82 - CompanyId: 0,  
83 - }  
84 - authcode, err := ltoken.GenerateAuthCode()  
85 - if err != nil {  
86 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
87 - }  
88 - result := map[string]string{  
89 - "authCode": authcode,  
90 - }  
91 - return result, nil  
92 -}  
93 -  
94 -//GetAuthAccessToken 获取令牌Token  
95 -func (srv AuthService) GetAuthAccessToken(accessTokenCommand *command.AccessTokenCommand) (interface{}, error) {  
96 - if err := accessTokenCommand.ValidateCommand(); err != nil {  
97 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
98 - }  
99 - ltoken := &domain.LoginToken{}  
100 - err := ltoken.ParseToken(accessTokenCommand.AuthCode)  
101 - if err != nil {  
102 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
103 - }  
104 - phone := ltoken.Account  
105 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
106 - userSeachResult, err := creationUserGateway.UserSearch(allied_creation_user.ReqUserSearch{  
107 - CompanyId: ltoken.CompanyId,  
108 - Phone: phone,  
109 - })  
110 - if err != nil {  
111 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
112 - }  
113 - if len(userSeachResult.Users) == 0 {  
114 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "获取用户信息失败")  
115 - }  
116 - transactionContext, err := factory.CreateTransactionContext(nil)  
117 - if err != nil {  
118 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
119 - }  
120 - if err := transactionContext.StartTransaction(); err != nil {  
121 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
122 - }  
123 - defer func() {  
124 - transactionContext.RollbackTransaction()  
125 - }()  
126 - var loginAccessRepository domain.LoginAccessRepository  
127 - if loginAccessRepository, err = factory.CreateLoginAccessRepository(map[string]interface{}{  
128 - "transactionContext": transactionContext,  
129 - }); err != nil {  
130 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
131 - }  
132 - _, lAccess, err := loginAccessRepository.Find(map[string]interface{}{  
133 - "account": phone,  
134 - "platform": domain.LoginPlatformApp,  
135 - })  
136 - if err != nil {  
137 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
138 - }  
139 - var currentAccess *domain.LoginAccess  
140 - if len(lAccess) > 0 {  
141 - currentAccess = lAccess[0]  
142 - currentAccess.UpdatedTime = time.Now()  
143 - } else {  
144 - currentAccess = &domain.LoginAccess{  
145 - UserBaseId: int64(userSeachResult.Users[0].UserBaseId),  
146 - UserId: int64(userSeachResult.Users[0].UserId),  
147 - Account: userSeachResult.Users[0].UserInfo.Phone,  
148 - Platform: domain.LoginPlatformApp,  
149 - OrganizationId: int64(userSeachResult.Users[0].Org.OrgId),  
150 - AccessToken: "",  
151 - RefreshToken: "",  
152 - AccessExpired: 0,  
153 - RefreshExpired: 0,  
154 - CreatedTime: time.Now(),  
155 - UpdatedTime: time.Now(),  
156 - }  
157 - if userSeachResult.Users[0].Company != nil {  
158 - currentAccess.CompanyId = int64(userSeachResult.Users[0].Company.CompanyId)  
159 - }  
160 - }  
161 - //判定当前凭证的companyId,OrganizationId 是否在用户列表中  
162 - var currentOrgIsOK bool  
163 -loopUser1:  
164 - for _, v := range userSeachResult.Users {  
165 - if v.Company.CompanyId == int(currentAccess.CompanyId) {  
166 - for _, vv := range v.UserOrg {  
167 - if vv.OrgID == int(currentAccess.OrganizationId) {  
168 - currentOrgIsOK = true  
169 - currentAccess.UserId = int64(v.UserId)  
170 - currentAccess.UserBaseId = int64(v.UserBaseId)  
171 - break loopUser1  
172 - }  
173 - }  
174 - }  
175 - }  
176 - //记录上一次的登录公司组织信息不可用 ,重置登录记录  
177 - //使用找到的第一个可用的公司组织  
178 - if !currentOrgIsOK {  
179 - loopUser2:  
180 - for _, v := range userSeachResult.Users {  
181 - currentAccess.CompanyId = int64(v.Company.CompanyId)  
182 - for _, vv := range v.UserOrg {  
183 - currentAccess.UserId = int64(v.UserId)  
184 - currentAccess.UserBaseId = int64(v.UserBaseId)  
185 - currentAccess.OrganizationId = int64(vv.OrgID)  
186 - currentOrgIsOK = true  
187 - break loopUser2  
188 - }  
189 - }  
190 - }  
191 -  
192 - loginToken := domain.LoginToken{  
193 - UserId: currentAccess.UserId,  
194 - Account: currentAccess.Account,  
195 - UserBaseId: currentAccess.UserBaseId,  
196 - CompanyId: currentAccess.CompanyId,  
197 - OrgId: currentAccess.OrganizationId,  
198 - Platform: currentAccess.Platform,  
199 - }  
200 -  
201 - accessTokenStr, err := loginToken.GenerateAccessToken()  
202 - if err != nil {  
203 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
204 - }  
205 - currentAccess.AccessToken = accessTokenStr  
206 - currentAccess.AccessExpired = loginToken.ExpiresAt  
207 - refreshTokenStr, err := loginToken.GenerateRefreshToken()  
208 - if err != nil {  
209 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
210 - }  
211 - currentAccess.RefreshToken = refreshTokenStr  
212 - currentAccess.AccessExpired = loginToken.ExpiresAt  
213 - //先存数据库  
214 - _, err = loginAccessRepository.Save(currentAccess)  
215 - if err != nil {  
216 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
217 - }  
218 - if err := transactionContext.CommitTransaction(); err != nil {  
219 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
220 - }  
221 - //后处理redis缓存  
222 - tokenCache := cache.LoginTokenCache{}  
223 - tokenCache.RemoveAccessToken(currentAccess.Account, domain.LoginPlatformApp)  
224 - tokenCache.RemoveRefreshToken(currentAccess.Account, domain.LoginPlatformApp)  
225 - tokenCache.SaveAccessToken(currentAccess)  
226 - tokenCache.SaveRefreshToken(currentAccess)  
227 - nowTime := time.Now().Unix()  
228 - return map[string]interface{}{  
229 - "refreshToken": accessTokenStr,  
230 - "accessToken": refreshTokenStr,  
231 - "expiresIn": currentAccess.AccessExpired - nowTime,  
232 - }, nil  
233 -}  
234 -  
235 -func (srv AuthService) RefreshAuthAccessToken(refreshTokenCommand *command.RefreshTokenCommand) (interface{}, error) {  
236 - if err := refreshTokenCommand.ValidateCommand(); err != nil {  
237 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
238 - }  
239 - ltoken := domain.LoginToken{}  
240 - err := ltoken.ParseToken(refreshTokenCommand.RefreshToken)  
241 - if err != nil {  
242 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "refreshToken 不可用,"+err.Error())  
243 - }  
244 - token, err := srv.getToken(domain.Operator{}, ltoken)  
245 - // phone := ltoken.Account  
246 - // creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
247 - // userSearchResult, err := creationUserGateway.UserSearch(allied_creation_user.ReqUserSearch{  
248 - // Phone: phone,  
249 - // })  
250 - // if err != nil {  
251 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, "用户信息获取失败,"+err.Error())  
252 - // }  
253 - // //判定当前凭证的companyId,OrganizationId 是否在用户列表中  
254 - // var currentOrgIsOK bool  
255 - //loopUser1:  
256 - // for _, v := range userSearchResult.Users {  
257 - // if v.Company.CompanyId == int(ltoken.CompanyId) {  
258 - // for _, vv := range v.UserOrg {  
259 - // if vv.OrgID == int(ltoken.OrgId) {  
260 - // currentOrgIsOK = true  
261 - // break loopUser1  
262 - // }  
263 - // }  
264 - // }  
265 - // }  
266 - // if !currentOrgIsOK {  
267 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, "登录的公司组织不可用")  
268 - // }  
269 - //  
270 - // transactionContext, err := factory.CreateTransactionContext(nil)  
271 - // if err != nil {  
272 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
273 - // }  
274 - // if err := transactionContext.StartTransaction(); err != nil {  
275 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
276 - // }  
277 - // defer func() {  
278 - // transactionContext.RollbackTransaction()  
279 - // }()  
280 - // var loginAccessRepository domain.LoginAccessRepository  
281 - // if loginAccessRepository, err = factory.CreateLoginAccessRepository(map[string]interface{}{  
282 - // "transactionContext": transactionContext,  
283 - // }); err != nil {  
284 - // return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
285 - // }  
286 - // _, lAccess, err := loginAccessRepository.Find(map[string]interface{}{  
287 - // "account": phone,  
288 - // "platform": domain.LoginPlatformApp,  
289 - // })  
290 - // if err != nil {  
291 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
292 - // }  
293 - // var currentAccess *domain.LoginAccess  
294 - // if len(lAccess) > 0 {  
295 - // currentAccess = lAccess[0]  
296 - // currentAccess.UpdatedTime = time.Now()  
297 - // } else {  
298 - // currentAccess = &domain.LoginAccess{  
299 - // UserBaseId: ltoken.UserBaseId,  
300 - // UserId: ltoken.UserId,  
301 - // Account: ltoken.Account,  
302 - // Platform: domain.LoginPlatformApp,  
303 - // CompanyId: ltoken.CompanyId,  
304 - // OrganizationId: ltoken.OrgId,  
305 - // AccessToken: "",  
306 - // RefreshToken: "",  
307 - // AccessExpired: 0,  
308 - // RefreshExpired: 0,  
309 - // CreatedTime: time.Now(),  
310 - // UpdatedTime: time.Now(),  
311 - // }  
312 - // }  
313 - // accessTokenStr, err := ltoken.GenerateAccessToken()  
314 - // if err != nil {  
315 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
316 - // }  
317 - // currentAccess.AccessToken = accessTokenStr  
318 - // currentAccess.AccessExpired = ltoken.ExpiresAt  
319 - // refreshTokenStr, err := ltoken.GenerateRefreshToken()  
320 - // if err != nil {  
321 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
322 - // }  
323 - // currentAccess.RefreshToken = refreshTokenStr  
324 - // currentAccess.RefreshExpired = ltoken.ExpiresAt  
325 - // //先存数据库  
326 - // _, err = loginAccessRepository.Save(currentAccess)  
327 - // if err != nil {  
328 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
329 - // }  
330 - // if err := transactionContext.CommitTransaction(); err != nil {  
331 - // return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
332 - // }  
333 - // //后处理redis缓存  
334 - // tokenCache := cache.LoginTokenCache{}  
335 - // tokenCache.RemoveAccessToken(currentAccess.Account, domain.LoginPlatformApp)  
336 - // tokenCache.RemoveRefreshToken(currentAccess.Account, domain.LoginPlatformApp)  
337 - // tokenCache.SaveAccessToken(currentAccess)  
338 - // tokenCache.SaveRefreshToken(currentAccess)  
339 - // nowTime := time.Now().Unix()  
340 - // return map[string]interface{}{  
341 - // "refreshToken": accessTokenStr,  
342 - // "accessToken": refreshTokenStr,  
343 - // "expiresIn": currentAccess.AccessExpired - nowTime,  
344 - // }, nil  
345 - return token["token"], err  
346 -}  
347 -  
348 -//GetUserMenus 获取用户信息  
349 -func (srv AuthService) GetUserInfo(userInfoCommand *command.UserInfoCommand) (interface{}, error) {  
350 - user, err := srv.getUserInfo(userInfoCommand.Operator)  
351 - if err != nil {  
352 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
353 - }  
354 - return map[string]interface{}{  
355 - "user": user,  
356 - }, nil  
357 -}  
358 -  
359 -//GetUserMenus 获取用户菜单  
360 -func (srv AuthService) GetUserMenus(userMenusCommand *command.UserMenusCommand) (interface{}, error) {  
361 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(  
362 - userMenusCommand.Operator)  
363 - resultMenu, err := creationUserGateway.UserAccessMenus(allied_creation_user.ReqUserAccessMenus{  
364 - UserId: int(userMenusCommand.Operator.UserId),  
365 - })  
366 - if err != nil {  
367 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
368 - }  
369 - return map[string]interface{}{  
370 - "accessMenus": resultMenu.Menus,  
371 - }, nil  
372 -}  
373 -  
374 -//GetUserMenus 获取用户组织  
375 -func (srv AuthService) GetUserOrg(userOrgCommand *command.UserOrgCommand) (interface{}, error) {  
376 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(userOrgCommand.Operator)  
377 - result, err := creationUserGateway.UserSearch(allied_creation_user.ReqUserSearch{  
378 - Offset: 0,  
379 - Limit: 100,  
380 - UserBaseId: userOrgCommand.Operator.UserBaseId,  
381 - UserType: domain.UserTypeEmployee,  
382 - EnableStatus: domain.UserStatusEnable,  
383 - PullRealTime: true,  
384 - })  
385 - if err != nil {  
386 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
387 - }  
388 - var res = make([]interface{}, 0)  
389 - for i := range result.Users {  
390 - for j := range result.Users[i].UserOrg {  
391 - org := result.Users[i].UserOrg[j]  
392 - res = append(res, map[string]interface{}{  
393 - "orgId": org.OrgID,  
394 - "orgName": org.OrgName,  
395 - })  
396 - }  
397 - }  
398 - return map[string]interface{}{  
399 - "orgs": res,  
400 - }, nil  
401 -}  
402 -  
403 -//OrgSwitch 组织切换  
404 -func (srv AuthService) OrgSwitch(switchOrgCommand *command.SwitchOrgCommand) (interface{}, error) {  
405 - if err := switchOrgCommand.ValidateCommand(); err != nil {  
406 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
407 - }  
408 - ltoken := domain.LoginToken{}  
409 - err := ltoken.ParseToken(switchOrgCommand.Operator.Token)  
410 - if err != nil {  
411 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "accessToken 不可用,"+err.Error())  
412 - }  
413 - ltoken.OrgId = switchOrgCommand.OrgId  
414 - token, err := srv.getToken(domain.Operator{}, ltoken)  
415 - if err != nil {  
416 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
417 - }  
418 - var userId int64  
419 - if v, ok := token["userId"]; ok {  
420 - if userId, ok = v.(int64); !ok {  
421 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "用户不存在")  
422 - }  
423 - }  
424 - user, err := srv.getUserInfo(domain.Operator{UserId: userId})  
425 - if err != nil {  
426 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
427 - }  
428 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(  
429 - switchOrgCommand.Operator)  
430 - resultMenu, err := creationUserGateway.UserAccessMenus(allied_creation_user.ReqUserAccessMenus{  
431 - UserId: int(userId),  
432 - })  
433 - if err != nil {  
434 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
435 - }  
436 - var res = map[string]interface{}{  
437 - "user": user,  
438 - "accessMenus": resultMenu.Menus,  
439 - "token": token["token"],  
440 - }  
441 - return res, nil  
442 -}  
443 -  
444 -// CompanySignUp 企业注册  
445 -func (srv AuthService) CompanySignUp(companySignUpCommand *command.CompanySignUpCommand) (interface{}, error) {  
446 - //TODO:验证码验证测试去掉,后期恢复回来  
447 - //smsServeGateway := sms_serve.NewHttplibHttplibSmsServe()  
448 - //err := smsServeGateway.CheckSmsCode(companySignUpCommand.Phone, companySignUpCommand.SmsCode)  
449 - //if err != nil {  
450 - // return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
451 - //}  
452 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
453 - _, err := creationUserGateway.AuthCompanySignUp(allied_creation_user.ReqAuthCompanySignUp{  
454 - CompanyName: companySignUpCommand.CompanyName,  
455 - Phone: companySignUpCommand.Phone,  
456 - Password: companySignUpCommand.Password,  
457 - Contacts: companySignUpCommand.Contacts,  
458 - IndustryCategory: companySignUpCommand.IndustryCategory,  
459 - Scale: companySignUpCommand.Scale,  
460 - })  
461 - if err != nil {  
462 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
463 - }  
464 - return companySignUpCommand, err  
465 -}  
466 -  
467 -// ResetPassword 重置密码(找回密码)  
468 -func (srv AuthService) ResetPassword(resetPasswordCommand *command.ResetPasswordCommand) (interface{}, error) {  
469 - if err := resetPasswordCommand.ValidateCommand(); err != nil {  
470 - return nil, application.ThrowError(application.ARG_ERROR, err.Error())  
471 - }  
472 - //var phone string  
473 - pcc := cache.PhoneCheckCache{}  
474 - var item = &cache.PhoneCheckItem{}  
475 - if err := pcc.Get(resetPasswordCommand.SmsCodeIdentity, item); err != nil {  
476 - log.Logger.Error(err.Error())  
477 - return nil, application.ThrowError(application.BUSINESS_ERROR, "验证码已失效")  
478 - }  
479 - // 2.重置密码  
480 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
481 - result, err := creationUserGateway.AuthResetPassword(allied_creation_user.ReqAuthResetPassword{  
482 - Phone: item.Phone,  
483 - Password: resetPasswordCommand.Password,  
484 - })  
485 - if err != nil {  
486 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
487 - }  
488 - return result, err  
489 -}  
490 -  
491 -func (srv AuthService) getUserInfo(operator domain.Operator) (interface{}, error) {  
492 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(  
493 - operator)  
494 - resultUser, err := creationUserGateway.UserGet(allied_creation_user.ReqGetUser{  
495 - UserId: int(operator.UserId),  
496 - })  
497 - if err != nil {  
498 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
499 - }  
500 - var user = map[string]interface{}{  
501 - "userId": resultUser.UserId,  
502 - "userInfo": map[string]interface{}{  
503 - "userName": resultUser.UserInfo.UserName,  
504 - "userPhone": resultUser.UserInfo.Phone,  
505 - "userAvatar": resultUser.UserInfo.Avatar,  
506 - //"userCode": resultUser.UserInfo.UserCode,  
507 - "email": resultUser.UserInfo.Email,  
508 - },  
509 - "department": resultUser.Department,  
510 - "company": map[string]interface{}{  
511 - "companyId": resultUser.Company.CompanyId,  
512 - "companyName": resultUser.Company.CompanyName,  
513 - "logo": resultUser.Company.Log,  
514 - },  
515 - "im": resultUser.IM,  
516 - "org": resultUser.Org,  
517 - }  
518 - return user, nil  
519 -}  
520 -  
521 -func (srv AuthService) getToken(operator domain.Operator, ltoken domain.LoginToken) (map[string]interface{}, error) {  
522 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
523 - userSearchResult, err := creationUserGateway.UserSearch(allied_creation_user.ReqUserSearch{  
524 - Phone: ltoken.Account,  
525 - })  
526 - if err != nil {  
527 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "用户信息获取失败,"+err.Error())  
528 - }  
529 - //判定当前凭证的companyId,OrganizationId 是否在用户列表中  
530 - var currentOrgIsOK bool  
531 - var currentUserId int64  
532 -loopUser1:  
533 - for _, v := range userSearchResult.Users {  
534 - //if v.Company.CompanyId == int(ltoken.CompanyId) {  
535 - for _, vv := range v.UserOrg {  
536 - if vv.OrgID == int(ltoken.OrgId) {  
537 - currentOrgIsOK = true  
538 - currentUserId = int64(v.UserId)  
539 - break loopUser1  
540 - }  
541 - }  
542 - //}  
543 - }  
544 - if !currentOrgIsOK {  
545 - return nil, application.ThrowError(application.TRANSACTION_ERROR, "登录的公司组织不可用")  
546 - }  
547 -  
548 - transactionContext, err := factory.CreateTransactionContext(nil)  
549 - if err != nil {  
550 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
551 - }  
552 - if err := transactionContext.StartTransaction(); err != nil {  
553 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
554 - }  
555 - defer func() {  
556 - transactionContext.RollbackTransaction()  
557 - }()  
558 - var loginAccessRepository domain.LoginAccessRepository  
559 - if loginAccessRepository, err = factory.CreateLoginAccessRepository(map[string]interface{}{  
560 - "transactionContext": transactionContext,  
561 - }); err != nil {  
562 - return nil, application.ThrowError(application.INTERNAL_SERVER_ERROR, err.Error())  
563 - }  
564 - _, lAccess, err := loginAccessRepository.Find(map[string]interface{}{  
565 - "account": ltoken.Account,  
566 - "platform": domain.LoginPlatformApp,  
567 - })  
568 - if err != nil {  
569 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
570 - }  
571 - var currentAccess *domain.LoginAccess  
572 - if len(lAccess) > 0 {  
573 - currentAccess = lAccess[0]  
574 - currentAccess.UpdatedTime = time.Now()  
575 - } else {  
576 - currentAccess = &domain.LoginAccess{  
577 - UserBaseId: ltoken.UserBaseId,  
578 - UserId: ltoken.UserId,  
579 - Account: ltoken.Account,  
580 - Platform: domain.LoginPlatformApp,  
581 - CompanyId: ltoken.CompanyId,  
582 - OrganizationId: ltoken.OrgId,  
583 - AccessToken: "",  
584 - RefreshToken: "",  
585 - AccessExpired: 0,  
586 - RefreshExpired: 0,  
587 - CreatedTime: time.Now(),  
588 - UpdatedTime: time.Now(),  
589 - }  
590 - }  
591 - accessTokenStr, err := ltoken.GenerateAccessToken()  
592 - if err != nil {  
593 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
594 - }  
595 - currentAccess.AccessToken = accessTokenStr  
596 - currentAccess.AccessExpired = ltoken.ExpiresAt  
597 - refreshTokenStr, err := ltoken.GenerateRefreshToken()  
598 - if err != nil {  
599 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
600 - }  
601 - currentAccess.RefreshToken = refreshTokenStr  
602 - currentAccess.RefreshExpired = ltoken.ExpiresAt  
603 - //先存数据库  
604 - _, err = loginAccessRepository.Save(currentAccess)  
605 - if err != nil {  
606 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
607 - }  
608 - if err := transactionContext.CommitTransaction(); err != nil {  
609 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
610 - }  
611 - //后处理redis缓存  
612 - tokenCache := cache.LoginTokenCache{}  
613 - tokenCache.RemoveAccessToken(currentAccess.Account, domain.LoginPlatformApp)  
614 - tokenCache.RemoveRefreshToken(currentAccess.Account, domain.LoginPlatformApp)  
615 - tokenCache.SaveAccessToken(currentAccess)  
616 - tokenCache.SaveRefreshToken(currentAccess)  
617 - nowTime := time.Now().Unix()  
618 - token := map[string]interface{}{  
619 - "refreshToken": accessTokenStr,  
620 - "accessToken": refreshTokenStr,  
621 - "expiresIn": currentAccess.AccessExpired - nowTime,  
622 - }  
623 - return map[string]interface{}{  
624 - "token": token,  
625 - "userId": currentUserId,  
626 - }, nil  
627 -}  
1 -package command  
2 -  
3 -import (  
4 - "fmt"  
5 -  
6 - "github.com/beego/beego/v2/core/validation"  
7 -)  
8 -  
9 -type LoginCommand struct {  
10 - Phone string `json:"phone" valid:"Required"`  
11 - GrantType string `json:"grantType" valid:"Required"` //登录方式(signInPassword 密码登录、signInCaptcha 验证码登录)  
12 - Password string `json:"password"`  
13 - Captcha string `json:"captcha"`  
14 -}  
15 -  
16 -func (orgAddCommand *LoginCommand) Valid(validation *validation.Validation) {  
17 -  
18 -}  
19 -  
20 -func (orgAddCommand *LoginCommand) ValidateCommand() error {  
21 - valid := validation.Validation{}  
22 - b, err := valid.Valid(orgAddCommand)  
23 - if err != nil {  
24 - return err  
25 - }  
26 - if !b {  
27 - for _, validErr := range valid.Errors {  
28 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
29 - }  
30 - }  
31 - return nil  
32 -}  
1 -package query  
2 -  
3 -import (  
4 - "fmt"  
5 -  
6 - "github.com/beego/beego/v2/core/validation"  
7 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
8 -)  
9 -  
10 -type GetCompanyOrgsByUserQuery struct {  
11 - //操作人  
12 - Operator domain.Operator `json:"-"`  
13 - Phone string `json:"phone" valid:"Required"` //手机号  
14 -}  
15 -  
16 -func (orgAddCommand *GetCompanyOrgsByUserQuery) Valid(validation *validation.Validation) {  
17 -  
18 -}  
19 -  
20 -func (orgAddCommand *GetCompanyOrgsByUserQuery) ValidateCommand() error {  
21 - valid := validation.Validation{}  
22 - b, err := valid.Valid(orgAddCommand)  
23 - if err != nil {  
24 - return err  
25 - }  
26 - if !b {  
27 - for _, validErr := range valid.Errors {  
28 - return fmt.Errorf("%s %s", validErr.Key, validErr.Message)  
29 - }  
30 - }  
31 - return nil  
32 -}  
1 -package query  
2 -  
3 -type QrcodeLoginStatusQuery struct {  
4 - Token string `json:"token"`  
5 -}  
1 -package service  
2 -  
3 -import (  
4 - "errors"  
5 -  
6 - "github.com/linmadan/egglib-go/core/application"  
7 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/auth/command"  
8 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/auth/dto"  
9 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/web/auth/query"  
10 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/domain"  
11 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/cache"  
12 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/allied_creation_user"  
13 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/infrastructure/service_gateway/sms_serve"  
14 -)  
15 -  
16 -type AuthService struct{}  
17 -  
18 -//AuthLogin 用户登录  
19 -func (srv AuthService) AuthLogin(loginCommand *command.LoginCommand) (interface{}, error) {  
20 - var (  
21 - result interface{}  
22 - err error  
23 - )  
24 - switch loginCommand.GrantType {  
25 - case "signInPassword":  
26 - //账号密码登录  
27 - result, err = srv.SignInPassword(loginCommand.Phone, loginCommand.Password)  
28 - case "signInCaptcha":  
29 - //手机验证码登录  
30 - result, err = srv.SignInCaptcha(loginCommand.Phone, loginCommand.Captcha)  
31 - default:  
32 - err = errors.New("登录方式无法解析")  
33 - }  
34 - return result, err  
35 -}  
36 -  
37 -//SignInPassword 使用账号密码校验  
38 -func (srv AuthService) SignInPassword(account string, password string) (interface{}, error) {  
39 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(domain.Operator{})  
40 - _, err := creationUserGateway.AuthCheckPassword(allied_creation_user.ReqAuthCheckPassword{  
41 - Password: password,  
42 - Phone: account,  
43 - })  
44 - if err != nil {  
45 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
46 - }  
47 - ltoken := domain.LoginToken{  
48 - UserId: 0,  
49 - Account: account,  
50 - Platform: domain.LoginPlatformApp,  
51 - CompanyId: 0,  
52 - }  
53 - authcode, err := ltoken.GenerateAuthCode()  
54 - if err != nil {  
55 - return nil, application.ThrowError(application.BUSINESS_ERROR, err.Error())  
56 - }  
57 - result := map[string]string{  
58 - "authCode": authcode,  
59 - }  
60 - return result, nil  
61 -}  
62 -  
63 -//SignInCaptcha 使用手机验证码登录  
64 -func (srv AuthService) SignInCaptcha(phone string, captcha string) (interface{}, error) {  
65 - smsServeGateway := sms_serve.NewHttplibHttplibSmsServe()  
66 - err := smsServeGateway.CheckSmsCode(phone, captcha)  
67 - if err != nil {  
68 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
69 - }  
70 - ltoken := domain.LoginToken{  
71 - UserId: 0,  
72 - Account: phone,  
73 - Platform: domain.LoginPlatformApp,  
74 - CompanyId: 0,  
75 - }  
76 - authcode, err := ltoken.GenerateAuthCode()  
77 - if err != nil {  
78 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
79 - }  
80 - result := map[string]string{  
81 - "authCode": authcode,  
82 - }  
83 - return result, nil  
84 -}  
85 -  
86 -//GetCompanyOrgsByUser 获取登录用户的公司组织列表  
87 -func (srv AuthService) GetCompanyOrgsByUser(queryParam query.GetCompanyOrgsByUserQuery) (interface{}, error) {  
88 -  
89 - creationUserGateway := allied_creation_user.NewHttplibAlliedCreationUser(queryParam.Operator)  
90 - result, err := creationUserGateway.UserSearch(allied_creation_user.ReqUserSearch{  
91 - Phone: queryParam.Phone,  
92 - })  
93 - if err != nil {  
94 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
95 - }  
96 - var (  
97 - companys []dto.CompanyItem  
98 - orgs []dto.OrgItem  
99 - )  
100 -  
101 - for _, v := range result.Users {  
102 - companys = append(companys, dto.CompanyItem{  
103 - CompanyId: v.Company.CompanyId,  
104 - CompanyName: v.Company.CompanyName,  
105 - })  
106 - for _, vv := range v.UserOrg {  
107 - orgs = append(orgs, dto.OrgItem{  
108 - OrganizationId: vv.OrgID,  
109 - OrganizationName: vv.OrgName,  
110 - CompanyId: v.Company.CompanyId,  
111 - })  
112 - }  
113 - }  
114 -  
115 - data := map[string]interface{}{  
116 - "companys": companys,  
117 - "organizations": orgs,  
118 - }  
119 - return data, nil  
120 -}  
121 -  
122 -//GetQrcode 获取扫码登录需要的二维码  
123 -func (srv AuthService) GetQrcode() (interface{}, error) {  
124 - qrmsg := domain.QrcodeMessage{}  
125 - imgBase64, err := qrmsg.GenerateImageBase64()  
126 - if err != nil {  
127 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
128 - }  
129 - qrCache := cache.LoginQrcodeCache{}  
130 - err = qrCache.Save(qrmsg)  
131 - if err != nil {  
132 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
133 - }  
134 - data := map[string]interface{}{  
135 - "image": imgBase64,  
136 - "token": qrmsg.Token,  
137 - }  
138 - return data, nil  
139 -}  
140 -  
141 -//QrcodeLoginStatus 询问扫码登录状态  
142 -func (srv AuthService) QrcodeLoginStatus(queryParam query.QrcodeLoginStatusQuery) (interface{}, error) {  
143 - qrmsg := domain.QrcodeMessage{}  
144 - err := qrmsg.ParseToken(queryParam.Token)  
145 - if err != nil {  
146 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
147 - }  
148 - qrCache := cache.LoginQrcodeCache{}  
149 - qrmsgCache, err := qrCache.Get(qrmsg.Id)  
150 - if err != nil {  
151 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
152 - }  
153 - loginToken := domain.LoginToken{  
154 - UserId: qrmsgCache.UserId,  
155 - UserBaseId: qrmsgCache.UserBaseId,  
156 - Account: qrmsgCache.Account,  
157 - Platform: domain.LoginPlatformWeb,  
158 - CompanyId: qrmsgCache.CompanyId,  
159 - OrgId: qrmsgCache.OrgId,  
160 - }  
161 - accessToken, err := loginToken.GenerateAccessToken()  
162 - if err != nil {  
163 - return nil, application.ThrowError(application.TRANSACTION_ERROR, err.Error())  
164 - }  
165 - _ = accessToken  
166 - //TODO 填充token数据  
167 - data := map[string]interface{}{  
168 - "isLogin": qrmsgCache.IsLogin,  
169 - "accessToken": "",  
170 - }  
171 - return data, nil  
172 -}  
1 package mobile_client 1 package mobile_client
2 2
3 -import (  
4 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/mobile/auth/command"  
5 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/application/mobile/auth/service"  
6 -)  
7 -  
8 type AuthController struct { 3 type AuthController struct {
9 baseController 4 baseController
10 } 5 }
11 6
12 -func (controller *AuthController) Login() {  
13 - authService := service.AuthService{}  
14 - loginCmd := &command.LoginCommand{}  
15 - err := controller.Unmarshal(loginCmd)  
16 - if err != nil {  
17 - controller.Response(nil, err)  
18 - return  
19 - }  
20 - data, err := authService.AuthLogin(loginCmd)  
21 - controller.Response(data, err)  
22 -}  
23 -  
24 -func (controller *AuthController) GetAuthAccessToken() {  
25 - authService := service.AuthService{}  
26 - accessTokenCommand := &command.AccessTokenCommand{}  
27 - err := controller.Unmarshal(accessTokenCommand)  
28 - if err != nil {  
29 - controller.Response(nil, err)  
30 - return  
31 - }  
32 - data, err := authService.GetAuthAccessToken(accessTokenCommand)  
33 - controller.Response(data, err)  
34 -}  
35 -  
36 -func (controller *AuthController) RefreshAuthAccessToken() {  
37 - authService := service.AuthService{}  
38 - refreshTokenCmd := &command.RefreshTokenCommand{}  
39 - err := controller.Unmarshal(refreshTokenCmd)  
40 - if err != nil {  
41 - controller.Response(nil, err)  
42 - return  
43 - }  
44 - data, err := authService.RefreshAuthAccessToken(refreshTokenCmd)  
45 - controller.Response(data, err)  
46 -}  
47 -  
48 -func (controller *AuthController) GetUserInfo() {  
49 - authService := service.AuthService{}  
50 - userInfoCommand := &command.UserInfoCommand{}  
51 - err := controller.Unmarshal(userInfoCommand)  
52 - if err != nil {  
53 - controller.Response(nil, err)  
54 - return  
55 - }  
56 - userInfoCommand.Operator = controller.GetOperator()  
57 - data, err := authService.GetUserInfo(userInfoCommand)  
58 - controller.Response(data, err)  
59 -}  
60 -  
61 -func (controller *AuthController) GetUserMenus() {  
62 - authService := service.AuthService{}  
63 - userMenusCommand := &command.UserMenusCommand{}  
64 - err := controller.Unmarshal(userMenusCommand)  
65 - if err != nil {  
66 - controller.Response(nil, err)  
67 - return  
68 - }  
69 - userMenusCommand.Operator = controller.GetOperator()  
70 - data, err := authService.GetUserMenus(userMenusCommand)  
71 - controller.Response(data, err)  
72 -}  
73 -  
74 -func (controller *AuthController) GetUserOrg() {  
75 - authService := service.AuthService{}  
76 - userOrgCommand := &command.UserOrgCommand{}  
77 - err := controller.Unmarshal(userOrgCommand)  
78 - if err != nil {  
79 - controller.Response(nil, err)  
80 - return  
81 - }  
82 - userOrgCommand.Operator = controller.GetOperator()  
83 - data, err := authService.GetUserOrg(userOrgCommand)  
84 - controller.Response(data, err)  
85 -}  
86 -  
87 -func (controller *AuthController) CompanySignUp() {  
88 - authService := service.AuthService{}  
89 - userOrgCommand := &command.CompanySignUpCommand{}  
90 - err := controller.Unmarshal(userOrgCommand)  
91 - if err != nil {  
92 - controller.Response(nil, err)  
93 - return  
94 - }  
95 - //userOrgCommand.Operator = controller.GetOperator()  
96 - data, err := authService.CompanySignUp(userOrgCommand)  
97 - controller.Response(data, err)  
98 -}  
99 -  
100 -func (controller *AuthController) ResetPassword() {  
101 - authService := service.AuthService{}  
102 - userOrgCommand := &command.ResetPasswordCommand{}  
103 - err := controller.Unmarshal(userOrgCommand)  
104 - if err != nil {  
105 - controller.Response(nil, err)  
106 - return  
107 - }  
108 - //userOrgCommand.Operator = controller.GetOperator()  
109 - data, err := authService.ResetPassword(userOrgCommand)  
110 - controller.Response(data, err)  
111 -}  
112 -  
113 -func (controller *AuthController) OrgSwitch() {  
114 - authService := service.AuthService{}  
115 - cmd := &command.SwitchOrgCommand{}  
116 - err := controller.Unmarshal(cmd)  
117 - if err != nil {  
118 - controller.Response(nil, err)  
119 - return  
120 - }  
121 - cmd.Operator = controller.GetOperator()  
122 - data, err := authService.OrgSwitch(cmd)  
123 - controller.Response(data, err)  
124 -} 7 +//func (controller *AuthController) Login() {
  8 +// authService := service.AuthService{}
  9 +// loginCmd := &command.LoginCommand{}
  10 +// err := controller.Unmarshal(loginCmd)
  11 +// if err != nil {
  12 +// controller.Response(nil, err)
  13 +// return
  14 +// }
  15 +// data, err := authService.AuthLogin(loginCmd)
  16 +// controller.Response(data, err)
  17 +//}
  18 +//
  19 +//func (controller *AuthController) GetAuthAccessToken() {
  20 +// authService := service.AuthService{}
  21 +// accessTokenCommand := &command.AccessTokenCommand{}
  22 +// err := controller.Unmarshal(accessTokenCommand)
  23 +// if err != nil {
  24 +// controller.Response(nil, err)
  25 +// return
  26 +// }
  27 +// data, err := authService.GetAuthAccessToken(accessTokenCommand)
  28 +// controller.Response(data, err)
  29 +//}
  30 +//
  31 +//func (controller *AuthController) RefreshAuthAccessToken() {
  32 +// authService := service.AuthService{}
  33 +// refreshTokenCmd := &command.RefreshTokenCommand{}
  34 +// err := controller.Unmarshal(refreshTokenCmd)
  35 +// if err != nil {
  36 +// controller.Response(nil, err)
  37 +// return
  38 +// }
  39 +// data, err := authService.RefreshAuthAccessToken(refreshTokenCmd)
  40 +// controller.Response(data, err)
  41 +//}
  42 +//
  43 +//func (controller *AuthController) GetUserInfo() {
  44 +// authService := service.AuthService{}
  45 +// userInfoCommand := &command.UserInfoCommand{}
  46 +// err := controller.Unmarshal(userInfoCommand)
  47 +// if err != nil {
  48 +// controller.Response(nil, err)
  49 +// return
  50 +// }
  51 +// userInfoCommand.Operator = controller.GetOperator()
  52 +// data, err := authService.GetUserInfo(userInfoCommand)
  53 +// controller.Response(data, err)
  54 +//}
  55 +//
  56 +//func (controller *AuthController) GetUserMenus() {
  57 +// authService := service.AuthService{}
  58 +// userMenusCommand := &command.UserMenusCommand{}
  59 +// err := controller.Unmarshal(userMenusCommand)
  60 +// if err != nil {
  61 +// controller.Response(nil, err)
  62 +// return
  63 +// }
  64 +// userMenusCommand.Operator = controller.GetOperator()
  65 +// data, err := authService.GetUserMenus(userMenusCommand)
  66 +// controller.Response(data, err)
  67 +//}
  68 +//
  69 +//func (controller *AuthController) GetUserOrg() {
  70 +// authService := service.AuthService{}
  71 +// userOrgCommand := &command.UserOrgCommand{}
  72 +// err := controller.Unmarshal(userOrgCommand)
  73 +// if err != nil {
  74 +// controller.Response(nil, err)
  75 +// return
  76 +// }
  77 +// userOrgCommand.Operator = controller.GetOperator()
  78 +// data, err := authService.GetUserOrg(userOrgCommand)
  79 +// controller.Response(data, err)
  80 +//}
  81 +//
  82 +//func (controller *AuthController) CompanySignUp() {
  83 +// authService := service.AuthService{}
  84 +// userOrgCommand := &command.CompanySignUpCommand{}
  85 +// err := controller.Unmarshal(userOrgCommand)
  86 +// if err != nil {
  87 +// controller.Response(nil, err)
  88 +// return
  89 +// }
  90 +// //userOrgCommand.Operator = controller.GetOperator()
  91 +// data, err := authService.CompanySignUp(userOrgCommand)
  92 +// controller.Response(data, err)
  93 +//}
  94 +//
  95 +//func (controller *AuthController) ResetPassword() {
  96 +// authService := service.AuthService{}
  97 +// userOrgCommand := &command.ResetPasswordCommand{}
  98 +// err := controller.Unmarshal(userOrgCommand)
  99 +// if err != nil {
  100 +// controller.Response(nil, err)
  101 +// return
  102 +// }
  103 +// //userOrgCommand.Operator = controller.GetOperator()
  104 +// data, err := authService.ResetPassword(userOrgCommand)
  105 +// controller.Response(data, err)
  106 +//}
  107 +//
  108 +//func (controller *AuthController) OrgSwitch() {
  109 +// authService := service.AuthService{}
  110 +// cmd := &command.SwitchOrgCommand{}
  111 +// err := controller.Unmarshal(cmd)
  112 +// if err != nil {
  113 +// controller.Response(nil, err)
  114 +// return
  115 +// }
  116 +// cmd.Operator = controller.GetOperator()
  117 +// data, err := authService.OrgSwitch(cmd)
  118 +// controller.Response(data, err)
  119 +//}
@@ -2,7 +2,6 @@ package routers @@ -2,7 +2,6 @@ package routers
2 2
3 import ( 3 import (
4 "github.com/beego/beego/v2/server/web" 4 "github.com/beego/beego/v2/server/web"
5 - "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/port/beego/controllers/mobile_client"  
6 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/port/beego/controllers/web_client" 5 "gitlab.fjmaimaimai.com/allied-creation/allied-creation-gateway/pkg/port/beego/controllers/web_client"
7 ) 6 )
8 7
@@ -22,6 +21,4 @@ func init() { @@ -22,6 +21,4 @@ func init() {
22 web.Router("/v1/web/users/selector/org", &web_client.UsersController{}, "Post:SelectorCompanyOrg") 21 web.Router("/v1/web/users/selector/org", &web_client.UsersController{}, "Post:SelectorCompanyOrg")
23 web.Router("/v1/web/users/selector/role", &web_client.UsersController{}, "Post:SelectorCompanyRole") 22 web.Router("/v1/web/users/selector/role", &web_client.UsersController{}, "Post:SelectorCompanyRole")
24 web.Router("/v1/web/users/selector/org/all", &web_client.UsersController{}, "Post:SelectorCompanyOrgAll") 23 web.Router("/v1/web/users/selector/org/all", &web_client.UsersController{}, "Post:SelectorCompanyOrgAll")
25 -  
26 - web.Router("/v1/web/auth/users-info", &mobile_client.AuthController{}, "Post:GetUserInfo")  
27 } 24 }