示例#1
0
 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)
示例#2
0
    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)
示例#3
0
    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)
示例#4
0
 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)
示例#5
0
    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)
示例#8
0
 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)
示例#9
0
 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)
示例#10
0
    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)
示例#11
0
    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)
示例#12
0
    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)
示例#13
0
    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)
示例#14
0
    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)
示例#15
0
 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
示例#16
0
    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)
示例#17
0
    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)
示例#19
0
 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)
示例#20
0
 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)
示例#21
0
    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)
示例#22
0
    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)
示例#23
0
    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)
示例#24
0
    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)
示例#25
0
	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)
示例#26
0
    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)
示例#29
0
    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)
示例#30
0
    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)