作者 yangfu

增加:配置注入

@@ -74,6 +74,13 @@ spec: @@ -74,6 +74,13 @@ spec:
74 value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com" 74 value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com"
75 - name: MMM_OPEN_API_SERVICE_HOST 75 - name: MMM_OPEN_API_SERVICE_HOST
76 value: "http://mmm-open-api-dev.fjmaimaimai.com" 76 value: "http://mmm-open-api-dev.fjmaimaimai.com"
  77 + - name: UCENTER_SERVICE_HOST
  78 + value: "https://suplus-ucenter-dev.fjmaimaimai.com"
  79 + - name: BUSINESS_ADMIN_SERVICE_HOST
  80 + valueFrom:
  81 + configMapKeyRef:
  82 + name: suplus-config
  83 + key: service.businessadmin
77 volumes: 84 volumes:
78 - name: accesslogs 85 - name: accesslogs
79 emptyDir: {} 86 emptyDir: {}
@@ -74,6 +74,13 @@ spec: @@ -74,6 +74,13 @@ spec:
74 value: "https://ability.fjmaimaimai.com" 74 value: "https://ability.fjmaimaimai.com"
75 - name: MMM_OPEN_API_SERVICE_HOST 75 - name: MMM_OPEN_API_SERVICE_HOST
76 value: "https://public-interface.fjmaimaimai.com/openapi" 76 value: "https://public-interface.fjmaimaimai.com/openapi"
  77 + - name: UCENTER_SERVICE_HOST
  78 + value: "https://suplus-ucenter-prd.fjmaimaimai.com"
  79 + - name: BUSINESS_ADMIN_SERVICE_HOST
  80 + valueFrom:
  81 + configMapKeyRef:
  82 + name: suplus-config
  83 + key: service.businessadmin
77 volumes: 84 volumes:
78 - name: accesslogs 85 - name: accesslogs
79 emptyDir: {} 86 emptyDir: {}
@@ -74,6 +74,13 @@ spec: @@ -74,6 +74,13 @@ spec:
74 value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com" 74 value: "https://suplus-worth-app-gateway-dev.fjmaimaimai.com"
75 - name: MMM_OPEN_API_SERVICE_HOST 75 - name: MMM_OPEN_API_SERVICE_HOST
76 value: "http://mmm-open-api-dev.fjmaimaimai.com" 76 value: "http://mmm-open-api-dev.fjmaimaimai.com"
  77 + - name: UCENTER_SERVICE_HOST
  78 + value: "https://suplus-ucenter-test.fjmaimaimai.com"
  79 + - name: BUSINESS_ADMIN_SERVICE_HOST
  80 + valueFrom:
  81 + configMapKeyRef:
  82 + name: suplus-config
  83 + key: service.businessadmin
77 volumes: 84 volumes:
78 - name: accesslogs 85 - name: accesslogs
79 emptyDir: {} 86 emptyDir: {}
@@ -22,6 +22,8 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis @@ -22,6 +22,8 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis
22 defer func() { 22 defer func() {
23 transactionContext.RollbackTransaction() 23 transactionContext.RollbackTransaction()
24 }() 24 }()
  25 +
  26 + // 事业分红统计-查询订单
25 _, orderAll, e := OrderBaseResponsitory.Find(utils.ObjectJsonToMap(domain.OrderQueryOption{PartnerId: header.UserId, EndTime: time.Now(), SortByCreateTime: domain.DESC, OrderType: domain.OrderReal})) 27 _, orderAll, e := OrderBaseResponsitory.Find(utils.ObjectJsonToMap(domain.OrderQueryOption{PartnerId: header.UserId, EndTime: time.Now(), SortByCreateTime: domain.DESC, OrderType: domain.OrderReal}))
26 if e != nil { 28 if e != nil {
27 log.Error(e) 29 log.Error(e)
@@ -32,11 +34,16 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis @@ -32,11 +34,16 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis
32 orderBetween = append(orderBetween, orderAll[i]) 34 orderBetween = append(orderBetween, orderAll[i])
33 } 35 }
34 } 36 }
  37 + // 事业分红统计-所有订单统计
