def get(self): parser = RequestParser(trim=True) parser.add_argument('order_no', type=int) args = parser.parse_args(strict=True) # cost_detail = db.session.query(OnlineTradeConfirmDao).filter(OnlineTradeConfirmDao.order_no==1567578191100112352).first() cost_detail = db.session.query(OnlineTradeConfirmDao).filter( OnlineTradeConfirmDao.order_no == args['order_no']).first() result = [] result.append({ "id": cost_detail.id, "order_no": cost_detail.order_no, "bank_order_no": cost_detail.bank_order_no, "amount": float(keep_two_del(cost_detail.amount)), "cost_service": float(keep_two_del(cost_detail.cost_service)), "cost_agent": float(keep_two_del(cost_detail.cost_agent)) }) return 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 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 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 = [] if res.large_limit_lower is not None: large_limit_lower = float('%.2f' % keep_two_del(res.large_limit_lower)) else: large_limit_lower = 0 if res.large_limit_upper is not None: large_limit_upper = float('%.2f' % keep_two_del(res.large_limit_upper)) else: large_limit_upper = 0 if res.small_limit_lower is not None: small_limit_lower = float('%.2f' % keep_two_del(res.small_limit_lower)) else: small_limit_lower = 0 if res.small_limit_upper is not None: small_limit_upper = float('%.2f' % keep_two_del(res.small_limit_upper)) else: small_limit_upper = 0 if res.perday_income is not None: perday_income = float('%.2f' % keep_two_del(res.perday_income)) else: perday_income = 0 result.append({ "id": res.id if res else None, "agents": res.agents 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": perday_income, "repetition_time": res.repetition_time if res else None, "large_limit_lower": large_limit_lower, "large_limit_upper": large_limit_upper, "small_limit_lower": small_limit_lower, "small_limit_upper": small_limit_upper }) return make_response(result)
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 put(self, code): m_args = agentsparserput.parse_args() m_args['code'] = code args = UpdataData(m_args) result = [] for items in args: if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 result.append({ "code": items.code, "username": items.username, "type": items.type, "wrdraw_amount": wrdraw_amount, "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, "isShowRate": False, "isShowNum": False, "actionTime": items.actionTime }) return make_response(result)
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: if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 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": amount, "level": items.level, "state": items.state, "default_level": items.default_level, "wrdraw_amount": wrdraw_amount, "isShowRate": False, "isShowNum": False, "actionTime": items.actionTime }) return make_response(result)
def get(self): res = getdate() result = [] if res.large_limit_lower is not None: large_limit_lower = float('%.2f' % keep_two_del(res.large_limit_lower)) else: large_limit_lower = 0 if res.large_limit_upper is not None: large_limit_upper = float('%.2f' % keep_two_del(res.large_limit_upper)) else: large_limit_upper = 0 if res.small_limit_lower is not None: small_limit_lower = float('%.2f' % keep_two_del(res.small_limit_lower)) else: small_limit_lower = 0 if res.small_limit_upper is not None: small_limit_upper = float('%.2f' % keep_two_del(res.small_limit_upper)) else: small_limit_upper = 0 if res.perday_income is not None: perday_income = float('%.2f' % keep_two_del(res.perday_income)) else: perday_income = 0 result.append({ "id": res.id if res else None, "agents": res.agents 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":perday_income, "repetition_time": res.repetition_time if res else None, "large_limit_lower": large_limit_lower, "large_limit_upper": large_limit_upper, "small_limit_lower": small_limit_lower, "small_limit_upper": small_limit_upper }) return make_response(result)
def get(self): mer_code = '155fe8ce7e4e42efa72d2e2b45809194' result = self.calculation_amount(mer_code) sxf = 0 for res in result: sxf_g = decimal.Decimal(str(res['sxf_g'])) sxf_q = decimal.Decimal(str(res['sxf'])) am = sxf_g + sxf_q sxf += am sxf = float('%.2f' % keep_two_del(sxf)) return sxf
def put(self,id): m_args = MerChantparserPut.parse_args(strict=True) m_args['id'] = id args = UpdataData(m_args) result = [] for items in args: if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 result.append({ "id": items.id, "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "parent_name": items.parent_name, "rate": items.rate, "secret_key": items.secret_key, "amount": amount, "wrdraw_amount": wrdraw_amount, "level": items.level, "state": items.state, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "isShowRate": False, "levelname": items.levelname }) return make_response(result)
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() if g.current_member: username = g.current_member.username else: return {'success': False, 'errorCode': 402, 'errorMsg': '请登录'} res = db.session.query( (MerchantDao.amount - MerchantDao.wrdraw_amount).label('kyamount')).filter( MerchantDao.username == username).first() if res is not None: if res.kyamount is not None: res = float('%.2f' % keep_two_del(res.kyamount)) else: res = 0 else: res = 0 return {'kyamount': res}
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('user_name', type=str) 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['user_name'] is not None: critern.add(OnlinetradesDao.user_name == m_args['user_name']) 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['user_name'] is not None: critern_w.add(WithdrawDao.user_name == m_args['user_name']) 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']) if g.current_member: username = g.current_member.username res_merchant = db.session.query(MerchantDao).filter(MerchantDao.username==username).first() 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) if res_merchant.type==2: 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(*critern, OnlinetradesDao.state==2).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) result = [] for data in res_total_list: result.append({ "user_name": data.user_name, "total_amount": float(keep_two_del(data.amount)), # 交易金额 "cost_agent": float(keep_two_del(data.real_cost_agent)) # 代理费 }) return make_response(result) else: return {'success': False, 'errorMsg': '您不是代理'} else: return { 'success': False, 'errorCode': 402, 'errorMsg': '请登录' }
def queryDetail(self): try: self.__merchantDao = getDataByCode(self.__args_up['mer_code']) if not self.__merchantDao: self.success = False self.error_msg = '账户号错误' self.error_code = 8101 return self.__tradedataDao = DfTradeDao().get_data_state1( self.__merchantDao.code, self.__args_up['org_order_no']) m_size = len(self.__tradedataDao) if m_size != 1: self.success = False self.error_msg = '订单号错误' self.error_code = 8102 agentpayQuerylogger.info("订单号错误 : %s" % (self.__args_up['org_order_no'])) return sign = self.__args_up.pop('sign') m_sign = self.credit_sign(self.__args_up, self.__merchantDao.secret_key) m_sign = self.get_sign(m_sign) if m_sign != sign: self.success = False self.error_msg = '签名不正确' self.error_code = 8103 agentpayQuerylogger.info("签名不正确 .%s,%s" % (sign, m_sign)) return audit_time = int(time.time()) trade = self.__tradedataDao[0] m_result = {} m_result['mer_code'] = self.__args_up['mer_code'] m_result['order_no'] = trade.order_no m_result['org_order_no'] = trade.org_order_no m_result['state'] = trade.state m_result['audit_time'] = trade.audit_time m_result['amount'] = str(keep_two_del(trade.amount)) m_result['sxf'] = str(keep_two_del(trade.real_sxf)) m_sign = self.credit_sign(m_result, self.__merchantDao.secret_key) m_sign = self.get_sign(m_sign) m_result['sign'] = m_sign return m_result # if trade.state == 1: # self.____subdataDao = DfSubData().get_data() # df_query_url = self.____subdataDao.query_url # df_query_skey = self.____subdataDao.select_key # df_quer_mcode = self.____subdataDao.code # agentpayQuerylogger.info("%s 订单号查询"%(trade.order_no)) # mdata = {} # mdata['mchntCd'] = df_quer_mcode # mdata['mchntPayforSsn'] = trade.order_no # mstr = "mchntCd=%s&mchntPayforSsn=%s%s"%(df_quer_mcode,trade.order_no,df_query_skey) # mdata['sign'] = self.get_sign(mstr) # #代付交易查询 # agentpayQuerylogger.info("向下游发送查询请求") # res_json = self.cash_post(mdata, df_query_url) # res_sign = res_json.pop('sign') # m_sign = self.credit_sign(res_json, df_query_skey) # m_sign = self.get_sign(m_sign) # if res_sign != m_sign: # raise Exception('下游接口验签失败 : res_sign = %s , m_sign = %s'%(res_sign,m_sign)) # #判断交易状态是否更新 # if int(res_json['paySt']) == trade.state or int(res_json['paySt'] == 0) : # agentpayQuerylogger.error("%s订单状态没有改变,不需要更新"%(trade.order_no)) # else: # agentpayQuerylogger.error("%s订单状态改变,进行更新"%(trade.order_no)) # self.insert_query_detail(res_json, trade, audit_time) # self.update(res_json, trade, audit_time) # m_result = {} # m_result['mer_code'] = self.__args_up['mer_code'] # m_result['order_no'] = trade.order_no # m_result['org_order_no'] = trade.org_order_no # m_result['state'] = trade.state # m_result['audit_time'] = trade.audit_time # m_result['amount'] = str(keep_two_del(trade.amount)) # m_result['sxf'] = str(keep_two_del(trade.real_sxf)) # m_sign = self.credit_sign(m_result, self.__merchantDao.secret_key) # m_sign = self.get_sign(m_sign) # m_result['sign'] = m_sign # return m_result except Exception as e: agentpayQuerylogger.exception(e) agentpayQuerylogger.error(format(e)) self.success = False self.error_msg = '代付通道维护' self.error_code = 8199 return
def post(self): m_args = MerChantparserPost.parse_args(strict=True) if m_args['username'] is None: return jsonify({ 'success': False, 'errorCode': 403, 'errorMsg': '用户名不能为空' }) if m_args['level'] 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: if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 result.append({ "id": items.id, "code":items.code, "username":items.username, "type":items.type, "parent_code":items.parent_code, "parent_name": items.parent_name, "rate":items.rate, "secret_key":items.secret_key, "amount":amount, "wrdraw_amount": wrdraw_amount, "level":items.level, "state":items.state, "mobilephone":items.mobilephone, "email":items.email, "name":items.name, "remark":items.remark, "default_level":items.default_level, "isShowRate": False, "levelname": items.levelname }) return make_response(result,page=args.page, pages=args.pages, total=args.total)
def receive_withdrawal(self, m_args): try: m_args['amount'] = decimal.Decimal(m_args['amount']) if self.context_merchart is not None: mem = self.context_merchart if mem.type != 3: return { 'success': False, 'errorCode': 8002, 'errorMsg': '商户编号错误' } else: return { 'success': False, 'error_code': 8002, 'error_msg': '商户编号错误' } select_key = self.context_merchart.secret_key order_no = creat_order_no(8001, self.context_subdata.id) sxf = self.calculation_amount_sum(m_args['mer_code'], m_args['amount']) if mem.amount < m_args['amount'] + sxf: return { 'success': False, 'error_code': 8003, 'error_msg': '余额不足' } state = 1 m_str = '' args = {} bank_args = {} bank_args['order_no'] = order_no bank_args['org_order_no'] = m_args['org_order_no'] bank_args['state'] = state sign = m_args.pop('sign') for k in sorted(m_args): args[k] = m_args[k] if m_args[k] is not None: m_str += '%s=%s&' % (k, m_args[k]) m_str = m_str[:-1] m_str += select_key m_sign = self.get_sign(m_str) agentpaylogger.info('上游加密字符串:%s' % m_str) agentpaylogger.info('上游请求sign:%s' % sign) agentpaylogger.info('上游加密sign:%s' % m_sign) if m_sign == sign: m_args['order_no'] = order_no m_args['mem_amount'] = mem.amount m_args['mer_username'] = mem.username m_args['dongjie_amount'] = mem.dongjie_amount m_args['sxf'] = sxf in_service = self.insert_cash_reservice(m_args) data_args = {} data_args['mchntCd'] = self.context_subdata.code data_args['mchntPayforSsn'] = order_no data_args['cardName'] = m_args['name'] data_args['cardNo'] = m_args['account_number'] data_args['destAmount'] = float('%.2f' % keep_two_del(decimal.Decimal(m_args['amount']))) * 100 data_args['bankCd'] = self.__bankcard if in_service is not None: return in_service data = {} data['order_no'] = order_no data['org_order_no'] = m_args['org_order_no'] data['state'] = 1 m_str = '' for k in sorted(data): if data[k] is not None: m_str += '%s=%s&' % (k, data[k]) m_str = m_str[:-1] m_str += select_key m_sign_bank = self.get_sign(m_str) data['sign'] = m_sign_bank try: db.session.commit() except Exception as e: db.session.rollback() db.session.remove() agentpaylogger.error(e) agentpaylogger.exception(e) return { 'success': False, 'error_code': 8001, 'error_msg': '代付失败' } return { 'success': True, 'data': data } # res = self.cash_withdrawal(data_args) # if res is not None: # if res['success'] == True: # m_str_bank = '' # for k in sorted(bank_args): # if bank_args[k] is not None: # m_str_bank += '%s=%s&' % (k, bank_args[k]) # m_str_bank = m_str_bank[:-1] # m_str_bank += select_key # m_sign_bank = self.get_sign(m_str_bank) # bank_args['sign'] = m_sign_bank # data = bank_args # return { # 'success': True, # 'data': data # } # else: # return { # 'success': False, # 'error_code': 8001, # 'error_msg': '代付失败' # } else: return { 'success': False, 'error_code': 8004, 'error_msg': '签名错误' } except Exception as e: agentpaylogger.exception(e) agentpaylogger.error(format(e)) return { 'success': False, 'error_code': 8001, 'error_msg': '代付失败' }
def get(self,id=None): m_args = MerChantparser.parse_args(strict=True) critern = set() critern.add(MerchantDao.type == 1) if id is not None: critern.add(MerchantDao.id == id) if m_args['mer_code'] is not None: critern.add(MerchantDao.code == m_args['mer_code']) if m_args['username'] is not None: critern.add(MerchantDao.username == m_args['username']) 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['begin_wrdraw_amount'] is not None: critern.add(MerchantDao.wrdraw_amount >= m_args['begin_wrdraw_amount']) if m_args['end_wrdraw_amount'] is not None: critern.add(MerchantDao.wrdraw_amount <= m_args['end_wrdraw_amount']) if m_args['parent_code'] is not None: critern.add(MerchantDao.parent_code == m_args['parent_code']) if m_args['parent_name'] is not None: critern.add(MerchantDao.parent_name == m_args['parent_name']) if m_args['state'] is not None: critern.add(MerchantDao.state == m_args['state']) if m_args['level'] is not None: critern.add(MerchantDao.level == m_args['level']) res = getDate(critern,m_args['page'],m_args['page_size']) result = [] for items in res.items: if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 result.append({ "id": items.id, "code": items.code, "username": items.username, "type": items.type, "parent_code": items.parent_code, "parent_name": items.parent_name, "rate": items.rate, "secret_key": items.secret_key, "amount": amount, "wrdraw_amount": wrdraw_amount, "level": items.level, "state": items.state, "mobilephone": items.mobilephone, "email": items.email, "name": items.name, "remark": items.remark, "default_level": items.default_level, "isShowRate": False, "levelname":items.levelname }) return make_response(result, page=res.page, pages=res.pages, total=res.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, id=None): parser = RequestParser(trim=True) parser.add_argument('begin_audit_time', type=int) parser.add_argument('end_audit_time', type=int) parser.add_argument('order_no', type=str) parser.add_argument('state', type=int) parser.add_argument('page', type=int, default=DEFAULT_PAGE) parser.add_argument('page_size', type=int, default=DEFAULT_PAGE_SIZE) parser.add_argument('begin_time_au', type=int) parser.add_argument('end_time_au', type=int) args = parser.parse_args() critern = set() if args['state'] is not None: critern.add(BankTradeDao.state == args['state']) if args['begin_audit_time'] is not None: critern.add(BankTradeDao.action_time >= args['begin_audit_time']) if args['end_audit_time'] is not None: critern.add(BankTradeDao.action_time <= args['end_audit_time']) if args['order_no'] is not None: critern.add(BankTradeDao.order_no == args['order_no']) if args['begin_time_au'] is not None: critern.add(BankTradeDao.audit_time >= args['begin_time_au']) if args['end_time_au'] is not None: critern.add(BankTradeDao.audit_time <= args['end_time_au']) res = get_data(critern, args['page'], args['page_size']) result = [] for item in res.items: if item.amount is not None: amount = float('%.2f' % keep_two_del(item.amount)) else: amount = 0 result.append({ 'id': item.id, 'order_no': item.order_no, 'amount': amount, 'action_time': item.action_time, 'pay_time': item.pay_time, 'qr_code': item.qr_code, 'state': item.state, 'audit_time': item.audit_time, }) query = db.session.query( func.sum(BankTradeDao.amount).label('sumamount')).filter( *critern).first() print(query) if query.sumamount is not None: total = float('%.2f' % query.sumamount) else: total = 0 return make_response(result, page=res.page, pages=res.pages, total=res.total, count=total)
def get(self): m_args = withdrawParsers.parse_args(strict=True) critern = set() if 'mer_code' in m_args: if m_args['mer_code'] is not None: critern.add(MerchantDao.username == m_args['mer_code']) if 'username' in m_args: if m_args['username'] is not None: critern.add(WithdrawDao.mer_name == m_args['username']) if 'bank_id' in m_args: if m_args['bank_id'] is not None: critern.add(MerchantBank.bankNumber == m_args['bank_id']) if 'bank_account' in m_args: if m_args['bank_account'] is not None: critern.add(MerchantDao.parent_code == m_args['bank_account']) if 'order_no' in m_args: if m_args['order_no'] is not None: critern.add(WithdrawDao.order_no == m_args['order_no']) if 'amount_max' in m_args: if m_args['amount_max'] is not None: critern.add(WithdrawDao.amount <= m_args['amount_max']) if 'amount_min' in m_args: if m_args['amount_min'] is not None: critern.add(WithdrawDao.amount >= m_args['amount_min']) if 'state' in m_args: if m_args['state'] is not None: critern.add(WithdrawDao.state == m_args['state']) if m_args['begin_time'] is not None: critern.add(WithdrawDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(WithdrawDao.action_time <= m_args['end_time']) if m_args['begin_time_au'] is not None: critern.add(WithdrawDao.audit_time >= m_args['begin_time_au']) if m_args['end_time_au'] is not None: critern.add(WithdrawDao.audit_time <= m_args['end_time_au']) res = getOnlineData(critern, page=m_args['page'], per_page=m_args['page_size']) result = [] for items in res.items: if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.wrdraw_amount is not None: wrdraw_amount = float('%.2f' % keep_two_del(items.wrdraw_amount)) else: wrdraw_amount = 0 if items.paid_amount is not None: paid_amount = float('%.2f' % keep_two_del(items.paid_amount)) else: paid_amount = 0 if items.real_amount is not None: real_amount = float('%.2f' % keep_two_del(items.real_amount)) else: real_amount = 0 if items.cost_sx is not None: cost_sx = float('%.2f' % keep_two_del(items.cost_sx)) else: cost_sx = 0 result.append({ "mer_code": items.mer_code, "username": items.username, "order_no": items.order_no, "bank_id": items.bank_id, "bank_name": items.bank_name, "amount": amount, "wrdraw_amount": wrdraw_amount, "paid_amount": paid_amount, "account": items.account, "name": items.name, "real_amount": real_amount, "action_time": items.action_time, "audit_time": items.audit_time, "cost_sx": cost_sx, "state": items.state, "remark": items.remark, "audit_name": items.audit_name, "mer_ip": items.mer_ip }) return make_response(result, page=res.page, pages=res.pages, total=res.total)
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)
def get(self): m_args = agentsparserresportstotalguanli.parse_args(strict=True) del m_args['page'] del m_args['page_size'] critern = set() critern_name = set() critern_wraw = set() critern_name.add(MerchantDao.type == 1) if m_args['mer_username'] is not None: critern_name.add(MerchantDao.parent_name == m_args['mer_username']) 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_total(args=critern, critern_name=critern_name, critern_wraw=critern_wraw) result = [] for i in q: if i.cost_agent_total is not None: cost_agent_total = float('%.2f' % keep_two_del(i.cost_agent_total)) else: cost_agent_total = 0 if i.cost_agent_completed_total is not None: cost_agent_completed_total = float( '%.2f' % keep_two_del(i.cost_agent_completed_total)) else: cost_agent_completed_total = 0 if i.cost_agent_hang_total is not None: cost_agent_hang_total = float( '%.2f' % keep_two_del(i.cost_agent_hang_total)) else: cost_agent_hang_total = 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_total': cost_agent_total, 'cost_agent_completed_total': cost_agent_completed_total, 'cost_agent_hang_total': cost_agent_hang_total, 'wrdraw_amount_completed': wrdraw_amount_completed, 'wrdraw_amount_hang': wrdraw_amount_hang, 'wrdraw_amount': wrdraw_amount, }) return make_response(result)
def get(self): m_args = withdrawParsers.parse_args(strict=True) critern = set() if 'mer_code' in m_args: if m_args['mer_code'] is not None: critern.add(MerchantDao.username == m_args['mer_code']) if 'username' in m_args: if m_args['username'] is not None: critern.add(WithdrawDao.mer_name == m_args['username']) if 'bank_id' in m_args: if m_args['bank_id'] is not None: critern.add(MerchantBank.bankNumber == m_args['bank_id']) if 'bank_account' in m_args: if m_args['bank_account'] is not None: critern.add(MerchantDao.parent_code == m_args['bank_account']) if 'order_no' in m_args: if m_args['order_no'] is not None: critern.add(WithdrawDao.order_no == m_args['order_no']) if 'amount_max' in m_args: if m_args['amount_max'] is not None: critern.add(WithdrawDao.amount <= m_args['amount_max']) if 'amount_min' in m_args: if m_args['amount_min'] is not None: critern.add(WithdrawDao.amount >= m_args['amount_min']) if 'state' in m_args: if m_args['state'] is not None: critern.add(WithdrawDao.state == m_args['state']) if m_args['begin_time'] is not None: critern.add(WithdrawDao.action_time >= m_args['begin_time']) if m_args['end_time'] is not None: critern.add(WithdrawDao.action_time <= m_args['end_time']) if m_args['begin_time_au'] is not None: critern.add(WithdrawDao.audit_time >= m_args['begin_time_au']) if m_args['end_time_au'] is not None: critern.add(WithdrawDao.audit_time <= m_args['end_time_au']) res = getwithdraw_total(critern) result = [] for items in res: if items.amount_sum is not None: amount_sum = float('%.2f' % keep_two_del(items.amount_sum)) else: amount_sum = 0 if items.paid_amount is not None: paid_amount = float('%.2f' % keep_two_del(items.paid_amount)) else: paid_amount = 0 if items.withdraw_amount_sum is not None: withdraw_amount_sum = float( '%.2f' % keep_two_del(items.withdraw_amount_sum)) else: withdraw_amount_sum = 0 result.append({ "amount_sum": amount_sum, "paid_amount_sum": paid_amount, "withdraw_amount_sum": withdraw_amount_sum }) return make_response(result)
def get(self): m_args = onlinetradesParsers.parse_args(strict=True) critern = set() critern.add(PayType.code == 900001) if m_args['mer_code'] is not None: critern.add(OnlinetradesDao.mer_code == m_args['mer_code']) if m_args['username'] is not None: critern.add(MerchantDao.username == m_args['username']) if m_args['agent_code'] is not None: critern.add(MerchantDao.parent_code == m_args['agent_code']) if m_args['order_no'] is not None: critern.add(OnlinetradesDao.order_no == m_args['order_no']) if m_args['org_order_no'] is not None: critern.add(OnlinetradesDao.org_order_no == m_args['org_order_no']) if m_args['amount_max'] is not None: critern.add(OnlinetradesDao.amount <= m_args['amount_max']) if m_args['amount_min'] is not None: critern.add(OnlinetradesDao.amount >= m_args['amount_min']) 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']) if m_args['begin_time_au'] is not None: critern.add(OnlinetradesDao.audit_time >= m_args['begin_time_au']) if m_args['end_time_au'] is not None: critern.add(OnlinetradesDao.audit_time <= m_args['end_time_au']) if m_args['pay_type_name'] is not None: critern.add(PayType.name == m_args['pay_type_name']) res = getOnlineData(critern,page=m_args['page'],per_page=m_args['page_size']) result = [] for items in res.items: if items.real_cost_service is not None: real_cost_service = float('%.2f' % keep_two_del(items.real_cost_service)) else: real_cost_service = 0 if items.real_cost_agent is not None: real_cost_agent = float('%.2f' % keep_two_del(items.real_cost_agent)) else: real_cost_agent = 0 if items.amount is not None: amount = float('%.2f' % keep_two_del(items.amount)) else: amount = 0 if items.real_amount is not None: real_amount = float('%.2f' % keep_two_del(items.real_amount)) else: real_amount = 0 if items.bank_amount is not None: bank_amount = float('%.2f' % keep_two_del(items.bank_amount)) else: bank_amount = 0 if items.cost_service is not None: cost_service = float('%.2f' % keep_two_del(items.cost_service)) else: cost_service = 0 if items.cost_agent is not None: cost_agent = float('%.2f' % keep_two_del(items.cost_agent)) else: cost_agent = 0 if items.cost_service_confirm is not None: cost_service_confirm = float('%.2f' % keep_two_del(items.cost_service_confirm)) else: cost_service_confirm = 0 if items.cost_agent_confirm is not None: cost_agent_confirm = float('%.2f' % keep_two_del(items.cost_agent_confirm)) else: cost_agent_confirm = 0 if items.amount_confirm is not None: amount_confirm = float('%.2f' % keep_two_del(items.amount_confirm)) else: amount_confirm = 0 if items.discount_amount is not None: discount_amount = float('%.2f' % keep_two_del(items.discount_amount)) else: discount_amount = 0 result.append({ "order_no": items.order_no, "org_order_no": items.org_order_no, "bank_order_no": items.bank_order_no, "user_name": items.user_name, "agents_name": items.agents_name, "qr_code": items.qr_code, "amount": amount, "real_amount": real_amount, "bank_amount": bank_amount, "discount_amount": discount_amount, "action_time": items.action_time, "mer_code": items.mer_code, "pay_type": items.pay_type, "cost_service": cost_service, "cost_agent": cost_agent, "audit_time": items.audit_time, "state": items.state, "remark": items.remark, "bank_name": items.bank_name, "pay_type_name": items.pay_type_name, "amount_confirm": amount_confirm, "qr_code_confirm": items.qr_code_confirm, "audit_time_confirm": items.audit_time_confirm, "cost_service_confirm": cost_service_confirm, "cost_agent_confirm": cost_agent_confirm, "real_cost_service": real_cost_service, "real_cost_agent": real_cost_agent, "administrator_confirm": items.administrator_confirm, "mer_ip": items.mer_ip, "match_type":items.match_type }) return make_response(result, page=res.page, pages=res.pages, total=res.total)
def get_all_data(self): current_app.logger.info('补发通知开始获取数据') q = db.session.query( OnlinetradesDao.mer_code, OnlinetradesDao.order_no, OnlinetradesDao.org_order_no, OnlinetradesDao.audit_time, OnlinetradesDao.amount, OnlinetradesDao.bank_amount, OnlinetradesDao.pay_type, OnlinetradesDao.state, OnlinetradesExpansion.mer_notify_url, MerchantDao.secret_key, ).filter( and_( OnlinetradesDao.order_no == self.order_no, OnlinetradesDao.org_order_no == self.org_order_no, )) q = q.outerjoin( OnlinetradesExpansion, and_( OnlinetradesExpansion.order_no == OnlinetradesDao.order_no, OnlinetradesExpansion.org_order_no == OnlinetradesDao.org_order_no)) q = q.outerjoin(Qrcode, OnlinetradesDao.qr_code == Qrcode.code) q = q.outerjoin(MerchantDao, OnlinetradesDao.mer_code == MerchantDao.code) q = q.first() current_app.logger.info('补发通知查询数据集') if q is not None: if q.state == 1: return { 'success': False, 'errorCode': 410, 'errorMsg': '请先进行人工匹配在进行补发消息请求' } mer_code = q.mer_code if q.order_no is not None: order_no = q.order_no else: order_no = '' if q.audit_time: audit_time = q.audit_time else: audit_time = int(time.time()) state = q.state payUrl = q.mer_notify_url org_order_no = q.org_order_no amount = keep_two_del(q.amount) real_amount = keep_two_del(q.bank_amount) pay_type = q.pay_type payUrl = q.mer_notify_url m_args = {} m_args['order_no'] = order_no m_args['mer_code'] = mer_code m_args['org_order_no'] = org_order_no m_args['amount'] = str(amount) m_args['real_amount'] = str(real_amount) m_args['pay_type'] = pay_type m_args['audit_time'] = audit_time m_args['state'] = state args = {} m_str = '' for k in sorted(m_args): args[k] = m_args[k] if m_args[k] is not None: m_str += '%s=%s&' % (k, m_args[k]) m_str = m_str[:-1] m_str += q.secret_key m_sign = self.get_sign(m_str) print('加密字符串:%s' % m_str) print('加密sign:%s' % m_sign) print('补发回调路由%s' % payUrl) current_app.logger.info('补发通知加密字符串%s' % m_str) current_app.logger.info('补发通知加密sign%s' % m_sign) m_args['sign'] = m_sign # 发送数据 if payUrl is not None: url = payUrl + "?order_no=%s&org_order_no=%s&sign=%s&audit_time=%s&state=%s&amount=%s&real_amount=%s&pay_type=%s&mer_code=%s" % ( order_no, org_order_no, m_sign, audit_time, state, amount, real_amount, pay_type, mer_code) print(url) headers = {'content-type': 'application/json'} response = requests.post(payUrl, data=json.dumps(m_args), headers=headers, timeout=30) print("返回") status_code = response.status_code m_res = response.text current_app.logger.info('获取回调信息%s' % m_res) if status_code < 400: success = 1 else: success = 0 return self.insert(args=args, status_code=status_code, m_res=m_res, order_no=order_no, success=success, mer_code=mer_code) else: return { 'success': False, 'errorCode': 404, 'errorMsg': '返回路径错误' } else: return {'success': False, 'errorCode': 403, 'errorMsg': '该订单不存在'}
def get(self): m_args = onlinetradesParsers.parse_args(strict=True) critern = set() if g.current_member: username = g.current_member.username critern.add(DfTradeDao.mer_username == username) else: return { 'success': False, 'errorCode': 402, 'errorMsg': '请登录' } # if m_args['username'] is not None: # critern.add(DfTradeDao.mer_username == m_args['username']) 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 = getOnlineData(critern,page=m_args['page'],per_page=m_args['page_size']) result = [] for items in res.items: 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 print(items.org_order_no,type(items.org_order_no)) result.append({ "id": items.id, "order_no": items.order_no, "org_order_no": items.org_order_no, "mer_code": items.mer_code, "mer_username": items.mer_username, "amount": amount, "action_time": items.action_time, "audit_time": items.audit_time, "state": items.state, "account_name": items.account_name, "account_no": items.account_no, "bank_name": items.bank_name, "sxf": sxf, }) return make_response(result, page=res.page, pages=res.pages, total=res.total)
def get(self): m_args = onlinetradesParsers.parse_args(strict=True) critern = set() critern.add(PayType.code == 900001) if m_args['mer_code'] is not None: critern.add(OnlinetradesDao.mer_code == m_args['mer_code']) if m_args['username'] is not None: critern.add(MerchantDao.username == m_args['username']) if m_args['agent_code'] is not None: critern.add(MerchantDao.parent_code == m_args['agent_code']) if m_args['org_order_no'] is not None: critern.add(OnlinetradesDao.org_order_no == m_args['org_order_no']) if m_args['amount_max'] is not None: critern.add(OnlinetradesDao.amount <= m_args['amount_max']) if m_args['amount_min'] is not None: critern.add(OnlinetradesDao.amount >= m_args['amount_min']) 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']) if m_args['begin_time_au'] is not None: critern.add(OnlinetradesDao.audit_time >= m_args['begin_time_au']) if m_args['end_time_au'] is not None: critern.add(OnlinetradesDao.audit_time <= m_args['end_time_au']) if m_args['pay_type_name'] is not None: critern.add(PayType.name == m_args['pay_type_name']) res = getonline_total(critern) result = [] for items in res: if items.amount_sum is not None: amount_sum = float('%.2f' % keep_two_del(items.amount_sum)) else: amount_sum = 0 if items.real_amount_sum is not None: real_amount_sum = float('%.2f' % keep_two_del(items.real_amount_sum)) else: real_amount_sum = 0 if items.rcs_sum is not None: rcs_sum = float('%.2f' % keep_two_del(items.rcs_sum)) else: rcs_sum = 0 if items.rca_sum is not None: rca_sum = float('%.2f' % keep_two_del(items.rca_sum)) else: rca_sum = 0 result.append({ "amount_sum": amount_sum, "real_amount_sum": real_amount_sum, "rcs_sum": rcs_sum, "rca_sum": rca_sum }) return make_response(result)
def get(self, mercode=None): m_args = agentsparserresportsguanli.parse_args(strict=True) critern = set() critern_wraw = set() critern_name = set() critern_name.add(MerchantDao.type == 1) if m_args['mer_username'] is not None: critern_name.add(MerchantDao.parent_name == m_args['mer_username']) 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() if mercode is None: 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) else: critern.add(MerchantDao.parent_name == m_args['state']) q = res.get_data_agents_resports_merchat(critern, m_args['page'], m_args['page_size']) 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({ 'parent_name': i.parent_name, '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)