作者 yangfu

修改:用户登录修改

@@ -6,6 +6,7 @@ require ( @@ -6,6 +6,7 @@ require (
6 github.com/astaxie/beego v1.12.1 6 github.com/astaxie/beego v1.12.1
7 github.com/dgrijalva/jwt-go v3.2.0+incompatible 7 github.com/dgrijalva/jwt-go v3.2.0+incompatible
8 github.com/gin-gonic/gin v1.5.0 8 github.com/gin-gonic/gin v1.5.0
  9 + github.com/go-pg/pg v8.0.6+incompatible
9 github.com/go-pg/pg/v10 v10.0.0-beta.2 10 github.com/go-pg/pg/v10 v10.0.0-beta.2
10 github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 11 github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9
11 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect 12 github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect
@@ -108,8 +108,14 @@ func AccessToken(request *protocol.AccessTokenRequest) (rsp *protocol.AccessToke @@ -108,8 +108,14 @@ func AccessToken(request *protocol.AccessTokenRequest) (rsp *protocol.AccessToke
108 err = protocol.NewErrWithMessage(1, fmt.Errorf("jwt authCode (%v) valid", request.AuthCode)) 108 err = protocol.NewErrWithMessage(1, fmt.Errorf("jwt authCode (%v) valid", request.AuthCode))
109 return 109 return
110 } 110 }
111 - rsp.AccessToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.TokenExpire*time.Second)  
112 - rsp.RefreshToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.RefreshTokenExipre*time.Second) 111 + userClaims := utils.UserTokenClaims{
  112 + UserId: claim.UserId,
  113 + CompanyId: claim.CompanyId,
  114 + AdminType: claim.AdminType,
  115 + Phone: claim.Phone,
  116 + }
  117 + rsp.AccessToken, _ = utils.GenerateTokenWithClaim(userClaims, protocol.TokenExpire*time.Second)
  118 + rsp.RefreshToken, _ = utils.GenerateTokenWithClaim(userClaims, protocol.RefreshTokenExipre*time.Second)
113 rsp.ExpiresIn = protocol.TokenExpire 119 rsp.ExpiresIn = protocol.TokenExpire
114 120
115 //auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId), 121 //auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId),
@@ -127,10 +133,13 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -127,10 +133,13 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
127 claim *utils.UserTokenClaims 133 claim *utils.UserTokenClaims
128 transactionContext, _ = factory.CreateTransactionContext(nil) 134 transactionContext, _ = factory.CreateTransactionContext(nil)
129 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) 135 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
130 - PartnerSubAccountRepository, _ = factory.CreatePartnerSubAccountRepository(transactionContext) 136 + //PartnerSubAccountRepository, _ = factory.CreatePartnerSubAccountRepository(transactionContext)
  137 + UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
131 138
132 partnerInfo *domain.PartnerInfo 139 partnerInfo *domain.PartnerInfo
133 - partnerSubAccount *domain.PartnerSubAccount 140 + //partnerSubAccount *domain.PartnerSubAccount
  141 + user *domain.Users
  142 + userId int64
