def get(self): args = qrcodeparserget.parse_args() if args['state'] is not None: msg = QrcodeService.Criteria_query(self, args) return make_response(msg) elif args['code'] is not None: msg = QrcodeService.searchdetil(self, args) return make_response(msg) else: msg = QrcodeService.searchall(self) return make_response(msg)
def post(self): args = qrcodeparserpost.parse_args() if args['qr_image'] is None: return {'errorMsg': '请上传二维码'} if args['name'] is None: return {'errorMsg': '请输入名称'} if args['bank_id'] is None: return {'errorMsg': '请选择银行'} if args['bank_account'] is None: return {'errorMsg': '请输入银行帐号'} if args['phone_number'] is None: return {'errorMsg': '请输入手机号'} if args['rate'] is None: return {'errorMsg': '请选择费率'} if args['valid_time'] is None: return {'errorMsg': '请输入有效分钟数'} msg = QrcodeService.insert(self, args) return make_response(msg)
def post(self): m_args = agentsparserpost.parse_args(strict=True) if m_args['username'] is None: return {'errorMsg': "用户名不能为空"} if m_args['rate'] is None: return {'errorMsg': "费率不能为空"} mem = db.session.query(MerchantDao.username).filter( MerchantDao.username == m_args['username']).first() if mem is not None: return jsonify({ 'success': False, 'errorCode': 403, 'errorMsg': '该商户/代理已存在' }) res = insertData(m_args) result = [] for items in res: result.append({ "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "rate": items.rate, "secret_key": items.secret_key, "amount": items.amount, "level": items.level, "state": items.state, "default_level": items.default_level, "actionTime": items.actionTime }) return make_response(result)
def get(self): critern = set() if g.current_member: username = g.current_member.username type = g.current_member.type critern.add(MerchantDao.username == username) critern.add(MerchantDao.type == type) else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} data = get_dfmer_info(critern) result = [] for one in data: result.append({ 'id': one.id, 'code': one.code, 'username': one.username, 'type': one.type, 'secret_key': one.secret_key, 'amount': float('%.2f' % one.amount), 'level': one.level, 'state': one.state, 'mobilephone': one.mobilephone, 'email': one.email, 'name': one.name, 'remark': one.remark, 'levelname': one.levelname }) return make_response(result)
def get(self): res = getNumber() result = [] for i in res: result.append({'id': i[0], 'number': i[1]}) return make_response(result)
def get(self): username = g.current_member.username if not username: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} res = ag_tongji() return make_response(res)
def get(self): args = df_merchant_recharge.parse_args() critern = set() critern.add(DfTradeRechargeDao.state == 2) if 'mer_name' in args: if args['mer_name'] is not None: critern.add(DfTradeRechargeDao.username == args['mer_name']) if 'begin_time' in args: if args['begin_time'] is not None: critern.add(DfTradeRechargeDao.action_time >= args['begin_time']) if 'end_time' in args: if args['end_time'] is not None: critern.add(DfTradeRechargeDao.action_time <= args['end_time']) pagination = test(critern, page=args['page'], per_page=args['page_size']) result=[] for item in pagination.items: result.append({ "mer_name":item.username, "number_day":item.dds, "sum_amount_day":float('%.2f' % item.zje) }) return make_response(result, page=pagination.page, pages=pagination.pages, total=pagination.total)
def put(self): m_args = refulationParsers.parse_args(strict=True) res = getdate() if res is None: res = insert() id = res.id m_args['id'] = id up = update(m_args) res = getdate() result = [] result.append({ "id": res.id if res else None, "stop_service": res.stop_service if res else None, "exempt": res.exempt if res else None, "notify_times": res.notify_times if res else None, "pay_times": res.pay_times if res else None, "pay_url_times": res.pay_url_times if res else None, "perday_income": res.perday_income if res else None, "repetition_time": res.repetition_time if res else None, "large_limit_lower": res.large_limit_lower if res else None, "large_limit_upper": res.large_limit_upper if res else None, "small_limit_lower": res.small_limit_lower if res else None, "small_limit_upper": res.small_limit_upper if res else None }) return make_response(result)
def get(self): parser = RequestParser(trim=True) parser.add_argument('name', type=str, required=True, nullable=False) args = parser.parse_args() if not args['name']: return {'success': False, "error_msg": "标签名错误"} sign = CodeLabel.select_one_by_name(args['name']) res = [] for y in sign.codes: res.append(y) result = [] for r in res: if r.state != 3: bankname = db.session.query( BankDao.name).filter(BankDao.id == r.bank_id).first() result.append({ 'id': r.id, 'name': r.names, 'bankname': bankname[0], 'bank_account': r.bank_account, 'receive_member': r.receive_member, 'valid_time': r.valid_time, 'state': r.state, 'levels': r.levels, 'code': r.code, 'isshowlevel': False }) return make_response(result)
def put(self, id): m_args = MerChantparserPut.parse_args(strict=True) m_args['id'] = id args = UpdataData(m_args) result = [] for items in args: result.append({ "id": items.id, "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "rate": items.rate, "secret_key": items.secret_key, "amount": items.amount, "level": items.level, "state": items.state, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "levelname": items.levelname }) return make_response(result)
def get(self): query = db.session.query(BankDao.id, BankDao.name).all() result = [] for i in query: data = {} data['bankid'] = i.id data['bankname'] = i.name result.append(data) return make_response(result)
def get(self): query = db.session.query(LevelDao.name, LevelDao.id).all() result = [] for i in query: data = {} data['level'] = i.id data['levelname'] = i.name result.append(data) return make_response(result)
def get(self): m_args = onlinetradesParsers.parse_args(strict=True) critern = set() if g.current_member: username = g.current_member.username else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} if int(g.current_member.type) == 4: critern.add(MerchantDao.parent_name == g.current_member.username) if m_args['username'] is not None: critern.add(DfTradeDao.mer_username == m_args['username']) if m_args['parents_name'] is not None: res = db.session.query(DfAgentRate.mer_username).filter( DfAgentRate.agent_name == m_args['parents_name']).all() result = [] for i in res: result.append(i[0]) critern.add(DfTradeDao.mer_username.in_(result)) if m_args['org_order_no'] is not None: critern.add(DfTradeDao.org_order_no == m_args['org_order_no']) if m_args['amount_max'] is not None: critern.add(DfTradeDao.amount <= m_args['amount_max']) if m_args['amount_min'] is not None: critern.add(DfTradeDao.amount >= m_args['amount_min']) if m_args['state'] is not None: critern.add(DfTradeDao.state == m_args['state']) if m_args['begin_time'] is not None: critern.add(DfTradeDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(DfTradeDao.action_time <= m_args['end_time']) if m_args['begin_time_au'] is not None: critern.add(DfTradeDao.audit_time >= m_args['begin_time_au']) if m_args['end_time_au'] is not None: critern.add(DfTradeDao.audit_time <= m_args['end_time_au']) res = getOnlineDataTotal(critern) result = [] for items in res: if items.sxf is not None: sxf = float('%.2f' % keep_two_del(items.sxf)) else: sxf = 0 if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 result.append({ "amounttotal": amount, "sxftotal": sxf, }) return make_response(result)
def post(self): m_args = MerChantparserPost.parse_args(strict=True) if m_args['username'] is None: return jsonify({ 'success': False, 'errorCode': 403, 'errorMsg': '用户名不能为空' }) mem = db.session.query(MerchantDao.username).filter( MerchantDao.username == m_args['username']).first() if mem is not None: return jsonify({ 'success': False, 'errorCode': 403, 'errorMsg': '该商户/代理已存在' }) res = insertData(m_args) if res: if res['success'] is False: return { 'success': False, 'errorCode': 403, 'errorMsg': '该代理不存在' } args = getDate(page=m_args['page'], per_page=m_args['page_size']) result = [] for items in args.items: result.append({ "id": items.id, "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "rate": items.rate, "secret_key": items.secret_key, "amount": items.amount, "level": items.level, "state": items.state, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "levelname": items.levelname }) return make_response(result, page=args.page, pages=args.pages, total=args.total)
def get(self): args = qrcodeparserget.parse_args() if args['state'] is not None or args[ 'selectPayType'] is not None or args[ 'bank_account'] is not None or args['name'] is not None: msg = QrcodeService.Criteria_query(self, args) return msg elif args['code'] is not None: msg = QrcodeService.searchdetil(self, args) return make_response(msg) else: msg = QrcodeService.searchall(self, args['page'], args['page_size']) return msg
def get(self): m_args = dfagentskkparser.parse_args(strict=True) critern = set() critern_xinyong = set() critern_sxf = set() if m_args['username'] is not None: critern.add(DfAgentRate.agent_name == m_args['username']) if m_args['state'] is not None: critern_xinyong.add(DfTradeDao.state == m_args['state']) if m_args['begin_time'] is not None: critern_xinyong.add(DfTradeDao.action_time >= m_args['begin_time']) critern_sxf.add(DfTradeSxfDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern_xinyong.add(DfTradeDao.action_time <= m_args['end_time']) critern_sxf.add(DfTradeSxfDao.action_time <= m_args['end_time']) res_args = DfAgentsResportsSer().get_kk( critern=critern, critern_xinyong=critern_xinyong, critern_sxf=critern_xinyong, page=m_args['page'], per_page=m_args['page_size']) result = [] for res in res_args.items: if res.agent_name is None: continue if res.number is not None: number = int(res.number) else: number = 0 if res.amount is not None: amount = float('%.2f' % keep_two_del(res.amount)) else: amount = 0 if res.sxf is not None: sxf = float('%.2f' % keep_two_del(res.sxf)) else: sxf = 0 result.append({ 'agent_name': res.agent_name, 'number': number, 'amount': amount, 'sxf': sxf, }) return make_response(result, page=res_args.page, pages=res_args.pages, total=res_args.total)
def get(self): m_args = getwithdrawalparser.parse_args(strict=True) critern = set() if m_args['username'] is not None: critern.add(DfTradeRechargeDao.username == m_args['username']) if m_args['action_begin_time'] is not None: critern.add( DfTradeRechargeDao.action_time >= m_args['action_begin_time']) if m_args['action_end_time'] is not None: critern.add( DfTradeRechargeDao.action_time <= m_args['action_end_time']) if m_args['audit_begin_time'] is not None: critern.add( DfTradeRechargeDao.audit_time >= m_args['audit_begin_time']) if m_args['audit_end_time'] is not None: critern.add( DfTradeRechargeDao.audit_time <= m_args['audit_end_time']) if m_args['state'] is not None: critern.add(DfTradeRechargeDao.state == m_args['state']) args = DfGetCreditSer.get_data(self, critern, m_args['page'], m_args['page_size']) result = [] for i in args.items: if i.amount is not None: amount = float('%.2f' % keep_two_del(i.amount)) else: amount = 0 result.append({ 'id': i.id, 'order_no': i.order_no, 'amount': amount, 'real_amount': amount, 'action_time': i.action_time, 'audit_time': i.audit_time, 'audit_name': i.audit_name, 'state': i.state, 'username': i.username, 'remark': i.remark, }) return make_response(result, page=args.page, pages=args.pages, total=args.total)
def get(self): critern = set() zeroPoint = int(time.time()) - int(time.time() - time.timezone) % 86400 shijiancuo = int(time.time()) if g.current_member: username = g.current_member.username critern.add(DfTradeDao.mer_username == username) critern.add(DfTradeDao.state == 2) critern.add(zeroPoint <= DfTradeDao.action_time) critern.add(DfTradeDao.action_time <= shijiancuo) else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} res = tongji(critern) times = res[0][0] real_amount_sum = res[0][1] result = [] data = {} data['number_day'] = times data["sum_amount_day"] = float('%.2f' % keep_two_del(real_amount_sum)) # 今天日期 today = datetime.date.today() # 昨天时间 yesterday = today - datetime.timedelta(days=1) # 昨天开始时间戳 yesterday_start_time = int( time.mktime(time.strptime(str(yesterday), '%Y-%m-%d'))) # 昨天完成时间戳 yesterday_end_time = int( time.mktime(time.strptime(str(today), '%Y-%m-%d'))) - 1 args = db.session.query( func.coalesce( func.count( DfTradeDao.mer_username == g.current_member.username), 0).label('times'), func.coalesce(func.sum( DfTradeDao.amount), 0).label('real_amount_sum')).filter( yesterday_start_time <= DfTradeDao.action_time, DfTradeDao.mer_username == username, DfTradeDao.state == 2, DfTradeDao.action_time <= yesterday_end_time).all() ytimes = args[0][0] yreal_amount_sum = args[0][1] data['number_yes'] = ytimes data["sum_amount_yes"] = float('%.2f' % keep_two_del(yreal_amount_sum)) result.append(data) return make_response(result)
def get(self): m_args = bankParsers.parse_args(strict=True) if g.current_member: m_args['username'] = g.current_member.username res = getMerBank(m_args) else: return {"success": False, "error_code": 999} result = [] for items in res: result.append({ 'bankid': items.bankNumber, 'account': items.account, 'name': items.name, 'username': items.username }) return make_response(result)
def get(self): res = getdate() result = [] result.append({ "id": res.id if res else None, "stop_service": res.stop_service if res else None, "exempt": res.exempt if res else None, "notify_times": res.notify_times if res else None, "pay_times": res.pay_times if res else None, "pay_url_times": res.pay_url_times if res else None, "perday_income": res.perday_income if res else None, "repetition_time": res.repetition_time if res else None, "large_limit_lower": res.large_limit_lower if res else None, "large_limit_upper": res.large_limit_upper if res else None, "small_limit_lower": res.small_limit_lower if res else None, "small_limit_upper": res.small_limit_upper if res else None }) return make_response(result)
def get(self): m_args = agentsparser.parse_args(strict=True) critern = set() critern.add(MerchantDao.type != 1) if m_args['username']: if g.current_member.username == m_args['username']: critern.add(MerchantDao.username == g.current_member.username) else: return {"success": False, "error_code": 999} if m_args['mer_code'] is not None: critern.add(MerchantDao.code == m_args['mer_code']) if m_args['begin_time'] is not None: critern.add(MerchantDao.actionTime >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(MerchantDao.actionTime <= m_args['end_time']) if m_args['state'] is not None: critern.add(MerchantDao.state == m_args['state']) res = getDate(critern, m_args['page'], m_args['page_size']) result = [] for items in res.items: result.append({ "id": items.id, "code": items.code, "username": g.current_member.username, "type": items.type, "rate": items.rate, "state": items.state, "level": items.level, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "levelname": items.levelname, "actionTime": items.actionTime }) return make_response(result, page=res.page, pages=res.pages, total=res.total)
def get(self): critern = set() if g.current_member: username = g.current_member.username critern.add(SelfAgentRate.agent_name == username) else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} data = get_dfagrate_info(critern) print(data) print(type(data)) print(data[0]) result = [] result.append({ 'mer_name': data[0], 'qjrate': data[1], 'gdrate': float('%.3f' % data[2]) }) return make_response(result)
def put(self, code): m_args = agentsparserput.parse_args() m_args['code'] = code args = UpdataData(m_args) result = [] for items in args: result.append({ "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "rate": items.rate, "level": items.level, "state": items.state, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "levelname": items.levelname, "actionTime": items.actionTime }) return make_response(result)
def get(self): critern = set() if g.current_member: username = g.current_member.username critern.add(DfAgentRate.agent_name == username) else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} data = get_dfag_info(critern) result = [] for one in data: rate = one[1] for i in rate: if ["ratelower"] is not "": i["ratelower"] = i["ratelower"] / 10000 if i['rateupper'] is not "": i["rateupper"] = i["rateupper"] / 10000 result.append({ 'mer_name': one.mer_username, 'qjrate': one.rate_amount, 'gdrate': float('%.3f' % one.rate_prop) * 100, }) return make_response(result)
def get(self): parser = RequestParser(trim=True) parser.add_argument('username', type=str) parser.add_argument('type', type=int) args = parser.parse_args(strict=True) res_name = None if args['type'] == 1 or args['type'] == 2: res_name = db.session.query(MerchantDao).filter(MerchantDao.username.like(args['username'] + "%")).order_by(MerchantDao.id.desc()).limit(10).all() # 平台商户看板 if args['type'] == 3: res_name = db.session.query(MerchantDao).filter(MerchantDao.username.like(args['username'] + "%"), MerchantDao.type == 1).order_by(MerchantDao.id.desc()).limit(10).all() # 平台代理看板 if args['type'] == 4: res_name = db.session.query(MerchantDao).filter(MerchantDao.username.like(args['username'] + "%"), MerchantDao.type == 2).order_by(MerchantDao.id.desc()).limit(10).all() result = [] for i in res_name: result.append({ "username": i.username }) return make_response(result)
def get(self): args = df_merchant_get.parse_args() if args['mer_code'] is not None: data = Df_Merchant.searchdetails(self, args) return make_response(data) else: critern = set() critern.add(MerchantDao.type == 3) if args['username'] is not None: critern.add(MerchantDao.username == args['username']) if args['begin_time'] is not None: critern.add(MerchantDao.actionTime >= args['begin_time']) if args['end_time'] is not None: critern.add(MerchantDao.actionTime <= args['end_time']) if args['state'] is not None: critern.add(MerchantDao.state == args['state']) if args['level'] is not None: critern.add(MerchantDao.level == args['level']) pagination = Df_Merchant.searchall(self, critern, args['page'], args['page_size']) result = [] for item in pagination.items: count = db.session.query( DfAgentRate.agent_code).distinct().filter( and_(DfAgentRate.mer_code == item.code, MerchantDao.type == 4)).count() query = db.session.query( DfAgentRate.agent_name).distinct().filter( DfAgentRate.mer_code == item.code, MerchantDao.type == 4).all() data = [] for i in query: data.append(i.agent_name) result.append({ 'code': item.code, 'username': item.username, 'state': item.state, 'levelName': item.level, 'email': item.email, 'remark': item.remark, 'amount': float('%.2f' % item.amount), 'name': item.name, 'mobilephone': item.mobilephone, "agentcount": count, 'isShow': False, 'agentname': data }) return make_response(result, page=pagination.page, pages=pagination.pages, total=pagination.total)
def get(self): # m_args = agentsparserresportstotal.parse_args(strict=True) if g.current_member: username = g.current_member.username else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} res_mer = db.session.query(MerchantDao).filter( MerchantDao.username == username).first() if res_mer.type == 2: now = date.today() yesterday = now - timedelta(days=1) tom = now + timedelta(days=1) now_time = int(time.mktime(now.timetuple())) yesterday_time = int(time.mktime(yesterday.timetuple())) tom_time = int(time.mktime(tom.timetuple())) res_merchant_list = db.session.query(MerchantDao).filter( MerchantDao.parent_name == username).all() res_list = [] for i in res_merchant_list: res_list.append(i.code) res_total = db.session.query( OnlinetradesDao.mer_code, OnlinetradesDao.user_name, func.sum(OnlinetradesDao.bank_amount).label('amount'), func.sum(OnlinetradesDao.real_cost_agent).label( 'real_cost_agent')).filter( OnlinetradesDao.state == 2, OnlinetradesDao.audit_time.between( yesterday_time, now_time)).group_by( OnlinetradesDao.mer_code, OnlinetradesDao.user_name).all() res_total_list = [] for i in res_total: if i.mer_code in res_list: res_total_list.append(i) res_total_list_1 = tupinlist(res_total_list) res_total_n = db.session.query( OnlinetradesDao.mer_code, OnlinetradesDao.user_name, func.sum(OnlinetradesDao.bank_amount).label('amount'), func.sum(OnlinetradesDao.real_cost_agent).label( 'real_cost_agent')).filter( OnlinetradesDao.state == 2, OnlinetradesDao.audit_time.between( now_time, tom_time)).group_by( OnlinetradesDao.mer_code, OnlinetradesDao.user_name).all() res_total_list_n = [] for i in res_total_n: if i.mer_code in res_list: res_total_list_n.append(i) res_total_list_2 = tupinlist(res_total_list_n) data_list = [Decimal(0), Decimal(0), Decimal(0), Decimal(0)] for i in res_total_list_1: data_list[0] += i[2] data_list[1] += i[3] for i in res_total_list_2: data_list[2] += i[2] data_list[3] += i[3] agent_amount = db.session.query(MerchantDao.amount).filter( MerchantDao.username == username).scalar() data_list.append(agent_amount) result = [] result.append({ "y_total_amount": float(keep_two_del(data_list[0])), # 昨日交易金额 "y_cost_agent": float(keep_two_del(data_list[1])), # 昨日代理费 "n_total_amount": float(keep_two_del(data_list[2])), # 今日交易金额 "n_cost_agent": float(keep_two_del(data_list[3])), # 今日代理费 "amount": float(keep_two_del(data_list[4])) }) return make_response(result) else: return {'success': False, 'errorMsg': "您不是代理"}
def get(self): m_args = agentsparserresports.parse_args(strict=True) critern = set() critern_name = set() critern_wraw = set() critern_name.add(MerchantDao.type == 1) if g.current_member: username = g.current_member.username critern_name.add(MerchantDao.parent_name == username) else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} if m_args['begin_time'] is not None: critern.add(OnlinetradesDao.action_time >= m_args['begin_time']) critern_wraw.add(WithdrawDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(OnlinetradesDao.action_time <= m_args['end_time']) critern_wraw.add(WithdrawDao.action_time >= m_args['end_time']) if m_args['state'] is not None: critern.add(OnlinetradesDao.state == m_args['state']) critern_wraw.add(WithdrawDao.action_time >= m_args['state']) res = AgentsResportsService() q = res.get_data_agents_resports(args=critern, page=m_args['page'], per_page=m_args['page_size'], critern_name=critern_name, critern_wraw=critern_wraw) result = [] for i in q.items: if i.cost_agent is not None: cost_agent = float('%.2f' % keep_two_del(i.cost_agent)) else: cost_agent = 0 if i.cost_agent_completed is not None: cost_agent_completed = float( '%.2f' % keep_two_del(i.cost_agent_completed)) else: cost_agent_completed = 0 if i.cost_agent_hang is not None: cost_agent_hang = float('%.2f' % keep_two_del(i.cost_agent_hang)) else: cost_agent_hang = 0 if i.wrdraw_amount_completed is not None: wrdraw_amount_completed = float( '%.2f' % keep_two_del(i.wrdraw_amount_completed)) else: wrdraw_amount_completed = 0 if i.wrdraw_amount_hang is not None: wrdraw_amount_hang = float('%.2f' % keep_two_del(i.wrdraw_amount_hang)) else: wrdraw_amount_hang = 0 if i.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(i.wrdraw_amount)) else: wrdraw_amount = 0 result.append({ 'cost_agent': cost_agent, 'cost_agent_completed': cost_agent_completed, 'cost_agent_hang': cost_agent_hang, 'wrdraw_amount_completed': wrdraw_amount_completed, 'wrdraw_amount_hang': wrdraw_amount_hang, 'wrdraw_amount': wrdraw_amount, }) return make_response(result, page=q.page, pages=q.pages, total=q.total)
def get(self): statisticalParsers = RequestParser(trim=True) statisticalParsers.add_argument('state', type=int) statisticalParsers.add_argument('begin_time', type=int) statisticalParsers.add_argument('end_time', type=int) m_args = statisticalParsers.parse_args(strict=True) critern = set() critern_jiaoyi = set() critern_tx = set() critern_xinyong = set() critern_df = set() critern_sxf = set() if m_args['state'] is not None: critern_jiaoyi.add(OnlinetradesDao.state == m_args['state']) critern_tx.add(WithdrawDao.state == m_args['state']) critern_xinyong.add(DfTradeRechargeDao.state == m_args['state']) critern_df.add(DfTradeDao.state == m_args['state']) if m_args['begin_time'] is not None: critern_jiaoyi.add( OnlinetradesDao.action_time >= m_args['begin_time']) critern_tx.add(WithdrawDao.action_time >= m_args['begin_time']) critern_xinyong.add( DfTradeRechargeDao.action_time >= m_args['begin_time']) critern_df.add(DfTradeDao.action_time >= m_args['begin_time']) critern_sxf.add(DfTradeSxfDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern_jiaoyi.add( OnlinetradesDao.action_time <= m_args['end_time']) critern_tx.add(WithdrawDao.action_time <= m_args['end_time']) critern_xinyong.add( DfTradeRechargeDao.action_time <= m_args['end_time']) critern_df.add(DfTradeDao.action_time <= m_args['end_time']) critern_sxf.add(DfTradeSxfDao.action_time <= m_args['end_time']) agents_name = db.session.query(RefulationDao.agents).first() if agents_name is not None: res = db.session.query(DfAgentRate.mer_username).filter( DfAgentRate.agent_name == agents_name.agents).all() result = [] for i in res: result.append(i[0]) critern_xinyong.add(DfTradeRechargeDao.username.in_(result)) critern_df.add(DfTradeDao.mer_username.in_(result)) critern.add(MerchantDao.parent_name == agents_name.agents) critern_sxf.add( DfTradeSxfDao.agents_username == agents_name.agents) res_args = StaticSer().get_date(critern=critern, critern_jiaoyi=critern_jiaoyi, critern_tx=critern_tx, critern_xinyong=critern_xinyong, critern_df=critern_df, critern_sxf=critern_sxf) result = [] for res in res_args: if res.xinyong_amount is not None: xinyong_amount = float('%.2f' % keep_two_del(res.xinyong_amount)) else: xinyong_amount = 0 if res.dfjiaoyi_amount is not None: dfjiaoyi_amount = float('%.2f' % keep_two_del(res.dfjiaoyi_amount)) else: dfjiaoyi_amount = 0 if res.wraw_amount is not None: wraw_amount = float('%.2f' % keep_two_del(res.wraw_amount)) else: wraw_amount = 0 if res.wrdraw_amount_sxf is not None: wrdraw_amount_sxf = float('%.2f' % keep_two_del(res.wrdraw_amount_sxf)) else: wrdraw_amount_sxf = 0 if res.jiaoyi_amount is not None: jiaoyi_amount = float('%.2f' % keep_two_del(res.jiaoyi_amount)) else: jiaoyi_amount = 0 if res.jiaoyi_amount_service is not None: jiaoyi_amount_service = float( '%.2f' % keep_two_del(res.jiaoyi_amount_service)) else: jiaoyi_amount_service = 0 if res.jiaoyi_amount_agents is not None: jiaoyi_amount_agents = float( '%.2f' % keep_two_del(res.jiaoyi_amount_agents)) else: jiaoyi_amount_agents = 0 if res.df_sxf is not None: df_sxf = float('%.2f' % keep_two_del(res.df_sxf)) else: df_sxf = 0 if res.sunyi is not None: sunyi = float('%.2f' % keep_two_del(res.sunyi)) else: sunyi = 0 result.append({ 'xinyong_num': res.xinyong_num, 'xinyong_amount': xinyong_amount, 'dfjiaoyi_num': res.dfjiaoyi_num, 'dfjiaoyi_amount': dfjiaoyi_amount, 'wraw_num': res.wraw_num, 'wraw_amount': wraw_amount, 'wrdraw_amount_sxf': wrdraw_amount_sxf, 'jiaoyi_num': res.jiaoyi_num, 'jiaoyi_amount': jiaoyi_amount, 'jiaoyi_amount_service': jiaoyi_amount_service, 'jiaoyi_amount_agents': jiaoyi_amount_agents, 'df_sxf': df_sxf, 'sunyi': sunyi, }) return make_response(result)
def get(self): statisticalParsers = RequestParser(trim=True) statisticalParsers.add_argument('page', type=int, default=DEFAULT_PAGE) statisticalParsers.add_argument('page_size', type=int, default=DEFAULT_PAGE_SIZE) statisticalParsers.add_argument('qr_code', type=str) statisticalParsers.add_argument('name', type=str) statisticalParsers.add_argument('user_name', type=str) statisticalParsers.add_argument('state', type=int) statisticalParsers.add_argument('begin_time', type=int) statisticalParsers.add_argument('end_time', type=int) m_args = statisticalParsers.parse_args(strict=True) critern = set() if m_args['qr_code'] is not None: critern.add(OnlinetradesDao.qr_code == m_args['qr_code']) if m_args['name'] is not None: critern.add(OnlinetradesDao.drawee == m_args['name']) if m_args['user_name'] is not None: critern.add(OnlinetradesDao.user_name == m_args['user_name']) if m_args['state'] is not None: critern.add(OnlinetradesDao.state == m_args['state']) if m_args['begin_time'] is not None: critern.add(OnlinetradesDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(OnlinetradesDao.action_time <= m_args['end_time']) critern_w = set() # if m_args['order_no'] is not None: # critern_w.add(WithdrawDao.order_no == m_args['order_no']) if m_args['name'] is not None: critern_w.add(WithdrawDao.name == m_args['name']) if m_args['user_name'] is not None: critern_w.add(WithdrawDao.user_name == m_args['user_name']) if m_args['state'] is not None: critern_w.add(WithdrawDao.state == m_args['state']) if m_args['begin_time'] is not None: critern_w.add(WithdrawDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern_w.add(WithdrawDao.action_time <= m_args['end_time']) res_total = db.session.query( OnlinetradesDao.mer_code, OnlinetradesDao.user_name, func.sum(OnlinetradesDao.amount).label('amount'), func.sum( OnlinetradesDao.real_cost_service).label('real_cost_service'), func.sum(OnlinetradesDao.real_cost_agent).label('real_cost_agent'), func.count(OnlinetradesDao.id).label('total_count')).filter( *critern).group_by(OnlinetradesDao.mer_code, OnlinetradesDao.user_name).all() res_total_list = tupinlist(res_total) res_wq1 = db.session.query( OnlinetradesDao.mer_code, func.sum(OnlinetradesDao.amount).label('wq_amount'), func.count(OnlinetradesDao.id).label('wq_total_count')).filter( *critern, OnlinetradesDao.state == 1).group_by( OnlinetradesDao.mer_code).all() res_wq1_list = tupinlist(res_wq1) res_wq2 = db.session.query( WithdrawDao.mer_code, func.sum(WithdrawDao.paid_amount).label('w_paid_amount')).filter( *critern_w, WithdrawDao.state == 1).group_by(WithdrawDao.mer_code).all() res_wq2_list = tupinlist(res_wq2) res_q1 = db.session.query( OnlinetradesDao.mer_code, func.sum(OnlinetradesDao.bank_amount).label('q_amount'), func.count(OnlinetradesDao.id).label('q_total_count')).filter( *critern, OnlinetradesDao.state == 2).group_by( OnlinetradesDao.mer_code).all() res_q1_list = tupinlist(res_q1) res_q2 = db.session.query( WithdrawDao.mer_code, func.sum(WithdrawDao.paid_amount).label('q_paid_amount'), func.sum(WithdrawDao.wrdraw_amount).label('wrdraw_amount')).filter( *critern_w, WithdrawDao.state == 2).group_by(WithdrawDao.mer_code).all() res_q2_list = tupinlist(res_q2) data_1 = data_d1(res_total_list, res_wq1_list) data_2 = data_d2(data_1, res_wq2_list) data_3 = data_d1(data_2, res_q1_list) data_4 = data_d1(data_3, res_q2_list) result = [] for data in data_4: if data[3]: data_1 = data[3] else: data_1 = Decimal(0) if data[4]: data_2 = data[4] else: data_2 = Decimal(0) if data[6]: data_3 = data[6] else: data_3 = Decimal(0) if data[9]: data_4 = data[9] else: data_4 = Decimal(0) if data[12]: data_5 = data[12] else: data_5 = Decimal(0) if data[8]: data_6 = data[8] else: data_6 = Decimal(0) if data[11]: data_7 = data[11] else: data_7 = Decimal(0) result.append({ "user_name": data[1], "total_amount": float(keep_two_del(data_3 + data_4)), # 交易金额 "cost_service": float(keep_two_del(data_1)), # 服务费 "cost_agent": float(keep_two_del(data_2)), # 代理费 "total_count": data[5], # 总计 "wq_amount": float(keep_two_del(data_3)), # 未确认 "wq_total_count": data[7], # 未完成数 "w_paid_amount": float(keep_two_del(data_6)), # 代付未完成 "q_amount": float(keep_two_del(data_4)), # 确认 "q_total_count": data[10], # 已完成数 "q_paid_amount": float(keep_two_del(data_7)), # 代付已完成 "shouxu": float(keep_two_del(data_1 + data_5)) }) return make_response(result)