作者 yangfu

增加:登录修改

@@ -69,7 +69,13 @@ func Login(header *protocol.RequestHeader, request *protocol.LoginRequest) (rsp @@ -69,7 +69,13 @@ func Login(header *protocol.RequestHeader, request *protocol.LoginRequest) (rsp
69 err = protocol.NewCustomMessage(1, "登录方式不支持!") 69 err = protocol.NewCustomMessage(1, "登录方式不支持!")
70 break 70 break
71 } 71 }
72 - rsp.AuthCode, _ = utils.GenerateToken(partnerInfo.Id, request.Phone, protocol.AuthCodeExpire*time.Second) 72 + userClaim := utils.UserTokenClaims{
  73 + UserId: partnerInfo.Id,
  74 + Phone: partnerInfo.Account,
  75 + AdminType: int(protocolx.AdminTypePartner),
  76 + CompanyId: 1, //默认公司
  77 + }
  78 + rsp.AuthCode, _ = utils.GenerateTokenWithClaim(userClaim, protocol.AuthCodeExpire*time.Second)
73 79
74 if _, err = InitOrUpdateUserIMInfo(partnerInfo.Id, partnerInfo.PartnerName, transactionContext); err != nil { 80 if _, err = InitOrUpdateUserIMInfo(partnerInfo.Id, partnerInfo.PartnerName, transactionContext); err != nil {
75 log.Error(err) 81 log.Error(err)
@@ -133,13 +139,11 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -133,13 +139,11 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
133 claim *utils.UserTokenClaims 139 claim *utils.UserTokenClaims
134 transactionContext, _ = factory.CreateTransactionContext(nil) 140 transactionContext, _ = factory.CreateTransactionContext(nil)
135 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) 141 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
136 - //PartnerSubAccountRepository, _ = factory.CreatePartnerSubAccountRepository(transactionContext)  
137 - UsersRepository, _ = factory.CreateUsersRepository(transactionContext) 142 + UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
138 143
139 partnerInfo *domain.PartnerInfo 144 partnerInfo *domain.PartnerInfo
140 - //partnerSubAccount *domain.PartnerSubAccount  
141 - user *domain.Users  
142 - userId int64 145 + user *domain.Users
  146 + userId int64
143 ) 147 )
144 148
145 if err = transactionContext.StartTransaction(); err != nil { 149 if err = transactionContext.StartTransaction(); err != nil {
@@ -159,27 +163,22 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -159,27 +163,22 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
159 return 163 return
160 } 164 }
161 165
162 - //验证用户有效  
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 { 166 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 { 167 + case int(protocolx.AdminTypePartner):
  168 + if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"account": claim.Phone, "companyId": claim.CompanyId, "status": 1}); err != nil || partnerInfo == nil {
  169 + log.Error(err)
172 err = protocol.NewErrWithMessage(4140, err) 170 err = protocol.NewErrWithMessage(4140, err)
173 return 171 return
174 } 172 }
175 - userId = user.Id 173 + userId = partnerInfo.Id
176 break 174 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 { 175 + case int(protocolx.AdminTypeManager):
  176 + if user, err = UsersRepository.FindOne(map[string]interface{}{"phone": claim.Phone, "companyId": claim.CompanyId, "status": 1}); err != nil || user == nil {
  177 + log.Error(err)
179 err = protocol.NewErrWithMessage(4140, err) 178 err = protocol.NewErrWithMessage(4140, err)
180 return 179 return
181 } 180 }
182 - userId = partnerInfo.Id 181 + userId = user.Id
183 break 182 break
184 default: 183 default:
185 err = protocol.NewErrWithMessage(4140, err) 184 err = protocol.NewErrWithMessage(4140, err)
@@ -192,8 +191,14 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT @@ -192,8 +191,14 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT
192 // err = protocol.NewErrWithMessage(4140, err) 191 // err = protocol.NewErrWithMessage(4140, err)
193 // return 192 // return
194 //} 193 //}
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) 194 + userClaim := utils.UserTokenClaims{
  195 + UserId: userId,
  196 + Phone: claim.Phone,
  197 + AdminType: claim.AdminType,
  198 + CompanyId: claim.CompanyId,
  199 + }
  200 + rsp.AccessToken, _ = utils.GenerateTokenWithClaim(userClaim, protocol.TokenExpire*time.Second)
  201 + rsp.RefreshToken, _ = utils.GenerateTokenWithClaim(userClaim, protocol.RefreshTokenExipre*time.Second)