134 ) 143 )
135 144
136 if err = transactionContext.StartTransaction(); err != nil { 145 if err = transactionContext.StartTransaction(); err != nil {
@@ -151,14 +160,29 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -151,14 +160,29 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
151 } 160 }
152 161
153 //验证用户有效 162 //验证用户有效
154 - var e error  
155 - if partnerSubAccount, e = PartnerSubAccountRepository.FindOne(map[string]interface{}{"account": claim.Phone}); e == nil {  
156 - partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"id": partnerSubAccount.PartnerId})  
157 - } else {  
158 - partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Phone}) 163 + //var e error
  164 + //if partnerSubAccount, e = PartnerSubAccountRepository.FindOne(map[string]interface{}{"account": claim.Phone}); e == nil {
  165 + // partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"id": partnerSubAccount.PartnerId})
  166 + //} else {
  167 + // partnerInfo, e = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Phone})
  168 + //}
  169 + switch claim.AdminType {
  170 + case 1:
  171 + if user, err = UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": claim.CompanyId, "status": 1}); err != nil || user != nil {
  172 + err = protocol.NewErrWithMessage(4140, err)
  173 + return
159 } 174 }
160 - if e != nil || partnerInfo == nil || !partnerInfo.IsEnable() || partnerInfo.Id != claim.UserId {  
161 - err = protocol.NewErrWithMessage(4140) //账号禁用 175 + userId = user.Id
  176 + break
  177 + case 2:
  178 + if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Id, "companyId": claim.CompanyId, "status": 1}); err != nil || partnerInfo == nil {
  179 + err = protocol.NewErrWithMessage(4140, err)
  180 + return
  181 + }
  182 + userId = partnerInfo.Id
  183 + break
  184 + default:
  185 + err = protocol.NewErrWithMessage(4140, err)
162 return 186 return
163 } 187 }
164 188
@@ -168,8 +192,8 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -168,8 +192,8 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
168 // err = protocol.NewErrWithMessage(4140, err) 192 // err = protocol.NewErrWithMessage(4140, err)
169 // return 193 // return
170 //} 194 //}
171 - rsp.AccessToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.TokenExpire*time.Second)  
172 - rsp.RefreshToken, _ = utils.GenerateToken(claim.UserId, claim.Phone, protocol.RefreshTokenExipre*time.Second) 195 + rsp.AccessToken, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, claim.AdminType, protocol.TokenExpire*time.Second)
  196 + rsp.RefreshToken, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, claim.AdminType, protocol.RefreshTokenExipre*time.Second)
173 rsp.ExpiresIn = protocol.TokenExpire 197 rsp.ExpiresIn = protocol.TokenExpire
174 198
175 //newAuth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId), 199 //newAuth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId),
@@ -251,6 +275,10 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom @@ -251,6 +275,10 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom
251 } 275 }
252 switch request.GrantType { 276 switch request.GrantType {
253 case protocol.LoginByPassword: 277 case protocol.LoginByPassword:
  278 + if len(request.Password) == 0 {
  279 + err = protocol.NewCustomMessage(1, "密码不能为空!")
  280 + return
  281 + }
254 if loginSvr.ManagerLogin(request.Phone, request.Password) != nil && loginSvr.PartnerLogin(request.Phone, request.Password) != nil { 282 if loginSvr.ManagerLogin(request.Phone, request.Password) != nil && loginSvr.PartnerLogin(request.Phone, request.Password) != nil {
255 err = protocol.NewCustomMessage(1, "密码输入有误!") 283 err = protocol.NewCustomMessage(1, "密码输入有误!")
256 return 284 return
@@ -342,12 +370,12 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -342,12 +370,12 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
342 } 370 }
343 switch request.IdType { 371 switch request.IdType {
344 case int(protocolx.AdminTypePartner): 372 case int(protocolx.AdminTypePartner):
345 - if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "company_id": request.Cid, "status": 1}); e == nil { 373 + if p, e := PartnerInfoRepository.FindOne(map[string]interface{}{"account": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil {
346 userId = p.Id 374 userId = p.Id
347 } 375 }
348 break 376 break
349 case int(protocolx.AdminTypeManager): 377 case int(protocolx.AdminTypeManager):
350 - if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "company_id": request.Cid, "status": 1}); e == nil { 378 + if p, e := UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": request.Cid, "status": 1}); e == nil {
351 userId = p.Id 379 userId = p.Id
352 } 380 }
353 break 381 break
@@ -360,7 +388,13 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -360,7 +388,13 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
360 return 388 return
361 } 389 }
362 //根据simnum + cid 390 //根据simnum + cid
363 - rsp.AuthCode, _ = utils.GenerateTokenWithAdminType(userId, claim.Phone, request.IdType, protocol.AuthCodeExpire*time.Second) 391 + userClaims := utils.UserTokenClaims{
  392 + UserId: userId,
  393 + CompanyId: claim.CompanyId,
  394 + AdminType: claim.AdminType,
  395 + Phone: claim.Phone,
  396 + }
  397 + rsp.AuthCode, _ = utils.GenerateTokenWithClaim(userClaims, protocol.AuthCodeExpire*time.Second)
