Statistic

Brightcells 6 anos atrás
pai
commit
0131ed9665
2 arquivos alterados com 17 adições e 14 exclusões
  1. 9 1
      api/mch_views.py
  2. 8 13
      statistic/views.py

+ 9 - 1
api/mch_views.py

@@ -20,6 +20,7 @@ from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode
20 20
                                      ProductDistributorStatusCode, ProductModelStatusCode, SaleclerkStatusCode,
21 21
                                      UserStatusCode)
22 22
 from utils.redis.connect import r
23
+from utils.redis.rkeys import MINI_PROGRAM_GIS_LIST
23 24
 
24 25
 
25 26
 WECHAT = settings.WECHAT
@@ -266,7 +267,7 @@ def consumer_info_api(request):
266 267
     #     return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
267 268
 
268 269
     # 记录用户信息提交记录
269
-    ConsumeInfoSubmitLogInfo.objects.create(
270
+    log = ConsumeInfoSubmitLogInfo.objects.create(
270 271
         user_id=user_id,
271 272
         phone=purePhoneNumber,
272 273
         iv=iv,
@@ -349,6 +350,13 @@ def consumer_info_api(request):
349 350
             mssi.num += 1
350 351
             mssi.save()
351 352
 
353
+            r.rpushjson(MINI_PROGRAM_GIS_LIST, {
354
+                'brand_id': log.brand_id,
355
+                'lat': log.lat,
356
+                'lon': log.lon,
357
+                'ymd': ymd,
358
+            })
359
+
352 360
             # mssi2, _ = ConsumeModelSaleStatisticInfo.objects.select_for_update().get_or_create(
353 361
             #     brand_id=brand.brand_id,
354 362
             #     model_id=model.model_id,

+ 8 - 13
statistic/views.py

@@ -219,24 +219,19 @@ def ymdtj(brand_id, ymd, lastymd):
219 219
     # 与上个统计周期数据的用户人数比例
220 220
     user_count_increase_pct = '%.2f' % (scan_user_count * 100.0 / last_scan_user_count) if last_scan_user_count != 0 else 0
221 221
 
222
-    # [经销商维度] 周期内镜头销售支数
223
-    try:
224
-        sell_volume_count = SaleStatisticInfo.objects.get(brand_id=brand_id, ymd=ymd).num
225
-    except SaleStatisticInfo.DoesNotExist:
226
-        sell_volume_count = 0
222
+    # [消费者维度] 统计周期内型号扫描排行数据,请按顺序返回
223
+    current_models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')
224
+    models = [m.data for m in current_models[:20]]
227 225
 
228
-    try:
229
-        last_sell_volume_count = SaleStatisticInfo.objects.get(brand_id=brand_id, ymd=lastymd).num
230
-    except SaleStatisticInfo.DoesNotExist:
231
-        last_sell_volume_count = 0
226
+    # [消费者维度] 周期内镜头销售支数
227
+    sell_volume_count = sum([m.get('num', 0) for m in current_models])
228
+
229
+    last_models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=lastymd, status=True).order_by('-num')
230
+    last_sell_volume_count = sum([m.num for m in last_models])
232 231
 
233 232
     # 与上个统计周期数据的销售支数比例
234 233
     volume_count_increase_pct = '%.2f' % (sell_volume_count * 100.0 / last_sell_volume_count) if last_sell_volume_count != 0 else 0
235 234
 
236
-    # [消费者维度] 统计周期内型号扫描排行数据,请按顺序返回
237
-    models = ConsumeModelSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')[:20]
238
-    models = [m.data for m in models]
239
-
240 235
     # [经销商维度] 统计周期内销售员排行数据,请按顺序返回
241 236
     salesmen = SaleclerkSaleStatisticInfo.objects.filter(brand_id=brand_id, ymd=ymd, status=True).order_by('-num')[:20]
242 237
     salesmen = [s.data for s in salesmen]