|
|
@@ -9,9 +9,10 @@ from django_response import response
|
9
|
9
|
from paginator import pagination
|
10
|
10
|
from TimeConvert import TimeConvert as tc
|
11
|
11
|
from django.utils import timezone
|
|
12
|
+from django.db.models import Sum
|
12
|
13
|
|
13
|
14
|
from mch.models import AdministratorInfo
|
14
|
|
-from statistic.models import ConsumeModelSaleStatisticInfo
|
|
15
|
+from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
|
15
|
16
|
from account.models import UserInfo
|
16
|
17
|
from integral.models import SaleclerkSubmitLogInfo
|
17
|
18
|
from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
|
|
|
@@ -230,6 +231,8 @@ def statistic_userprofile(request):
|
230
|
231
|
logs = ConsumeModelSaleStatisticInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time)
|
231
|
232
|
|
232
|
233
|
sexs = {0: 0, 1: 0, 2: 0}
|
|
234
|
+ subscribes = {0: 0, 1: 0}
|
|
235
|
+ has_membercards = {0: 0, 1: 0}
|
233
|
236
|
provinces = defaultdict(int)
|
234
|
237
|
for log in logs:
|
235
|
238
|
for user in log.users:
|
|
|
@@ -240,9 +243,58 @@ def statistic_userprofile(request):
|
240
|
243
|
|
241
|
244
|
provinces[user.province_name] += 1
|
242
|
245
|
sexs[user.sex] += 1
|
|
246
|
+ subscribes[user.subscribe] += 1
|
|
247
|
+ has_membercards[user.has_membercard] += 1
|
243
|
248
|
|
244
|
249
|
return response(200, 'Get User Profile Success', u'获取用户画像成功', data={
|
245
|
250
|
'provinces': provinces,
|
246
|
251
|
'sexs': sexs,
|
|
252
|
+ 'subscribe': subscribes,
|
|
253
|
+ 'has_membercards': has_membercards,
|
247
|
254
|
})
|
248
|
255
|
|
|
256
|
+def statistic_daily(request):
|
|
257
|
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
258
|
+ admin_id = request.POST.get('admin_id', '')
|
|
259
|
+ start_time = request.POST.get('start_time', '')
|
|
260
|
+ end_time = request.POST.get('end_time', '')
|
|
261
|
+
|
|
262
|
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID:
|
|
263
|
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
|
|
264
|
+
|
|
265
|
+ try:
|
|
266
|
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
|
|
267
|
+ except AdministratorInfo.DoesNotExist:
|
|
268
|
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
|
269
|
+
|
|
270
|
+ sale_logs = ConsumeSaleStatisticInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time)
|
|
271
|
+ user_logs = ConsumeUserStatisticInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time)
|
|
272
|
+
|
|
273
|
+ sale_logs = [log.data for log in sale_logs]
|
|
274
|
+ user_logs = [log.data for log in user_logs]
|
|
275
|
+
|
|
276
|
+ return response(200, 'Get User Sales Statistic Success', u'获取销量统计成功', data={
|
|
277
|
+ 'sale_logs': sale_logs,
|
|
278
|
+ 'user_logs': user_logs,
|
|
279
|
+ })
|
|
280
|
+
|
|
281
|
+def statistic_model(request):
|
|
282
|
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
|
|
283
|
+ admin_id = request.POST.get('admin_id', '')
|
|
284
|
+ start_time = request.POST.get('start_time', '')
|
|
285
|
+ end_time = request.POST.get('end_time', '')
|
|
286
|
+
|
|
287
|
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID:
|
|
288
|
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
|
|
289
|
+
|
|
290
|
+ try:
|
|
291
|
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
|
|
292
|
+ except AdministratorInfo.DoesNotExist:
|
|
293
|
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
|
294
|
+
|
|
295
|
+ logs = ConsumeModelSaleStatisticInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time).values_list('model_name').annotate(Sum('num'))
|
|
296
|
+
|
|
297
|
+ logs = [{'model_name': log[0], 'num': log[1]} for log in logs]
|
|
298
|
+ return response(200, 'Get Model Statistic Success', u'获取型号统计成功', data={
|
|
299
|
+ 'logs': logs
|
|
300
|
+ })
|