364 398
365 err = transactionContext.CommitTransaction() 399 err = transactionContext.CommitTransaction()
366 return 400 return
@@ -9,7 +9,7 @@ type BusinessBonus struct { @@ -9,7 +9,7 @@ type BusinessBonus struct {
9 // 公司编号 9 // 公司编号
10 CompanyId int64 `json:"companyId"` 10 CompanyId int64 `json:"companyId"`
11 // 合伙人信息Id 11 // 合伙人信息Id
12 - PartnerInfoId string `json:"partnerInfoId"` 12 + PartnerInfoId int64 `json:"partnerInfoId"`
13 // 应收分红 13 // 应收分红
14 Bonus float64 `json:"bonus"` 14 Bonus float64 `json:"bonus"`
15 // 未收分红 15 // 未收分红
@@ -2,6 +2,7 @@ package dao @@ -2,6 +2,7 @@ package dao
2 2
3 import ( 3 import (
4 "fmt" 4 "fmt"
  5 + "github.com/go-pg/pg/v10"
5 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" 6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain"
6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models" 7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models"
7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" 8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction"
@@ -46,14 +47,14 @@ func (dao *OrderBaseDao) OrderStatics(option *domain.OrderStaticQuery) (count in @@ -46,14 +47,14 @@ func (dao *OrderBaseDao) OrderStatics(option *domain.OrderStaticQuery) (count in
46 //订单分红统计 47 //订单分红统计
47 func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp domain.OrderBonusResponse, err error) { 48 func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp domain.OrderBonusResponse, err error) {
48 rsp = domain.OrderBonusResponse{} 49 rsp = domain.OrderBonusResponse{}
49 - if option.PartnerId == 0 && option.CompanyId == 0 { 50 + if option.PartnerId == 0 && option.CompanyId == 0 && len(option.InPartnerIds) == 0 {
50 return 51 return
51 } 52 }
52 tx := dao.transactionContext.PgTx 53 tx := dao.transactionContext.PgTx
53 q := tx.Model(new(models.OrderBase)) 54 q := tx.Model(new(models.OrderBase))
54 - q.ExcludeColumn("count(*) count")  
55 - q.ExcludeColumn("sum(plan_partner_bonus) bonus")  
56 - q.ExcludeColumn("sum(bonus_expense) bonus_expense") 55 + q.ColumnExpr("count(*) count")
  56 + q.ColumnExpr("sum(plan_partner_bonus) bonus")
  57 + q.ColumnExpr("sum(partner_bonus_expense) bonus_expense")
57 if option.PartnerId > 0 { 58 if option.PartnerId > 0 {
58 q.Where(`"order_base".partner_id =?`, option.PartnerId) 59 q.Where(`"order_base".partner_id =?`, option.PartnerId)
59 } 60 }
@@ -61,7 +62,7 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d @@ -61,7 +62,7 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d
61 q.Where(`"order_base".company_id =?`, option.CompanyId) 62 q.Where(`"order_base".company_id =?`, option.CompanyId)
62 } 63 }
63 if len(option.InPartnerIds) > 0 { 64 if len(option.InPartnerIds) > 0 {
64 - q.Where(`"order_base".partner_id in (?)`, option.InPartnerIds) 65 + q.Where(`"order_base".partner_id in (?)`, pg.In(option.InPartnerIds))
65 } 66 }
66 err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense) 67 err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense)
67 return 68 return
@@ -7,6 +7,7 @@ import ( @@ -7,6 +7,7 @@ import (
7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" 7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction"
8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/repository" 8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/repository"
9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" 9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils"
  10 + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
10 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" 11 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol"
11 protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/auth" 12 protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/auth"
12 "strings" 13 "strings"
@@ -26,8 +27,8 @@ func (svr *PgLoginService) Init(phone string) (err error) { @@ -26,8 +27,8 @@ func (svr *PgLoginService) Init(phone string) (err error) {
26 UsersRepository, _ = repository.NewUsersRepository(svr.transactionContext) 27 UsersRepository, _ = repository.NewUsersRepository(svr.transactionContext)
27 ) 28 )
28 svr.Phone = phone 29 svr.Phone = phone
29 - _, svr.PartnerInfo, _ = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC"})  
30 - _, svr.Users, _ = UsersRepository.Find(map[string]interface{}{"phone": phone, "status": 1, "sortByCreateTime": "ASC"}) 30 + _, svr.PartnerInfo, err = PartnerInfoService.Find(map[string]interface{}{"account": phone, "status": 1, "sortByCreateTime": "ASC"})
  31 + _, svr.Users, err = UsersRepository.Find(map[string]interface{}{"phone": phone, "status": 1, "sortByCreateTime": "ASC"})
31 return nil 32 return nil
32 } 33 }
33 34
@@ -64,7 +65,7 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { @@ -64,7 +65,7 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) {
64 OrderDao, _ = dao.NewOrderBaseDao(svr.transactionContext) 65 OrderDao, _ = dao.NewOrderBaseDao(svr.transactionContext)
65 PartnerCategoryInfoRepository, _ = repository.NewPartnerCategoryInfoRepository(svr.transactionContext) 66 PartnerCategoryInfoRepository, _ = repository.NewPartnerCategoryInfoRepository(svr.transactionContext)
66 companyList []*domain.Company 67 companyList []*domain.Company
67 - partnerCategory []*domain.PartnerCategoryInfo 68 + allPartnerCategory []*domain.PartnerCategoryInfo
68 ) 69 )
69 doGetCompanyIds := func() []int64 { 70 doGetCompanyIds := func() []int64 {
70 var companies []int64 71 var companies []int64
@@ -81,12 +82,18 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { @@ -81,12 +82,18 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) {
81 return array 82 return array
82 } 83 }
83 companyList = svr.GetCompanyList(doGetCompanyIds) 84 companyList = svr.GetCompanyList(doGetCompanyIds)
84 - 85 + if len(companyList) == 0 {
  86 + return nil, nil
  87 + }
85 totalBonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{InPartnerIds: doGetPartnerIds()}) 88 totalBonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{InPartnerIds: doGetPartnerIds()})
86 if e != nil { 89 if e != nil {
87 return nil, e 90 return nil, e
88 } 91 }
89 - _, partnerCategory, _ = PartnerCategoryInfoRepository.Find(map[string]interface{}{"sortById": domain.ASC}) 92 + _, allPartnerCategory, e = PartnerCategoryInfoRepository.Find(map[string]interface{}{"sortById": domain.ASC})
  93 + if e != nil {
  94 + log.Error(e)
  95 + return nil, e
  96 + }
