作者 唐旭辉

分红列表更新

@@ -10,9 +10,11 @@ type ListOrderBaseQuery struct { @@ -10,9 +10,11 @@ type ListOrderBaseQuery struct {
10 Offset int `json:"offset" ` 10 Offset int `json:"offset" `
11 // 查询限制 11 // 查询限制
12 Limit int `json:"limit"` 12 Limit int `json:"limit"`
13 - //订单类型  
14 - OrderType int `json:"orderType"`  
15 //发货单号 13 //发货单号
16 DeliveryCode string `json:"deliveryCode"` 14 DeliveryCode string `json:"deliveryCode"`
17 CompanyId int64 `json:"companyId"` 15 CompanyId int64 `json:"companyId"`
  16 +
  17 + //订单类型
  18 + OrderType int `json:"orderType"`
  19 + PartnerOrCode string `json:"partner_or_code"`
18 } 20 }
  1 +package query
  2 +
  3 +type ListOrderBonusQuery struct {
  4 + // 查询偏离量
  5 + Offset int `json:"offset" `
  6 + // 查询限制
  7 + Limit int `json:"limit"`
  8 + CompanyId int64 `json:"companyId"`
  9 + //订单类型
  10 + OrderType int `json:"orderType"`
  11 + PartnerOrCode string `json:"partner_or_code"`
  12 +}
@@ -11,6 +11,7 @@ import ( @@ -11,6 +11,7 @@ import (
11 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/query" 11 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/orderinfo/query"
12 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain" 12 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
13 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao" 13 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/dao"
  14 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models"
14 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib" 15 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/lib"
15 ) 16 )
16 17
@@ -711,8 +712,85 @@ func (service OrderInfoService) UpdateGoodBouns(cmd command.UpdateGoodBouns) err @@ -711,8 +712,85 @@ func (service OrderInfoService) UpdateGoodBouns(cmd command.UpdateGoodBouns) err
711 712
712 } 713 }
713 714
  715 +//PageListOrderBouns 获取订单的分红列表
  716 +func (service OrderInfoService) PageListOrderBonus(listOrderQuery query.ListOrderBonusQuery) ([]domain.OrderBase, int, error) {
  717 + transactionContext, err := factory.CreateTransactionContext(nil)
  718 + if err != nil {
  719 + return nil, 0, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  720 + }
  721 + if err = transactionContext.StartTransaction(); err != nil {
  722 + return nil, 0, err
  723 + }
  724 + defer func() {
  725 + transactionContext.RollbackTransaction()
  726 + }()
  727 + var (
  728 + ordersM []models.OrderBase
  729 + orders []domain.OrderBase
  730 + cnt int
  731 + orderBaseDao *dao.OrderBaseDao
  732 + )
  733 +
  734 + if orderBaseDao, err = factory.CreateOrderBaseDao(map[string]interface{}{
  735 + "transactionContext": transactionContext,
  736 + }); err != nil {
  737 + return nil, cnt, lib.ThrowError(lib.TRANSACTION_ERROR, err.Error())
  738 + }
  739 + ordersM, cnt, err = orderBaseDao.OrderListByCondition(
  740 + listOrderQuery.CompanyId,
  741 + listOrderQuery.OrderType,
  742 + listOrderQuery.PartnerOrCode,
  743 + listOrderQuery.Limit,
  744 + listOrderQuery.Offset,
  745 + )
  746 + for _, orderModel := range ordersM {
  747 + order := domain.OrderBase{
  748 + Id: orderModel.Id, OrderType: orderModel.OrderType, OrderCode: orderModel.OrderCode,
  749 + DeliveryCode: orderModel.DeliveryCode, Buyer: orderModel.Buyer, RegionInfo: orderModel.RegionInfo,
  750 + PartnerId: orderModel.PartnerId, SalesmanBonusPercent: orderModel.SalesmanBonusPercent,
  751 + CreateTime: orderModel.CreateTime, DeliveryTime: orderModel.DeliveryTime, UpdateTime: orderModel.UpdateTime,
  752 + IsDisable: orderModel.IsDisable,
  753 + OrderCompute: domain.OrderCompute{
  754 + PlanPartnerBonus: orderModel.PlanPartnerBonus, UsePartnerBonus: orderModel.UsePartnerBonus,
  755 + PartnerBonusHas: orderModel.PartnerBonusHas, PartnerBonusNot: orderModel.PartnerBonusNot,
  756 + PartnerBonusExpense: orderModel.PartnerBonusExpense, SalesmanBonus: orderModel.SalesmanBonus,
  757 + PlanOrderCount: orderModel.PlanOrderCount, PlanOrderAmount: orderModel.PlanOrderAmount,
  758 + UseOrderCount: orderModel.UseOrderCount, UseOrderAmount: orderModel.UseOrderAmount,
  759 + },
  760 + PartnerInfo: domain.Partner{
  761 + Id: orderModel.PartnerId,
  762 + },
  763 + BonusStatus: orderModel.BonusStatus,
  764 + CompanyId: orderModel.CompanyId,
  765 + }
  766 + orders = append(orders, order)
  767 + }
  768 + var PartnerInfoRepository domain.PartnerInfoRepository
  769 + if PartnerInfoRepository, err = factory.CreatePartnerInfoRepository(map[string]interface{}{
  770 + "transactionContext": transactionContext,
  771 + }); err != nil {
  772 + return nil, 0, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  773 + }
  774 + for i := range orders {
  775 + partnerData := &domain.PartnerInfo{}
  776 + partnerData, err = PartnerInfoRepository.FindOne(domain.PartnerFindOneQuery{
  777 + UserId: orders[i].PartnerId,
  778 + })
  779 + if err != nil {
  780 + logs.Error("获取合伙(id=%d)失败%s", orders[i].PartnerId, err)
  781 + } else {
  782 + orders[i].PartnerInfo = partnerData.Partner
  783 + }
  784 + }
  785 + err = transactionContext.CommitTransaction()
  786 + if err != nil {
  787 + return orders, cnt, lib.ThrowError(lib.INTERNAL_SERVER_ERROR, err.Error())
  788 + }
  789 + return orders, cnt, nil
  790 +}
  791 +
