合并分支 'dev' 到 'master'
Dev 查看合并请求 !5
正在显示
24 个修改的文件
包含
262 行增加
和
225 行删除
| @@ -11,5 +11,5 @@ require ( | @@ -11,5 +11,5 @@ require ( | ||
| 11 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 | 11 | github.com/linmadan/egglib-go v0.0.0-20191217144343-ca4539f95bf9 |
| 12 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect | 12 | github.com/shiena/ansicolor v0.0.0-20151119151921-a422bbe96644 // indirect |
| 13 | github.com/shopspring/decimal v1.2.0 | 13 | github.com/shopspring/decimal v1.2.0 |
| 14 | - github.com/tiptok/gocomm v1.0.2 | 14 | + github.com/tiptok/gocomm v1.0.5 |
| 15 | ) | 15 | ) |
| @@ -19,6 +19,7 @@ import ( | @@ -19,6 +19,7 @@ import ( | ||
| 19 | "time" | 19 | "time" |
| 20 | ) | 20 | ) |
| 21 | 21 | ||
| 22 | +// 该方法废弃 | ||
| 22 | func Login(header *protocol.RequestHeader, request *protocol.LoginRequest) (rsp *protocol.LoginResponse, err error) { | 23 | func Login(header *protocol.RequestHeader, request *protocol.LoginRequest) (rsp *protocol.LoginResponse, err error) { |
| 23 | var ( | 24 | var ( |
| 24 | transactionContext, _ = factory.CreateTransactionContext(nil) | 25 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| @@ -222,7 +223,7 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT | @@ -222,7 +223,7 @@ func RefreshToken(request *protocol.RefreshTokenRequest) (rsp *protocol.RefreshT | ||
| 222 | return | 223 | return |
| 223 | } | 224 | } |
| 224 | 225 | ||
| 225 | -//验证短信验证码 T | 226 | +// 验证短信验证码 T |
| 226 | func CheckSmsCode(phone, code string) (result bool, err error) { | 227 | func CheckSmsCode(phone, code string) (result bool, err error) { |
| 227 | sms, _ := factory.CreateSmsCodeService() | 228 | sms, _ := factory.CreateSmsCodeService() |
| 228 | var data map[string]interface{} | 229 | var data map[string]interface{} |
| @@ -236,7 +237,7 @@ func CheckSmsCode(phone, code string) (result bool, err error) { | @@ -236,7 +237,7 @@ func CheckSmsCode(phone, code string) (result bool, err error) { | ||
| 236 | return | 237 | return |
| 237 | } | 238 | } |
| 238 | 239 | ||
| 239 | -//验证手机号码(修改手机号码、重置密码的前一步) | 240 | +// 验证手机号码(修改手机号码、重置密码的前一步) |
| 240 | func AuthCheckSmsCode(header *protocol.RequestHeader, request *protocol.AuthCheckSmsCodeRequest) (rsp *protocol.AuthCheckSmsCodeResponse, err error) { | 241 | func AuthCheckSmsCode(header *protocol.RequestHeader, request *protocol.AuthCheckSmsCodeRequest) (rsp *protocol.AuthCheckSmsCodeResponse, err error) { |
| 241 | var () | 242 | var () |
| 242 | if _, err = CheckSmsCode(request.Phone, request.Captcha); err != nil { | 243 | if _, err = CheckSmsCode(request.Phone, request.Captcha); err != nil { |
| @@ -248,7 +249,7 @@ func AuthCheckSmsCode(header *protocol.RequestHeader, request *protocol.AuthChec | @@ -248,7 +249,7 @@ func AuthCheckSmsCode(header *protocol.RequestHeader, request *protocol.AuthChec | ||
| 248 | return | 249 | return |
| 249 | } | 250 | } |
| 250 | 251 | ||
| 251 | -//注销登录 | 252 | +// 注销登录 |
| 252 | func Revoke(header *protocol.RequestHeader, request *protocol.RevokeRequest) (rsp *protocol.RevokeResponse, err error) { | 253 | func Revoke(header *protocol.RequestHeader, request *protocol.RevokeRequest) (rsp *protocol.RevokeResponse, err error) { |
| 253 | //auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(header.UserId)) | 254 | //auth := userAuth.NewRedisUserAuth(userAuth.WithUserId(header.UserId)) |
| 254 | //rsp = &protocol.RevokeResponse{} | 255 | //rsp = &protocol.RevokeResponse{} |
| @@ -263,7 +264,7 @@ func Revoke(header *protocol.RequestHeader, request *protocol.RevokeRequest) (rs | @@ -263,7 +264,7 @@ func Revoke(header *protocol.RequestHeader, request *protocol.RevokeRequest) (rs | ||
| 263 | return | 264 | return |
| 264 | } | 265 | } |
| 265 | 266 | ||
| 266 | -//注销登录 | 267 | +// 注销登录 |
| 267 | func UCenterRevoke(header *protocol.RequestHeader, userId int64) (rsp *protocol.RevokeResponse, err error) { | 268 | func UCenterRevoke(header *protocol.RequestHeader, userId int64) (rsp *protocol.RevokeResponse, err error) { |
| 268 | var ( | 269 | var ( |
| 269 | transactionContext, _ = factory.CreateTransactionContext(nil) | 270 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| @@ -300,7 +301,8 @@ func UCenterRevoke(header *protocol.RequestHeader, userId int64) (rsp *protocol. | @@ -300,7 +301,8 @@ func UCenterRevoke(header *protocol.RequestHeader, userId int64) (rsp *protocol. | ||
| 300 | return | 301 | return |
| 301 | } | 302 | } |
| 302 | 303 | ||
| 303 | -func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCompanysRequest) (v interface{}, err error) { | 304 | +// 企业平台-多公司登录 |
| 305 | +func CompaniesLogin(header *protocol.RequestHeader, request *protocolx.CenterCompanysRequest) (v interface{}, err error) { | ||
| 304 | var ( | 306 | var ( |
| 305 | transactionContext, _ = factory.CreateTransactionContext(nil) | 307 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 306 | imInfo *domain.ImInfo | 308 | imInfo *domain.ImInfo |
| @@ -320,14 +322,14 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | @@ -320,14 +322,14 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | ||
| 320 | defer func() { | 322 | defer func() { |
| 321 | transactionContext.RollbackTransaction() | 323 | transactionContext.RollbackTransaction() |
| 322 | }() | 324 | }() |
| 323 | - | 325 | + // 通过短信验证码登录的游客,注册一个账号到配置的公司去(ios审核使用) |
| 324 | if request.GrantType == protocol.LoginBySmsCode { | 326 | if request.GrantType == protocol.LoginBySmsCode { |
| 325 | e := loginSvr.RegistryGuest(request.Phone) | 327 | e := loginSvr.RegistryGuest(request.Phone) |
| 326 | if e != nil { | 328 | if e != nil { |
| 327 | log.Error(e) | 329 | log.Error(e) |
| 328 | } | 330 | } |
| 329 | } | 331 | } |
| 330 | - | 332 | + // loginSvr 初始化 |
| 331 | loginSvr.Init(request.Phone) | 333 | loginSvr.Init(request.Phone) |
| 332 | if len(loginSvr.Users) == 0 && len(loginSvr.PartnerInfo) == 0 { | 334 | if len(loginSvr.Users) == 0 && len(loginSvr.PartnerInfo) == 0 { |
| 333 | err = protocol.NewErrWithMessage(10001) | 335 | err = protocol.NewErrWithMessage(10001) |
| @@ -367,22 +369,21 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | @@ -367,22 +369,21 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | ||
| 367 | break | 369 | break |
| 368 | } | 370 | } |
| 369 | 371 | ||
| 370 | - //获取统计信息 | 372 | + // 获取统计信息(合伙人/高管) |
| 371 | rsp.Partner, _ = loginSvr.PartnerStaticInfo() | 373 | rsp.Partner, _ = loginSvr.PartnerStaticInfo() |
| 372 | rsp.Manager, _ = loginSvr.ManagerStaticInfo() | 374 | rsp.Manager, _ = loginSvr.ManagerStaticInfo() |
| 373 | - //没有有效人的时候 | ||
| 374 | - if !loginSvr.AvailableCompany { | 375 | + if !loginSvr.HasAvailableCompany { |
| 375 | err = protocol.NewErrWithMessage(10008) //账号禁用 | 376 | err = protocol.NewErrWithMessage(10008) //账号禁用 |
| 376 | return | 377 | return |
| 377 | } | 378 | } |
| 378 | 379 | ||
| 380 | + // 初始化网易IM信息 | ||
| 379 | var nickName string | 381 | var nickName string |
| 380 | if len(loginSvr.Users) > 0 { | 382 | if len(loginSvr.Users) > 0 { |
| 381 | nickName = loginSvr.Users[0].Name | 383 | nickName = loginSvr.Users[0].Name |
| 382 | } else if len(loginSvr.PartnerInfo) > 0 { | 384 | } else if len(loginSvr.PartnerInfo) > 0 { |
| 383 | nickName = loginSvr.PartnerInfo[0].PartnerName | 385 | nickName = loginSvr.PartnerInfo[0].PartnerName |
| 384 | } | 386 | } |
| 385 | - //初始化im信息 | ||
| 386 | if imInfo, err = InitOrUpdateUserIMInfo(int64(phoneId), nickName, transactionContext); err != nil { | 387 | if imInfo, err = InitOrUpdateUserIMInfo(int64(phoneId), nickName, transactionContext); err != nil { |
| 387 | log.Error(err) | 388 | log.Error(err) |
| 388 | return | 389 | return |
| @@ -397,12 +398,13 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | @@ -397,12 +398,13 @@ func CenterCompanys(header *protocol.RequestHeader, request *protocolx.CenterCom | ||
| 397 | //添加手机对应的凭证 | 398 | //添加手机对应的凭证 |
| 398 | userAuth.NewRedisUserCredential(request.Phone).AddAuth(rsp.Credentials) | 399 | userAuth.NewRedisUserCredential(request.Phone).AddAuth(rsp.Credentials) |
| 399 | 400 | ||
| 400 | - err = transactionContext.CommitTransaction() | ||
| 401 | v = map[string]interface{}{"center": rsp} | 401 | v = map[string]interface{}{"center": rsp} |
| 402 | + err = transactionContext.CommitTransaction() | ||
| 402 | return | 403 | return |
| 403 | } | 404 | } |
| 404 | 405 | ||
| 405 | -func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest) (rsp *protocolx.CompanysResponse, err error) { | 406 | +// 企业平台-多公司登录 - 通过凭证 |
| 407 | +func CompaniesLoginByCredential(header *protocol.RequestHeader, request *protocolx.CompanysRequest) (rsp *protocolx.CompanysResponse, err error) { | ||
| 406 | var ( | 408 | var ( |
| 407 | transactionContext, _ = factory.CreateTransactionContext(nil) | 409 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 408 | loginSvr = domain_service.NewPgLoginService(transactionContext) | 410 | loginSvr = domain_service.NewPgLoginService(transactionContext) |
| @@ -428,11 +430,12 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest | @@ -428,11 +430,12 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest | ||
| 428 | return | 430 | return |
| 429 | } | 431 | } |
| 430 | } | 432 | } |
| 433 | + | ||
| 434 | + // loginSvr 初始化 | ||
| 431 | loginSvr.Init(claim.Phone) | 435 | loginSvr.Init(claim.Phone) |
| 432 | rsp.Partner, _ = loginSvr.PartnerStaticInfo() | 436 | rsp.Partner, _ = loginSvr.PartnerStaticInfo() |
| 433 | rsp.Manager, _ = loginSvr.ManagerStaticInfo() | 437 | rsp.Manager, _ = loginSvr.ManagerStaticInfo() |
| 434 | - //没有有效人的时候 | ||
| 435 | - if !loginSvr.AvailableCompany { | 438 | + if !loginSvr.HasAvailableCompany { |
| 436 | err = protocol.NewErrWithMessage(4140, err) //账号禁用 | 439 | err = protocol.NewErrWithMessage(4140, err) //账号禁用 |
| 437 | return | 440 | return |
| 438 | } | 441 | } |
| @@ -441,6 +444,7 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest | @@ -441,6 +444,7 @@ func Companys(header *protocol.RequestHeader, request *protocolx.CompanysRequest | ||
| 441 | return | 444 | return |
| 442 | } | 445 | } |
| 443 | 446 | ||
| 447 | +// 登录 | ||
| 444 | func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (rsp *protocol.LoginResponse, err error) { | 448 | func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) (rsp *protocol.LoginResponse, err error) { |
| 445 | var ( | 449 | var ( |
| 446 | claim *utils.UserTokenClaims | 450 | claim *utils.UserTokenClaims |
| @@ -483,12 +487,12 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | @@ -483,12 +487,12 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | ||
| 483 | return | 487 | return |
| 484 | } | 488 | } |
| 485 | } | 489 | } |
| 486 | - //验证公司模块权限 | ||
| 487 | - if _, adminUsers, e := UsersRepository.Find(map[string]interface{}{"inCompanyIds": []int64{int64(request.Cid)}, "adminType": 2, "deleteAtIsNull": true}); e == nil { | ||
| 488 | - if len(adminUsers) > 0 { | ||
| 489 | - au := adminUsers[0] | ||
| 490 | - if code, e := adminApiGateway.UserAuth(au.Id, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 { | ||
| 491 | - log.Debug("【合伙人检查权限】", claim.Phone, "【公司】", request.Cid, au.Id, code, e.Error()) | 490 | + //合伙人 需要验证对应公司模块权限(查询该公司的主管理员是否有权限) |
| 491 | + if _, admins, e := UsersRepository.Find(map[string]interface{}{"inCompanyIds": []int64{int64(request.Cid)}, "adminType": 2, "deleteAtIsNull": true}); e == nil { | ||
| 492 | + if len(admins) > 0 { | ||
| 493 | + admin := admins[0] | ||
| 494 | + if code, e := adminApiGateway.UserAuth(admin.Id, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 { | ||
| 495 | + log.Debug("【合伙人检查权限】", claim.Phone, "【公司】", request.Cid, admin.Id, code, e.Error()) | ||
| 492 | err = protocol.NewErrWithMessage(10008, err) // 抱歉,企业管理员未帮您开通权限 | 496 | err = protocol.NewErrWithMessage(10008, err) // 抱歉,企业管理员未帮您开通权限 |
| 493 | return | 497 | return |
| 494 | } | 498 | } |
| @@ -503,7 +507,7 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | @@ -503,7 +507,7 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | ||
| 503 | return | 507 | return |
| 504 | } | 508 | } |
| 505 | } | 509 | } |
| 506 | - //校验模块权限 | 510 | + //高管 需要校验高管是否模块权限 |
| 507 | if userId != 0 { | 511 | if userId != 0 { |
| 508 | if code, e := adminApiGateway.UserAuth(userId, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 { | 512 | if code, e := adminApiGateway.UserAuth(userId, constant.BUSINESS_ADMIN_PLATFORM_ID); e != nil || code != 0 { |
| 509 | log.Debug("【检查权限】", userId, "【公司】", request.Cid, "【错误】:", code, e.Error()) | 513 | log.Debug("【检查权限】", userId, "【公司】", request.Cid, "【错误】:", code, e.Error()) |
| @@ -520,7 +524,8 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | @@ -520,7 +524,8 @@ func LoginV2(header *protocol.RequestHeader, request *protocol.LoginRequestV2) ( | ||
| 520 | err = protocol.NewErrWithMessage(10001, err) //账号不存在 | 524 | err = protocol.NewErrWithMessage(10001, err) //账号不存在 |
| 521 | return | 525 | return |
| 522 | } | 526 | } |
| 523 | - //根据simnum + cid | 527 | + |
| 528 | + // 生成授权码 | ||
| 524 | userClaims := utils.UserTokenClaims{ | 529 | userClaims := utils.UserTokenClaims{ |
| 525 | UserId: userId, | 530 | UserId: userId, |
| 526 | CompanyId: int64(request.Cid), | 531 | CompanyId: int64(request.Cid), |
| @@ -2,6 +2,7 @@ package company | @@ -2,6 +2,7 @@ package company | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "github.com/tiptok/gocomm/pkg/log" | 4 | "github.com/tiptok/gocomm/pkg/log" |
| 5 | + "github.com/tiptok/gocomm/sync/task" | ||
| 5 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" | 6 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" |
| 6 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" |
| 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" | 8 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" |
| @@ -11,6 +12,7 @@ import ( | @@ -11,6 +12,7 @@ import ( | ||
| 11 | "strings" | 12 | "strings" |
| 12 | ) | 13 | ) |
| 13 | 14 | ||
| 15 | +// 公司属性 合伙人类型/区域 | ||
| 14 | func Property(header *protocol.RequestHeader, request *protocolx.PropertyRequest) (rsp *protocolx.PropertyResponse, err error) { | 16 | func Property(header *protocol.RequestHeader, request *protocolx.PropertyRequest) (rsp *protocolx.PropertyResponse, err error) { |
| 15 | var ( | 17 | var ( |
| 16 | transactionContext, _ = factory.CreateTransactionContext(nil) | 18 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| @@ -24,14 +26,19 @@ func Property(header *protocol.RequestHeader, request *protocolx.PropertyRequest | @@ -24,14 +26,19 @@ func Property(header *protocol.RequestHeader, request *protocolx.PropertyRequest | ||
| 24 | transactionContext.RollbackTransaction() | 26 | transactionContext.RollbackTransaction() |
| 25 | }() | 27 | }() |
| 26 | 28 | ||
| 27 | - //用户查询区域 | ||
| 28 | - if (request.Action & 0x01) > 0 { | ||
| 29 | - rsp.Districts, _ = getDistricts(header.UserId, transactionContext) | ||
| 30 | - } | ||
| 31 | - //查询合伙人类型 | ||
| 32 | - if (request.Action & 0x02) > 0 { | ||
| 33 | - rsp.JoinWays, _ = getJoinWays(transactionContext) | ||
| 34 | - } | 29 | + //并行查询区域/合伙人类型 |
| 30 | + task.Parallel( | ||
| 31 | + func() { | ||
| 32 | + if (request.Action & 0x01) > 0 { | ||
| 33 | + rsp.Districts, _ = getDistricts(header.UserId, transactionContext) | ||
| 34 | + } | ||
| 35 | + }, | ||
| 36 | + func() { | ||
| 37 | + if (request.Action & 0x02) > 0 { | ||
| 38 | + rsp.JoinWays, _ = getJoinWays(transactionContext) | ||
| 39 | + } | ||
| 40 | + }, | ||
| 41 | + ) | ||
| 35 | err = transactionContext.CommitTransaction() | 42 | err = transactionContext.CommitTransaction() |
| 36 | return | 43 | return |
| 37 | } | 44 | } |
| @@ -145,9 +152,7 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | @@ -145,9 +152,7 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | ||
| 145 | UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | 152 | UsersRepository, _ = factory.CreateUsersRepository(transactionContext) |
| 146 | PartnerInfoDao, _ = factory.CreatePartnerInfoDao(transactionContext) | 153 | PartnerInfoDao, _ = factory.CreatePartnerInfoDao(transactionContext) |
| 147 | OrderBaseDao, _ = factory.CreateOrderBaseDao(transactionContext) | 154 | OrderBaseDao, _ = factory.CreateOrderBaseDao(transactionContext) |
| 148 | - //BusinessBonusDao, _ = factory.CreateBusinessBonusDao(transactionContext) | ||
| 149 | - //user *domain.Users | ||
| 150 | - partnerIds []int64 | 155 | + partnerIds []int64 |
| 151 | ) | 156 | ) |
| 152 | if user, e := UsersRepository.FindOne(map[string]interface{}{"id": userId}); e != nil || user == nil { | 157 | if user, e := UsersRepository.FindOne(map[string]interface{}{"id": userId}); e != nil || user == nil { |
| 153 | return struct { | 158 | return struct { |
| @@ -156,10 +161,7 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | @@ -156,10 +161,7 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | ||
| 156 | partnerIds = user.AccessPartnerIds() | 161 | partnerIds = user.AccessPartnerIds() |
| 157 | } | 162 | } |
| 158 | Statistics := make(map[string]interface{}) | 163 | Statistics := make(map[string]interface{}) |
| 159 | - //Statistics["developDividend"] = 0 | ||
| 160 | - //Statistics["developOrdersMoney"] = 0 | ||
| 161 | - //Statistics["appDividend"] = 0 | ||
| 162 | - //Statistics["appOrdersMoney"] = 0 | 164 | + // TODO:分组统计 |
| 163 | if count, e := PartnerInfoDao.PartnerStatic(map[string]interface{}{"inPartnerIds": partnerIds, "inPartnerCategory": domain.Career}); e == nil { | 165 | if count, e := PartnerInfoDao.PartnerStatic(map[string]interface{}{"inPartnerIds": partnerIds, "inPartnerCategory": domain.Career}); e == nil { |
| 164 | Statistics["careerCount"] = count | 166 | Statistics["careerCount"] = count |
| 165 | } | 167 | } |
| @@ -188,11 +190,6 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | @@ -188,11 +190,6 @@ func getStatistics(userId int64, transactionContext *transaction.TransactionCont | ||
| 188 | Statistics["appOrdersMoney"] = bonus.TotalOrderAmount | 190 | Statistics["appOrdersMoney"] = bonus.TotalOrderAmount |
| 189 | Statistics["appDividend"] = bonus.Bonus | 191 | Statistics["appDividend"] = bonus.Bonus |
| 190 | } | 192 | } |
| 191 | - //if businessBonus, e := BusinessBonusDao.OrderBonusStatics(domain.OrderBonusQuery{InPartnerIds: partnerIds, IsDisable: 1}); e == nil { | ||
| 192 | - // Statistics["businessDividend"] = businessBonus.Bonus | ||
| 193 | - // Statistics["businessOrdersMoney"] = businessBonus.TotalOrderAmount | ||
| 194 | - //} | ||
| 195 | - | ||
| 196 | Statistics["totalCount"] = len(partnerIds) | 193 | Statistics["totalCount"] = len(partnerIds) |
| 197 | return Statistics, nil | 194 | return Statistics, nil |
| 198 | } | 195 | } |
| @@ -218,6 +215,32 @@ func getPartners(userId int64, request *protocolx.PartnersRequest, transactionCo | @@ -218,6 +215,32 @@ func getPartners(userId int64, request *protocolx.PartnersRequest, transactionCo | ||
| 218 | } | 215 | } |
| 219 | } | 216 | } |
| 220 | 217 | ||
| 218 | + queryOption := newQueryOption(request) | ||
| 219 | + | ||
| 220 | + if partners, e := PartnerInfo.Partners(user.AccessPartnerIds(), queryOption); e == nil { | ||
| 221 | + var array []interface{} | ||
| 222 | + for i := range partners { | ||
| 223 | + mapPartner := make(map[string]interface{}) | ||
| 224 | + p := partners[i] | ||
| 225 | + mapPartner["uid"] = p.Id | ||
| 226 | + mapPartner["uname"] = p.PartnerName | ||
| 227 | + mapPartner["joinWays"] = newJoinWays(mapCategoryInfo, p) | ||
| 228 | + if p.RegionInfo != nil { | ||
| 229 | + mapPartner["district"] = protocolx.Districts{Id: p.RegionInfo.RegionId, Name: p.RegionInfo.RegionName} | ||
| 230 | + } | ||
| 231 | + mapPartner["cooperationTime"] = p.CooperateTime.Unix() * 1000 | ||
| 232 | + mapPartner["dividend"] = utils.Decimal(p.Bonus) | ||
| 233 | + mapPartner["ordersCount"] = p.Total | ||
| 234 | + mapPartner["ordersMoney"] = utils.Decimal(p.Amount) | ||
| 235 | + array = append(array, mapPartner) | ||
| 236 | + } | ||
| 237 | + return array, nil | ||
| 238 | + } | ||
| 239 | + return nil, nil | ||
| 240 | +} | ||
| 241 | + | ||
| 242 | +// 查询参数 | ||
| 243 | +func newQueryOption(request *protocolx.PartnersRequest) map[string]interface{} { | ||
| 221 | queryOption := make(map[string]interface{}) | 244 | queryOption := make(map[string]interface{}) |
| 222 | 245 | ||
| 223 | if len(request.Districts) > 0 { | 246 | if len(request.Districts) > 0 { |
| @@ -247,33 +270,16 @@ func getPartners(userId int64, request *protocolx.PartnersRequest, transactionCo | @@ -247,33 +270,16 @@ func getPartners(userId int64, request *protocolx.PartnersRequest, transactionCo | ||
| 247 | if request.SortBy != 0 { | 270 | if request.SortBy != 0 { |
| 248 | queryOption["sortByBonus"] = domain.ASC | 271 | queryOption["sortByBonus"] = domain.ASC |
| 249 | } | 272 | } |
| 273 | + return queryOption | ||
| 274 | +} | ||
| 250 | 275 | ||
| 251 | - if partners, e := PartnerInfo.Partners(user.AccessPartnerIds(), queryOption); e == nil { | ||
| 252 | - var array []interface{} | ||
| 253 | - for i := range partners { | ||
| 254 | - mapPartners := make(map[string]interface{}) | ||
| 255 | - p := partners[i] | ||
| 256 | - mapPartners["uid"] = p.Id | ||
| 257 | - mapPartners["uname"] = p.PartnerName | ||
| 258 | - | ||
| 259 | - var joinWays []protocolx.JoinWays | ||
| 260 | - for j := range p.PartnerCategoryInfos { | ||
| 261 | - c := p.PartnerCategoryInfos[j] | ||
| 262 | - if v, ok := mapCategoryInfo[c.Id]; ok { | ||
| 263 | - joinWays = append(joinWays, protocolx.JoinWays{Type: v.Id, Name: v.Name}) | ||
| 264 | - } | ||
| 265 | - } | ||
| 266 | - mapPartners["joinWays"] = joinWays | ||
| 267 | - if p.RegionInfo != nil { | ||
| 268 | - mapPartners["district"] = protocolx.Districts{Id: p.RegionInfo.RegionId, Name: p.RegionInfo.RegionName} | ||
| 269 | - } | ||
| 270 | - mapPartners["cooperationTime"] = p.CooperateTime.Unix() * 1000 | ||
| 271 | - mapPartners["dividend"] = utils.Decimal(p.Bonus) | ||
| 272 | - mapPartners["ordersCount"] = p.Total | ||
| 273 | - mapPartners["ordersMoney"] = utils.Decimal(p.Amount) | ||
| 274 | - array = append(array, mapPartners) | 276 | +func newJoinWays(mapCategoryInfo map[int64]*domain.PartnerCategoryInfo, p *domain.PartnerStatics) []protocolx.JoinWays { |
| 277 | + var joinWays []protocolx.JoinWays | ||
| 278 | + for j := range p.PartnerCategoryInfos { | ||
| 279 | + c := p.PartnerCategoryInfos[j] | ||
| 280 | + if v, ok := mapCategoryInfo[c.Id]; ok { | ||
| 281 | + joinWays = append(joinWays, protocolx.JoinWays{Type: v.Id, Name: v.Name}) | ||
| 275 | } | 282 | } |
| 276 | - return array, nil | ||
| 277 | } | 283 | } |
| 278 | - return nil, nil | 284 | + return joinWays |
| 279 | } | 285 | } |
| @@ -48,8 +48,8 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | @@ -48,8 +48,8 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | ||
| 48 | } | 48 | } |
| 49 | 49 | ||
| 50 | var company *domain.Company | 50 | var company *domain.Company |
| 51 | - var CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 52 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": user.CompanyId}); err != nil { | 51 | + var CompanyRepository, _ = factory.CreateCompanyRepository(transactionContext) |
| 52 | + if company, err = CompanyRepository.FindOne(map[string]interface{}{"id": user.CompanyId}); err != nil { | ||
| 53 | return nil, err | 53 | return nil, err |
| 54 | } | 54 | } |
| 55 | 55 | ||
| @@ -63,7 +63,31 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | @@ -63,7 +63,31 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | ||
| 63 | } | 63 | } |
| 64 | } | 64 | } |
| 65 | 65 | ||
| 66 | + queryOption := newQueryOptionV2(request) | ||
| 67 | + if partners, e := PartnerInfo.Partners(user.AccessPartnerIds(), queryOption); e == nil { | ||
| 68 | + var array []interface{} | ||
| 69 | + for i := range partners { | ||
| 70 | + mapPartners := make(map[string]interface{}) | ||
| 71 | + p := partners[i] | ||
| 72 | + mapPartners["uid"] = p.Id | ||
| 73 | + mapPartners["uname"] = p.PartnerName | ||
| 74 | + mapPartners["joinWays"] = newJoinWays(mapCategoryInfo, p) | ||
| 75 | + mapPartners["dividend"] = utils.Decimal(p.Bonus) | ||
| 76 | + mapPartners["ordersCount"] = p.Total | ||
| 77 | + mapPartners["ordersMoney"] = utils.Decimal(p.Amount) | ||
| 78 | + mapPartners["phone"] = p.Account | ||
| 79 | + mapPartners["company"] = newCompany(company, p) | ||
| 80 | + array = append(array, mapPartners) | ||
| 81 | + } | ||
| 82 | + return array, nil | ||
| 83 | + } | ||
| 84 | + return nil, nil | ||
| 85 | +} | ||
| 86 | + | ||
| 87 | +// 查询参数 | ||
| 88 | +func newQueryOptionV2(request *protocolx.PartnersRequest) map[string]interface{} { | ||
| 66 | queryOption := make(map[string]interface{}) | 89 | queryOption := make(map[string]interface{}) |
| 90 | + | ||
| 67 | if len(request.Districts) > 0 { | 91 | if len(request.Districts) > 0 { |
| 68 | var districts []string | 92 | var districts []string |
| 69 | for i := 0; i < len(request.Districts); i++ { | 93 | for i := 0; i < len(request.Districts); i++ { |
| @@ -84,6 +108,9 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | @@ -84,6 +108,9 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | ||
| 84 | if request.EndTime > 0 { | 108 | if request.EndTime > 0 { |
| 85 | queryOption["endTime"] = request.EndTime / 1000 | 109 | queryOption["endTime"] = request.EndTime / 1000 |
| 86 | } | 110 | } |
| 111 | + if request.Keyword != "" { | ||
| 112 | + queryOption["keyword"] = request.Keyword | ||
| 113 | + } | ||
| 87 | queryOption["limit"] = request.PageSize | 114 | queryOption["limit"] = request.PageSize |
| 88 | queryOption["offset"] = request.PageSize * request.PageIndex | 115 | queryOption["offset"] = request.PageSize * request.PageIndex |
| 89 | 116 | ||
| @@ -91,77 +118,23 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | @@ -91,77 +118,23 @@ func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transaction | ||
| 91 | if request.SortBy != 0 { | 118 | if request.SortBy != 0 { |
| 92 | queryOption["sortByBonus"] = domain.ASC | 119 | queryOption["sortByBonus"] = domain.ASC |
| 93 | } | 120 | } |
| 94 | - | ||
| 95 | - if partners, e := PartnerInfo.Partners(user.AccessPartnerIds(), queryOption); e == nil { | ||
| 96 | - var array []interface{} | ||
| 97 | - for i := range partners { | ||
| 98 | - mapPartners := make(map[string]interface{}) | ||
| 99 | - p := partners[i] | ||
| 100 | - mapPartners["uid"] = p.Id | ||
| 101 | - mapPartners["uname"] = p.PartnerName | ||
| 102 | - | ||
| 103 | - var joinWays []protocolx.JoinWays | ||
| 104 | - for j := range p.PartnerCategoryInfos { | ||
| 105 | - c := p.PartnerCategoryInfos[j] | ||
| 106 | - if v, ok := mapCategoryInfo[c.Id]; ok { | ||
| 107 | - joinWays = append(joinWays, protocolx.JoinWays{Type: v.Id, Name: v.Name}) | ||
| 108 | - } | ||
| 109 | - } | ||
| 110 | - mapPartners["joinWays"] = joinWays | ||
| 111 | - | ||
| 112 | - mapPartners["dividend"] = utils.Decimal(p.Bonus) | ||
| 113 | - mapPartners["ordersCount"] = p.Total | ||
| 114 | - mapPartners["ordersMoney"] = utils.Decimal(p.Amount) | ||
| 115 | - mapPartners["phone"] = p.Account | ||
| 116 | - | ||
| 117 | - partnerCompany := userx.Company{ | ||
| 118 | - Id: company.Id, | ||
| 119 | - Name: company.Name, | ||
| 120 | - Phone: company.Phone, | ||
| 121 | - SerialNo: p.Id, | ||
| 122 | - CooperateTime: p.CooperateTime.Unix() * 1000, | ||
| 123 | - MiniProgram: nil, | ||
| 124 | - District: map[string]interface{}{"id": p.RegionInfo.RegionId, "name": p.RegionInfo.RegionName}, | ||
| 125 | - } | ||
| 126 | - if len(p.Salesman) > 0 { | ||
| 127 | - partnerCompany.Salesman = map[string]interface{}{"uname": p.Salesman[0].Name, "phone": p.Salesman[0].Telephone} | ||
| 128 | - } else { | ||
| 129 | - partnerCompany.Salesman = map[string]interface{}{} | ||
| 130 | - } | ||
| 131 | - mapPartners["company"] = partnerCompany | ||
| 132 | - | ||
| 133 | - array = append(array, mapPartners) | ||
| 134 | - } | ||
| 135 | - return array, nil | ||
| 136 | - } | ||
| 137 | - return nil, nil | 121 | + return queryOption |
| 138 | } | 122 | } |
| 139 | 123 | ||
| 140 | -func funcPartnerCompanyInfo(companyId int64, transactionContext *transaction.TransactionContext) (partnerCompany userx.Company, err error) { | ||
| 141 | - var ( | ||
| 142 | - CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 143 | - company *domain.Company | ||
| 144 | - ) | ||
| 145 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": companyId}); err != nil { | ||
| 146 | - return | 124 | +func newCompany(company *domain.Company, p *domain.PartnerStatics) userx.Company { |
| 125 | + partnerCompany := userx.Company{ | ||
| 126 | + Id: company.Id, | ||
| 127 | + Name: company.Name, | ||
| 128 | + Phone: company.Phone, | ||
| 129 | + SerialNo: p.Id, | ||
| 130 | + CooperateTime: p.CooperateTime.Unix() * 1000, | ||
| 131 | + MiniProgram: nil, | ||
| 132 | + District: map[string]interface{}{"id": p.RegionInfo.RegionId, "name": p.RegionInfo.RegionName}, | ||
| 147 | } | 133 | } |
| 148 | - | ||
| 149 | - partnerCompany = userx.Company{ | ||
| 150 | - Id: company.Id, | ||
| 151 | - Name: company.Name, | ||
| 152 | - Phone: company.Phone, | ||
| 153 | - //SerialNo: partnerInfo.Id, | ||
| 154 | - //CooperateTime: partnerInfo.CooperateTime.Unix() * 1000, | ||
| 155 | - MiniProgram: nil, | ||
| 156 | - //District: map[string]interface{}{"id": partnerInfo.RegionInfo.RegionId, "name": partnerInfo.RegionInfo.RegionName}, | 134 | + if len(p.Salesman) > 0 { |
| 135 | + partnerCompany.Salesman = map[string]interface{}{"uname": p.Salesman[0].Name, "phone": p.Salesman[0].Telephone} | ||
| 136 | + } else { | ||
| 137 | + partnerCompany.Salesman = map[string]interface{}{} | ||
| 157 | } | 138 | } |
| 158 | - | ||
| 159 | - //if len(partnerInfo.Salesman) > 0 { | ||
| 160 | - // u.CooperateCompany.Salesman = map[string]interface{}{"uname": partnerInfo.Salesman[0].Name, "phone": partnerInfo.Salesman[0].Telephone} | ||
| 161 | - //} else { | ||
| 162 | - // u.CooperateCompany.Salesman = map[string]interface{}{} | ||
| 163 | - //} | ||
| 164 | - //rspMap["user"] = u | ||
| 165 | - //rsp = rspMap | ||
| 166 | - return | 139 | + return partnerCompany |
| 167 | } | 140 | } |
| @@ -12,9 +12,9 @@ import ( | @@ -12,9 +12,9 @@ import ( | ||
| 12 | // 分红统计 | 12 | // 分红统计 |
| 13 | func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatisticsRequest) (rsp *protocol.DividendStatisticsResponse, err error) { | 13 | func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatisticsRequest) (rsp *protocol.DividendStatisticsResponse, err error) { |
| 14 | var ( | 14 | var ( |
| 15 | - transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 16 | - OrderBaseResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext) | ||
| 17 | - BusinessBonusRepository, _ = factory.CreateBusinessBonusRepository(transactionContext) | 15 | + transactionContext, _ = factory.CreateTransactionContext(nil) |
| 16 | + OrderBaseResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext) | ||
| 17 | + //BusinessBonusRepository, _ = factory.CreateBusinessBonusRepository(transactionContext) | ||
| 18 | ) | 18 | ) |
| 19 | if err = transactionContext.StartTransaction(); err != nil { | 19 | if err = transactionContext.StartTransaction(); err != nil { |
| 20 | return nil, err | 20 | return nil, err |
| @@ -40,17 +40,17 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis | @@ -40,17 +40,17 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis | ||
| 40 | bonusQuarters := QuartersBonusStatics(orderBetween, 0) | 40 | bonusQuarters := QuartersBonusStatics(orderBetween, 0) |
| 41 | 41 | ||
| 42 | // 业务分红统计 | 42 | // 业务分红统计 |
| 43 | - if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": request.PartnerId, "isDisable": 1}); e == nil { | ||
| 44 | - bonusAll.Receivable += bonus.Bonus | ||
| 45 | - bonusAll.Received += bonus.BonusHas | ||
| 46 | - bonusAll.Outstanding += bonus.BonusNot | ||
| 47 | - if bonus.UpdateAt.Unix() >= (request.StartTime/1000) && bonus.UpdateAt.Unix() < (request.EndTime/1000) { | ||
| 48 | - q := quarter(bonus.UpdateAt) | ||
| 49 | - bonusQuarters[q].Receivable += bonus.Bonus | ||
| 50 | - bonusQuarters[q].Received += bonus.BonusHas | ||
| 51 | - bonusQuarters[q].Outstanding += bonus.BonusNot | ||
| 52 | - } | ||
| 53 | - } | 43 | + //if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": request.PartnerId, "isDisable": 1}); e == nil { |
| 44 | + // bonusAll.Receivable += bonus.Bonus | ||
| 45 | + // bonusAll.Received += bonus.BonusHas | ||
| 46 | + // bonusAll.Outstanding += bonus.BonusNot | ||
| 47 | + // if bonus.UpdateAt.Unix() >= (request.StartTime/1000) && bonus.UpdateAt.Unix() < (request.EndTime/1000) { | ||
| 48 | + // q := quarter(bonus.UpdateAt) | ||
| 49 | + // bonusQuarters[q].Receivable += bonus.Bonus | ||
| 50 | + // bonusQuarters[q].Received += bonus.BonusHas | ||
| 51 | + // bonusQuarters[q].Outstanding += bonus.BonusNot | ||
| 52 | + // } | ||
| 53 | + //} | ||
| 54 | 54 | ||
| 55 | rsp = &protocol.DividendStatisticsResponse{} | 55 | rsp = &protocol.DividendStatisticsResponse{} |
| 56 | rsp.Statistics = protocol.DividendStatistics{ | 56 | rsp.Statistics = protocol.DividendStatistics{ |
| @@ -124,16 +124,17 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | @@ -124,16 +124,17 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | ||
| 124 | rsp = &protocol.DividendOrdersResponse{List: make([]*protocol.DividendOrderListItem, 0)} | 124 | rsp = &protocol.DividendOrdersResponse{List: make([]*protocol.DividendOrderListItem, 0)} |
| 125 | 125 | ||
| 126 | count, orders, err = OrderDao.DividendOrders(&domain.DividendOrdersQueryOption{ | 126 | count, orders, err = OrderDao.DividendOrders(&domain.DividendOrdersQueryOption{ |
| 127 | - OrderTypes: domain.UserOrderTypes(domain.Career), | ||
| 128 | - PartnerId: request.PartnerId, | ||
| 129 | - DetailAction: request.DetailAction, | ||
| 130 | - DividendAction: request.DividendAction, | ||
| 131 | - //IsDisable: "0", | 127 | + OrderTypes: domain.UserOrderTypes(domain.Career), |
| 128 | + PartnerId: request.PartnerId, | ||
| 129 | + DetailAction: request.DetailAction, | ||
| 130 | + DividendAction: request.DividendAction, | ||
| 132 | StartTime: request.StartTime, | 131 | StartTime: request.StartTime, |
| 133 | EndTime: request.EndTime, | 132 | EndTime: request.EndTime, |
| 134 | Offset: request.PageIndex * request.PageSize, | 133 | Offset: request.PageIndex * request.PageSize, |
| 135 | Limit: request.PageSize, | 134 | Limit: request.PageSize, |
| 136 | - SortByUpdateTime: domain.DESC, | 135 | + //SortByUpdateTime: domain.DESC, |
| 136 | + SortByCreateTime: domain.DESC, | ||
| 137 | + JoinWays: request.JoinWays, | ||
| 137 | }) | 138 | }) |
| 138 | if err != nil { | 139 | if err != nil { |
| 139 | return | 140 | return |
| @@ -145,7 +146,7 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | @@ -145,7 +146,7 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | ||
| 145 | item := &protocol.DividendOrderListItem{ | 146 | item := &protocol.DividendOrderListItem{ |
| 146 | Id: o.Id, | 147 | Id: o.Id, |
| 147 | DeliveryNo: o.DeliveryCode, | 148 | DeliveryNo: o.DeliveryCode, |
| 148 | - OrderAmount: s.PlanOrderAmount, //s.OrderAmount(), | 149 | + OrderAmount: s.PlanOrderAmount, |
| 149 | DividendReceivable: utils.Decimal(s.OrderTotalReceivable()), | 150 | DividendReceivable: utils.Decimal(s.OrderTotalReceivable()), |
| 150 | } | 151 | } |
| 151 | rsp.List = append(rsp.List, item) | 152 | rsp.List = append(rsp.List, item) |
| @@ -177,7 +177,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatistic | @@ -177,7 +177,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatistic | ||
| 177 | func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (rsp *protocol.OrderListResponse, err error) { | 177 | func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (rsp *protocol.OrderListResponse, err error) { |
| 178 | var ( | 178 | var ( |
| 179 | transactionContext, _ = factory.CreateTransactionContext(nil) | 179 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| 180 | - OrderResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext) | 180 | + OrderRepository, _ = factory.CreateOrderBaseRepository(transactionContext) |
| 181 | OrderDao, _ = factory.CreateOrderBaseDao(transactionContext) | 181 | OrderDao, _ = factory.CreateOrderBaseDao(transactionContext) |
| 182 | orders []*domain.OrderBase | 182 | orders []*domain.OrderBase |
| 183 | total int64 | 183 | total int64 |
| @@ -197,9 +197,12 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -197,9 +197,12 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
| 197 | queryOption := &domain.OrderQueryOption{ | 197 | queryOption := &domain.OrderQueryOption{ |
| 198 | Limit: request.PageSize, | 198 | Limit: request.PageSize, |
| 199 | Offset: request.PageSize * request.PageIndex, | 199 | Offset: request.PageSize * request.PageIndex, |
| 200 | - SortByUpdateTime: domain.DESC, | 200 | + //SortByUpdateTime: domain.DESC, |
| 201 | + SortByCreateTime: domain.DESC, | ||
| 201 | PartnerId: request.PartnerId, | 202 | PartnerId: request.PartnerId, |
| 202 | PartnerCategoryId: request.JoinWay, | 203 | PartnerCategoryId: request.JoinWay, |
| 204 | + OrderType: request.OrderType, | ||
| 205 | + OrderTypes: request.OrderTypes, | ||
| 203 | } | 206 | } |
| 204 | if request.StartTime > 0 { | 207 | if request.StartTime > 0 { |
| 205 | queryOption.BeginTime = time.Unix(request.StartTime/1000, 0) | 208 | queryOption.BeginTime = time.Unix(request.StartTime/1000, 0) |
| @@ -207,9 +210,7 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -207,9 +210,7 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
| 207 | if request.EndTime > 0 { | 210 | if request.EndTime > 0 { |
| 208 | queryOption.EndTime = time.Unix(request.EndTime/1000, 0) | 211 | queryOption.EndTime = time.Unix(request.EndTime/1000, 0) |
| 209 | } | 212 | } |
| 210 | - queryOption.OrderType = request.OrderType | ||
| 211 | - queryOption.OrderTypes = request.OrderTypes | ||
| 212 | - total, orders, _ = OrderResponsitory.Find(utils.ObjectJsonToMap(queryOption)) | 213 | + total, orders, _ = OrderRepository.Find(utils.ObjectJsonToMap(queryOption)) |
| 213 | if len(orders) != 0 { | 214 | if len(orders) != 0 { |
| 214 | for i := range orders { | 215 | for i := range orders { |
| 215 | item := DomainOrderToOrderListItem(orders[i]) | 216 | item := DomainOrderToOrderListItem(orders[i]) |
| @@ -221,12 +222,11 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -221,12 +222,11 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
| 221 | } | 222 | } |
| 222 | } | 223 | } |
| 223 | 224 | ||
| 224 | - // 查询统计数据 | 225 | + // 【特殊处理1】 查询第0页时,需要查询累计实发订单数 |
| 225 | if request.PageIndex == 0 { | 226 | if request.PageIndex == 0 { |
| 226 | var ( | 227 | var ( |
| 227 | cumulativeQuantity int | 228 | cumulativeQuantity int |
| 228 | ) | 229 | ) |
| 229 | - //累计实发订单 | ||
| 230 | cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ | 230 | cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ |
| 231 | EndTime: time.Now().Unix() * 1000, | 231 | EndTime: time.Now().Unix() * 1000, |
| 232 | OrderTypes: domain.UserOrderTypes(domain.Career), | 232 | OrderTypes: domain.UserOrderTypes(domain.Career), |
| @@ -235,7 +235,7 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -235,7 +235,7 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
| 235 | }) | 235 | }) |
| 236 | rsp.Total = cumulativeQuantity | 236 | rsp.Total = cumulativeQuantity |
| 237 | } | 237 | } |
| 238 | - // 今天累计数量特殊处理,不需要返回所有订单总数(因为要复用rsp.Total字段) | 238 | + //【特殊处理2】 今天累计数量特殊处理 当前查询时间段内所有订单总数(复用rsp.Total字段) |
| 239 | if request.StartTime > 0 && request.EndTime > 0 { | 239 | if request.StartTime > 0 && request.EndTime > 0 { |
| 240 | zero := time.Time(xtime.XTime(time.Now()).DayBefore(0)).Unix() | 240 | zero := time.Time(xtime.XTime(time.Now()).DayBefore(0)).Unix() |
| 241 | if request.StartTime == (zero * 1000) { | 241 | if request.StartTime == (zero * 1000) { |
| @@ -249,13 +249,17 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -249,13 +249,17 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
| 249 | func DomainOrderToOrderListItem(order *domain.OrderBase) *protocol.OrderListItem { | 249 | func DomainOrderToOrderListItem(order *domain.OrderBase) *protocol.OrderListItem { |
| 250 | bonusStatic := order.OrderBonusStatic() | 250 | bonusStatic := order.OrderBonusStatic() |
| 251 | return &protocol.OrderListItem{ | 251 | return &protocol.OrderListItem{ |
| 252 | - Id: order.Id, | ||
| 253 | - OrderType: order.OrderType, | ||
| 254 | - OrderNo: order.OrderCode, | ||
| 255 | - DeliveryNo: order.DeliveryCode, | ||
| 256 | - OrderAmount: order.PlanOrderAmount, | ||
| 257 | - UpdateTime: order.UpdateTime.Unix() * 1000, | ||
| 258 | - MyDividend: bonusStatic.OrderTotalReceivable(), | ||
| 259 | - IsRead: order.IsRead(), | 252 | + Id: order.Id, |
| 253 | + OrderType: order.OrderType, | ||
| 254 | + OrderNo: order.OrderCode, | ||
| 255 | + DeliveryNo: order.DeliveryCode, | ||
| 256 | + OrderDistrict: map[string]interface{}{ | ||
| 257 | + "id": order.RegionInfo.RegionId, | ||
| 258 | + "name": order.RegionInfo.RegionName, | ||
| 259 | + }, | ||
| 260 | + OrderAmount: order.PlanOrderAmount, | ||
| 261 | + UpdateTime: order.UpdateTime.Unix() * 1000, | ||
| 262 | + MyDividend: bonusStatic.OrderTotalReceivable(), | ||
| 263 | + IsRead: order.IsRead(), | ||
| 260 | } | 264 | } |
| 261 | } | 265 | } |
| 1 | package order | 1 | package order |
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | + "github.com/tiptok/gocomm/sync/task" | ||
| 4 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" | 5 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" |
| 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/utils" | 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" |
| @@ -23,9 +24,8 @@ func StatisticsV2(header *protocol.RequestHeader, request *protocol.OrderStatist | @@ -23,9 +24,8 @@ func StatisticsV2(header *protocol.RequestHeader, request *protocol.OrderStatist | ||
| 23 | rsp = &protocol.OrderStatisticsResponse{} | 24 | rsp = &protocol.OrderStatisticsResponse{} |
| 24 | 25 | ||
| 25 | //事业分红/业务分红 | 26 | //事业分红/业务分红 |
| 26 | - var total float64 //,developBonus,appBonus,careerBonus, businessBonus, | 27 | + var total float64 |
| 27 | if bonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: request.PartnerId, OrderTypes: domain.UserOrderTypes(domain.Career)}); e == nil { | 28 | if bonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: request.PartnerId, OrderTypes: domain.UserOrderTypes(domain.Career)}); e == nil { |
| 28 | - //careerBonus = bonus.Bonus | ||
| 29 | total += bonus.Bonus | 29 | total += bonus.Bonus |
| 30 | } | 30 | } |
| 31 | calcOrderStatic := func(catId int, total float64) protocol.OrderStatic { | 31 | calcOrderStatic := func(catId int, total float64) protocol.OrderStatic { |
| @@ -55,10 +55,12 @@ func StatisticsV2(header *protocol.RequestHeader, request *protocol.OrderStatist | @@ -55,10 +55,12 @@ func StatisticsV2(header *protocol.RequestHeader, request *protocol.OrderStatist | ||
| 55 | CumulativeMoney: utils.Decimal(cumulativeMoney), | 55 | CumulativeMoney: utils.Decimal(cumulativeMoney), |
| 56 | } | 56 | } |
| 57 | } | 57 | } |
| 58 | - rsp.Career = calcOrderStatic(domain.Career, total) | ||
| 59 | - rsp.Business = calcOrderStatic(domain.Business, total) | ||
| 60 | - rsp.Develop = calcOrderStatic(domain.Develop, total) | ||
| 61 | - rsp.App = calcOrderStatic(domain.App, total) | 58 | + task.Parallel( |
| 59 | + func() { rsp.Career = calcOrderStatic(domain.Career, total) }, | ||
| 60 | + func() { rsp.Business = calcOrderStatic(domain.Business, total) }, | ||
| 61 | + func() { rsp.Develop = calcOrderStatic(domain.Develop, total) }, | ||
| 62 | + func() { rsp.App = calcOrderStatic(domain.App, total) }, | ||
| 63 | + ) | ||
| 62 | 64 | ||
| 63 | err = transactionContext.CommitTransaction() | 65 | err = transactionContext.CommitTransaction() |
| 64 | return | 66 | return |
| @@ -12,6 +12,7 @@ import ( | @@ -12,6 +12,7 @@ import ( | ||
| 12 | protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/partner" | 12 | protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/partner" |
| 13 | ) | 13 | ) |
| 14 | 14 | ||
| 15 | +// 模块已废弃 | ||
| 15 | func Detail(header *protocol.RequestHeader, request *protocolx.DetailRequest) (rsp *protocolx.DetailResponse, err error) { | 16 | func Detail(header *protocol.RequestHeader, request *protocolx.DetailRequest) (rsp *protocolx.DetailResponse, err error) { |
| 16 | var ( | 17 | var ( |
| 17 | transactionContext, _ = factory.CreateTransactionContext(nil) | 18 | transactionContext, _ = factory.CreateTransactionContext(nil) |
| @@ -22,14 +22,14 @@ import ( | @@ -22,14 +22,14 @@ import ( | ||
| 22 | //用户信息 | 22 | //用户信息 |
| 23 | func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) (rsp *protocol.UserInfoResponse, err error) { | 23 | func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) (rsp *protocol.UserInfoResponse, err error) { |
| 24 | var ( | 24 | var ( |
| 25 | - partnerInfo *domain.PartnerInfo | ||
| 26 | - transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 27 | - CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 28 | - PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) | ||
| 29 | - UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | ||
| 30 | - ImInfoRepository, _ = factory.CreateImInfoRepository(transactionContext) | ||
| 31 | - company *domain.Company | ||
| 32 | - user *domain.Users | 25 | + partnerInfo *domain.PartnerInfo |
| 26 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 27 | + CompanyRepository, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 28 | + PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) | ||
| 29 | + UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | ||
| 30 | + ImInfoRepository, _ = factory.CreateImInfoRepository(transactionContext) | ||
| 31 | + company *domain.Company | ||
| 32 | + user *domain.Users | ||
| 33 | ) | 33 | ) |
| 34 | if err = transactionContext.StartTransaction(); err != nil { | 34 | if err = transactionContext.StartTransaction(); err != nil { |
| 35 | return nil, err | 35 | return nil, err |
| @@ -44,7 +44,7 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) | @@ -44,7 +44,7 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) | ||
| 44 | err = protocol.NewErrWithMessage(502, err) //账号不存在 | 44 | err = protocol.NewErrWithMessage(502, err) //账号不存在 |
| 45 | return | 45 | return |
| 46 | } | 46 | } |
| 47 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { | 47 | + if company, err = CompanyRepository.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { |
| 48 | return | 48 | return |
| 49 | } | 49 | } |
| 50 | rsp.User = protocol.User{ | 50 | rsp.User = protocol.User{ |
| @@ -72,7 +72,7 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) | @@ -72,7 +72,7 @@ func UserInfo(header *protocol.RequestHeader, request *protocol.UserInfoRequest) | ||
| 72 | err = protocol.NewErrWithMessage(502, err) //账号不存在 | 72 | err = protocol.NewErrWithMessage(502, err) //账号不存在 |
| 73 | return | 73 | return |
| 74 | } | 74 | } |
| 75 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { | 75 | + if company, err = CompanyRepository.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { |
| 76 | return | 76 | return |
| 77 | } | 77 | } |
| 78 | rsp.User = protocol.User{ | 78 | rsp.User = protocol.User{ |
| @@ -188,13 +188,13 @@ func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePass | @@ -188,13 +188,13 @@ func ChangePassword(header *protocol.RequestHeader, request *protocol.ChangePass | ||
| 188 | 188 | ||
| 189 | func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoRequest) (rsp interface{}, err error) { | 189 | func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoRequest) (rsp interface{}, err error) { |
| 190 | var ( | 190 | var ( |
| 191 | - partnerInfo *domain.PartnerInfo | ||
| 192 | - transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 193 | - CompanyResponsitory, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 194 | - PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) | ||
| 195 | - UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | ||
| 196 | - company *domain.Company | ||
| 197 | - user *domain.Users | 191 | + partnerInfo *domain.PartnerInfo |
| 192 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
| 193 | + CompanyRepository, _ = factory.CreateCompanyRepository(transactionContext) | ||
| 194 | + PartnerInfoService, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext) | ||
| 195 | + UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | ||
| 196 | + company *domain.Company | ||
| 197 | + user *domain.Users | ||
| 198 | ) | 198 | ) |
| 199 | if err = transactionContext.StartTransaction(); err != nil { | 199 | if err = transactionContext.StartTransaction(); err != nil { |
| 200 | return nil, err | 200 | return nil, err |
| @@ -209,7 +209,7 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | @@ -209,7 +209,7 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | ||
| 209 | err = protocol.NewErrWithMessage(502, err) //账号不存在 | 209 | err = protocol.NewErrWithMessage(502, err) //账号不存在 |
| 210 | return | 210 | return |
| 211 | } | 211 | } |
| 212 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { | 212 | + if company, err = CompanyRepository.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { |
| 213 | return | 213 | return |
| 214 | } | 214 | } |
| 215 | var miniProgram map[string]interface{} | 215 | var miniProgram map[string]interface{} |
| @@ -253,7 +253,7 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | @@ -253,7 +253,7 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | ||
| 253 | err = protocol.NewErrWithMessage(502, err) //账号不存在 | 253 | err = protocol.NewErrWithMessage(502, err) //账号不存在 |
| 254 | return | 254 | return |
| 255 | } | 255 | } |
| 256 | - if company, err = CompanyResponsitory.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { | 256 | + if company, err = CompanyRepository.FindOne(map[string]interface{}{"id": header.CompanyId}); err != nil { |
| 257 | return | 257 | return |
| 258 | } | 258 | } |
| 259 | rspMap["user"] = userx.User{ | 259 | rspMap["user"] = userx.User{ |
| @@ -2,11 +2,11 @@ package constant | @@ -2,11 +2,11 @@ package constant | ||
| 2 | 2 | ||
| 3 | import "os" | 3 | import "os" |
| 4 | 4 | ||
| 5 | -var POSTGRESQL_DB_NAME = "partner_dev" //partner | ||
| 6 | -var POSTGRESQL_USER = "postgres" // | ||
| 7 | -var POSTGRESQL_PASSWORD = "eagle1010" //pgsql@123 | ||
| 8 | -var POSTGRESQL_HOST = "114.55.200.59" //127.0.0.1 | ||
| 9 | -var POSTGRESQL_PORT = "31543" //5432 | 5 | +var POSTGRESQL_DB_NAME = "partner_dev" //partner_test/partner_dev |
| 6 | +var POSTGRESQL_USER = "postgres" //postgres | ||
| 7 | +var POSTGRESQL_PASSWORD = "eagle1010" //pgsql@123/1993618jack | ||
| 8 | +var POSTGRESQL_HOST = "114.55.200.59" //127.0.0.1/114.55.200.59 | ||
| 9 | +var POSTGRESQL_PORT = "31543" //5432/31543 | ||
| 10 | var DISABLE_CREATE_TABLE = true | 10 | var DISABLE_CREATE_TABLE = true |
| 11 | var DISABLE_SQL_GENERATE_PRINT = false | 11 | var DISABLE_SQL_GENERATE_PRINT = false |
| 12 | 12 |
| @@ -4,7 +4,7 @@ import "os" | @@ -4,7 +4,7 @@ import "os" | ||
| 4 | 4 | ||
| 5 | var REDIS_HOST = "127.0.0.1" | 5 | var REDIS_HOST = "127.0.0.1" |
| 6 | var REDIS_PORT = "6379" | 6 | var REDIS_PORT = "6379" |
| 7 | -var REDIS_AUTH = "123456" | 7 | +var REDIS_AUTH = "" |
| 8 | 8 | ||
| 9 | func init() { | 9 | func init() { |
| 10 | if os.Getenv("REDIS_HOST") != "" { | 10 | if os.Getenv("REDIS_HOST") != "" { |
| @@ -2,6 +2,7 @@ package domain | @@ -2,6 +2,7 @@ package domain | ||
| 2 | 2 | ||
| 3 | import ( | 3 | import ( |
| 4 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" | 4 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" |
| 5 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/company" | ||
| 5 | "time" | 6 | "time" |
| 6 | ) | 7 | ) |
| 7 | 8 | ||
| @@ -145,8 +146,10 @@ func (m *OrderBase) OrderBonusStatic() *OrderStatics { | @@ -145,8 +146,10 @@ func (m *OrderBase) OrderBonusStatic() *OrderStatics { | ||
| 145 | } | 146 | } |
| 146 | 147 | ||
| 147 | type OrderQueryOption struct { | 148 | type OrderQueryOption struct { |
| 148 | - PartnerId int64 `json:"partnerId,omitempty"` | ||
| 149 | - OrderType int `json:"orderType,omitempty"` | 149 | + PartnerId int64 `json:"partnerId,omitempty"` |
| 150 | + // 订单类型 单个 | ||
| 151 | + OrderType int `json:"orderType,omitempty"` | ||
| 152 | + // 订单类型 多个 | ||
| 150 | OrderTypes []int `json:"orderTypes,omitempty"` | 153 | OrderTypes []int `json:"orderTypes,omitempty"` |
| 151 | OrderStatus int `json:"orderStatus,omitempty"` | 154 | OrderStatus int `json:"orderStatus,omitempty"` |
| 152 | BeginTime time.Time `json:"beginTime,omitempty"` | 155 | BeginTime time.Time `json:"beginTime,omitempty"` |
| @@ -171,6 +174,8 @@ type DividendOrdersQueryOption struct { | @@ -171,6 +174,8 @@ type DividendOrdersQueryOption struct { | ||
| 171 | Offset int `json:"offset,omitempty"` | 174 | Offset int `json:"offset,omitempty"` |
| 172 | Limit int `json:"limit,omitempty"` | 175 | Limit int `json:"limit,omitempty"` |
| 173 | SortByUpdateTime string `json:"sortByUpdateTime,omitempty"` | 176 | SortByUpdateTime string `json:"sortByUpdateTime,omitempty"` |
| 177 | + SortByCreateTime string `json:"sortByCreateTime,omitempty"` | ||
| 178 | + JoinWays []*company.JoinWays `json:"joinWays,omitempty"` // 合伙类型 | ||
| 174 | } | 179 | } |
| 175 | 180 | ||
| 176 | //买家 | 181 | //买家 |
| @@ -32,6 +32,7 @@ type OrderBonusQuery struct { | @@ -32,6 +32,7 @@ type OrderBonusQuery struct { | ||
| 32 | OrderType int `json:"orderType,omitempty"` | 32 | OrderType int `json:"orderType,omitempty"` |
| 33 | OrderTypes []int `json:"orderTypes,omitempty"` | 33 | OrderTypes []int `json:"orderTypes,omitempty"` |
| 34 | PartnerCategoryId int `json:"partnerCategoryId,omitempty"` //订单所属类型 | 34 | PartnerCategoryId int `json:"partnerCategoryId,omitempty"` //订单所属类型 |
| 35 | + //IsGroupByPartnerCategoryId bool `json:"isGroupByPartnerCategoryId,omitempty"` | ||
| 35 | } | 36 | } |
| 36 | 37 | ||
| 37 | // 订单分红统计-应答 | 38 | // 订单分红统计-应答 |
| @@ -44,4 +45,5 @@ type OrderBonusResponse struct { | @@ -44,4 +45,5 @@ type OrderBonusResponse struct { | ||
| 44 | BonusExpense float64 `json:"bonusExpense,omitempty"` | 45 | BonusExpense float64 `json:"bonusExpense,omitempty"` |
| 45 | // 订单金额 | 46 | // 订单金额 |
| 46 | TotalOrderAmount float64 `json:"totalOrderAmount"` | 47 | TotalOrderAmount float64 `json:"totalOrderAmount"` |
| 48 | + //PartnerCategory *PartnerCategoryInfo | ||
| 47 | } | 49 | } |
| @@ -7,6 +7,7 @@ import ( | @@ -7,6 +7,7 @@ import ( | ||
| 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models" | 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/models" |
| 8 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" | 8 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/pg/transaction" |
| 9 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" | 9 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" |
| 10 | + "strings" | ||
| 10 | "time" | 11 | "time" |
| 11 | ) | 12 | ) |
| 12 | 13 | ||
| @@ -62,6 +63,7 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | @@ -62,6 +63,7 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | ||
| 62 | q.ColumnExpr("sum((case when use_order_count>=0 then use_partner_bonus else plan_partner_bonus end)) bonus") | 63 | q.ColumnExpr("sum((case when use_order_count>=0 then use_partner_bonus else plan_partner_bonus end)) bonus") |
| 63 | q.ColumnExpr("sum(partner_bonus_expense) bonus_expense") | 64 | q.ColumnExpr("sum(partner_bonus_expense) bonus_expense") |
| 64 | q.ColumnExpr("sum(plan_order_amount) total_order_amount") | 65 | q.ColumnExpr("sum(plan_order_amount) total_order_amount") |
| 66 | + //q.ColumnExpr("partner_category") | ||
| 65 | if option.PartnerId > 0 { | 67 | if option.PartnerId > 0 { |
| 66 | q.Where(`"order_base".partner_id =?`, option.PartnerId) | 68 | q.Where(`"order_base".partner_id =?`, option.PartnerId) |
| 67 | } | 69 | } |
| @@ -80,6 +82,9 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | @@ -80,6 +82,9 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | ||
| 80 | if option.PartnerCategoryId > 0 { | 82 | if option.PartnerCategoryId > 0 { |
| 81 | q.Where(`"order_base".partner_category @>'{"id":?}'`, option.PartnerCategoryId) | 83 | q.Where(`"order_base".partner_category @>'{"id":?}'`, option.PartnerCategoryId) |
| 82 | } | 84 | } |
| 85 | + //if option.IsGroupByPartnerCategoryId{ | ||
| 86 | + // q.Group(`partner_category`) | ||
| 87 | + //} | ||
| 83 | err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense, &rsp.TotalOrderAmount) | 88 | err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense, &rsp.TotalOrderAmount) |
| 84 | return | 89 | return |
| 85 | } | 90 | } |
| @@ -105,6 +110,20 @@ func (dao *OrderBaseDao) DividendOrders(option *domain.DividendOrdersQueryOption | @@ -105,6 +110,20 @@ func (dao *OrderBaseDao) DividendOrders(option *domain.DividendOrdersQueryOption | ||
| 105 | if option.EndTime > 0 { | 110 | if option.EndTime > 0 { |
| 106 | q.Where(`"order_base".create_time <?`, time.Unix(option.EndTime/1000, 0)) | 111 | q.Where(`"order_base".create_time <?`, time.Unix(option.EndTime/1000, 0)) |
| 107 | } | 112 | } |
| 113 | + if len(option.JoinWays) > 0 { | ||
| 114 | + var joinWays []int64 | ||
| 115 | + for i := 0; i < len(option.JoinWays); i++ { | ||
| 116 | + joinWays = append(joinWays, option.JoinWays[i].Type) | ||
| 117 | + } | ||
| 118 | + var filterJoinWays = strings.Builder{} | ||
| 119 | + for i := range joinWays { | ||
| 120 | + filterJoinWays.WriteString(fmt.Sprintf(` partner_category @>'{"id":%v}'`, joinWays[i])) | ||
| 121 | + if i != (len(joinWays) - 1) { | ||
| 122 | + filterJoinWays.WriteString(" or ") | ||
| 123 | + } | ||
| 124 | + } | ||
| 125 | + q.Where(filterJoinWays.String()) | ||
| 126 | + } | ||
| 108 | //if len(option.IsDisable) > 0 { | 127 | //if len(option.IsDisable) > 0 { |
| 109 | // value, _ := strconv.Atoi(option.IsDisable) | 128 | // value, _ := strconv.Atoi(option.IsDisable) |
| 110 | // q.Where(`"order_base".is_disable =?`, value) | 129 | // q.Where(`"order_base".is_disable =?`, value) |
| @@ -125,7 +144,11 @@ func (dao *OrderBaseDao) DividendOrders(option *domain.DividendOrdersQueryOption | @@ -125,7 +144,11 @@ func (dao *OrderBaseDao) DividendOrders(option *domain.DividendOrdersQueryOption | ||
| 125 | q.Offset(option.Offset) | 144 | q.Offset(option.Offset) |
| 126 | } | 145 | } |
| 127 | if len(option.SortByUpdateTime) > 0 { | 146 | if len(option.SortByUpdateTime) > 0 { |
| 128 | - q.Order(fmt.Sprintf("order_base.id %v", option.SortByUpdateTime)) | 147 | + //q.Order(fmt.Sprintf("order_base.id %v", option.SortByUpdateTime)) |
| 148 | + q.Order(fmt.Sprintf("order_base.update_time %v", option.SortByUpdateTime)) | ||
| 149 | + } | ||
| 150 | + if len(option.SortByCreateTime) > 0 { | ||
| 151 | + q.Order(fmt.Sprintf("order_base.create_time %v", option.SortByCreateTime)) | ||
| 129 | } | 152 | } |
| 130 | count, err = q.Distinct().SelectAndCount() | 153 | count, err = q.Distinct().SelectAndCount() |
| 131 | for i := range orders { | 154 | for i := range orders { |
| @@ -96,6 +96,9 @@ func (dao *PartnerInfoDao) Partners(partnerIds []int64, queryOptions map[string] | @@ -96,6 +96,9 @@ func (dao *PartnerInfoDao) Partners(partnerIds []int64, queryOptions map[string] | ||
| 96 | if endTime, ok := queryOptions["endTime"]; ok { | 96 | if endTime, ok := queryOptions["endTime"]; ok { |
| 97 | filterPartners.WriteString(fmt.Sprintf(" and cooperate_time<to_timestamp(%v)", endTime)) | 97 | filterPartners.WriteString(fmt.Sprintf(" and cooperate_time<to_timestamp(%v)", endTime)) |
| 98 | } | 98 | } |
| 99 | + if keyword, ok := queryOptions["keyword"]; ok && keyword.(string) != "" { | ||
| 100 | + filterPartners.WriteString(fmt.Sprintf(` and partner_name LIKE '%v'`, fmt.Sprintf("%%%s%%", "%%" + keyword.(string) + "%"))) | ||
| 101 | + } | ||
| 99 | 102 | ||
| 100 | sql.WriteString(fmt.Sprintf(` | 103 | sql.WriteString(fmt.Sprintf(` |
| 101 | SELECT A.*,B.total,B.amount,COALESCE(B.bonus,0) bonus,B.bonus_expense | 104 | SELECT A.*,B.total,B.amount,COALESCE(B.bonus,0) bonus,B.bonus_expense |
| @@ -23,7 +23,8 @@ type PgLoginService struct { | @@ -23,7 +23,8 @@ type PgLoginService struct { | ||
| 23 | PartnerInfo []*domain.PartnerInfo | 23 | PartnerInfo []*domain.PartnerInfo |
| 24 | Users []*domain.Users | 24 | Users []*domain.Users |
| 25 | transactionContext *transaction.TransactionContext | 25 | transactionContext *transaction.TransactionContext |
| 26 | - AvailableCompany bool | 26 | + // 标识:登录的账号信息是否有可用的公司, true:有 false:没有 |
| 27 | + HasAvailableCompany bool | ||
| 27 | } | 28 | } |
| 28 | 29 | ||
| 29 | func (svr *PgLoginService) Init(phone string) (err error) { | 30 | func (svr *PgLoginService) Init(phone string) (err error) { |
| @@ -166,7 +167,7 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { | @@ -166,7 +167,7 @@ func (svr *PgLoginService) PartnerStaticInfo() (interface{}, error) { | ||
| 166 | companys = append(companys, item) | 167 | companys = append(companys, item) |
| 167 | } | 168 | } |
| 168 | if len(companys) > 0 { | 169 | if len(companys) > 0 { |
| 169 | - svr.AvailableCompany = true | 170 | + svr.HasAvailableCompany = true |
| 170 | } | 171 | } |
| 171 | 172 | ||
| 172 | response["companys"] = companys | 173 | response["companys"] = companys |
| @@ -218,7 +219,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { | @@ -218,7 +219,7 @@ func (svr *PgLoginService) ManagerStaticInfo() (interface{}, error) { | ||
| 218 | companys = append(companys, item) | 219 | companys = append(companys, item) |
| 219 | } | 220 | } |
| 220 | if len(companys) > 0 { | 221 | if len(companys) > 0 { |
| 221 | - svr.AvailableCompany = true | 222 | + svr.HasAvailableCompany = true |
| 222 | } | 223 | } |
| 223 | 224 | ||
| 224 | response["companys"] = companys | 225 | response["companys"] = companys |
| @@ -341,7 +342,7 @@ type joinWay struct { | @@ -341,7 +342,7 @@ type joinWay struct { | ||
| 341 | 342 | ||
| 342 | func NewPgLoginService(ctx *transaction.TransactionContext) *PgLoginService { | 343 | func NewPgLoginService(ctx *transaction.TransactionContext) *PgLoginService { |
| 343 | return &PgLoginService{ | 344 | return &PgLoginService{ |
| 344 | - transactionContext: ctx, | ||
| 345 | - AvailableCompany: false, | 345 | + transactionContext: ctx, |
| 346 | + HasAvailableCompany: false, | ||
| 346 | } | 347 | } |
| 347 | } | 348 | } |
| @@ -77,8 +77,7 @@ func (repository *OrderBaseRepository) Find(queryOptions map[string]interface{}) | @@ -77,8 +77,7 @@ func (repository *OrderBaseRepository) Find(queryOptions map[string]interface{}) | ||
| 77 | var OrderBaseModels []*models.OrderBase | 77 | var OrderBaseModels []*models.OrderBase |
| 78 | OrderBases := make([]*domain.OrderBase, 0) | 78 | OrderBases := make([]*domain.OrderBase, 0) |
| 79 | query := NewQuery(tx.Model(&OrderBaseModels), queryOptions) | 79 | query := NewQuery(tx.Model(&OrderBaseModels), queryOptions) |
| 80 | - query. | ||
| 81 | - SetWhere(`"order_base".partner_id= ?`, "partnerId"). | 80 | + query.SetWhere(`"order_base".partner_id= ?`, "partnerId"). |
| 82 | SetWhere(`"order_base".order_type= ?`, "orderType"). | 81 | SetWhere(`"order_base".order_type= ?`, "orderType"). |
| 83 | SetWhere(`"order_base".create_time >= ?`, "beginTime"). | 82 | SetWhere(`"order_base".create_time >= ?`, "beginTime"). |
| 84 | SetWhere(`"order_base".create_time < ?`, "endTime"). | 83 | SetWhere(`"order_base".create_time < ?`, "endTime"). |
| @@ -183,7 +183,7 @@ func (this *AuthController) CenterCompanys() { | @@ -183,7 +183,7 @@ func (this *AuthController) CenterCompanys() { | ||
| 183 | return | 183 | return |
| 184 | } | 184 | } |
| 185 | header := this.GetRequestHeader(this.Ctx) | 185 | header := this.GetRequestHeader(this.Ctx) |
| 186 | - data, err := auth.CenterCompanys(header, request) | 186 | + data, err := auth.CompaniesLogin(header, request) |
| 187 | if err != nil { | 187 | if err != nil { |
| 188 | log.Error(err) | 188 | log.Error(err) |
| 189 | } | 189 | } |
| @@ -211,7 +211,7 @@ func (this *AuthController) Companys() { | @@ -211,7 +211,7 @@ func (this *AuthController) Companys() { | ||
| 211 | return | 211 | return |
| 212 | } | 212 | } |
| 213 | header := this.GetRequestHeader(this.Ctx) | 213 | header := this.GetRequestHeader(this.Ctx) |
| 214 | - data, err := auth.Companys(header, request) | 214 | + data, err := auth.CompaniesLoginByCredential(header, request) |
| 215 | if err != nil { | 215 | if err != nil { |
| 216 | log.Error(err) | 216 | log.Error(err) |
| 217 | } | 217 | } |
| @@ -26,8 +26,8 @@ func CreateResponseLogFilter(logger *logs.BeeLogger) func(ctx *context.Context) | @@ -26,8 +26,8 @@ func CreateResponseLogFilter(logger *logs.BeeLogger) func(ctx *context.Context) | ||
| 26 | return func(ctx *context.Context) { | 26 | return func(ctx *context.Context) { |
| 27 | requestId := ctx.Request.Header.Get("requestId") | 27 | requestId := ctx.Request.Header.Get("requestId") |
| 28 | body, _ := json.Marshal(ctx.Input.GetData("outputData")) | 28 | body, _ := json.Marshal(ctx.Input.GetData("outputData")) |
| 29 | - if len(body) > 1000 { | ||
| 30 | - body = body[:1000] | 29 | + if len(body) > 10000 { |
| 30 | + body = body[:10000] | ||
| 31 | } | 31 | } |
| 32 | logger.Debug(fmt.Sprintf("<====Send RequestId:%v BodyData:%s", requestId, body)) | 32 | logger.Debug(fmt.Sprintf("<====Send RequestId:%v BodyData:%s", requestId, body)) |
| 33 | } | 33 | } |
| @@ -29,7 +29,7 @@ type LoginResponse struct { | @@ -29,7 +29,7 @@ type LoginResponse struct { | ||
| 29 | 29 | ||
| 30 | type LoginRequestV2 struct { | 30 | type LoginRequestV2 struct { |
| 31 | Cid int `json:"cid"` | 31 | Cid int `json:"cid"` |
| 32 | - IdType int `json:"idType"` | 32 | + IdType int `json:"idType"` // 用户类型 1:合伙人 2:高管 |
| 33 | Credentials string `json:"credentials"` // 登录类型 1:密码 2:验证码 | 33 | Credentials string `json:"credentials"` // 登录类型 1:密码 2:验证码 |
| 34 | ClientId string `json:"clientId"` | 34 | ClientId string `json:"clientId"` |
| 35 | } | 35 | } |
| @@ -15,4 +15,6 @@ type PartnersRequest struct { | @@ -15,4 +15,6 @@ type PartnersRequest struct { | ||
| 15 | JoinWays []JoinWays `json:"joinWays"` | 15 | JoinWays []JoinWays `json:"joinWays"` |
| 16 | // 分红排序(0.从多到少 1.从少到多) | 16 | // 分红排序(0.从多到少 1.从少到多) |
| 17 | SortBy int `json:"sortBy"` | 17 | SortBy int `json:"sortBy"` |
| 18 | + // 合伙人姓名 | ||
| 19 | + Keyword string `json:"keyword"` | ||
| 18 | } | 20 | } |
| 1 | package protocol | 1 | package protocol |
| 2 | 2 | ||
| 3 | +import "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/company" | ||
| 4 | + | ||
| 3 | const ( | 5 | const ( |
| 4 | BonusTotal = iota //0 累计分红 | 6 | BonusTotal = iota //0 累计分红 |
| 5 | BonusOutstanding //1 分红支出 | 7 | BonusOutstanding //1 分红支出 |
| @@ -38,6 +40,9 @@ type DividendOrdersRequest struct { | @@ -38,6 +40,9 @@ type DividendOrdersRequest struct { | ||
| 38 | StartTime int64 `json:"startTime"` | 40 | StartTime int64 `json:"startTime"` |
| 39 | EndTime int64 `json:"endTime" valid:"Required"` | 41 | EndTime int64 `json:"endTime" valid:"Required"` |
| 40 | 42 | ||
| 43 | + // 合作类型(空或不传,即所有类型) | ||
| 44 | + JoinWays []*company.JoinWays `json:"joinWays"` | ||
| 45 | + | ||
| 41 | PageIndex int `json:"pageIndex,omitempty"` | 46 | PageIndex int `json:"pageIndex,omitempty"` |
| 42 | PageSize int `json:"pageSize,omitempty"` | 47 | PageSize int `json:"pageSize,omitempty"` |
| 43 | 48 |
| @@ -24,6 +24,7 @@ type OrderDetailResponse struct { | @@ -24,6 +24,7 @@ type OrderDetailResponse struct { | ||
| 24 | // MyDividend float64 `json:"myDividend"` | 24 | // MyDividend float64 `json:"myDividend"` |
| 25 | // MyDividendPercent float64 `json:"myDividendPercent"` | 25 | // MyDividendPercent float64 `json:"myDividendPercent"` |
| 26 | //} | 26 | //} |
| 27 | + | ||
| 27 | type OrderDetail struct { | 28 | type OrderDetail struct { |
| 28 | Id int64 `json:"id"` | 29 | Id int64 `json:"id"` |
| 29 | OrderNo string `json:"orderNo"` //订单号 | 30 | OrderNo string `json:"orderNo"` //订单号 |
| @@ -36,6 +37,7 @@ type OrderDetail struct { | @@ -36,6 +37,7 @@ type OrderDetail struct { | ||
| 36 | Products interface{} `json:"products"` | 37 | Products interface{} `json:"products"` |
| 37 | Total interface{} `json:"total"` | 38 | Total interface{} `json:"total"` |
| 38 | } | 39 | } |
| 40 | + | ||
| 39 | type Customer struct { | 41 | type Customer struct { |
| 40 | Uname string `json:"uname"` | 42 | Uname string `json:"uname"` |
| 41 | Phone string `json:"phone"` | 43 | Phone string `json:"phone"` |
| @@ -110,8 +112,11 @@ type OrderListItem struct { | @@ -110,8 +112,11 @@ type OrderListItem struct { | ||
| 110 | OrderStatus int `json:"-"` | 112 | OrderStatus int `json:"-"` |
| 111 | //实际订单数量 | 113 | //实际订单数量 |
| 112 | OrderActualCount int `json:"-"` | 114 | OrderActualCount int `json:"-"` |
| 115 | + // 订单区域 | ||
| 116 | + OrderDistrict map[string]interface{} `json:"orderDistrict"` | ||
| 113 | //订单金额 | 117 | //订单金额 |
| 114 | OrderAmount float64 `json:"orderAmount"` | 118 | OrderAmount float64 `json:"orderAmount"` |
| 119 | + // 订单更新时间 | ||
| 115 | UpdateTime int64 `json:"updateTime"` | 120 | UpdateTime int64 `json:"updateTime"` |
| 116 | //我的分红 | 121 | //我的分红 |
| 117 | MyDividend float64 `json:"dividendReceivable"` | 122 | MyDividend float64 `json:"dividendReceivable"` |
-
请 注册 或 登录 后发表评论