90 var companys = make([]*Company, 0) 97 var companys = make([]*Company, 0)
91 for i := range companyList { 98 for i := range companyList {
92 c := companyList[i] 99 c := companyList[i]
@@ -103,9 +110,15 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { @@ -103,9 +110,15 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) {
103 bonus, _ := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: partner.Id}) 110 bonus, _ := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: partner.Id})
104 item := &Company{ 111 item := &Company{
105 CompanyBase: newCompanyBase(c), 112 CompanyBase: newCompanyBase(c),
106 - IncomePercent: computeBonusPercent(totalBonus.Bonus, bonus.Bonus), 113 + IncomePercent: computeBonusPercent(totalBonus.Bonus*100, bonus.Bonus),
107 DividendMoney: bonus.Bonus, 114 DividendMoney: bonus.Bonus,
108 - JoinWays: svr.GetJoinWays(partnerCategory, partner, bonus.Bonus), 115 + JoinWays: svr.GetJoinWays(allPartnerCategory, partner, bonus.Bonus),
  116 + }
  117 + //当所有公司的总收入都为0时,
  118 + //初始总收入=公司数*1
  119 + //否则计算的比例始终都为0
  120 + if totalBonus.Bonus == 0 {
  121 + item.IncomePercent = computeBonusPercent(totalBonus.Bonus+float64(len(companyList)), bonus.Bonus+1) * 100
109 } 122 }
110 companys = append(companys, item) 123 companys = append(companys, item)
111 } 124 }
@@ -125,8 +138,8 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { @@ -125,8 +138,8 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) {
125 ) 138 )
126 doGetCompanyIds := func() []int64 { 139 doGetCompanyIds := func() []int64 {
127 var companies []int64 140 var companies []int64
128 - for i := range svr.PartnerInfo {  
129 - companies = append(companies, svr.PartnerInfo[i].CompanyId) 141 + for i := range svr.Users {
  142 + companies = append(companies, svr.Users[i].CompanyId)
130 } 143 }
131 return companies 144 return companies
132 } 145 }
@@ -146,7 +159,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { @@ -146,7 +159,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) {
146 } 159 }
147 160
148 response := make(map[string]interface{}) 161 response := make(map[string]interface{})
149 - response["id"] = protocolx.AdminTypePartner 162 + response["id"] = protocolx.AdminTypeManager
150 response["name"] = svr.PartnerInfo[0].PartnerName 163 response["name"] = svr.PartnerInfo[0].PartnerName
151 response["companys"] = companys 164 response["companys"] = companys
152 return response, nil 165 return response, nil
@@ -160,7 +173,8 @@ func (svr *PgLoginService) GetCompanyList(funcGetCompanyIds func() []int64) []*d @@ -160,7 +173,8 @@ func (svr *PgLoginService) GetCompanyList(funcGetCompanyIds func() []int64) []*d
160 if len(companies) == 0 { 173 if len(companies) == 0 {
161 return companyList 174 return companyList
162 } 175 }
163 - if _, v, e := CompanyRepository.Find(map[string]interface{}{"companies": companies, "status": 1, "sortByCreateTime": domain.ASC}); e != nil { 176 + if _, v, e := CompanyRepository.Find(map[string]interface{}{"inCompanyIds": companies, "status": 1, "sortByCreateTime": domain.ASC}); e != nil {
  177 + log.Error(e)
164 return companyList 178 return companyList
165 } else { 179 } else {
166 companyList = v 180 companyList = v
@@ -176,23 +190,23 @@ func (svr *PgLoginService) GetJoinWays(partnerCategory []*domain.PartnerCategory @@ -176,23 +190,23 @@ func (svr *PgLoginService) GetJoinWays(partnerCategory []*domain.PartnerCategory
176 } 190 }
177 return nil 191 return nil
178 } 192 }
179 - var (  
180 - totalBonus float64  
181 - businessBonus float64  
182 - BusinessBonusRepository, _ = repository.NewBusinessBonusRepository(svr.transactionContext)  
183 - )  
184 - for i := range partnerInfo.PartnerCategoryInfos {  
185 - c := partnerInfo.PartnerCategoryInfos[i]  
186 - switch c.Id {  
187 - case 1:  
188 - totalBonus += bonus  
189 - case 2:  
190 - if one, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": partnerInfo.Id}); e == nil {  
191 - businessBonus = one.Bonus  
192 - totalBonus += businessBonus  
193 - }  
194 - }  
195 - } 193 + //var (
  194 + // totalBonus float64
  195 + // businessBonus float64
  196 + // BusinessBonusRepository, _ = repository.NewBusinessBonusRepository(svr.transactionContext)
  197 + //)
  198 + //for i := range partnerInfo.PartnerCategoryInfos {
  199 + // c := partnerInfo.PartnerCategoryInfos[i]
  200 + // switch c.Id {
  201 + // case 1:
  202 + // totalBonus += bonus
  203 + // case 2:
  204 + // if one, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": partnerInfo.Id}); e == nil {
  205 + // businessBonus = one.Bonus
  206 + // totalBonus += businessBonus
  207 + // }
  208 + // }
  209 + //}