35 bonusAll := AllBonusStatics(orderAll, 0) 38 bonusAll := AllBonusStatics(orderAll, 0)
  39 + // 事业分红统计-季度订单统计
36 bonusQuarters := QuartersBonusStatics(orderBetween, 0) 40 bonusQuarters := QuartersBonusStatics(orderBetween, 0)
  41 +
  42 + // 业务分红统计
37 if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": header.UserId, "isDisable": 1}); e == nil { 43 if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": header.UserId, "isDisable": 1}); e == nil {
38 bonusAll.Receivable += bonus.Bonus 44 bonusAll.Receivable += bonus.Bonus
39 } 45 }
  46 +
40 rsp = &protocol.DividendStatisticsResponse{} 47 rsp = &protocol.DividendStatisticsResponse{}
41 rsp.Statistics = protocol.DividendStatistics{ 48 rsp.Statistics = protocol.DividendStatistics{
42 Received: bonusAll.Received, 49 Received: bonusAll.Received,
@@ -44,6 +51,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis @@ -44,6 +51,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis
44 Receivable: bonusAll.Receivable, 51 Receivable: bonusAll.Receivable,
45 Quarters: bonusQuarters, 52 Quarters: bonusQuarters,
46 } 53 }
  54 +
47 err = transactionContext.CommitTransaction() 55 err = transactionContext.CommitTransaction()
48 return 56 return
49 } 57 }
@@ -2,21 +2,243 @@ package order @@ -2,21 +2,243 @@ package order
2 2
3 import ( 3 import (
4 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/application/factory" 4 "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/infrastructure/utils"
  7 + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
5 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" 8 "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol"
  9 + "time"
6 ) 10 )
7 11
8 -func Template(header *protocol.RequestHeader, request *protocol.OrderDetailRequest) (rsp *protocol.OrderDetailResponse, err error) { 12 +// 订单详情
  13 +func Detail(header *protocol.RequestHeader, request *protocol.OrderDetailRequest) (rsp *protocol.OrderDetailResponse, err error) {
9 var ( 14 var (
10 transactionContext, _ = factory.CreateTransactionContext(nil) 15 transactionContext, _ = factory.CreateTransactionContext(nil)
11 - //OrderResponsitory,_ =factory.CreateOrderRepository(transactionContext) 16 + OrderResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext)
  17 + OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)
  18 + order *domain.OrderBase
  19 + )
  20 + if err = transactionContext.StartTransaction(); err != nil {
  21 + return nil, err
  22 + }
  23 + defer func() {
  24 + transactionContext.RollbackTransaction()
  25 + }()
  26 + rsp = &protocol.OrderDetailResponse{}
  27 +
  28 + // 订单详情
  29 + if order, err = OrderResponsitory.FindOne(utils.ObjectJsonToMap(request)); err != nil {
  30 + log.Error(err)
  31 + return
  32 + }
  33 + rsp.Order = protocol.OrderDetail{
  34 + Id: order.Id,
  35 + OrderNo: order.OrderCode,
  36 + DeliveryNo: order.DeliveryCode,
  37 + OrderStatus: orderStatus(order),
  38 + CreateTime: order.CreateTime.Unix() * 1000,
  39 + UpdateTime: order.UpdateTime.Unix() * 1000,
  40 + OrderDistrict: map[string]interface{}{"id": order.RegionInfo.RegionId, "name": order.RegionInfo.RegionName},
  41 + Customer: protocol.Customer{Uname: order.Buyer.BuyerName, Phone: order.Buyer.ContactInfo},
  42 + Products: orderProducts(order),
  43 + Total: orderTotalStatic(order),
  44 + }
  45 +
  46 + // 更新已读(关联事件)
  47 + if header.UserId == order.PartnerId && order.UpdateTime.After(order.LastViewTime) {
  48 + if err = OrderDao.UpdateLastViewTime(order.Id, time.Now()); err != nil {
  49 + return
  50 + }
  51 + }
  52 +
  53 + err = transactionContext.CommitTransaction()
  54 + return
  55 +}
  56 +func orderStatus(order *domain.OrderBase) int {
  57 + var hasBonus = false
  58 + for i := range order.OrderGood {
  59 + good := order.OrderGood[i]
  60 + if good.BonusStatus == domain.BonusPaid {
  61 + hasBonus = true
  62 + break
  63 + }
  64 + }
  65 + if hasBonus {
  66 + if order.UseOrderCount >= 0 && order.UseOrderCount < order.PlanOrderCount {
  67 + return 3 // 已支付退货
  68 + }
  69 + return 2 // 已支付分红
  70 + }
  71 + if !hasBonus {
  72 + if order.UseOrderCount >= 0 && order.UseOrderCount < order.PlanOrderCount {
  73 + return 4 // 待支付退货
  74 + }
  75 + return 1
  76 + }
  77 + return 1
  78 +}
  79 +func orderProducts(order *domain.OrderBase) interface{} {
  80 + var products []map[string]interface{}
  81 + for i := range order.OrderGood {
  82 + good := order.OrderGood[i]
  83 + static := good.OrderBonusStatic()
  84 + item := make(map[string]interface{})
  85 + item["productName"] = good.GoodName
  86 + item["orderCount"] = good.PlanGoodNumber
  87 + item["orderAmount"] = good.PlanAmount
  88 + item["dividendPercent"] = good.PartnerBonusPercent
  89 + item["dividendReceivable"] = static.OrderTotalReceivable() //应收分红
  90 + item["dividendReceived"] = static.OrderBonusReceive() //已收分红
  91 + item["dividendUnReceive"] = static.OrderBonusWait() // 未收分红
  92 + item["dividendExpend"] = static.OrderBonusOutstanding() //分红支出
  93 + if len(good.Remark) > 0 {
  94 + item["orderUpdateReason"] = good.Remark
  95 + }
  96 + item["dividendStatus"] = good.Status()
  97 + if good.Status() > 2 {
  98 + item["countAdjust"] = good.UseGoodNumber
  99 + item["amountAdjust"] = good.UseAmount
  100 + }
  101 + products = append(products, item)
  102 + }
  103 + return products
  104 +}
  105 +func orderTotalStatic(order *domain.OrderBase) interface{} {
  106 + item := make(map[string]interface{})
  107 + static := order.OrderBonusStatic()
  108 + item["totalCount"] = order.PlanOrderCount
  109 + item["totalAmount"] = order.PlanOrderAmount
  110 + item["totalDividendReceivable"] = static.OrderTotalReceivable()
  111 + item["totalReceived"] = static.OrderBonusReceive()
  112 + item["totalUnReceive"] = static.OrderBonusWait()
  113 + item["totalExpend"] = static.OrderBonusOutstanding()
  114 + if order.UseOrderCount > 0 {
  115 + item["totalCountAdjust"] = order.UseOrderCount
  116 + item["totalAmountAdjust"] = order.UseOrderAmount
  117 + }
  118 + return item
  119 +}
  120 +
  121 +// 订单统计
  122 +func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatisticsRequest) (rsp *protocol.OrderStatisticsResponse, err error) {
  123 + var (
  124 + transactionContext, _ = factory.CreateTransactionContext(nil)
  125 + OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)
  126 + BusinessBonusRepository, _ = factory.CreateBusinessBonusRepository(transactionContext)
  127 + )
  128 + if err = transactionContext.StartTransaction(); err != nil {
  129 + return nil, err
  130 + }
  131 + defer func() {
  132 + transactionContext.RollbackTransaction()
  133 + }()
  134 + rsp = &protocol.OrderStatisticsResponse{Statistics: protocol.OrderStatics{}}
  135 +
  136 + // 当天订单/累计订单
  137 + if rsp.Statistics.TodayRealQuantity, rsp.Statistics.TodayRealMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{
  138 + BeginTime: utils.GetDayBegin().Unix() * 1000,
  139 + EndTime: utils.GetDayEnd().Unix() * 1000,
  140 + OrderType: domain.OrderReal,
  141 + PartnerId: header.UserId,
  142 + }); err != nil {
  143 + return
  144 + }
  145 + if rsp.Statistics.CumulativeQuantity, rsp.Statistics.CumulativeMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{
  146 + EndTime: time.Now().Unix() * 1000,
  147 + OrderType: domain.OrderReal,
  148 + PartnerId: header.UserId,
  149 + }); err != nil {
  150 + return
  151 + }
  152 + rsp.Statistics.TodayRealMoney = utils.Decimal(rsp.Statistics.TodayRealMoney)
  153 + rsp.Statistics.CumulativeMoney = utils.Decimal(rsp.Statistics.CumulativeMoney)
  154 +
  155 + //事业分红/业务分红
  156 + var careerBonus, businessBonus, total float64 //,developBonus,appBonus
  157 + if bonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: header.UserId, OrderType: domain.OrderReal}); e == nil {
  158 + careerBonus = bonus.Bonus
  159 + total += careerBonus
  160 + }
  161 + if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": header.UserId, "isDisable": 1}); e == nil {
  162 + businessBonus = bonus.Bonus
  163 + total += businessBonus
  164 + rsp.Statistics.BusinessMoney = bonus.Bonus
  165 + }
  166 + if total != 0 {
  167 + rsp.Statistics.CareerPercent = utils.DecimalToNumber(careerBonus * 100 / total)
  168 + rsp.Statistics.BusinessPercent = utils.DecimalToNumber(businessBonus * 100 / total)
  169 + }
  170 +
  171 + err = transactionContext.CommitTransaction()
  172 + return
  173 +}