714 //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动 792 //UpdateBounsWithGoodNumber 分红时,因修改订单中商品的数量发生分红变动
715 -func (service OrderInfoService) UpdateBounsByGoodNumber() error { 793 +func (service OrderInfoService) UpdateBonusByGoodNumber() error {
716 var ( 794 var (
717 transactionContext, _ = factory.CreateTransactionContext(nil) 795 transactionContext, _ = factory.CreateTransactionContext(nil)
718 err error 796 err error
@@ -732,7 +810,7 @@ func (service OrderInfoService) UpdateBounsByGoodNumber() error { @@ -732,7 +810,7 @@ func (service OrderInfoService) UpdateBounsByGoodNumber() error {
732 } 810 }
733 811
734 //UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动 812 //UpdateBounsByPartnerBonusPercent 分红时,因修改订单中商品的合伙人分行比例发生分红变动
735 -func (service OrderInfoService) UpdateBounsByPartnerBonusPercent() error { 813 +func (service OrderInfoService) UpdateBonusByPartnerBonusPercent() error {
736 var ( 814 var (
737 transactionContext, _ = factory.CreateTransactionContext(nil) 815 transactionContext, _ = factory.CreateTransactionContext(nil)
738 err error 816 err error
@@ -9,8 +9,22 @@ import ( @@ -9,8 +9,22 @@ import (
9 const ( 9 const (
10 OrderReal = iota + 1 //实发订单 10 OrderReal = iota + 1 //实发订单
11 OrderIntention //意向订单 11 OrderIntention //意向订单
  12 + OrderHaiXian //来自小程序海鲜干货的订单
12 ) 13 )
13 14
  15 +func GetOrderBaseTypeName(orderType int) string {
  16 + var name string
  17 + switch orderType {
  18 + case OrderReal:
  19 + name = "自建订单"
  20 + case OrderHaiXian:
  21 + name = "小程序订单"
  22 + case OrderIntention:
  23 + name = "意向订单"
  24 + }
  25 + return name
  26 +}
  27 +
14 const ( 28 const (
15 OrderDisableNot = iota //订单未关闭 29 OrderDisableNot = iota //订单未关闭
16 OrderDisableYes //订单已关闭 30 OrderDisableYes //订单已关闭
@@ -3,6 +3,8 @@ package dao @@ -3,6 +3,8 @@ package dao
3 import ( 3 import (
4 "fmt" 4 "fmt"
5 5
  6 + "github.com/go-pg/pg/v10/orm"
  7 +
6 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models" 8 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/models"
7 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction" 9 "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/infrastructure/pg/transaction"
8 ) 10 )
@@ -22,7 +24,7 @@ func NewOrderBaseDao(transactionContext *transaction.TransactionContext) (*Order @@ -22,7 +24,7 @@ func NewOrderBaseDao(transactionContext *transaction.TransactionContext) (*Order
22 } 24 }
23 25
24 func (dao OrderBaseDao) OrderCodeExist(code string, notId ...int64) (bool, error) { 26 func (dao OrderBaseDao) OrderCodeExist(code string, notId ...int64) (bool, error) {
25 - tx := dao.transactionContext.PgDd 27 + tx := dao.transactionContext.GetDB()
26 m := &models.OrderBase{} 28 m := &models.OrderBase{}
27 query := tx.Model(m).Where("order_code=?", code) 29 query := tx.Model(m).Where("order_code=?", code)
28 if len(notId) > 0 { 30 if len(notId) > 0 {
@@ -33,7 +35,7 @@ func (dao OrderBaseDao) OrderCodeExist(code string, notId ...int64) (bool, error @@ -33,7 +35,7 @@ func (dao OrderBaseDao) OrderCodeExist(code string, notId ...int64) (bool, error
33 } 35 }
34 36
35 func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId ...int64) (bool, error) { 37 func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId ...int64) (bool, error) {
36 - tx := dao.transactionContext.PgDd 38 + tx := dao.transactionContext.GetDB()
37 m := &models.OrderBase{} 39 m := &models.OrderBase{}
38 query := tx.Model(m).Where("delivery_code=?", code).Where("company_id=?", companyId) 40 query := tx.Model(m).Where("delivery_code=?", code).Where("company_id=?", companyId)
39 if len(notId) > 0 { 41 if len(notId) > 0 {
@@ -42,3 +44,27 @@ func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId .. @@ -42,3 +44,27 @@ func (dao OrderBaseDao) DeliveryCodeExist(code string, companyId int64, notId ..
42 ok, err := query.Exists() 44 ok, err := query.Exists()
43 return ok, err 45 return ok, err
44 } 46 }
  47 +
  48 +//OrderListByCondition 根据条件获取订单列表
  49 +//orderType 订单类型
  50 +//partnerOrCode 合伙人姓名或订单号或发货单号
  51 +func (dao OrderBaseDao) OrderListByCondition(companyId int64, orderType int, partnerOrCode string, limit, offset int) ([]models.OrderBase, int, error) {
  52 + tx := dao.transactionContext.GetDB()
  53 + var orders []models.OrderBase
  54 + query := tx.Model(&orders).Where("order_base.company_id=?", companyId)
  55 + if orderType > 0 {
  56 + query = query.Where("order_base.order_type=?", orderType)
  57 + }
  58 + if len(partnerOrCode) > 0 {
  59 + query = query.Join("LEFT JOIN partner_info as p ON order_base.partner_id=p.id").
  60 + WhereGroup(func(q *orm.Query) (*orm.Query, error) {
  61 + q = q.WhereOr("order_base.order_code like ? ", "%"+partnerOrCode+"%").
  62 + WhereOr("order_base.delivery_code like ? ", "%"+partnerOrCode+"%").
  63 + WhereOr("p.partner_name like ? ", "%"+partnerOrCode+"%")
  64 + return q, nil
  65 + })
  66 + }
  67 + query = query.Offset(offset).Limit(limit)
  68 + cnt, err := query.SelectAndCount()
  69 + return orders, cnt, err
  70 +}
@@ -5,6 +5,7 @@ import ( @@ -5,6 +5,7 @@ import (
5 categoryService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerCategory/service" 5 categoryService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerCategory/service"
6 partnerQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/query" 6 partnerQuery "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/query"
7 partnerInfoService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/service" 7 partnerInfoService "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/application/partnerInfo/service"
  8 + "gitlab.fjmaimaimai.com/mmm-go/partnermg/pkg/domain"
8 ) 9 )
9 10
10 type CommonController struct { 11 type CommonController struct {
@@ -64,3 +65,18 @@ func (c *CommonController) GetPartnerCategory() { @@ -64,3 +65,18 @@ func (c *CommonController) GetPartnerCategory() {
64 } 65 }
65 c.ResponseData(resp) 66 c.ResponseData(resp)
66 } 67 }
  68 +
  69 +// GetOrderType 下拉选项数据通用接口,获取订单类型列表
  70 +func (c *CommonController) GetOrderType() {
  71 + resp := []map[string]interface{}{
  72 + map[string]interface{}{
  73 + "id": domain.OrderReal,
  74 + "name": domain.GetOrderBaseTypeName(domain.OrderReal),
  75 + },
  76 + map[string]interface{}{
  77 + "id": domain.OrderHaiXian,
  78 + "name": domain.GetOrderBaseTypeName(domain.OrderHaiXian),
  79 + },
  80 + }
  81 + c.ResponseData(resp)
  82 +}
@@ -32,7 +32,7 @@ func (c *OrderDividendController) Prepare() { @@ -32,7 +32,7 @@ func (c *OrderDividendController) Prepare() {
32 func (c *OrderDividendController) PageListOrderDividend() { 32 func (c *OrderDividendController) PageListOrderDividend() {
33 type Parameter struct { 33 type Parameter struct {
34 SearchText string `json:"searchText"` 34 SearchText string `json:"searchText"`
35 - Partner int64 `json:"partner"` 35 + OrderType int `json:"orderType"`
36 PageSize int `json:"pageSize"` 36 PageSize int `json:"pageSize"`
37 PageNumber int `json:"pageNumber"` 37 PageNumber int `json:"pageNumber"`
38 } 38 }
@@ -45,6 +45,12 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -45,6 +45,12 @@ func (c *OrderDividendController) PageListOrderDividend() {
45 c.ResponseError(errors.New("json数据解析失败")) 45 c.ResponseError(errors.New("json数据解析失败"))
46 return 46 return
47 } 47 }
  48 + if !(param.OrderType == 0 ||
  49 + param.OrderType == domain.OrderReal ||
  50 + param.OrderType == domain.OrderHaiXian) {
  51 + c.ResponseError(errors.New("参数异常"))
  52 + return
  53 + }
48 if param.PageNumber == 0 { 54 if param.PageNumber == 0 {
49 param.PageNumber = 1 55 param.PageNumber = 1
50 } 56 }
@@ -53,18 +59,18 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -53,18 +59,18 @@ func (c *OrderDividendController) PageListOrderDividend() {
53 } 59 }
54 companyId := c.GetUserCompany() 60 companyId := c.GetUserCompany()
55 orderSrv := orderService.NewOrderInfoService(nil) 61 orderSrv := orderService.NewOrderInfoService(nil)
56 - orderinfos, cnt, err := orderSrv.PageListOrderBase(orderQuery.ListOrderBaseQuery{  
57 - PartnerId: param.Partner,  
58 - DeliveryCode: param.SearchText,  
59 - OrderType: domain.OrderReal,  
60 - Limit: param.PageSize,  
61 - Offset: (param.PageNumber - 1) * param.PageSize,  
62 - CompanyId: companyId, 62 + orderinfos, cnt, err := orderSrv.PageListOrderBonus(orderQuery.ListOrderBonusQuery{
  63 + OrderType: param.OrderType,
  64 + PartnerOrCode: param.SearchText,
  65 + Limit: param.PageSize,
  66 + Offset: (param.PageNumber - 1) * param.PageSize,
  67 + CompanyId: companyId,
63 }) 68 })
64 if err != nil { 69 if err != nil {
65 c.ResponseError(err) 70 c.ResponseError(err)
66 return 71 return
67 } 72 }
  73 + //适配数据输出
68 rsp := []map[string]interface{}{} 74 rsp := []map[string]interface{}{}
69 for i := range orderinfos { 75 for i := range orderinfos {
70 orderinfo := orderinfos[i] 76 orderinfo := orderinfos[i]
@@ -78,6 +84,9 @@ func (c *OrderDividendController) PageListOrderDividend() { @@ -78,6 +84,9 @@ func (c *OrderDividendController) PageListOrderDividend() {
78 "receiveDividends": orderinfo.OrderCompute.PartnerBonusHas, 84 "receiveDividends": orderinfo.OrderCompute.PartnerBonusHas,
79 "uncollectedDividends": orderinfo.OrderCompute.PartnerBonusNot, 85 "uncollectedDividends": orderinfo.OrderCompute.PartnerBonusNot,
80 "stateOfPayment": orderinfo.BonusStatus, 86 "stateOfPayment": orderinfo.BonusStatus,
  87 + "orderType": orderinfo.OrderType,
  88 + "orderTypeName": domain.GetOrderBaseTypeName(orderinfo.OrderType),
  89 + "orderNumber": orderinfo.OrderCode,
81 } 90 }
82 if orderinfo.OrderCompute.UsePartnerBonus >= 0 { 91 if orderinfo.OrderCompute.UsePartnerBonus >= 0 {
83 m["dividendsReceivable"] = orderinfo.OrderCompute.UsePartnerBonus 92 m["dividendsReceivable"] = orderinfo.OrderCompute.UsePartnerBonus
@@ -50,6 +50,7 @@ func init() { @@ -50,6 +50,7 @@ func init() {
50 beego.NSNamespace("/common", 50 beego.NSNamespace("/common",
51 beego.NSRouter("/partner", &controllers.CommonController{}, "POST:GetPartnerList"), 51 beego.NSRouter("/partner", &controllers.CommonController{}, "POST:GetPartnerList"),
52 beego.NSRouter("/partnerType", &controllers.CommonController{}, "POST:GetPartnerCategory"), 52 beego.NSRouter("/partnerType", &controllers.CommonController{}, "POST:GetPartnerCategory"),
  53 + beego.NSRouter("/orderType", &controllers.CommonController{}, "POST:GetOrderType"),
53 ), 54 ),
54 55
55 beego.NSNamespace("/enterprises", 56 beego.NSNamespace("/enterprises",