196 var joinWays []joinWay 210 var joinWays []joinWay
197 for i := range partnerCategory { 211 for i := range partnerCategory {
198 c := partnerCategory[i] 212 c := partnerCategory[i]
@@ -202,14 +216,18 @@ func (svr *PgLoginService) GetJoinWays(partnerCategory []*domain.PartnerCategory @@ -202,14 +216,18 @@ func (svr *PgLoginService) GetJoinWays(partnerCategory []*domain.PartnerCategory
202 Type: int(c.Id), 216 Type: int(c.Id),
203 Name: c.Name, 217 Name: c.Name,
204 } 218 }
205 - if c.Id == 1 {  
206 - item.Percent = computeBonusPercent(totalBonus, bonus) * 100  
207 - } else if c.Id == 2 {  
208 - item.Percent = computeBonusPercent(totalBonus, businessBonus) * 100  
209 - } 219 + //if c.Id == 1 {
  220 + // item.Percent = computeBonusPercent(totalBonus, bonus) * 100
  221 + //} else if c.Id == 2 {
  222 + // item.Percent = computeBonusPercent(totalBonus, businessBonus) * 100
  223 + //}
210 joinWays = append(joinWays, item) 224 joinWays = append(joinWays, item)
211 } 225 }
212 } 226 }
  227 +
  228 + for i := range joinWays {
  229 + joinWays[i].Percent = computeBonusPercent(float64(len(joinWays)), 1) * 100
  230 + }
