peng 1 anno fa
parent
commit
202a1fd3e8
1 ha cambiato i file con 73 aggiunte e 1 eliminazioni
  1. 73 1
      AdminController/ServeManagementController.py

+ 73 - 1
AdminController/ServeManagementController.py

@@ -7,6 +7,7 @@ import time
 import uuid
 
 import paypalrestsdk
+import requests
 import xlrd
 import xlwt
 from django.db import transaction, connection
@@ -20,7 +21,7 @@ from Controller.Cron.CronTaskController import CronUpdateDataView
 from Controller.UnicomCombo.UnicomComboTaskController import UnicomComboTaskView
 from Model.models import VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
     UID_Bucket, ExperienceContextModel, Lang, CloudLogModel, UidSetModel, Unused_Uid_Meal, \
-    Device_Info, DeviceTypeModel, UnicomComboOrderInfo, AiService, CountryModel
+    Device_Info, DeviceTypeModel, UnicomComboOrderInfo, AiService, CountryModel, AbnormalOrder
 from Object.ResponseObject import ResponseObject
 from Object.TokenObject import TokenObject
 from Object.UnicomObject import UnicomObjeect
@@ -92,6 +93,10 @@ class serveManagement(View):
                 return self.downloadCDK(request_dict, response)
             elif operation == 'getDeviceOrderList':
                 return self.getDeviceOrderList(request_dict, response)
+            elif operation == 'getAbnormalOrderList':
+                return self.getAbnormalOrderList(request_dict, response)
+            elif operation == 'updateAbnormalOrder':
+                return self.updateAbnormalOrder(request_dict, response)
             elif operation == 'deleteDeviceOrder':
                 return self.deleteDeviceOrder(userID, request_dict, response)
             elif operation == 'getDevicePackageList':  # 云存设备套餐
@@ -800,6 +805,73 @@ class serveManagement(View):
             print(e)
             return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
 
+    def getAbnormalOrderList(self, request_dict, response):
+        print('request_dict: ', request_dict)
+        pageNo = request_dict.get('page_no', None)
+        pageSize = request_dict.get('page_size', None)
+        order_id = request_dict.get('order_id', None)
+        username = request_dict.get('username', None)
+        pay_type = request_dict.get('pay_type', None)
+        status = request_dict.get('status', None)
+        trade_no = request_dict.get('trade_no', None)
+        agreement_id = request_dict.get('agreement_id', None)
+        start_time = request_dict.get('start_time', None)
+        end_time = request_dict.get('end_time', None)
+
+        if not all([pageNo, pageSize]):
+            return response.json(444)
+
+        page = int(pageNo)
+        line = int(pageSize)
+        try:
+            order_qs = AbnormalOrder.objects.all()
+            # 筛选指定订单
+            if order_id:
+                order_qs = order_qs.filter(order_id=order_id)
+            if username:
+                order_qs = order_qs.filter(username=username)
+            if pay_type:
+                order_qs = order_qs.filter(pay_type=pay_type)
+            if status:
+                order_qs = order_qs.filter(status=status)
+            if trade_no:
+                order_qs = order_qs.filter(trade_no=trade_no)
+            if agreement_id:
+                order_qs = order_qs.filter(agreement_id=agreement_id)
+            if start_time and end_time:
+                order_qs = order_qs.filter(pay_time__gte=start_time, pay_time__lt=end_time)
+            if not order_qs.exists():
+                return response.json(0, [])
+            count = order_qs.count()
+            order_qs = order_qs.values("id", "order_id", "username", "pay_type", "status", "trade_no", "agreement_id",
+                                       "price", "pay_time").order_by('-pay_time')[(page - 1) * line:page * line]
+            return response.json(0, {'list': list(order_qs), 'total': count})
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
+    def updateAbnormalOrder(self, request_dict, response):
+        abnormal_order_id = request_dict.get('id', None)
+        if not all([abnormal_order_id]):
+            return response.json(444)
+        abnormal_order = AbnormalOrder.objects.filter(id=abnormal_order_id)
+        if not abnormal_order.exists():
+            return response.json(173)
+        try:
+            trade_no = abnormal_order.values('trade_no')[0]['trade_no']
+            order_qs = Order_Model.objects.filter(trade_no=trade_no)
+            if order_qs.exists():
+                abnormal_order.update(status=1)
+                return response.json(0)
+            params = {'trade_no': trade_no}
+            eur_response = requests.get('https://www.zositeche.com/testApi/checkOrderExist', params=params)
+            if eur_response.status_code == 200:
+                result = eur_response.json()
+                if result['result_code'] == 0 and result['result']['is_exist']:
+                    abnormal_order.update(status=1)
+            return response.json(0)
+        except Exception as e:
+            return response.json(500, 'error_line:{}, error_msg:{}'.format(e.__traceback__.tb_lineno, repr(e)))
+
     def vodOrderReconcile(self, request, request_dict, response):
 
         file = request.FILES.get('file', None)