12 174
  175 +// 订单列表
  176 +func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (rsp *protocol.OrderListResponse, err error) {
  177 + var (
  178 + transactionContext, _ = factory.CreateTransactionContext(nil)
  179 + OrderResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext)
  180 + OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)
  181 + orders []*domain.OrderBase
13 ) 182 )
  183 +
  184 + rsp = &protocol.OrderListResponse{
  185 + List: make([]*protocol.OrderListItem, 0),
  186 + }
14 if err = transactionContext.StartTransaction(); err != nil { 187 if err = transactionContext.StartTransaction(); err != nil {
15 return nil, err 188 return nil, err
16 } 189 }
17 defer func() { 190 defer func() {
18 transactionContext.RollbackTransaction() 191 transactionContext.RollbackTransaction()
19 }() 192 }()
  193 +
  194 + // 查询订单列表
  195 + queryOption := &domain.OrderQueryOption{
  196 + PartnerId: header.UserId,
  197 + Limit: request.PageSize,
  198 + Offset: request.PageSize * request.PageIndex,
  199 + SortByUpdateTime: domain.DESC,
  200 + }
  201 + if request.StartTime > 0 {
  202 + queryOption.BeginTime = time.Unix(request.StartTime/1000, 0)
  203 + }
  204 + if request.EndTime > 0 {
  205 + queryOption.EndTime = time.Unix(request.EndTime/1000, 0)
  206 + }
  207 + queryOption.OrderType = request.OrderType
  208 + _, orders, _ = OrderResponsitory.Find(utils.ObjectJsonToMap(queryOption))
  209 + if len(orders) != 0 {
  210 + for i := range orders {
  211 + rsp.List = append(rsp.List, DomainOrderToOrderListItem(orders[i]))
  212 + }
  213 + }
  214 +
  215 + // 查询统计数据
  216 + if request.PageIndex == 0 {
  217 + var (
  218 + cumulativeQuantity int
  219 + )
  220 + //累计实发订单
  221 + cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{
  222 + EndTime: time.Now().Unix() * 1000,
  223 + OrderType: domain.OrderReal,
  224 + PartnerId: header.UserId,
  225 + })
  226 + rsp.Total = cumulativeQuantity
  227 + }
  228 +
