正在显示
18 个修改的文件
包含
342 行增加
和
9 行删除
pkg/application/company/company_v2.go
0 → 100644
1 | +package company | ||
2 | + | ||
3 | +import ( | ||
4 | + "github.com/tiptok/gocomm/pkg/log" | ||
5 | + "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/infrastructure/pg/transaction" | ||
8 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/infrastructure/utils" | ||
9 | + "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol" | ||
10 | + protocolx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/company" | ||
11 | + userx "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/protocol/user" | ||
12 | +) | ||
13 | + | ||
14 | +func PartnersV2(header *protocol.RequestHeader, request *protocolx.PartnersRequest) (rsp *protocolx.PartnersResponse, err error) { | ||
15 | + var ( | ||
16 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
17 | + ) | ||
18 | + rsp = &protocolx.PartnersResponse{} | ||
19 | + if err = transactionContext.StartTransaction(); err != nil { | ||
20 | + log.Error(err) | ||
21 | + return nil, err | ||
22 | + } | ||
23 | + defer func() { | ||
24 | + transactionContext.RollbackTransaction() | ||
25 | + }() | ||
26 | + if rsp.Partners, err = getPartnersV2(header.UserId, request, transactionContext); err != nil { | ||
27 | + log.Error(err) | ||
28 | + return | ||
29 | + } | ||
30 | + if rsp.Partners == nil { | ||
31 | + rsp.Partners = []struct{}{} | ||
32 | + } | ||
33 | + err = transactionContext.CommitTransaction() | ||
34 | + return | ||
35 | +} | ||
36 | + | ||
37 | +func getPartnersV2(userId int64, request *protocolx.PartnersRequest, transactionContext *transaction.TransactionContext) (interface{}, error) { | ||
38 | + var ( | ||
39 | + UsersRepository, _ = factory.CreateUsersRepository(transactionContext) | ||
40 | + PartnerInfo, _ = factory.CreatePartnerInfoDao(transactionContext) | ||
41 | + user *domain.Users | ||
42 | + err error | ||
43 | + PartnerCategoryInfoRepository, _ = factory.CreatePartnerCategoryInfoRepository(transactionContext) | ||
44 | + ) | ||
45 | + | ||
46 | + if user, err = UsersRepository.FindOne(map[string]interface{}{"id": userId}); err != nil { | ||
47 | + return nil, err | ||
48 | + } | ||
49 | + | ||
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 { | ||
53 | + return nil, err | ||
54 | + } | ||
55 | + | ||
56 | + if len(user.AccessPartnerIds()) == 0 { | ||
57 | + return nil, nil | ||
58 | + } | ||
59 | + mapCategoryInfo := make(map[int64]*domain.PartnerCategoryInfo) | ||
60 | + if _, categories, e := PartnerCategoryInfoRepository.Find(nil); e == nil { | ||
61 | + for i := range categories { | ||
62 | + mapCategoryInfo[categories[i].Id] = categories[i] | ||
63 | + } | ||
64 | + } | ||
65 | + | ||
66 | + queryOption := make(map[string]interface{}) | ||
67 | + if len(request.Districts) > 0 { | ||
68 | + var districts []string | ||
69 | + for i := 0; i < len(request.Districts); i++ { | ||
70 | + districts = append(districts, request.Districts[i].Name) | ||
71 | + } | ||
72 | + queryOption["districts"] = districts | ||
73 | + } | ||
74 | + if len(request.JoinWays) > 0 { | ||
75 | + var joinWays []int64 | ||
76 | + for i := 0; i < len(request.JoinWays); i++ { | ||
77 | + joinWays = append(joinWays, request.JoinWays[i].Type) | ||
78 | + } | ||
79 | + queryOption["joinWays"] = joinWays | ||
80 | + } | ||
81 | + if request.StartTime > 0 { | ||
82 | + queryOption["startTime"] = request.StartTime / 1000 | ||
83 | + } | ||
84 | + if request.EndTime > 0 { | ||
85 | + queryOption["endTime"] = request.EndTime / 1000 | ||
86 | + } | ||
87 | + queryOption["limit"] = request.PageSize | ||
88 | + queryOption["offset"] = request.PageSize * request.PageIndex | ||
89 | + | ||
90 | + queryOption["sortByBonus"] = domain.DESC | ||
91 | + if request.SortBy != 0 { | ||
92 | + queryOption["sortByBonus"] = domain.ASC | ||
93 | + } | ||
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 | ||
138 | +} | ||
139 | + | ||
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 | ||
147 | + } | ||
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}, | ||
157 | + } | ||
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 | ||
167 | +} |
@@ -24,7 +24,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis | @@ -24,7 +24,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis | ||
24 | }() | 24 | }() |
25 | 25 | ||
26 | // 事业分红统计-查询订单 | 26 | // 事业分红统计-查询订单 |
27 | - _, orderAll, e := OrderBaseResponsitory.Find(utils.ObjectJsonToMap(domain.OrderQueryOption{PartnerId: header.UserId, EndTime: time.Now(), SortByCreateTime: domain.DESC, OrderTypes: domain.UserOrderTypes(domain.Career)})) | 27 | + _, orderAll, e := OrderBaseResponsitory.Find(utils.ObjectJsonToMap(domain.OrderQueryOption{PartnerId: request.PartnerId, EndTime: time.Now(), SortByCreateTime: domain.DESC, OrderTypes: domain.UserOrderTypes(domain.Career)})) |
28 | if e != nil { | 28 | if e != nil { |
29 | log.Error(e) | 29 | log.Error(e) |
30 | } | 30 | } |
@@ -40,7 +40,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.DividendStatis | @@ -40,7 +40,7 @@ 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": header.UserId, "isDisable": 1}); e == nil { | 43 | + if bonus, e := BusinessBonusRepository.FindOne(map[string]interface{}{"partner_id": request.PartnerId, "isDisable": 1}); e == nil { |
44 | bonusAll.Receivable += bonus.Bonus | 44 | bonusAll.Receivable += bonus.Bonus |
45 | bonusAll.Received += bonus.BonusHas | 45 | bonusAll.Received += bonus.BonusHas |
46 | bonusAll.Outstanding += bonus.BonusNot | 46 | bonusAll.Outstanding += bonus.BonusNot |
@@ -125,7 +125,7 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | @@ -125,7 +125,7 @@ func OrderList(header *protocol.RequestHeader, request *protocol.DividendOrdersR | ||
125 | 125 | ||
126 | count, orders, err = OrderDao.DividendOrders(&domain.DividendOrdersQueryOption{ | 126 | count, orders, err = OrderDao.DividendOrders(&domain.DividendOrdersQueryOption{ |
127 | OrderTypes: domain.UserOrderTypes(domain.Career), | 127 | OrderTypes: domain.UserOrderTypes(domain.Career), |
128 | - PartnerId: header.UserId, | 128 | + PartnerId: request.PartnerId, |
129 | DetailAction: request.DetailAction, | 129 | DetailAction: request.DetailAction, |
130 | DividendAction: request.DividendAction, | 130 | DividendAction: request.DividendAction, |
131 | //IsDisable: "0", | 131 | //IsDisable: "0", |
@@ -132,7 +132,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatistic | @@ -132,7 +132,7 @@ func Statistics(header *protocol.RequestHeader, request *protocol.OrderStatistic | ||
132 | defer func() { | 132 | defer func() { |
133 | transactionContext.RollbackTransaction() | 133 | transactionContext.RollbackTransaction() |
134 | }() | 134 | }() |
135 | - rsp = &protocol.OrderStatisticsResponse{Statistics: protocol.OrderStatics{}} | 135 | + rsp = &protocol.OrderStatisticsResponse{Statistics: &protocol.OrderStatics{}} |
136 | 136 | ||
137 | // 当天订单/累计订单 | 137 | // 当天订单/累计订单 |
138 | if rsp.Statistics.TodayRealQuantity, rsp.Statistics.TodayRealMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ | 138 | if rsp.Statistics.TodayRealQuantity, rsp.Statistics.TodayRealMoney, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ |
@@ -195,10 +195,11 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -195,10 +195,11 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
195 | 195 | ||
196 | // 查询订单列表 | 196 | // 查询订单列表 |
197 | queryOption := &domain.OrderQueryOption{ | 197 | queryOption := &domain.OrderQueryOption{ |
198 | - PartnerId: header.UserId, | ||
199 | Limit: request.PageSize, | 198 | Limit: request.PageSize, |
200 | Offset: request.PageSize * request.PageIndex, | 199 | Offset: request.PageSize * request.PageIndex, |
201 | SortByUpdateTime: domain.DESC, | 200 | SortByUpdateTime: domain.DESC, |
201 | + PartnerId: request.PartnerId, | ||
202 | + PartnerCategoryId: request.JoinWay, | ||
202 | } | 203 | } |
203 | if request.StartTime > 0 { | 204 | if request.StartTime > 0 { |
204 | queryOption.BeginTime = time.Unix(request.StartTime/1000, 0) | 205 | queryOption.BeginTime = time.Unix(request.StartTime/1000, 0) |
@@ -224,7 +225,8 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | @@ -224,7 +225,8 @@ func List(header *protocol.RequestHeader, request *protocol.OrderListRequest) (r | ||
224 | cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ | 225 | cumulativeQuantity, _, err = OrderDao.OrderStatics(&domain.OrderStaticQuery{ |
225 | EndTime: time.Now().Unix() * 1000, | 226 | EndTime: time.Now().Unix() * 1000, |
226 | OrderTypes: domain.UserOrderTypes(domain.Career), | 227 | OrderTypes: domain.UserOrderTypes(domain.Career), |
227 | - PartnerId: header.UserId, | 228 | + PartnerId: request.PartnerId, |
229 | + PartnerCategoryId: request.JoinWay, | ||
228 | }) | 230 | }) |
229 | rsp.Total = cumulativeQuantity | 231 | rsp.Total = cumulativeQuantity |
230 | } | 232 | } |
pkg/application/order/order_v2.go
0 → 100644
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/protocol" | ||
8 | + "time" | ||
9 | +) | ||
10 | + | ||
11 | +// 订单统计 | ||
12 | +func StatisticsV2(header *protocol.RequestHeader, request *protocol.OrderStatisticsRequest) (rsp *protocol.OrderStatisticsResponse, err error) { | ||
13 | + var ( | ||
14 | + transactionContext, _ = factory.CreateTransactionContext(nil) | ||
15 | + OrderDao, _ = factory.CreateOrderBaseDao(transactionContext) | ||
16 | + ) | ||
17 | + if err = transactionContext.StartTransaction(); err != nil { | ||
18 | + return nil, err | ||
19 | + } | ||
20 | + defer func() { | ||
21 | + transactionContext.RollbackTransaction() | ||
22 | + }() | ||
23 | + rsp = &protocol.OrderStatisticsResponse{} | ||
24 | + | ||
25 | + //事业分红/业务分红 | ||
26 | + var total float64 //,developBonus,appBonus,careerBonus, businessBonus, | ||
27 | + 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 | ||
30 | + } | ||
31 | + calcOrderStatic := func(catId int, total float64) protocol.OrderStatic { | ||
32 | + todayRealQuantity, todayRealMoney, _ := OrderDao.OrderStatics(&domain.OrderStaticQuery{ | ||
33 | + BeginTime: utils.GetDayBegin().Unix() * 1000, | ||
34 | + EndTime: utils.GetDayEnd().Unix() * 1000, | ||
35 | + OrderTypes: domain.UserOrderTypes(domain.Career), | ||
36 | + PartnerId: request.PartnerId, | ||
37 | + PartnerCategoryId: catId, | ||
38 | + }) | ||
39 | + cumulativeQuantity, cumulativeMoney, _ := OrderDao.OrderStatics(&domain.OrderStaticQuery{ | ||
40 | + EndTime: time.Now().Unix() * 1000, | ||
41 | + OrderTypes: domain.UserOrderTypes(domain.Career), | ||
42 | + PartnerId: request.PartnerId, | ||
43 | + PartnerCategoryId: catId, | ||
44 | + }) | ||
45 | + bonus, _ := OrderDao.OrderBonusStatics(domain.OrderBonusQuery{PartnerId: request.PartnerId, OrderTypes: domain.UserOrderTypes(domain.Career), PartnerCategoryId: catId}) | ||
46 | + var percent float64 = 0 | ||
47 | + if bonus.Bonus != 0 { | ||
48 | + percent = utils.DecimalToNumber(bonus.Bonus * 100 / total) | ||
49 | + } | ||
50 | + return protocol.OrderStatic{ | ||
51 | + Percent: percent, | ||
52 | + TodayRealQuantity: todayRealQuantity, | ||
53 | + TodayRealMoney: utils.Decimal(todayRealMoney), | ||
54 | + CumulativeQuantity: cumulativeQuantity, | ||
55 | + CumulativeMoney: utils.Decimal(cumulativeMoney), | ||
56 | + } | ||
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) | ||
62 | + | ||
63 | + err = transactionContext.CommitTransaction() | ||
64 | + return | ||
65 | +} |
@@ -220,7 +220,9 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | @@ -220,7 +220,9 @@ func UserInfoV2(header *protocol.RequestHeader, request *protocol.UserInfoReques | ||
220 | miniProgram["userName"] = company.Applets[0].Id | 220 | miniProgram["userName"] = company.Applets[0].Id |
221 | miniProgram["path"] = fmt.Sprintf("%v?inviter_id=%v&company_id=%v", company.Applets[0].URL, partnerInfo.Id, partnerInfo.CompanyId) | 221 | miniProgram["path"] = fmt.Sprintf("%v?inviter_id=%v&company_id=%v", company.Applets[0].URL, partnerInfo.Id, partnerInfo.CompanyId) |
222 | miniProgram["hdImageUrl"] = constant.SHARE_SHOP_PREVIEW_IMADGE | 222 | miniProgram["hdImageUrl"] = constant.SHARE_SHOP_PREVIEW_IMADGE |
223 | - //miniProgram["miniprogramType"] = constant.WEHAT_MINI_PROGRAM_VERSION_TYPE | 223 | + if len(company.Applets[0].ImageUrl) > 0 { |
224 | + miniProgram["hdImageUrl"] = company.Applets[0].ImageUrl | ||
225 | + } | ||
224 | miniProgram["title"] = company.Applets[0].Name | 226 | miniProgram["title"] = company.Applets[0].Name |
225 | } | 227 | } |
226 | } | 228 | } |
@@ -7,7 +7,7 @@ var POSTGRESQL_USER = "postgres" // | @@ -7,7 +7,7 @@ var POSTGRESQL_USER = "postgres" // | ||
7 | var POSTGRESQL_PASSWORD = "eagle1010" //pgsql@123 | 7 | var POSTGRESQL_PASSWORD = "eagle1010" //pgsql@123 |
8 | var POSTGRESQL_HOST = "114.55.200.59" //127.0.0.1 | 8 | var POSTGRESQL_HOST = "114.55.200.59" //127.0.0.1 |
9 | var POSTGRESQL_PORT = "31543" //5432 | 9 | var POSTGRESQL_PORT = "31543" //5432 |
10 | -var DISABLE_CREATE_TABLE = false | 10 | +var DISABLE_CREATE_TABLE = true |
11 | var DISABLE_SQL_GENERATE_PRINT = false | 11 | var DISABLE_SQL_GENERATE_PRINT = false |
12 | 12 | ||
13 | func init() { | 13 | func init() { |
@@ -3,6 +3,7 @@ package domain | @@ -3,6 +3,7 @@ package domain | ||
3 | type CompanyApplets struct { | 3 | type CompanyApplets struct { |
4 | Name string `json:"name"` | 4 | Name string `json:"name"` |
5 | URL string `json:"url"` | 5 | URL string `json:"url"` |
6 | + ImageUrl string `json:"imageUrl"` | ||
6 | Id string `json:"id"` | 7 | Id string `json:"id"` |
7 | } | 8 | } |
8 | 9 |
@@ -63,6 +63,8 @@ type OrderBase struct { | @@ -63,6 +63,8 @@ type OrderBase struct { | ||
63 | DataFrom *OrderDataFrom | 63 | DataFrom *OrderDataFrom |
64 | // 备注 | 64 | // 备注 |
65 | Remark string | 65 | Remark string |
66 | + // 订单所属合伙人类别 | ||
67 | + PartnerCategory *PartnerCategoryInfo | ||
66 | } | 68 | } |
67 | 69 | ||
68 | func (m *OrderBase) Identify() interface{} { | 70 | func (m *OrderBase) Identify() interface{} { |
@@ -154,6 +156,7 @@ type OrderQueryOption struct { | @@ -154,6 +156,7 @@ type OrderQueryOption struct { | ||
154 | SortByUpdateTime string `json:"sortByUpdateTime,omitempty"` | 156 | SortByUpdateTime string `json:"sortByUpdateTime,omitempty"` |
155 | Offset int `json:"offset,omitempty"` | 157 | Offset int `json:"offset,omitempty"` |
156 | Limit int `json:"limit,omitempty"` | 158 | Limit int `json:"limit,omitempty"` |
159 | + PartnerCategoryId int `json:"partnerCategoryId,omitempty"` | ||
157 | } | 160 | } |
158 | 161 | ||
159 | type DividendOrdersQueryOption struct { | 162 | type DividendOrdersQueryOption struct { |
@@ -13,6 +13,7 @@ type OrderStaticQuery struct { | @@ -13,6 +13,7 @@ type OrderStaticQuery struct { | ||
13 | OrderType int `json:"orderType,omitempty"` | 13 | OrderType int `json:"orderType,omitempty"` |
14 | OrderTypes []int `json:"orderTypes,omitempty"` | 14 | OrderTypes []int `json:"orderTypes,omitempty"` |
15 | //IsDisable int `json:"isDisable,omitempty"` | 15 | //IsDisable int `json:"isDisable,omitempty"` |
16 | + PartnerCategoryId int `json:"partnerCategoryId,omitempty"` | ||
16 | } | 17 | } |
17 | 18 | ||
18 | type DividendOrdersQuery struct { | 19 | type DividendOrdersQuery struct { |
@@ -30,6 +31,7 @@ type OrderBonusQuery struct { | @@ -30,6 +31,7 @@ type OrderBonusQuery struct { | ||
30 | IsDisable int `json:"isDisable,omitempty"` | 31 | IsDisable int `json:"isDisable,omitempty"` |
31 | OrderType int `json:"orderType,omitempty"` | 32 | OrderType int `json:"orderType,omitempty"` |
32 | OrderTypes []int `json:"orderTypes,omitempty"` | 33 | OrderTypes []int `json:"orderTypes,omitempty"` |
34 | + PartnerCategoryId int `json:"partnerCategoryId,omitempty"` //订单所属类型 | ||
33 | } | 35 | } |
34 | 36 | ||
35 | // 订单分红统计-应答 | 37 | // 订单分红统计-应答 |
@@ -39,6 +39,9 @@ func (dao *OrderBaseDao) OrderStatics(option *domain.OrderStaticQuery) (count in | @@ -39,6 +39,9 @@ func (dao *OrderBaseDao) OrderStatics(option *domain.OrderStaticQuery) (count in | ||
39 | if option.EndTime > 0 { | 39 | if option.EndTime > 0 { |
40 | q.Where(`"order_base".create_time <?`, time.Unix(option.EndTime/1000, 0)) | 40 | q.Where(`"order_base".create_time <?`, time.Unix(option.EndTime/1000, 0)) |
41 | } | 41 | } |
42 | + if option.PartnerCategoryId > 0 { | ||
43 | + q.Where(`"order_base".partner_category @>'{"id":?}'`, option.PartnerCategoryId) | ||
44 | + } | ||
42 | //q.Where(`"order_base".is_disable =?`, 0) | 45 | //q.Where(`"order_base".is_disable =?`, 0) |
43 | err = q.Select(&count, &amount, &orderAmount) | 46 | err = q.Select(&count, &amount, &orderAmount) |
44 | if option.OrderType == domain.OrderIntention { //意向订单值只有 order_amount order_actual_amount还未赋值 | 47 | if option.OrderType == domain.OrderIntention { //意向订单值只有 order_amount order_actual_amount还未赋值 |
@@ -74,6 +77,9 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | @@ -74,6 +77,9 @@ func (dao *OrderBaseDao) OrderBonusStatics(option domain.OrderBonusQuery) (rsp d | ||
74 | if len(option.OrderTypes) > 0 { | 77 | if len(option.OrderTypes) > 0 { |
75 | q.Where(`"order_base".order_type in (?)`, pg.In(option.OrderTypes)) | 78 | q.Where(`"order_base".order_type in (?)`, pg.In(option.OrderTypes)) |
76 | } | 79 | } |
80 | + if option.PartnerCategoryId > 0 { | ||
81 | + q.Where(`"order_base".partner_category @>'{"id":?}'`, option.PartnerCategoryId) | ||
82 | + } | ||
77 | err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense, &rsp.TotalOrderAmount) | 83 | err = q.Select(&rsp.Total, &rsp.Bonus, &rsp.BonusExpense, &rsp.TotalOrderAmount) |
78 | return | 84 | return |
79 | } | 85 | } |
1 | package repository | 1 | package repository |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | + "encoding/json" | ||
4 | "github.com/go-pg/pg/v10" | 5 | "github.com/go-pg/pg/v10" |
5 | "github.com/go-pg/pg/v10/orm" | 6 | "github.com/go-pg/pg/v10/orm" |
6 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" | 7 | "gitlab.fjmaimaimai.com/mmm-go/partner/pkg/domain" |
@@ -88,6 +89,10 @@ func (repository *OrderBaseRepository) Find(queryOptions map[string]interface{}) | @@ -88,6 +89,10 @@ func (repository *OrderBaseRepository) Find(queryOptions map[string]interface{}) | ||
88 | if v, ok := queryOptions["orderTypes"]; ok { | 89 | if v, ok := queryOptions["orderTypes"]; ok { |
89 | query.Where(`"order_base".order_type in (?)`, pg.In(v)) | 90 | query.Where(`"order_base".order_type in (?)`, pg.In(v)) |
90 | } | 91 | } |
92 | + if v, ok := queryOptions["partnerCategoryId"]; ok { | ||
93 | + catId, _ := (v.(json.Number)).Int64() | ||
94 | + query.Where(`"order_base".partner_category @>'{"id":?}'`, catId) | ||
95 | + } | ||
91 | var err error | 96 | var err error |
92 | if query.AffectRow, err = query.SelectAndCount(); err != nil { | 97 | if query.AffectRow, err = query.SelectAndCount(); err != nil { |
93 | return 0, OrderBases, err | 98 | return 0, OrderBases, err |
@@ -59,6 +59,30 @@ func (this *CompanyController) Partners() { | @@ -59,6 +59,30 @@ func (this *CompanyController) Partners() { | ||
59 | msg = protocol.NewReturnResponse(data, err) | 59 | msg = protocol.NewReturnResponse(data, err) |
60 | } | 60 | } |
61 | 61 | ||
62 | +// Partners | ||
63 | +// 测试 | ||
64 | +func (this *CompanyController) PartnersV2() { | ||
65 | + var msg *protocol.ResponseMessage | ||
66 | + defer func() { | ||
67 | + this.Resp(msg) | ||
68 | + }() | ||
69 | + var request *protocolx.PartnersRequest | ||
70 | + if err := this.JsonUnmarshal(&request); err != nil { | ||
71 | + msg = protocol.BadRequestParam(1) | ||
72 | + return | ||
73 | + } | ||
74 | + if b, m := this.Valid(request); !b { | ||
75 | + msg = m | ||
76 | + return | ||
77 | + } | ||
78 | + header := this.GetRequestHeader(this.Ctx) | ||
79 | + data, err := company.PartnersV2(header, request) | ||
80 | + if err != nil { | ||
81 | + log.Error(err) | ||
82 | + } | ||
83 | + msg = protocol.NewReturnResponse(data, err) | ||
84 | +} | ||
85 | + | ||
62 | // Statistics | 86 | // Statistics |
63 | // 测试 | 87 | // 测试 |
64 | func (this *CompanyController) Statistics() { | 88 | func (this *CompanyController) Statistics() { |
@@ -25,6 +25,9 @@ func (this *DividendController) DividendStatistics() { | @@ -25,6 +25,9 @@ func (this *DividendController) DividendStatistics() { | ||
25 | return | 25 | return |
26 | } | 26 | } |
27 | header := this.GetRequestHeader(this.Ctx) | 27 | header := this.GetRequestHeader(this.Ctx) |
28 | + if request.PartnerId == 0 { | ||
29 | + request.PartnerId = header.UserId | ||
30 | + } | ||
28 | msg = protocol.NewReturnResponse(dividend.Statistics(header, request)) | 31 | msg = protocol.NewReturnResponse(dividend.Statistics(header, request)) |
29 | } | 32 | } |
30 | 33 | ||
@@ -44,5 +47,8 @@ func (this *DividendController) DividendOrders() { | @@ -44,5 +47,8 @@ func (this *DividendController) DividendOrders() { | ||
44 | return | 47 | return |
45 | } | 48 | } |
46 | header := this.GetRequestHeader(this.Ctx) | 49 | header := this.GetRequestHeader(this.Ctx) |
50 | + if request.PartnerId == 0 { | ||
51 | + request.PartnerId = header.UserId | ||
52 | + } | ||
47 | msg = protocol.NewReturnResponse(dividend.OrderList(header, request)) | 53 | msg = protocol.NewReturnResponse(dividend.OrderList(header, request)) |
48 | } | 54 | } |
@@ -31,6 +31,29 @@ func (this *OrderController) Statistics() { | @@ -31,6 +31,29 @@ func (this *OrderController) Statistics() { | ||
31 | msg = protocol.NewReturnResponse(order.Statistics(header, request)) | 31 | msg = protocol.NewReturnResponse(order.Statistics(header, request)) |
32 | } | 32 | } |
33 | 33 | ||
34 | +//OrderStatistics 订单统计 | ||
35 | +// @router /statistics [post] | ||
36 | +func (this *OrderController) StatisticsV2() { | ||
37 | + var msg *protocol.ResponseMessage | ||
38 | + defer func() { | ||
39 | + this.Resp(msg) | ||
40 | + }() | ||
41 | + var request *protocol.OrderStatisticsRequest | ||
42 | + if err := this.JsonUnmarshal(&request); err != nil { | ||
43 | + msg = protocol.BadRequestParam(1) | ||
44 | + return | ||
45 | + } | ||
46 | + if b, m := this.Valid(request); !b { | ||
47 | + msg = m | ||
48 | + return | ||
49 | + } | ||
50 | + header := this.GetRequestHeader(this.Ctx) | ||
51 | + if request.PartnerId == 0 { | ||
52 | + request.PartnerId = header.UserId | ||
53 | + } | ||
54 | + msg = protocol.NewReturnResponse(order.StatisticsV2(header, request)) | ||
55 | +} | ||
56 | + | ||
34 | //OrderDetail 订单详情 | 57 | //OrderDetail 订单详情 |
35 | // @router /orderDetail [post] | 58 | // @router /orderDetail [post] |
36 | func (this *OrderController) OrderDetail() { | 59 | func (this *OrderController) OrderDetail() { |
@@ -68,6 +91,9 @@ func (this *OrderController) OrderList() { | @@ -68,6 +91,9 @@ func (this *OrderController) OrderList() { | ||
68 | } | 91 | } |
69 | request.OrderTypes = domain.UserOrderTypes(domain.Career) | 92 | request.OrderTypes = domain.UserOrderTypes(domain.Career) |
70 | header := this.GetRequestHeader(this.Ctx) | 93 | header := this.GetRequestHeader(this.Ctx) |
94 | + if request.PartnerId == 0 { | ||
95 | + request.PartnerId = header.UserId | ||
96 | + } | ||
71 | msg = protocol.NewReturnResponse(order.List(header, request)) | 97 | msg = protocol.NewReturnResponse(order.List(header, request)) |
72 | } | 98 | } |
73 | 99 |
@@ -45,5 +45,8 @@ func InitV2() { | @@ -45,5 +45,8 @@ func InitV2() { | ||
45 | nsV2 := beego.NewNamespace("v2") // ,, beego.NSBefore(middleware.CheckJWTToken) | 45 | nsV2 := beego.NewNamespace("v2") // ,, beego.NSBefore(middleware.CheckJWTToken) |
46 | nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2") | 46 | nsV2.Router("/auth/login", &controllers.AuthController{}, "Post:LoginV2") |
47 | nsV2.Router("/user/userInfo", &controllers.UserController{}, "Post:UserInfoV2") | 47 | nsV2.Router("/user/userInfo", &controllers.UserController{}, "Post:UserInfoV2") |
48 | + nsV2.Router("/company/partners", &controllers.CompanyController{}, "post:PartnersV2") | ||
49 | + | ||
50 | + nsV2.Router("/order/statistics", &controllers.OrderController{}, "Post:StatisticsV2") | ||
48 | beego.AddNamespace(nsV2) | 51 | beego.AddNamespace(nsV2) |
49 | } | 52 | } |
@@ -11,6 +11,7 @@ type DividendStatisticsRequest struct { | @@ -11,6 +11,7 @@ type DividendStatisticsRequest struct { | ||
11 | EndTime int64 `json:"endTime" valid:"Required"` | 11 | EndTime int64 `json:"endTime" valid:"Required"` |
12 | //分红类型(0累计分红、1分红支出) | 12 | //分红类型(0累计分红、1分红支出) |
13 | //DividendAction int `json:"dividendAction"` | 13 | //DividendAction int `json:"dividendAction"` |
14 | + PartnerId int64 `json:"partnerId"` | ||
14 | } | 15 | } |
15 | type DividendStatisticsResponse struct { | 16 | type DividendStatisticsResponse struct { |
16 | Statistics DividendStatistics `json:"statistics"` | 17 | Statistics DividendStatistics `json:"statistics"` |
@@ -39,6 +40,8 @@ type DividendOrdersRequest struct { | @@ -39,6 +40,8 @@ type DividendOrdersRequest struct { | ||
39 | 40 | ||
40 | PageIndex int `json:"pageIndex,omitempty"` | 41 | PageIndex int `json:"pageIndex,omitempty"` |
41 | PageSize int `json:"pageSize,omitempty"` | 42 | PageSize int `json:"pageSize,omitempty"` |
43 | + | ||
44 | + PartnerId int64 `json:"partnerId"` | ||
42 | } | 45 | } |
43 | type DividendOrdersResponse struct { | 46 | type DividendOrdersResponse struct { |
44 | List []*DividendOrderListItem `json:"list"` | 47 | List []*DividendOrderListItem `json:"list"` |
@@ -43,9 +43,14 @@ type Customer struct { | @@ -43,9 +43,14 @@ type Customer struct { | ||
43 | 43 | ||
44 | /*OrderStatistics */ | 44 | /*OrderStatistics */ |
45 | type OrderStatisticsRequest struct { | 45 | type OrderStatisticsRequest struct { |
46 | + PartnerId int64 `json:"partnerId"` | ||
46 | } | 47 | } |
47 | type OrderStatisticsResponse struct { | 48 | type OrderStatisticsResponse struct { |
48 | - Statistics OrderStatics `json:"statistics"` | 49 | + Statistics *OrderStatics `json:"statistics,omitempty"` |
50 | + Career OrderStatic `json:"career,omitempty"` //事业 | ||
51 | + Business OrderStatic `json:"business,omitempty"` //业务 | ||
52 | + Develop OrderStatic `json:"develop,omitempty"` //开发 | ||
53 | + App OrderStatic `json:"app,omitempty"` //业务-产品应用 | ||
49 | } | 54 | } |
50 | type OrderStatics struct { | 55 | type OrderStatics struct { |
51 | TodayIntentionQuantity int `json:"-"` //今日新增意向订单 | 56 | TodayIntentionQuantity int `json:"-"` //今日新增意向订单 |
@@ -63,6 +68,14 @@ type OrderStatics struct { | @@ -63,6 +68,14 @@ type OrderStatics struct { | ||
63 | BusinessMoney float64 `json:"businessMoney"` // 业务分红累计 | 68 | BusinessMoney float64 `json:"businessMoney"` // 业务分红累计 |
64 | } | 69 | } |
65 | 70 | ||
71 | +type OrderStatic struct { | ||
72 | + Percent float64 `json:"percent"` // 事业占比 | ||
73 | + TodayRealQuantity int `json:"todayRealQuantity"` //今日新增实发订单 | ||
74 | + TodayRealMoney float64 `json:"todayRealMoney"` //今日新增实发订单金额 | ||
75 | + CumulativeQuantity int `json:"cumulativeQuantity"` //累计实发订单 | ||
76 | + CumulativeMoney float64 `json:"cumulativeMoney"` //累计实发订单金额 | ||
77 | +} | ||
78 | + | ||
66 | /*OrderList */ | 79 | /*OrderList */ |
67 | type OrderListRequest struct { | 80 | type OrderListRequest struct { |
68 | StartTime int64 `json:"startTime"` | 81 | StartTime int64 `json:"startTime"` |
@@ -72,6 +85,9 @@ type OrderListRequest struct { | @@ -72,6 +85,9 @@ type OrderListRequest struct { | ||
72 | PageSize int `json:"pageSize" valid:"Required"` | 85 | PageSize int `json:"pageSize" valid:"Required"` |
73 | OrderType int `json:"-"` | 86 | OrderType int `json:"-"` |
74 | OrderTypes []int `json:"-"` | 87 | OrderTypes []int `json:"-"` |
88 | + | ||
89 | + PartnerId int64 `json:"partnerId"` | ||
90 | + JoinWay int `json:"joinWay"` //合伙方式(0或不传,即所有合伙方式) | ||
75 | } | 91 | } |
76 | type OrderListResponse struct { | 92 | type OrderListResponse struct { |
77 | List []*OrderListItem `json:"list"` | 93 | List []*OrderListItem `json:"list"` |
-
请 注册 或 登录 后发表评论