1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # coding=utf-8
- import os
- import datetime
- from apps.web.constant import USER_RECHARGE_TYPE
- from base import init_env
- from bson import ObjectId
- init_env(True)
- from apps.web.user.transaction_deprecated import refund_cash
- from apilib.monetary import RMB, VirtualCoin
- from apps.web.report.ledger import Ledger
- from apps.web.user.models import ConsumeRecord, RechargeRecord
- from apps.web.dealer.proxy import DealerIncomeProxy
- from apps.web.device.models import Device, Group
- def get_recharge_record():
- devTypeCode = "100604"
- st = datetime.datetime(2021, 1, 15)
- et = datetime.datetime(2021, 1, 20, 11, 40)
- deviceNos = [dev.devNo for dev in Device.objects.filter(driverCode=devTypeCode)]
- records = RechargeRecord.objects.filter(
- devNo__in=deviceNos,
- result="success",
- isQuickPay=True,
- via__in=["recharge"],
- dateTimeAdded__gte=st,
- dateTimeAdded__lte=et,
- )
- return records
- def repaire(record):
- # 已经分账的 直接略过
- if DealerIncomeProxy.objects.filter(ref_id=ObjectId(record.id)):
- return
- # 分账
- Ledger(USER_RECHARGE_TYPE.RECHARGE, record).execute(journal=False, stats=True, check=False)
- print "now to ledger!"
- # 去查询消费记录 消费记录里面有退款的信息
- consumeRecord = ConsumeRecord.objects.filter(startKey=record.attachParas.get("startKey")).first()
- if not consumeRecord:
- print "{} has not consume record".format(record.id)
- return
- refundMoney = consumeRecord.servicedInfo.get("refundedCash")
- if not refundMoney:
- print "{} has not refund money".format(record.id)
- else:
- refund_cash(record, RMB(refundMoney), VirtualCoin(0))
- print "{} , total is {} need to refund money {}".format(record.id, record.money, refundMoney)
- def main():
- for record in get_recharge_record():
- repaire(record)
- if __name__ == '__main__':
- main()
|