...
|
...
|
@@ -7,6 +7,8 @@ import ( |
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/partnerInfo/query"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/partnerInfo/service"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain"
|
|
|
domain_service_i "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain/service"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/domain_service"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/svr"
|
|
|
"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
|
...
|
...
|
@@ -129,9 +131,7 @@ func CheckSmsCode(header *protocol.RequestHeader, request *protocol.CheckSmsCode |
|
|
func ChangePhone(header *protocol.RequestHeader, request *protocol.ChangePhoneRequest) (rsp *protocol.ChangePhoneResponse, err error) {
|
|
|
var (
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
PartnerInfoDao, _ = factory.CreatePartnerInfoDao(transactionContext)
|
|
|
PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
|
|
|
partnerInfo *domain.PartnerInfo
|
|
|
UserAuthService = CreateUserAuthService(header.AdminType, transactionContext)
|
|
|
)
|
|
|
if err = transactionContext.StartTransaction(); err != nil {
|
|
|
return nil, err
|
...
|
...
|
@@ -139,32 +139,10 @@ func ChangePhone(header *protocol.RequestHeader, request *protocol.ChangePhoneRe |
|
|
defer func() {
|
|
|
transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
// 管理员不支持修改手机号
|
|
|
if header.AdminType == int(protocolx.AdminTypeManager) {
|
|
|
//if err=changeUserPhone(header.UserId,request.Phone,transactionContext);err!=nil{
|
|
|
// err = protocol.NewCustomMessage(1,err.Error())
|
|
|
//}
|
|
|
return
|
|
|
}
|
|
|
if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
|
|
|
err = protocol.NewErrWithMessage(502, err) //账号不存在
|
|
|
return
|
|
|
}
|
|
|
//验证新手机是否已经存在
|
|
|
if _, e := PartnerInfoService.FindOne(map[string]interface{}{"account": request.Phone}); e == nil {
|
|
|
err = protocol.NewErrWithMessage(2029, err) //账号已存在
|
|
|
return
|
|
|
}
|
|
|
if _, err = auth.CheckSmsCode(request.Phone, request.Captcha); err != nil {
|
|
|
log.Error(err)
|
|
|
return
|
|
|
}
|
|
|
if err = PartnerInfoDao.Update(map[string]interface{}{
|
|
|
"Id": partnerInfo.Id,
|
|
|
"Account": request.Phone,
|
|
|
}); err != nil {
|
|
|
if err = UserAuthService.ChangeUserPhone(header.UserId, request.Phone, request.OldPhone); err != nil {
|
|
|
return
|
|
|
}
|
|
|
//TODO:修改完手机号 ,token失效,清理缓存
|
|
|
err = transactionContext.CommitTransaction()
|
|
|
return
|
|
|
}
|
...
|
...
|
@@ -172,10 +150,8 @@ func ChangePhone(header *protocol.RequestHeader, request *protocol.ChangePhoneRe |
|
|
//重置密码
|
|
|
func ResetPassword(header *protocol.RequestHeader, request *protocol.ResetPasswordRequest) (rsp *protocol.ResetPasswordResponse, err error) {
|
|
|
var (
|
|
|
partnerInfo *domain.PartnerInfo
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
PartnerInfoDao, _ = factory.CreatePartnerInfoDao(transactionContext)
|
|
|
PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
|
|
|
UserAuthService = CreateUserAuthService(header.AdminType, transactionContext)
|
|
|
)
|
|
|
rsp = &protocol.ResetPasswordResponse{}
|
|
|
if err = transactionContext.StartTransaction(); err != nil {
|
...
|
...
|
@@ -184,40 +160,9 @@ func ResetPassword(header *protocol.RequestHeader, request *protocol.ResetPasswo |
|
|
defer func() {
|
|
|
transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
if len(request.NewPwd) < 6 {
|
|
|
err = protocol.NewErrWithMessage(2027)
|
|
|
return
|
|
|
}
|
|
|
if !strings.EqualFold(request.NewPwd, request.ConfirmPwd) {
|
|
|
err = protocol.NewErrWithMessage(2026)
|
|
|
return
|
|
|
}
|
|
|
if header.AdminType == int(protocolx.AdminTypeManager) {
|
|
|
if err = changeUserInfo(header.UserId, fmt.Sprintf("%v", header.SimNum), request.NewPwd, transactionContext); err != nil {
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
}
|
|
|
if err = UserAuthService.ResetUserPassword(header.UserId, fmt.Sprintf("%v", header.SimNum), request.NewPwd); err != nil {
|
|
|
return
|
|
|
}
|
|
|
if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
|
|
|
err = protocol.NewErrWithMessage(502, err) //账号不存在
|
|
|
return
|
|
|
}
|
|
|
if err = PartnerInfoDao.Update(map[string]interface{}{
|
|
|
"Id": partnerInfo.Id,
|
|
|
"Password": request.ConfirmPwd,
|
|
|
}); err != nil {
|
|
|
return
|
|
|
}
|
|
|
//清除auth token
|
|
|
//auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(header.UserId))
|
|
|
//if !auth.Exist() {
|
|
|
// return
|
|
|
//}
|
|
|
//if err = auth.RemoveAuth(); err != nil {
|
|
|
// log.Error(err)
|
|
|
// err = protocol.NewErrWithMessage(4140, err)
|
|
|
// return
|
|
|
//}
|
|
|
err = transactionContext.CommitTransaction()
|
|
|
return
|
|
|
}
|
...
|
...
|
@@ -225,10 +170,8 @@ func ResetPassword(header *protocol.RequestHeader, request *protocol.ResetPasswo |
|
|
//修改密码
|
|
|
func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePasswordRequest) (rsp *protocol.ChangePasswordResponse, err error) {
|
|
|
var (
|
|
|
partnerInfo *domain.PartnerInfo
|
|
|
transactionContext, _ = factory.CreateTransactionContext(nil)
|
|
|
PartnerInfoDao, _ = factory.CreatePartnerInfoDao(transactionContext)
|
|
|
PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
|
|
|
UserAuthService = CreateUserAuthService(header.AdminType, transactionContext)
|
|
|
)
|
|
|
if err = transactionContext.StartTransaction(); err != nil {
|
|
|
return nil, err
|
...
|
...
|
@@ -237,49 +180,10 @@ func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePass |
|
|
transactionContext.RollbackTransaction()
|
|
|
}()
|
|
|
rsp = &protocol.ChangePasswordResponse{}
|
|
|
if !strings.EqualFold(request.NewPwd, request.ConfirmPwd) {
|
|
|
err = protocol.NewErrWithMessage(2026)
|
|
|
if err = UserAuthService.ChangeUserPassword(header.UserId, request.NewPwd, request.OldPwd, fmt.Sprintf("%v", header.SimNum)); err != nil {
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
return
|
|
|
}
|
|
|
if header.AdminType == int(protocolx.AdminTypeManager) {
|
|
|
if err = changeUserPassword(header.UserId, request.NewPwd, request.OldPwd, fmt.Sprintf("%v", header.SimNum), transactionContext); err != nil {
|
|
|
err = protocol.NewCustomMessage(1, err.Error())
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
if strings.EqualFold(request.NewPwd, request.OldPwd) {
|
|
|
err = protocol.NewErrWithMessage(2030)
|
|
|
return
|
|
|
}
|
|
|
if len(request.NewPwd) < 6 {
|
|
|
err = protocol.NewErrWithMessage(2027)
|
|
|
return
|
|
|
}
|
|
|
if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
|
|
|
err = protocol.NewErrWithMessage(502, err) //账号不存在
|
|
|
return
|
|
|
}
|
|
|
if !strings.EqualFold(partnerInfo.Password, request.OldPwd) {
|
|
|
//密码不一致
|
|
|
err = protocol.NewErrWithMessage(2028, err) //账号不存在
|
|
|
return
|
|
|
}
|
|
|
if err = PartnerInfoDao.Update(map[string]interface{}{
|
|
|
"Id": partnerInfo.Id,
|
|
|
"Password": request.ConfirmPwd,
|
|
|
}); err != nil {
|
|
|
return
|
|
|
}
|
|
|
//清除auth token
|
|
|
//auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(header.UserId))
|
|
|
//if !auth.Exist() {
|
|
|
// return
|
|
|
//}
|
|
|
//if err = auth.RemoveAuth(); err != nil {
|
|
|
// log.Error(err)
|
|
|
// err = protocol.NewErrWithMessage(4140, err)
|
|
|
// return
|
|
|
//}
|
|
|
err = transactionContext.CommitTransaction()
|
|
|
return
|
|
|
}
|
...
|
...
|
@@ -401,10 +305,10 @@ func changeUserInfo(userId int64, phone, password string, transactionContext *tr |
|
|
err = fmt.Errorf("用户不存在")
|
|
|
return
|
|
|
}
|
|
|
_, err = ucenterApiGateway.UpdateUserPassword(user.OpenId, phone, password)
|
|
|
_, err = ucenterApiGateway.UpdateUser(user.OpenId, phone, password)
|
|
|
return
|
|
|
}
|
|
|
func changeUserPhone(userId int64, phone string, transactionContext *transaction.TransactionContext) (err error) {
|
|
|
func changeUserPhone(userId int64, phone, oldPhone string, transactionContext *transaction.TransactionContext) (err error) {
|
|
|
var (
|
|
|
ucenterApiGateway = svr.NewHttplibUCenterApiServiceGateway()
|
|
|
UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
|
...
|
...
|
@@ -419,10 +323,10 @@ func changeUserPhone(userId int64, phone string, transactionContext *transaction |
|
|
err = protocol.NewErrWithMessage(2029, err)
|
|
|
return
|
|
|
}
|
|
|
_, err = ucenterApiGateway.UpdateUserPassword(user.OpenId, phone, "")
|
|
|
if err != nil {
|
|
|
_, err = transactionContext.PgTx.Exec("update users set phone=? where id=?", phone, userId)
|
|
|
}
|
|
|
_, err = ucenterApiGateway.ChangePhone(phone, oldPhone)
|
|
|
//if err != nil {
|
|
|
// _, err = transactionContext.PgTx.Exec("update users set phone=? where id=?", phone, userId)
|
|
|
//}
|
|
|
return
|
|
|
}
|
|
|
func changeUserPassword(userId int64, newPwd, oldPwd, phone string, transactionContext *transaction.TransactionContext) (err error) {
|
...
|
...
|
@@ -439,3 +343,22 @@ func changeUserPassword(userId int64, newPwd, oldPwd, phone string, transactionC |
|
|
_, err = ucenterApiGateway.ChangePassword(phone, newPwd, oldPwd)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
func CreateUserAuthService(adminType int, transactionContext *transaction.TransactionContext) domain_service_i.UserAuthService {
|
|
|
if adminType == int(protocolx.AdminTypeManager) {
|
|
|
return domain_service.NewPgManagerAuthService(transactionContext)
|
|
|
}
|
|
|
return domain_service.NewPgPartnerAuthService(transactionContext)
|
|
|
}
|
|
|
|
|
|
//TODO:修改密码/重置密码 清除uer_auth 缓存
|
|
|
//清除auth token
|
|
|
//auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(header.UserId))
|
|
|
//if !auth.Exist() {
|
|
|
// return
|
|
|
//}
|
|
|
//if err = auth.RemoveAuth(); err != nil {
|
|
|
// log.Error(err)
|
|
|
// err = protocol.NewErrWithMessage(4140, err)
|
|
|
// return
|
|
|
//} |
...
|
...
|
|