197 rsp.ExpiresIn = protocol.TokenExpire 202 rsp.ExpiresIn = protocol.TokenExpire
198 203
199 //newAuth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId), 204 //newAuth := userAuth.NewRedisUserAuth(userAuth.WithUserId(claim.UserId),
@@ -390,8 +395,8 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( @@ -390,8 +395,8 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (
390 //根据simnum + cid 395 //根据simnum + cid
391 userClaims := utils.UserTokenClaims{ 396 userClaims := utils.UserTokenClaims{
392 UserId: userId, 397 UserId: userId,
393 - CompanyId: claim.CompanyId,  
394 - AdminType: claim.AdminType, 398 + CompanyId: int64(request.Cid),
  399 + AdminType: request.IdType,
395 Phone: claim.Phone, 400 Phone: claim.Phone,
396 } 401 }
397 rsp.AuthCode, _ = utils.GenerateTokenWithClaim(userClaims, protocol.AuthCodeExpire*time.Second) 402 rsp.AuthCode, _ = utils.GenerateTokenWithClaim(userClaims, protocol.AuthCodeExpire*time.Second)
@@ -9,6 +9,7 @@ import ( @@ -9,6 +9,7 @@ import (
9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" 9 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain"
10 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log" 10 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
11 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" 11 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol"
  12 + protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/auth"
12 "strconv" 13 "strconv"
13 "strings" 14 "strings"
14 ) 15 )
@@ -20,8 +21,10 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) @@ -20,8 +21,10 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest)
20 transactionContext, _ = factory.CreateTransactionContext(nil) 21 transactionContext, _ = factory.CreateTransactionContext(nil)
21 CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext) 22 CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext)
22 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) 23 PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
  24 + UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
23 ImInfoRepository, _ = factory.CreateImInfoRepository(transactionContext) 25 ImInfoRepository, _ = factory.CreateImInfoRepository(transactionContext)
24 company *domain.Company 26 company *domain.Company
  27 + user *domain.Users
25 ) 28 )
26 if err = transactionContext.StartTransaction(); err != nil { 29 if err = transactionContext.StartTransaction(); err != nil {
27 return nil, err 30 return nil, err
@@ -30,33 +33,71 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) @@ -30,33 +33,71 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest)
30 transactionContext.RollbackTransaction() 33 transactionContext.RollbackTransaction()
31 }() 34 }()
32 rsp = &protocol.UserInfoResponse{} 35 rsp = &protocol.UserInfoResponse{}
33 - if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {  
34 - err = protocol.NewErrWithMessage(502, err) //账号不存在  
35 - return  
36 - }  
37 - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": 1}); err != nil {  
38 - return 36 +
  37 + funcPartnerInfo := func() {
  38 + if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
  39 + err = protocol.NewErrWithMessage(502, err) //账号不存在
  40 + return
  41 + }
  42 + if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil {
  43 + return
  44 + }
  45 + rsp.User = protocol.User{
  46 + Id: partnerInfo.Id,
  47 + PartnerName: partnerInfo.PartnerName,
  48 + Phone: partnerInfo.Account,
  49 + CooperateCompany: protocol.Company{
  50 + Id: company.Id,
  51 + Name: company.Name,
  52 + Phone: company.Phone,
  53 + },
  54 + JoinWay: partnerInfo.PartnerCategoryInfo(),
  55 + District: map[string]interface{}{"id": partnerInfo.RegionInfo.RegionId, "name": partnerInfo.RegionInfo.RegionName},
  56 + SerialNo: partnerInfo.Id,
  57 + CooperateTime: partnerInfo.CooperateTime.Unix() * 1000,
  58 + }
  59 + if len(partnerInfo.Salesman) > 0 {
  60 + rsp.User.Salesman = map[string]interface{}{"uname": partnerInfo.Salesman[0].Name, "phone": partnerInfo.Salesman[0].Telephone}
  61 + } else {
  62 + rsp.User.Salesman = map[string]interface{}{}
  63 + }
