update admin api

FFIB 5 年 前
コミット
ca63c3a637
共有2 個のファイルを変更した72 個の追加5 個の削除を含む
  1. 1 0
      account/models.py
  2. 71 5
      api/admin_views.py

+ 1 - 0
account/models.py

@@ -484,6 +484,7 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
484 484
             'membercardid': self.membercardid,
485 485
             'memberusercardcode': self.memberusercardcode,
486 486
             'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
487
+            'code_version': self.code_version,
487 488
 
488 489
             # 会员信息
489 490
             'integral': self.integral,

+ 71 - 5
api/admin_views.py

@@ -14,6 +14,7 @@ from django_logit import logit
14 14
 from django_response import response
15 15
 from paginator import pagination
16 16
 from TimeConvert import TimeConvert as tc
17
+from django.utils.timezone import utc
17 18
 
18 19
 from account.models import UserInfo
19 20
 from integral.models import SaleclerkSubmitLogInfo
@@ -171,7 +172,17 @@ def query_usergoods(request):
171 172
 def query_userinfo(request):
172 173
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
173 174
     admin_id = request.POST.get('admin_id', '')
174
-    phone = request.POST.get('phone', '')
175
+    query = request.POST.get('query', '')
176
+    level = request.POST.get('level', '')
177
+    is_member = request.POST.get('is_member', '')
178
+    code_version = request.POST.get('code_version', 0)
179
+    subscribe = request.POST.get('subscribe', '')
180
+    has_membercard = request.POST.get('has_membercard', '')
181
+    start_time = request.POST.get('start_time', '')
182
+    end_time = request.POST.get('end_time', '')
183
+    user_id = request.POST.get('user_id', '')
184
+    page = request.POST.get('page', 1)
185
+    num = request.POST.get('num', 20)
175 186
 
176 187
     if brand_id != settings.KODO_DEFAULT_BRAND_ID:
177 188
         return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
@@ -181,11 +192,36 @@ def query_userinfo(request):
181 192
     except AdministratorInfo.DoesNotExist:
182 193
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
183 194
 
184
-    userinfos = UserInfo.objects.filter(status=True, phone=phone).order_by('-created_at')
195
+    userinfos = UserInfo.objects.filter(Q(status=True) & Q(user_id__icontains=user_id) & (Q(nickname__icontains=query) | Q(phone__icontains=query))).order_by('-created_at')
196
+
197
+    if level != '':
198
+        userinfos = userinfos.filter(level=level)
199
+    
200
+    if code_version != '':
201
+        userinfos = userinfos.filter(code_version=code_version)
202
+    
203
+    if subscribe != '':
204
+        userinfos = userinfos.filter(subscribe=subscribe)
205
+    
206
+    if has_membercard != '':
207
+        userinfos = userinfos.filter(has_membercard=has_membercard)
208
+    
209
+    if is_member != '':
210
+        userinfos = userinfos.filter(level__gte=1)
211
+    
212
+    if start_time != '' and end_time != '':
213
+        ftime = datetime.strptime(start_time + ' 00:00:00', '%Y%m%d %H:%M:%S')
214
+        ttime = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S')
215
+        userinfos = userinfos.filter(created_at__range=[ftime, ttime])
216
+
217
+    count = userinfos.count()
218
+    userinfos, left = pagination(userinfos, page, num)
185 219
     userinfos = [userinfo.admindata for userinfo in userinfos]
186 220
 
187 221
     return response(200, 'Userinfo Success', u'用户列表获取成功', data={
188 222
         'userinfos': userinfos,
223
+        'count': count,
224
+        'left': left
189 225
     })
190 226
 
191 227
 
@@ -566,7 +602,8 @@ def record_consumer(request):
566 602
     start_time = request.POST.get('start_time', '')
567 603
     end_time = request.POST.get('end_time', '')
568 604
     query = request.POST.get('query', '')
569
-    dupload = request.POST.get('dupload', 0)
605
+    dupload = request.POST.get('dupload', '')
606
+    code_version = request.POST.get('code_version', 0)
570 607
 
571 608
     if brand_id != settings.KODO_DEFAULT_BRAND_ID:
572 609
         return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
@@ -576,7 +613,16 @@ def record_consumer(request):
576 613
     except AdministratorInfo.DoesNotExist:
577 614
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
578 615
     
579
-    logs = ConsumeInfoSubmitLogInfo.objects.filter(Q(status=True) & Q(ymd__gte=start_time) & Q(ymd__lte=end_time) & Q(test_user=False) & (Q(model_name__contains=query) | Q(phone__contains=query) | Q(serialNo__contains=query))).order_by('-created_at')
616
+    logs = ConsumeInfoSubmitLogInfo.objects.filter(Q(status=True) & Q(test_user=False) & (Q(model_name__icontains=query) | Q(phone__icontains=query) | Q(serialNo__icontains=query))).order_by('-created_at')
617
+
618
+    if dupload != '':
619
+        logs = logs.filter(dupload=dupload)
620
+    
621
+    if code_version != '':
622
+        logs = logs.filter(code_version=code_version)
623
+    
624
+    if start_time and end_time:
625
+        logs = logs.filter(ymd__gte=start_time, ymd__lte=end_time)
580 626
 
581 627
     count = logs.count()
582 628
     logs, left = pagination(logs, page, num)
@@ -596,6 +642,10 @@ def record_sale(request):
596 642
     start_time = request.POST.get('start_time', '')
597 643
     end_time = request.POST.get('end_time', '')
598 644
     query = request.POST.get('query', '')
645
+    dupload = request.POST.get('dupload', '')
646
+    has_scan = request.POST.get('has_scan', '')
647
+    code_version = request.POST.get('code_version', 0)
648
+    is_online_sale = request.POST.get('is_online_sale', '')
599 649
 
600 650
     if brand_id != settings.KODO_DEFAULT_BRAND_ID:
601 651
         return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
@@ -605,7 +655,23 @@ def record_sale(request):
605 655
     except AdministratorInfo.DoesNotExist:
606 656
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
607 657
     
608
-    logs = SaleclerkSubmitLogInfo.objects.filter(Q(status=True) & Q(ymd__gte=start_time) & Q(ymd__lte=end_time) & Q(test_user=False) & Q(test_sn=False) & (Q(model_name__contains=query) | Q(clerk_name__contains=query) | Q(distributor_name__contains=query)| Q(code__contains=query))).order_by('-created_at')
658
+    logs = SaleclerkSubmitLogInfo.objects.filter(Q(status=True) & Q(test_user=False) & Q(test_sn=False) & (Q(model_name__icontains=query) | Q(clerk_name__icontains=query) | Q(distributor_name__icontains=query)| Q(code__icontains=query))).order_by('-created_at')
659
+
660
+    if dupload != '':
661
+        logs = logs.filter(dupload=dupload)
662
+    
663
+    if code_version:
664
+        logs = logs.filter(code_version=code_version)
665
+    
666
+    if has_scan != '':
667
+        logs = logs.filter(has_scan=has_scan)
668
+
669
+    if start_time and end_time:
670
+        logs = logs.filter(ymd__gte=start_time, ymd__lte=end_time)
671
+
672
+    if is_online_sale != '':
673
+        logs = logs.filter(remark=('扫描条形码' if is_online_sale else ''))
674
+    
609 675
 
610 676
     count = logs.count()
611 677
     logs, left = pagination(logs, page, num)