正在显示
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", |
-
请 注册 或 登录 后发表评论