39 } 64 }
40 - rsp.User = protocol.User{  
41 - Id: partnerInfo.Id,  
42 - PartnerName: partnerInfo.PartnerName,  
43 - Phone: partnerInfo.Account,  
44 - CooperateCompany: protocol.Company{  
45 - Id: company.Id,  
46 - Name: company.Name,  
47 - Phone: company.Phone,  
48 - },  
49 - JoinWay: partnerInfo.PartnerCategoryInfo(),  
50 - District: map[string]interface{}{"id": partnerInfo.RegionInfo.RegionId, "name": partnerInfo.RegionInfo.RegionName},  
51 - SerialNo: partnerInfo.Id,  
52 - CooperateTime: partnerInfo.CooperateTime.Unix() * 1000, 65 + funcManagerInfo := func() {
  66 + if user, err = UsersRepository.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
  67 + err = protocol.NewErrWithMessage(502, err) //账号不存在
  68 + return
  69 + }
  70 + if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil {
  71 + return
  72 + }
  73 + rsp.User = protocol.User{
  74 + Id: user.Id,
  75 + PartnerName: user.Name,
  76 + Phone: user.Phone,
  77 + CooperateCompany: protocol.Company{
  78 + Id: company.Id,
  79 + Name: company.Name,
  80 + Phone: company.Phone,
  81 + },
  82 + //JoinWay: partnerInfo.PartnerCategoryInfo(),
  83 + //District: map[string]interface{}{"id": partnerInfo.RegionInfo.RegionId, "name": partnerInfo.RegionInfo.RegionName},
  84 + //SerialNo: partnerInfo.Id,
  85 + //CooperateTime: partnerInfo.CooperateTime.Unix() * 1000,
  86 + }
53 } 87 }
54 - if len(partnerInfo.Salesman) > 0 {  
55 - rsp.User.Salesman = map[string]interface{}{"uname": partnerInfo.Salesman[0].Name, "phone": partnerInfo.Salesman[0].Telephone}  
56 - } else {  
57 - rsp.User.Salesman = map[string]interface{}{} 88 + switch header.AdminType {
  89 + case int(protocolx.AdminTypePartner):
  90 + funcPartnerInfo()
  91 + break
  92 + case int(protocolx.AdminTypeManager):
  93 + funcManagerInfo()
  94 + break
  95 + default:
  96 + funcPartnerInfo()
  97 + break
58 } 98 }
59 - if imInfo, e := ImInfoRepository.FindOne(map[string]interface{}{"user_id": partnerInfo.Id}); e == nil && imInfo != nil { 99 +
  100 + if imInfo, e := ImInfoRepository.FindOne(map[string]interface{}{"user_id": header.SimNum}); e == nil && imInfo != nil {
60 rsp.User.ImToken = imInfo.ImToken 101 rsp.User.ImToken = imInfo.ImToken
61 rsp.User.AccountID, _ = strconv.ParseInt(imInfo.ImId, 10, 64) 102 rsp.User.AccountID, _ = strconv.ParseInt(imInfo.ImId, 10, 64)
62 rsp.User.CsAccountID = fmt.Sprintf("%v", imInfo.CustomerImId) 103 rsp.User.CsAccountID = fmt.Sprintf("%v", imInfo.CustomerImId)
@@ -221,3 +262,109 @@ func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePass @@ -221,3 +262,109 @@ func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePass
221 err = transactionContext.CommitTransaction() 262 err = transactionContext.CommitTransaction()
222 return 263 return
223 } 264 }
  265 +
  266 +func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoRequest) (rsp interface{}, err error) {
  267 + var (
  268 + partnerInfo *domain.PartnerInfo
  269 + transactionContext, _ = factory.CreateTransactionContext(nil)
  270 + CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext)
  271 + PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)
  272 + UsersRepository, _ = factory.CreateUsersRepository(transactionContext)
  273 + company *domain.Company
  274 + user *domain.Users
  275 + )
  276 + if err = transactionContext.StartTransaction(); err != nil {
  277 + return nil, err
  278 + }
  279 + defer func() {
  280 + transactionContext.RollbackTransaction()
  281 + }()
  282 + rsp = &protocol.UserInfoResponse{}
  283 +
  284 + type xcompany struct {
  285 + Id int64 `json:"id"`
  286 + Name string `json:"name"`
  287 + Phone string `json:"phone"`
  288 + //合作区域
  289 + District interface{} `json:"district"`
  290 + //合作编码
  291 + SerialNo int64 `json:"serialNo"`
  292 + //合作时间
  293 + CooperateTime int64 `json:"cooperationTime"`
  294 + Salesman interface{} `json:"salesman"`
  295 + }
  296 + type xuser struct {
  297 + Id int64 `json:"uid"`
  298 + //用户名称
  299 + PartnerName string `json:"uname"`
  300 + //手机号
  301 + Phone string `json:"phone"`
  302 + //合作公司
  303 + CooperateCompany xcompany `json:"company"`
  304 + }
  305 + rspMap := make(map[string]interface{})
  306 + funcPartnerInfo := func() {
  307 + if partnerInfo, err = PartnerInfoService.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
  308 + err = protocol.NewErrWithMessage(502, err) //账号不存在
  309 + return
  310 + }
  311 + if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil {
  312 + return
  313 + }
  314 +
  315 + u := xuser{
  316 + Id: partnerInfo.Id,
  317 + PartnerName: partnerInfo.PartnerName,
  318 + Phone: partnerInfo.Account,
  319 + CooperateCompany: xcompany{
  320 + Id: company.Id,
  321 + Name: company.Name,
  322 + Phone: company.Phone,
  323 + SerialNo: partnerInfo.Id,
  324 + CooperateTime: partnerInfo.CooperateTime.Unix() * 1000,
  325 + //JoinWay: partnerInfo.PartnerCategoryInfo(),
  326 + District: map[string]interface{}{"id": partnerInfo.RegionInfo.RegionId, "name": partnerInfo.RegionInfo.RegionName},
  327 + },
  328 + }
  329 + if len(partnerInfo.Salesman) > 0 {
  330 + u.CooperateCompany.Salesman = map[string]interface{}{"uname": partnerInfo.Salesman[0].Name, "phone": partnerInfo.Salesman[0].Telephone}
  331 + } else {
  332 + u.CooperateCompany.Salesman = map[string]interface{}{}
  333 + }
  334 + rspMap["User"] = u
  335 + rsp = rspMap
  336 + }
  337 + funcManagerInfo := func() {
  338 + if user, err = UsersRepository.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {
  339 + err = protocol.NewErrWithMessage(502, err) //账号不存在
  340 + return
  341 + }
  342 + if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil {
  343 + return
  344 + }
  345 + rspMap["User"] = xuser{
  346 + Id: user.Id,
  347 + PartnerName: user.Name,
  348 + Phone: user.Phone,
  349 + CooperateCompany: xcompany{
  350 + Id: company.Id,
  351 + Name: company.Name,
  352 + Phone: company.Phone,
  353 + },
  354 + }
  355 + rsp = rspMap
  356 + }
  357 + switch header.AdminType {
  358 + case int(protocolx.AdminTypePartner):
  359 + funcPartnerInfo()
  360 + break
  361 + case int(protocolx.AdminTypeManager):
  362 + funcManagerInfo()
  363 + break
  364 + default:
  365 + funcPartnerInfo()
  366 + break
  367 + }
  368 + err = transactionContext.CommitTransaction()
  369 + return
  370 +}
