def init_merchant_user(merchant_id, merchant_name, password): from app.main import flask_app from app.libs.string_kit import RandomString if not password: password = RandomString.gen_random_str(10, (CharOp.N, CharOp.L, CharOp.U)) with flask_app.app_context(): from scripts.init_data import InitData InitData.merchant_name = merchant_name InitData.merchant_id = merchant_id InitData.password = RandomString.gen_md5_string( password.encode('utf8')) merchant = InitData.get_merchant_user() if not merchant: InitData.init_merchant_user() merchant = InitData.get_merchant_user() print("Merchant generated, merchant: %s, password: %s" % (merchant_name, password)) else: merchant.reset_password(mid=merchant_id, password=InitData.password) print("password changed, merchant: %s, password: %s" % (merchant_name, password)) rst = merchant.verify_login(merchant_name, InitData.password) if rst: return merchant_name, password return None, None
def init_admin_user(account, password): from app.main import flask_app from app.libs.string_kit import RandomString from scripts.init_data import InitData if not password: password = RandomString.gen_random_str(10, (CharOp.N, CharOp.L, CharOp.U)) with flask_app.app_context(): InitData.admin_user_account = account InitData.password = RandomString.gen_md5_string( password.encode('utf8')) admin = InitData.get_admin_user() if not admin: InitData.init_admin_user() admin = InitData.get_admin_user() print("account generated, admin: %s, password: %s" % (account, password)) else: admin.reset_password(account=account, login_pwd=InitData.password) print("password changed, admin: %s, password: %s" % (account, password)) rst = admin.verify_login(account, InitData.password) print('verify login %s' % rst) if rst: return account, password return None, None
def async_send_auth_code(phone, code): """ 异步发送验证码 :param phone: :param code: :return: """ from app.main import flask_app with flask_app.app_context(): flask_app.logger.info('async_send_auth_code, phone: %s, code: %s', phone, code) SMSSender.send_sms(phone, code)
def add_user_balance(account, balance, register=True): from app.main import flask_app with flask_app.app_context(): print('alter balance for account: %s, balance: %s' % (account, balance)) rst, msg = InitData.add_balance_to_user(account, balance, register) print('result:', rst, msg) if rst == 0: print('balance: ', InitData.get_balance(account)) return InitData.get_balance(account), msg else: return 0, msg
def withdraw_epay_tong(): from app.main import flask_app with flask_app.app_context(): tasks = list(OrderTasks.query_all()) for task in tasks: order_id = task.order_id batch_date = DateTimeKit.datetime_to_str(task.create_time, DateTimeFormatEnum.TIGHT_DAY_FORMAT) current_app.logger.info('EpayTong withdraw check: order_id: %s, batch_date: %s', order_id, batch_date) order = WithdrawTransactionCtl.get_order_by_order_id(order_id) current_app.logger.info('EpayTong withdraw check: order_state: %s, state_type: %s', order.state, type(order.state)) if not order: current_app.logger.info('EpayTong withdraw check, order_id: %s', order_id) OrderTasks.delete_task(task_id=task.id) continue if order.state.name == OrderStateEnum.SUCCESS.name or order.state.name == OrderStateEnum.FAIL.name: OrderTasks.delete_task(task_id=task.id) continue elif order.state.name != "DEALING": current_app.logger.info('EpayTong withdraw check, order_id: %s, order_state: %s', order_id, order.state) continue current_app.logger.info('EpayTong withdraw check, order_id: %s, order_state: %s', order_id, order.state) params = { "tx_id": order.sys_tx_id, "batch_date": batch_date } rst = EpayTongWithdrawRequest(channel_enum=ChannelConfigEnum.CHANNEL_6013).launch_pay(params) if rst['code'] == 0: tx_amount = rst['data']['tx_amount'] code = rst['data']['tradeFeedbackcode'] print(code, "******************") if code == "成功": if WithdrawTransactionCtl.order_success(order, tx_amount): OrderTasks.delete_task(task_id=task.id) elif code == "失败": if WithdrawTransactionCtl.order_fail(order): OrderTasks.delete_task(task_id=task.id)
def clean_order_table(): # 每天凌晨4点清理数据 from app.main import flask_app print('job clean_order_table running') with flask_app.app_context(): rst = OrderDeposit.clean_hot_table() print(rst) rst = OrderWithdraw.clean_hot_table() print(rst) rst = OrderDetailDeposit.clean_hot_table() print(rst) rst = OrderDetailWithdraw.clean_hot_table() print(rst)
def batch_add_test_orders(): # @scheduler.task('interval', id='batch_add_test_orders', minutes=30) # 定时添加一些测试数据 from app.main import flask_app from scripts.order_mix import OrderMixes print('job batch_add_test_orders running') day_num = 5 uid_range = range(1000, 1021) with flask_app.app_context(): OrderMixes(PayTypeEnum.DEPOSIT).batch_add_orders_no_check( day_num, uid_range) OrderMixes(PayTypeEnum.WITHDRAW).batch_add_orders_no_check( day_num, uid_range)
def task_add_together(a=0, b=0): """ 使用关键字参数only :param a: :param b: :return: """ from app.main import flask_app with flask_app.app_context(): host = socket.gethostname() l_data = dict( a=a, b=b, host=host, ) redis.hmset('celery_check', l_data) data = redis.hgetall('celery_check') data = {k.decode('utf8'): v.decode('utf8') for k, v in data.items()} flask_app.logger.info('task_add_together, locals: %s, redis data: %s', l_data, data) return data
from app.main import flask_app from app.main.plugins import db from flask_script import Manager from flask_migrate import Migrate, MigrateCommand import pytest from app.main.models import Student # import your sql alchemy models here flask_app.app_context().push() manager = Manager(flask_app) migrate = Migrate(flask_app, db) manager.add_command('db', MigrateCommand) @manager.command def run(): flask_app.run() @manager.command def test(): return pytest.main(['-vv', './app/test']) if __name__ == '__main__': manager.run()
import sys from app.extensions.ext_celery import flask_celery from app.main import flask_app if __name__ == '__main__': # python run_celery.py -A app.main:flask_celery worker with flask_app.app_context(): argv = sys.argv if len(argv) == 1: argv += '-A app.main:flask_celery worker'.split(' ') flask_celery.start(argv)
def init_user(account): from app.main import flask_app with flask_app.app_context(): InitData.user_account = account InitData.init_user()