20 err = transactionContext.CommitTransaction() 229 err = transactionContext.CommitTransaction()
21 return 230 return
22 } 231 }
  232 +func DomainOrderToOrderListItem(order *domain.OrderBase) *protocol.OrderListItem {
  233 + bonusStatic := order.OrderBonusStatic()
  234 + return &protocol.OrderListItem{
  235 + Id: order.Id,
  236 + OrderType: order.OrderType,
  237 + OrderNo: order.OrderCode,
  238 + DeliveryNo: order.DeliveryCode,
  239 + OrderAmount: order.PlanOrderAmount,
  240 + UpdateTime: order.UpdateTime.Unix() * 1000,
  241 + MyDividend: bonusStatic.OrderTotalReceivable(),
  242 + IsRead: order.IsRead(),
  243 + }
  244 +}
1 -package order  
2 -  
3 -import (  
4 - "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/infrastructure/utils"  
7 - "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"  
8 - "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol"  
9 - "time"  
10 -)  
11 -  
12 -// 订单详情  
13 -func Detail(header *protocol.RequestHeader, request *protocol.OrderDetailRequest) (rsp *protocol.OrderDetailResponse, err error) {  
14 - var (  
15 - transactionContext, _ = factory.CreateTransactionContext(nil)  
16 - OrderResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext)  
17 - OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)  
18 - order *domain.OrderBase  
19 - )  
20 - if err = transactionContext.StartTransaction(); err != nil {  
21 - return nil, err  
22 - }  
23 - defer func() {  
24 - transactionContext.RollbackTransaction()  
25 - }()  
26 -  
27 - rsp = &protocol.OrderDetailResponse{}  
28 - if order, err = OrderResponsitory.FindOne(utils.ObjectJsonToMap(request)); err != nil {  
29 - log.Error(err)  
30 - return  
31 - }  
32 - rsp.Order = protocol.OrderDetail{  
33 - Id: order.Id,  
34 - OrderNo: order.OrderCode,  
35 - DeliveryNo: order.DeliveryCode,  
36 - OrderStatus: orderStatus(order),  
37 - CreateTime: order.CreateTime.Unix() * 1000,  
38 - UpdateTime: order.UpdateTime.Unix() * 1000,  
39 - OrderDistrict: map[string]interface{}{"id": order.RegionInfo.RegionId, "name": order.RegionInfo.RegionName},  
40 - Customer: protocol.Customer{Uname: order.Buyer.BuyerName, Phone: order.Buyer.ContactInfo},  
41 - Products: orderProducts(order),  
42 - Total: orderTotalStatic(order),  
43 - }  
44 - if header.UserId == order.PartnerId && order.UpdateTime.After(order.LastViewTime) {  
45 - if err = OrderDao.UpdateLastViewTime(order.Id, time.Now()); err != nil {  
46 - return  
47 - }  
48 - }  
49 - err = transactionContext.CommitTransaction()  
50 - return  
51 -}  
52 -func orderStatus(order *domain.OrderBase) int {  
53 - var hasBonus = false  
54 - for i := range order.OrderGood {  
55 - good := order.OrderGood[i]  
56 - if good.BonusStatus == domain.BonusPaid {  
57 - hasBonus = true  
58 - break  
59 - }  
60 - }  
61 - if hasBonus {  
62 - if order.UseOrderCount >= 0 && order.UseOrderCount < order.PlanOrderCount {  
63 - return 3 // 已支付退货  
64 - }  
65 - return 2 // 已支付分红  
66 - }  
67 - if !hasBonus {  
68 - if order.UseOrderCount >= 0 && order.UseOrderCount < order.PlanOrderCount {  
69 - return 4 // 待支付退货  
70 - }  
71 - return 1  
72 - }  
73 - return 1  
74 -}  
75 -func orderProducts(order *domain.OrderBase) interface{} {  
76 - var products []map[string]interface{}  
77 - for i := range order.OrderGood {  
78 - good := order.OrderGood[i]  
79 - static := good.OrderBonusStatic()  
80 - item := make(map[string]interface{})  
81 - item["productName"] = good.GoodName  
82 - item["orderCount"] = good.PlanGoodNumber  
83 - item["orderAmount"] = good.PlanAmount  
84 - item["dividendPercent"] = good.PartnerBonusPercent  
85 - item["dividendReceivable"] = static.OrderTotalReceivable() //应收分红  
86 - item["dividendReceived"] = static.OrderBonusReceive() //已收分红  
87 - item["dividendUnReceive"] = static.OrderBonusWait() // 未收分红  
88 - item["dividendExpend"] = static.OrderBonusOutstanding() //分红支出  
89 - if len(good.Remark) > 0 {  
90 - item["orderUpdateReason"] = good.Remark  
91 - }  
92 - item["dividendStatus"] = good.Status()  
93 - if good.Status() > 2 {  
94 - item["countAdjust"] = good.UseGoodNumber  
95 - item["amountAdjust"] = good.UseAmount  
96 - }  
97 - products = append(products, item)  
98 - }  
99 - return products  
100 -}  
101 -func orderTotalStatic(order *domain.OrderBase) interface{} {  
102 - item := make(map[string]interface{})  
103 - static := order.OrderBonusStatic()  
104 - item["totalCount"] = order.PlanOrderCount  
105 - item["totalAmount"] = order.PlanOrderAmount  
106 - item["totalDividendReceivable"] = static.OrderTotalReceivable()  
107 - item["totalReceived"] = static.OrderBonusReceive()  
108 - item["totalUnReceive"] = static.OrderBonusWait()  
109 - item["totalExpend"] = static.OrderBonusOutstanding()  
110 - if order.UseOrderCount > 0 {  
111 - item["totalCountAdjust"] = order.UseOrderCount  
112 - item["totalAmountAdjust"] = order.UseOrderAmount  
113 - }  
114 - return item  
115 -}  
116 -  
117 -// 订单统计  
118 -func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatisticsRequest) (rsp *protocol.OrderStatisticsResponse, err error) {  
119 - var (  
120 - transactionContext, _ = factory.CreateTransactionContext(nil)  
121 - OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)  
122 - BusinessBonusRepository, _ = factory.CreateBusinessBonusRepository(transactionContext)  
123 - //PartnerInfoRepository, _ = factory.CreatePartnerInfoRepositoryIn(transactionContext)  
124 - //partnerInfo *domain.PartnerInfo  
125 - //orderBonus domain.OrderBonusResponse  
126 - )  
127 - if err = transactionContext.StartTransaction(); err != nil {  
128 - return nil, err  
129 - }  
130 - defer func() {  
131 - transactionContext.RollbackTransaction()  
132 - }()  
133 - rsp = &protocol.OrderStatisticsResponse{Statistics: protocol.OrderStatics{}}  
134 - //if partnerInfo, err := PartnerInfoRepository.FindOne(map[string]interface{}{"id": header.UserId}); err != nil {  
135 - // err = protocol.NewCustomMessage(1, fmt.Sprintf("%v %v", "用户不存在:", header.UserId))  
136 - // return  
137 - //}  
138 -  
139 - if rsp.Statistics.TodayRealQuantity, rsp.Statistics.TodayRealMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{  
140 - BeginTime: utils.GetDayBegin().Unix() * 1000,  
141 - EndTime: utils.GetDayEnd().Unix() * 1000,  
142 - OrderType: domain.OrderReal,  
143 - PartnerId: header.UserId,  
144 - }); err != nil {  
145 - return  
146 - }  
147 - if rsp.Statistics.CumulativeQuantity, rsp.Statistics.CumulativeMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{  
148 - EndTime: time.Now().Unix() * 1000,  
149 - OrderType: domain.OrderReal,  
150 - PartnerId: header.UserId,  
151 - }); err != nil {  
152 - return  
153 - }  
154 - rsp.Statistics.TodayRealMoney = utils.Decimal(rsp.Statistics.TodayRealMoney)  
155 - rsp.Statistics.CumulativeMoney = utils.Decimal(rsp.Statistics.CumulativeMoney)  
156 -  
157 - //事业分红/业务分红  
158 - var careerBonus, businessBonus, total float64 //,developBonus,appBonus  
159 - if bonus, e := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: header.UserId, OrderType: domain.OrderReal}); e == nil {  
160 - careerBonus = bonus.Bonus  
161 - total += careerBonus  
162 - }  
163 - if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": header.UserId, "isDisable": 1}); e == nil {  
164 - businessBonus = bonus.Bonus  
165 - total += businessBonus  
166 - rsp.Statistics.BusinessMoney = bonus.Bonus  
167 - }  
168 -  
169 - if total == 0 {  
170 - return  
171 - }  
172 - rsp.Statistics.CareerPercent = utils.DecimalToNumber(careerBonus * 100 / total)  
173 - rsp.Statistics.BusinessPercent = utils.DecimalToNumber(businessBonus * 100 / total)  
174 - err = transactionContext.CommitTransaction()  
175 - return  
176 -}  
177 -  
178 -// 订单列表  
179 -func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (rsp *protocol.OrderListResponse, err error) {  
180 - var (  
181 - transactionContext, _ = factory.CreateTransactionContext(nil)  
182 - OrderResponsitory, _ = factory.CreateOrderBaseRepository(transactionContext)  
183 - OrderDao, _ = factory.CreateOrderBaseDao(transactionContext)  
184 - orders []*domain.OrderBase  
185 - )  
186 -  
187 - rsp = &protocol.OrderListResponse{  
188 - List: make([]*protocol.OrderListItem, 0),  
189 - Statistics: make(map[string]interface{}),  
190 - }  
191 - if err = transactionContext.StartTransaction(); err != nil {  
192 - return nil, err  
193 - }  
194 - defer func() {  
195 - transactionContext.RollbackTransaction()  
196 - }()  
197 - queryOption := &domain.OrderQueryOption{  
198 - PartnerId: header.UserId,  
199 - Limit: request.PageSize,  
200 - Offset: request.PageSize * request.PageIndex,  
201 - SortByUpdateTime: domain.DESC,  
202 - }  
203 - if request.StartTime > 0 {  
204 - queryOption.BeginTime = time.Unix(request.StartTime/1000, 0)  
205 - }  
206 - if request.EndTime > 0 {  
207 - queryOption.EndTime = time.Unix(request.EndTime/1000, 0)  
208 - }  
209 - queryOption.OrderType = request.OrderType  
210 - _, orders, _ = OrderResponsitory.Find(utils.ObjectJsonToMap(queryOption))  
211 - //统计数据  
212 - if request.PageIndex == 0 {  
213 - var (  
214 - cumulativeQuantity int  
215 - )  
216 - //累计实发订单  
217 - cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{  
218 - EndTime: time.Now().Unix() * 1000,  
219 - OrderType: domain.OrderReal,  
220 - PartnerId: header.UserId,  
221 - })  
222 - rsp.Total = cumulativeQuantity  
223 - }  
224 -  
225 - if len(orders) == 0 {  
226 - return  
227 - }  
228 - for i := range orders {  
229 - rsp.List = append(rsp.List, DomainOrderToOrderListItem(orders[i]))  
230 - }  
231 -  
232 - err = transactionContext.CommitTransaction()  
233 - return  
234 -}  
235 -func DomainOrderToOrderListItem(order *domain.OrderBase) *protocol.OrderListItem {  
236 - bonusStatic := order.OrderBonusStatic()  
237 - return &protocol.OrderListItem{  
238 - Id: order.Id,  
239 - OrderType: order.OrderType,  
240 - OrderNo: order.OrderCode,  
241 - DeliveryNo: order.DeliveryCode,  
242 - OrderAmount: order.PlanOrderAmount,  
243 - UpdateTime: order.UpdateTime.Unix() * 1000,  
244 - MyDividend: bonusStatic.OrderTotalReceivable(),  
245 - IsRead: order.IsRead(),  
246 - }  
247 -}