正在显示
8 个修改的文件
包含
172 行增加
和
14 行删除
@@ -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 | } |
@@ -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", |
-
请 注册 或 登录 后发表评论