213 return joinWays 231 return joinWays
214 } 232 }
215 func newCompanyBase(company *domain.Company) protocol.CompanyBase { 233 func newCompanyBase(company *domain.Company) protocol.CompanyBase {
@@ -10,7 +10,7 @@ type BusinessBonus struct { @@ -10,7 +10,7 @@ type BusinessBonus struct {
10 // 公司编号 10 // 公司编号
11 CompanyId int64 11 CompanyId int64
12 // 合伙人信息Id 12 // 合伙人信息Id
13 - PartnerInfoId string 13 + PartnerInfoId int64
14 // 应收分红 14 // 应收分红
15 Bonus float64 15 Bonus float64
16 // 未收分红 16 // 未收分红
@@ -49,7 +49,7 @@ func (repository *BusinessBonusRepository) FindOne(queryOptions map[string]inter @@ -49,7 +49,7 @@ func (repository *BusinessBonusRepository) FindOne(queryOptions map[string]inter
49 BusinessBonusModel := new(models.BusinessBonus) 49 BusinessBonusModel := new(models.BusinessBonus)
50 query := NewQuery(tx.Model(BusinessBonusModel), queryOptions) 50 query := NewQuery(tx.Model(BusinessBonusModel), queryOptions)
51 query.SetWhere("id = ?", "id") 51 query.SetWhere("id = ?", "id")
52 - query.SetWhere("partner_id = ?", "partner_id") 52 + query.SetWhere("partner_info_id = ?", "partner_id")
53 if err := query.First(); err != nil { 53 if err := query.First(); err != nil {
54 return nil, fmt.Errorf("query row not found") 54 return nil, fmt.Errorf("query row not found")
55 } 55 }
1 package repository 1 package repository
2 2
3 import ( 3 import (
  4 + "github.com/go-pg/pg/v10"
4 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" 5 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain"
5 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models" 6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models"
6 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" 7 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction"
@@ -62,8 +63,9 @@ func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) ( @@ -62,8 +63,9 @@ func (repository *CompanyRepository) Find(queryOptions map[string]interface{}) (
62 var CompanyModels []*models.Company 63 var CompanyModels []*models.Company
63 Companys := make([]*domain.Company, 0) 64 Companys := make([]*domain.Company, 0)
64 query := NewQuery(tx.Model(&CompanyModels), queryOptions) 65 query := NewQuery(tx.Model(&CompanyModels), queryOptions)
65 - if companies, ok := queryOptions["companies"]; ok {  
66 - query.WhereIn("id in (?)", companies) 66 + if companies, ok := queryOptions["inCompanyIds"]; ok {
  67 + companyIds, _ := companies.([]int64)
  68 + query.Where("id in (?)", pg.In(companyIds))
67 } 69 }
68 query.SetWhere("status = ?", "status") 70 query.SetWhere("status = ?", "status")
69 query.SetOrder(`create_at`, "sortByCreateTime") 71 query.SetOrder(`create_at`, "sortByCreateTime")
@@ -53,6 +53,8 @@ func (repository *PartnerInfoRepository) FindOne(queryOptions map[string]interfa @@ -53,6 +53,8 @@ func (repository *PartnerInfoRepository) FindOne(queryOptions map[string]interfa
53 query := NewQuery(tx.Model(PartnerInfoModel), queryOptions) 53 query := NewQuery(tx.Model(PartnerInfoModel), queryOptions)
54 query.SetWhere("partner_info.id = ?", "id") 54 query.SetWhere("partner_info.id = ?", "id")
55 query.SetWhere("partner_info.account = ?", "account") 55 query.SetWhere("partner_info.account = ?", "account")
  56 + query.SetWhere("partner_info.status = ?", "status")
  57 + query.SetWhere("partner_info.company_id = ?", "companyId")
56 if err := query.First(); err != nil { 58 if err := query.First(); err != nil {
57 return nil, query.HandleError(err, "没有此合伙人") 59 return nil, query.HandleError(err, "没有此合伙人")
58 } 60 }
@@ -48,7 +48,10 @@ func (repository *UsersRepository) FindOne(queryOptions map[string]interface{}) @@ -48,7 +48,10 @@ func (repository *UsersRepository) FindOne(queryOptions map[string]interface{})
48 tx := repository.transactionContext.PgTx 48 tx := repository.transactionContext.PgTx
49 UsersModel := new(models.Users) 49 UsersModel := new(models.Users)
50 query := NewQuery(tx.Model(UsersModel), queryOptions) 50 query := NewQuery(tx.Model(UsersModel), queryOptions)
  51 + query.SetWhere("id = ?", "id")
  52 + query.SetWhere("status = ?", "status")
51 query.SetWhere("phone = ?", "phone") 53 query.SetWhere("phone = ?", "phone")
  54 + query.SetWhere("company_id = ?", "companyId")
52 if err := query.First(); err != nil { 55 if err := query.First(); err != nil {
53 return nil, fmt.Errorf("query row not found") 56 return nil, fmt.Errorf("query row not found")
54 } 57 }
@@ -72,3 +72,22 @@ func GenerateTokenWithAdminType(uid int64, phone string, adminType int, expire t @@ -72,3 +72,22 @@ func GenerateTokenWithAdminType(uid int64, phone string, adminType int, expire t
72 token, err := tokenClaims.SignedString(jwtSecret) 72 token, err := tokenClaims.SignedString(jwtSecret)
73 return token, err 73 return token, err
74 } 74 }
  75 +
  76 +func GenerateTokenWithClaim(claim UserTokenClaims, expire time.Duration) (string, error) {
  77 + now := time.Now()
  78 + expireTime := now.Add(expire)
  79 + claims := UserTokenClaims{
  80 + UserId: claim.UserId,
  81 + Phone: claim.Phone,
  82 + CompanyId: claim.CompanyId,
  83 + AdminType: claim.AdminType,
  84 + StandardClaims: jwt.StandardClaims{
  85 + ExpiresAt: expireTime.Unix(),
  86 + Issuer: "jwt",
  87 + },
  88 + }
  89 +
  90 + tokenClaims := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
  91 + token, err := tokenClaims.SignedString(jwtSecret)
  92 + return token, err
  93 +}
@@ -181,10 +181,6 @@ func (this *AuthController) CenterCompanys() { @@ -181,10 +181,6 @@ func (this *AuthController) CenterCompanys() {
181 msg = m 181 msg = m
182 return 182 return
183 } 183 }
184 - if len(request.Password) == 0 {  
185 - msg = protocol.NewResponseMessage(1, "密码不能为空!")  
186 - return  
187 - }  
188 header := this.GetRequestHeader(this.Ctx) 184 header := this.GetRequestHeader(this.Ctx)
189 data, err := auth.CenterCompanys(header, request) 185 data, err := auth.CenterCompanys(header, request)
190 if err != nil { 186 if err != nil {
@@ -209,6 +205,10 @@ func (this *AuthController) Companys() { @@ -209,6 +205,10 @@ func (this *AuthController) Companys() {
209 msg = m 205 msg = m
210 return 206 return
211 } 207 }
  208 + if request.ClientId != clientId {
  209 + msg = protocol.NewResponseMessage(101, "clientId无效")
  210 + return
  211 + }
212 header := this.GetRequestHeader(this.Ctx) 212 header := this.GetRequestHeader(this.Ctx)
213 data, err := auth.Companys(header, request) 213 data, err := auth.Companys(header, request)
214 if err != nil { 214 if err != nil {
@@ -16,7 +16,9 @@ func CheckJWTToken(ctx *context.Context) { @@ -16,7 +16,9 @@ func CheckJWTToken(ctx *context.Context) {
16 if strings.HasSuffix(ctx.Request.RequestURI, "login") || 16 if strings.HasSuffix(ctx.Request.RequestURI, "login") ||
17 strings.HasSuffix(ctx.Request.RequestURI, "accessToken") || 17 strings.HasSuffix(ctx.Request.RequestURI, "accessToken") ||
18 strings.HasSuffix(ctx.Request.RequestURI, "refreshToken") || 18 strings.HasSuffix(ctx.Request.RequestURI, "refreshToken") ||
19 - strings.HasSuffix(ctx.Request.RequestURI, "smsCode") { 19 + strings.HasSuffix(ctx.Request.RequestURI, "smsCode") ||
  20 + strings.HasSuffix(ctx.Request.RequestURI, "centerCompanys") ||
  21 + strings.HasSuffix(ctx.Request.RequestURI, "centerCompanys") {
20 return 22 return
21 } 23 }
22 defer func() { 24 defer func() {
@@ -32,10 +32,12 @@ func init() { @@ -32,10 +32,12 @@ func init() {
32 nsV1.Router("/dividend/statistics", &controllers.DividendController{}, "Post:DividendStatistics") 32 nsV1.Router("/dividend/statistics", &controllers.DividendController{}, "Post:DividendStatistics")
33 nsV1.Router("/dividend/orders", &controllers.DividendController{}, "Post:DividendOrders") 33 nsV1.Router("/dividend/orders", &controllers.DividendController{}, "Post:DividendOrders")
34 beego.AddNamespace(nsV1) 34 beego.AddNamespace(nsV1)
  35 +
  36 + InitV2()
35 } 37 }
36 38
37 func InitV2() { 39 func InitV2() {
38 - nsV2 := beego.NewNamespace("v2", beego.NSBefore(middleware.CheckJWTToken)) 40 + nsV2 := beego.NewNamespace("v2") // , beego.NSBefore(middleware.CheckJWTToken)
39 nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2") 41 nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2")
40 beego.AddNamespace(nsV2) 42 beego.AddNamespace(nsV2)
41 } 43 }