@@ -25,9 +25,11 @@ func ParseJWTToken(token string) (*UserTokenClaims, error) { @@ -25,9 +25,11 @@ func ParseJWTToken(token string) (*UserTokenClaims, error) {
25 } 25 }
26 if tokenClaims != nil { 26 if tokenClaims != nil {
27 if claim, ok := tokenClaims.Claims.(*UserTokenClaims); ok && tokenClaims.Valid { 27 if claim, ok := tokenClaims.Claims.(*UserTokenClaims); ok && tokenClaims.Valid {
28 - // TODO:多类型用户登录  
29 - claim.CompanyId = 1  
30 - claim.AdminType = 1 28 + // TODO:版本兼容
  29 + //if claim.CompanyId==0{
  30 + // claim.CompanyId = 1
  31 + // claim.AdminType = 1
  32 + //}
31 return claim, nil 33 return claim, nil
32 } 34 }
33 } 35 }
@@ -82,6 +82,7 @@ func (this *BaseController) GetRequestHeader(ctx *context.Context) *protocol.Req @@ -82,6 +82,7 @@ func (this *BaseController) GetRequestHeader(ctx *context.Context) *protocol.Req
82 h.UserId = claim.UserId 82 h.UserId = claim.UserId
83 h.CompanyId = claim.CompanyId 83 h.CompanyId = claim.CompanyId
84 h.AdminType = claim.AdminType 84 h.AdminType = claim.AdminType
  85 + h.SimNum, _ = strconv.Atoi(claim.Phone)
