1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- # coding=utf-8
- import csv
- import datetime
- from base import init_env
- init_env(True)
- from apps.web.user.models import ConsumeRecord
- from apps.web.device.models import Group
- records = ConsumeRecord.objects.filter(
- ownerId="5b5e96538732d617d228588b",
- dateTimeAdded__gte=datetime.datetime(2020, 9, 1),
- isNormal=True,
- groupId="5c1f07118732d651a00413ee"
- )
- # groupElecDict = dict()
- #
- # # 统计消费数据
- # for record in records:
- # serviceInfo = record.servicedInfo or dict()
- #
- # elec = float(serviceInfo.get("elec", 0))
- # duration = float(serviceInfo.get("duration", 0))
- # groupId = record.groupId
- # refundMoney = float(serviceInfo.get("refundMoney", 0))
- # coins = float(record.coin)
- #
- # if groupId not in groupElecDict.keys():
- #
- # groupName = Group.get_group(groupId).get("groupName")
- #
- # groupElecDict[groupId] = {
- # "elec": 0,
- # "duration": 0,
- # "money": 0,
- # "groupName": groupName
- # }
- #
- # groupElecDict[groupId]["elec"] += elec
- # groupElecDict[groupId]["duration"] += duration
- # groupElecDict[groupId]["money"] += coins - refundMoney
- #
- #
- # with open("zhuxing_elec.csv", "w") as f:
- # csvWrite = csv.DictWriter(f, ["groupName", "money", "duration", "elec"])
- # csvWrite.writeheader()
- # data = sorted(groupElecDict.values(), key=lambda x:x["elec"])
- # csvWrite.writerows(data)
- oneGroupList = list()
- for record in records:
- serviceInfo = record.servicedInfo or dict()
- elec = float(serviceInfo.get("elec", 0))
- duration = float(serviceInfo.get("duration", 0))
- groupId = record.groupId
- refundMoney = float(serviceInfo.get("refundMoney", 0))
- coins = float(record.coin)
- oneGroupList.append(
- {
- "elec": elec,
- "duration": duration,
- "money": coins - refundMoney,
- "startTime": record.dateTimeAdded.strftime("%Y-%m-%d %H:%M:%S"),
- "finishedTime": record.finishedTime.strftime("%Y-%m-%d %H:%M:%S") if record.finishedTime else ""
- }
- )
- with open("zhuxing_elec.csv", "w") as f:
- csvWrite = csv.DictWriter(f, ["money", "duration", "elec", "startTime", "finishedTime"])
- csvWrite.writeheader()
- csvWrite.writerows(oneGroupList)
|