|
@@ -1,29 +1,22 @@
|
|
#!/usr/bin/env python3
|
|
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
# -*- coding: utf-8 -*-
|
|
|
|
+
|
|
import hashlib
|
|
import hashlib
|
|
-import json
|
|
|
|
import time
|
|
import time
|
|
-import urllib
|
|
|
|
import uuid
|
|
import uuid
|
|
-import boto3
|
|
|
|
-import threading
|
|
|
|
-import logging
|
|
|
|
|
|
|
|
import xlrd
|
|
import xlrd
|
|
import xlwt
|
|
import xlwt
|
|
|
|
+import openpyxl
|
|
from django.utils.encoding import escape_uri_path
|
|
from django.utils.encoding import escape_uri_path
|
|
-from xlutils.copy import copy
|
|
|
|
-from boto3.session import Session
|
|
|
|
-from django.http import JsonResponse, HttpResponseRedirect, HttpResponse, StreamingHttpResponse
|
|
|
|
|
|
+from django.http import HttpResponse, StreamingHttpResponse
|
|
from django.views.generic.base import View
|
|
from django.views.generic.base import View
|
|
-from Model.models import Device_Info, Role, MenuModel, VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
|
|
|
|
- UID_Bucket, ExperienceContextModel, Lang, Device_User, CloudLogModel, UidSetModel, Unused_Uid_Meal
|
|
|
|
|
|
+from Model.models import VodBucketModel, CDKcontextModel, Store_Meal, Order_Model, \
|
|
|
|
+ UID_Bucket, ExperienceContextModel, Lang, CloudLogModel, UidSetModel, Unused_Uid_Meal
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.ResponseObject import ResponseObject
|
|
from Object.TokenObject import TokenObject
|
|
from Object.TokenObject import TokenObject
|
|
-from Object.UidTokenObject import UidTokenObject
|
|
|
|
from Service.CommonService import CommonService
|
|
from Service.CommonService import CommonService
|
|
-from django.db.models import Q, F
|
|
|
|
-from time import strftime
|
|
|
|
|
|
+from django.db.models import F
|
|
|
|
|
|
|
|
|
|
class serveManagement(View):
|
|
class serveManagement(View):
|
|
@@ -44,6 +37,8 @@ class serveManagement(View):
|
|
return self.exportCloudUserList(request_dict, response)
|
|
return self.exportCloudUserList(request_dict, response)
|
|
elif operation == 'getCloudDataList':
|
|
elif operation == 'getCloudDataList':
|
|
return self.getCloudDataList(request_dict, response)
|
|
return self.getCloudDataList(request_dict, response)
|
|
|
|
+ elif operation == 'vodOrderReconcile':
|
|
|
|
+ return self.vodOrderReconcile(request, request_dict, response)
|
|
else:
|
|
else:
|
|
tko = TokenObject(
|
|
tko = TokenObject(
|
|
request.META.get('HTTP_AUTHORIZATION'),
|
|
request.META.get('HTTP_AUTHORIZATION'),
|
|
@@ -83,8 +78,6 @@ class serveManagement(View):
|
|
return self.downloadCDK(request_dict, response)
|
|
return self.downloadCDK(request_dict, response)
|
|
elif operation == 'getDeviceOrderList':
|
|
elif operation == 'getDeviceOrderList':
|
|
return self.getDeviceOrderList(request_dict, response)
|
|
return self.getDeviceOrderList(request_dict, response)
|
|
- elif operation == 'vodOrderReconcile':
|
|
|
|
- return self.vodOrderReconcile(request, request_dict, response)
|
|
|
|
elif operation == 'deleteDeviceOrder':
|
|
elif operation == 'deleteDeviceOrder':
|
|
return self.deleteDeviceOrder(userID, request_dict, response)
|
|
return self.deleteDeviceOrder(userID, request_dict, response)
|
|
elif operation == 'getDevicePackageList':
|
|
elif operation == 'getDevicePackageList':
|
|
@@ -677,19 +670,25 @@ class serveManagement(View):
|
|
|
|
|
|
try:
|
|
try:
|
|
rd_book = xlrd.open_workbook(filename=None, file_contents=file.read())
|
|
rd_book = xlrd.open_workbook(filename=None, file_contents=file.read())
|
|
- wt_book = copy(rd_book)
|
|
|
|
- wt_sheet = wt_book.get_sheet(0)
|
|
|
|
- rd_sheet = rd_book.sheet_by_index(2)
|
|
|
|
- for row in range(1, rd_sheet.nrows):
|
|
|
|
|
|
+ rd_sheet = rd_book.sheet_by_index(0)
|
|
|
|
+ # wt_book = copy(rd_book)
|
|
|
|
+ # wt_sheet = wt_book.get_sheet(0)
|
|
|
|
+ wt_book = openpyxl.Workbook()
|
|
|
|
+ wt_sheet = wt_book.create_sheet('对账结果', 0)
|
|
|
|
+ for row in range(rd_sheet.nrows):
|
|
|
|
+ if row == 0:
|
|
|
|
+ wt_sheet.cell(8, 1, '是否匹配账单')
|
|
|
|
+ for col in range(rd_sheet.ncols):
|
|
|
|
+ value = rd_sheet.cell_value(row, col)
|
|
|
|
+ temp_col = col + 2
|
|
|
|
+ wt_sheet.cell(8, temp_col, value)
|
|
|
|
+ continue
|
|
transaction_id = rd_sheet.cell_value(row, 9)
|
|
transaction_id = rd_sheet.cell_value(row, 9)
|
|
order_qs = Order_Model.objects.filter(trade_no=transaction_id)
|
|
order_qs = Order_Model.objects.filter(trade_no=transaction_id)
|
|
if not order_qs.exists():
|
|
if not order_qs.exists():
|
|
- temp_row = row + 7
|
|
|
|
- wt_sheet.write(temp_row, 0, '否')
|
|
|
|
- for col in range(rd_sheet.ncols):
|
|
|
|
- value = rd_sheet.cell_value(row, col)
|
|
|
|
- temp_col = col + 1
|
|
|
|
- wt_sheet.write(temp_row, temp_col, value)
|
|
|
|
|
|
+ col_value_list = rd_sheet.row_values(row)
|
|
|
|
+ col_value_list.insert(0, '否')
|
|
|
|
+ wt_sheet.append(col_value_list)
|
|
|
|
|
|
res = HttpResponse(content_type='application/octet-stream')
|
|
res = HttpResponse(content_type='application/octet-stream')
|
|
res['Content-Disposition'] = 'attachment; filename={}'.format(escape_uri_path(file.name))
|
|
res['Content-Disposition'] = 'attachment; filename={}'.format(escape_uri_path(file.name))
|