85 } 86 }
86 } 87 }
87 return h 88 return h
@@ -151,3 +151,23 @@ func (this *UserController) ChangePassword() { @@ -151,3 +151,23 @@ func (this *UserController) ChangePassword() {
151 } 151 }
152 msg = protocol.NewReturnResponse(data, err) 152 msg = protocol.NewReturnResponse(data, err)
153 } 153 }
  154 +
  155 +//UserInfo
  156 +//@router /userInfo [post]
  157 +func (this *UserController) UserInfoV2() {
  158 + var msg *protocol.ResponseMessage
  159 + defer func() {
  160 + this.Resp(msg)
  161 + }()
  162 + var request *protocol.UserInfoRequest
  163 + if err := this.JsonUnmarshal(&request); err != nil {
  164 + msg = protocol.BadRequestParam(2)
  165 + return
  166 + }
  167 + if b, m := this.Valid(request); !b {
  168 + msg = m
  169 + return
  170 + }
  171 + header := this.GetRequestHeader(this.Ctx)
  172 + msg = protocol.NewReturnResponse(user.UserInfoV2(header, request))
  173 +}
@@ -18,7 +18,8 @@ func CheckJWTToken(ctx *context.Context) { @@ -18,7 +18,8 @@ func CheckJWTToken(ctx *context.Context) {
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") || 20 strings.HasSuffix(ctx.Request.RequestURI, "centerCompanys") ||
21 - strings.HasSuffix(ctx.Request.RequestURI, "centerCompanys") { 21 + strings.HasSuffix(ctx.Request.RequestURI, "companys") ||
  22 + strings.HasSuffix(ctx.Request.RequestURI, "loginV2") {
22 return 23 return
23 } 24 }
24 defer func() { 25 defer func() {
@@ -37,7 +37,8 @@ func init() { @@ -37,7 +37,8 @@ func init() {
37 } 37 }
38 38
39 func InitV2() { 39 func InitV2() {
40 - nsV2 := beego.NewNamespace("v2") // , beego.NSBefore(middleware.CheckJWTToken) 40 + nsV2 := beego.NewNamespace("v2", beego.NSBefore(middleware.CheckJWTToken)) // ,
41 nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2") 41 nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2")
  42 + nsV2.Router("/user/userInfo", &controllers.UserController{}, "Post:UserInfoV2")
42 beego.AddNamespace(nsV2) 43 beego.AddNamespace(nsV2)
43 } 44 }
@@ -13,6 +13,7 @@ type RequestHeader struct { @@ -13,6 +13,7 @@ type RequestHeader struct {
13 CompanyId int64 //公司编号 13 CompanyId int64 //公司编号
14 UserId int64 //UserId 唯一标识,(类型是合伙人对应表partner_info.id,类型是高层对应表users.id) 14 UserId int64 //UserId 唯一标识,(类型是合伙人对应表partner_info.id,类型是高层对应表users.id)
15 AdminType int //合伙人:1 高管:2 15 AdminType int //合伙人:1 高管:2
  16 + SimNum int
16 17
17 requestId string //请求编号 md5 18 requestId string //请求编号 md5
18 reqIndex int64 //请求链序号 19 reqIndex int64 //请求链序号