def investmentInfo(product_id, num): response_data = {'num': num} p = request.args.get('p') res_dadata = {} replace_id = str(product_id).replace('-', '') if str(num) == '3': try: query_file_top = db.session.query(Borrow_file, Borrow_attachment) query_file_list = query_file_top.filter( and_(Borrow_file.borrowId == str(replace_id), Borrow_attachment.id == Borrow_file.id)).all() jiekuan_array = [] zhiya_array = [] tongyi_array = [] need_data = {} for i in query_file_list: res_data = {} res_data['path'] = JAVA_BAOQUAN_URL + '/' + i[1].realpath res_data['name'] = i[1].attachmenttitle if '借款合同' in res_data['name']: jiekuan_array.append(res_data) jiekuan_array = htsort(jiekuan_array) if '质押' in res_data['name']: zhiya_array.append(res_data) zhiya_array = htsort(zhiya_array) if '同意' in res_data['name']: tongyi_array.append(res_data) tongyi_array = htsort(tongyi_array) need_data['borrow'] = jiekuan_array need_data['zhiya'] = zhiya_array need_data['tongyi'] = tongyi_array res_dadata['code'] = u'10000' res_dadata['desc'] = u'' res_dadata['content'] = need_data except Exception as e: res_dadata['code'] = u'10004' res_dadata['desc'] = u'数据库操作失败' res_dadata['content'] = [] if p: return toolkit.response(res_dadata, 200, None, True) else: return render_template('product/borrow_demo.html', response_data=response_data) query_detail = db.session.query(Product_info, Borrower_info, Product_info.borrow_id) query_result = query_detail.filter( Product_info.id == replace_id, Borrower_info.id == Product_info.borrow_id).first() if product_id and query_result: response_data["product_type"] = query_result[0].product_type \ if query_result[0].product_type != '房产抵押' else '抵押贷' response_data["rate"] = query_result[0].rate response_data["time_limit"] = query_result[0].time_limit response_data["total_mount"] = query_result[0].total_mount response_data["product_status"] = str(query_result[0].product_status) response_data["repay_type"] = query_result[0].repay_type response_data["product_detail"] = query_result[0].product_detail response_data["product_loan_use"] = query_result[0].loan_use response_data["product_borrower"] = query_result[1].borrower_name query_top = db.session.query(Invest_info, Member) query_bottom = query_top.filter( Invest_info.product_id == str(replace_id), Member.id == Invest_info.member_id).order_by( Invest_info.time.desc()).all() lists = [] for i in query_bottom: lists.append((convertPhone(i[1].phone), i[0].money, i[0].time.strftime('%Y-%m-%d'))) response_data["borrower_list"] = lists response_data['boluo_url'] = JAVA_BAOQUAN_IMAGES_URL # ------------------------合同相关图片--------------------------- query_image_top = db.session.query(Product_image, Product_borrower_image) query_image_list = query_image_top.filter( or_(Product_image.borrow_id == str(replace_id), Product_borrower_image.borrower_id == str(replace_id))).all() images = [] for i in query_image_list: if i[0]: images.append(JAVA_BAOQUAN_IMAGES_URL + i[0].image) else: images.append(JAVA_BAOQUAN_IMAGES_URL + i[1].image_url) response_data['images'] = list(set(images)) return render_template('html5/investmentInfo.html', response_data=response_data, convertPhone=convertPhone)
def expose_data_info_ajax(): response_data = {} invest_list_top = db.session.query(Invest_info.time, Invest_info.money, Invest_info.hongbao) ybd = datetime.now() + timedelta(days=-103) invest_list = invest_list_top.filter(and_(Invest_info.time >= ybd)).all() invest_money_f01 = 0 invest_money_f02 = 0 invest_money_f03 = 0 invest_money_f04 = 0 for i in invest_list: if i.money + i.hongbao >= 0 and i.money + i.hongbao < 10000: invest_money_f01 += 1 elif i.money + i.hongbao >= 10000 and i.money + i.hongbao < 30000: invest_money_f02 += 1 elif i.money + i.hongbao >= 30000 and i.money + i.hongbao < 50000: invest_money_f03 += 1 elif i.money + i.hongbao >= 50000 and i.money + i.hongbao < 100000: invest_money_f04 += 1 stroke_count_list = [ invest_money_f01, invest_money_f02, invest_money_f03, invest_money_f04 ] stroke_count_list_total = float(invest_money_f01 + invest_money_f02 + invest_money_f03 + invest_money_f04) stroke_count_list = [ round(float(x) / stroke_count_list_total, 2) * 100 for x in stroke_count_list ] response_data['stroke_count_list'] = stroke_count_list tttt = datetime.now() + timedelta(days=-83) real_info_tops = db.session.query(Member_real_info.real_identid) ages = real_info_tops.filter(Member_real_info.create_time > tttt).all() agearr = [0.0, 0.0, 0.0, 0.0] sexdic = {'man': 0, 'women': 0} for i in ages: idcard = i.real_identid if 1960 <= int(idcard[6:10]) < 1970: agearr[0] += 1.0 elif 1970 <= int(idcard[6:10]) < 1980: agearr[1] += 1.0 elif 1980 <= int(idcard[6:10]) < 1990: agearr[2] += 1.0 elif 1990 <= int(idcard[6:10]) < 2000: agearr[3] += 1.0 else: pass if int(idcard[-2]) % 2 == 1: sexdic['man'] += 1 elif int(idcard[-2]) % 2 == 0: sexdic['women'] += 1 total = sexdic['man'] + sexdic['women'] agetotal = sum(agearr) agearr = [str(round(x / agetotal, 2) * 100) for x in agearr] sexdic['man'] = sexdic['man'] / total * 100 sexdic['women'] = sexdic['women'] / total * 100 response_data['ages'] = agearr # 年龄比例 response_data['sex'] = sexdic # 性别比例 return toolkit.response(response_data, 200, None, True)
def send_verify_code(): # 初始化REST SDK to_phone = request.form.get('phone') tempId = request.form.get('tem_id') key = request.form.get('key') response_data = {} mykey = '%s%s' % (PUBLIC_KEY, to_phone) if md5(mykey).hexdigest() != key: response_data["code"] = u"10003" response_data["desc"] = u"验证码发送失败" return toolkit.response(response_data, 200, None, True) if str( request.user_agent ) == 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)': response_data["code"] = u"10000" response_data["desc"] = u"验证码发送成功" print '=========ip攻击中========' return toolkit.response(response_data, 200, None, True) if to_phone is None: response_data["code"] = u"10002" response_data["content"] = u"手机号码不能为空" return toolkit.response(response_data, 200, None, True) rest = REST(SERVER_IP, SERVER_PORT, SOFT_VERSION) rest.setAccount(ACCOUNT_SID, ACCOUNT_TOKEN) rest.setAppId(APP_ID) redisClient = redis.StrictRedis(host='127.0.0.1', port=6379, db=0, password='******') verify_code = randint(100000, 999999) key = "%s_%s" % (to_phone, verify_code) key1 = '%s_switch' % to_phone try: try: if not redisClient.get(key): redisClient.set(key, str(verify_code)) redisClient.expire(key, 300) if not redisClient.get(key1): redisClient.set(key1, '1') redisClient.expire(key1, 500) else: redisClient.set(key1, '2') except (ValueError, TypeError): raise value1 = redisClient.get(key1) datas = [verify_code] tempId = 42447 if value1 == '1': rest.sendTemplateSMS(to_phone, datas, int(tempId)) print 'success for sms yuntongxun !!!!!!!!!!!' elif value1 == '2': aliyunsdkcore.AliyunMonitor().do_request(to_phone, verify_code) print 'success for sms aliyun !!!!!!!!!!!' response_data["code"] = u"10000" response_data["desc"] = u"验证码发送成功" return toolkit.response(response_data, 200, None, True) except: response_data["code"] = u"10004" response_data["desc"] = u"您发送的频率过快,请稍候再试" return toolkit.response(response_data, 200, None, True)
def xinwang_order(name_or_phone, order_id=None, product_id=None, total_fee=None, red_pocket_id=None): product_id = request.form.get("product_id", product_id) total_fee = request.form.get("total_fee", total_fee) red_pocket_id = request.form.get("red_pocket_id", red_pocket_id) total_fee = float(total_fee) response_data = {} if not product_id or not total_fee: response_data["code"] = u"10001" response_data["desc"] = u"参数字段不能为空" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) m = Member.query.filter( or_(Member.name == name_or_phone, Member.phone == name_or_phone)).first() if int(m.is_identity_bind) == 0: response_data["code"] = u"10018" response_data["desc"] = u"用户未认证" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) try: if total_fee < 1: response_data["code"] = u"10003" response_data["desc"] = u"交易金额不能小于1元" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) elif float(total_fee) > 100000: response_data["code"] = u"10026" response_data["desc"] = u"交易金额不能大于100000元" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) except: pass asset = Member_asset_info.query.filter( Member_asset_info.member_id == str(m.id).replace('-', '')).first() pro = Product_info.query.filter_by(id=product_id).first() if pro is None: response_data["code"] = u"10021" response_data["desc"] = u"该产品不存在" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if pro.product_type == '新手标': is_new_product = True else: is_new_product = False if is_new_product: if is_new_member(name_or_phone) == 'false': response_data["code"] = u"10022" response_data["desc"] = u"您已经不是新手了" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if total_fee > pro.limit_mount: response_data["code"] = u"10023" response_data["desc"] = u"新手标限额%s" % pro.limit_mount response_data["content"] = {} return toolkit.response(response_data, 200, None, True) has_total_total = total_fee + float(calculate_percentage(product_id)) if has_total_total > float(pro.total_mount): response_data["code"] = u"10013" response_data["desc"] = u"投资总额已达上限" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) # -----------------------------使用红包------------------------------------ rp = None rpt = None # 额外加息 qg_rate = 0.0 is_rate_pocket_val = False red_pocket_val = 0.0 rate_security = 0.0 # 可以用红包但不是新手 hongbao_source = '' if red_pocket_id: if not is_new_product: query_top = db.session.query(Member_red_pocket_type, Member_red_pocket) query_res = query_top.filter(and_(Member_red_pocket.sort_id == Member_red_pocket_type.id, \ Member_red_pocket.id == red_pocket_id)).all() if len(query_res) == 0 or query_res is None: response_data["code"] = u"10008" response_data["desc"] = u"红包不存在,请检查错误" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) elif len(query_res) > 1: response_data["code"] = u"10007" response_data["desc"] = u"存在多个红包,请检查错误" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) else: rp = query_res[0][1] if rp.generate_time < datetime.now(): response_data["code"] = u"10008" response_data["desc"] = u"红包不存在,请检查错误" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) rpt = query_res[0][0] if int(rpt.invest_days) > int(pro.time_limit): response_data["code"] = u"10008" response_data["desc"] = u"该红包不适用于当前期限的项目" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if rpt.type == '99' and total_fee >= float( query_res[0][0].start_money): rate_security = float(query_res[0][0].rate) red_pocket_val = round( total_fee * rate_security * float(pro.time_limit) / 360.0, 2) total_fee_jhb = total_fee - red_pocket_val else: red_pocket_val = float(query_res[0][0].money) red_pocket_val_start_money = float( query_res[0][0].start_money) total_fee_jhb = total_fee - red_pocket_val if rp.is_freeze: response_data["code"] = u"10007" response_data["desc"] = u"红包已使用,请检查错误" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if total_fee >= red_pocket_val_start_money: pass else: response_data["code"] = u"10016" response_data["desc"] = u"%s元红包的起投金额为%s, 请重新选择!" % ( query_res[0][0].money, int(red_pocket_val_start_money + query_res[0][0].money)) response_data["content"] = {} return toolkit.response(response_data, 200, None, True) hongbao_source = query_res[0][0].name else: response_data["code"] = u"10025" response_data["desc"] = u"新手不能使用红包" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) else: total_fee_jhb = total_fee if asset.remainamount + asset.rechargeamount < total_fee_jhb: response_data["code"] = u"10015" response_data["desc"] = u"账户余额不够,请充值" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) # 抢购加息 if total_fee <= 10000 and total_fee + float( calculate_percentage(product_id)) + 0.1 >= float(pro.total_mount): qg_rate += 0.01 # 红包ID if rp: hongbao_info_id = rp.id else: hongbao_info_id = None # -----------------------------end使用红包------------------------------------ inv = Invest_info(member_id=str(m.id).replace('-',''), money=total_fee_jhb, hongbao=red_pocket_val,\ member_name=m.name, hongbao_source=hongbao_source, hongbao_info_id=hongbao_info_id) if Member_invite_info.query.filter_by( invited_id=str(m.id).replace('-', '')).first(): inv.yaoqing_money = round( total_fee_jhb * 0.01 * float(pro.time_limit) / 360.0, 2) # 默认为投资中 inv.status = 1 inv.product_id = product_id inv.is_effect = 0 # 会员加息 if m.level == 1: qg_rate += 0.01 # 计算总收益 pro_fit = round( total_fee_jhb + red_pocket_val + float(total_fee_jhb * (float(pro.rate) + float(pro.rate_increase) + qg_rate) * float(pro.time_limit) / 360.0), 2) # 普通收益 inv.interest = round( total_fee_jhb * float(pro.rate) * float(pro.time_limit) / 360.0, 2) # 活动收益 inv.activity_interest = round( total_fee_jhb * (float(pro.rate_increase) + qg_rate) * float(pro.time_limit) / 360.0, 2) inv.profit = pro_fit inv.time = datetime.now() inv.expect_time = inv.time + timedelta(days=int(pro.time_limit)) if order_id: inv.order_id = order_id else: inv.order_id = "%d%06d" % (time.time() * 1000000, randint(0, 999999)) inv.bluuid = m.bluuid inv.rate_security = rate_security inv.extra_rate = qg_rate mlogin = Member_login.query.filter( Member_login.member_id == m.id).order_by( Member_login.last_time.desc()).first() if mlogin: inv.equipment = mlogin.equipment_name else: inv.equipment = 'app' inv.channel = m.channel_id try: db.session.add(inv) db.session.commit() db.session.merge(pro) db.session.commit() response_data['order_id'] = inv.order_id response_data['red_pocket_val'] = red_pocket_val response_data["code"] = u"10000" response_data["desc"] = u"数据库操作成功" response_data["content"] = {} except Exception, e: error = Error_log(phone=name_or_phone, type=u'下订单', description=str(e), creat_time=datetime.now()) db.session.add(error) db.session.commit() response_data["code"] = u"10004" response_data["content"] = u"数据库操作失败" response_data["content"] = {}
response_data['red_pocket_val'] = red_pocket_val response_data["code"] = u"10000" response_data["desc"] = u"数据库操作成功" response_data["content"] = {} except Exception, e: error = Error_log(phone=name_or_phone, type=u'下订单', description=str(e), creat_time=datetime.now()) db.session.add(error) db.session.commit() response_data["code"] = u"10004" response_data["content"] = u"数据库操作失败" response_data["content"] = {} print response_data return toolkit.response(response_data, 200, None, True) @app.route('/xinwang/invest/order/info/<path>', methods=['GET', 'POST']) def xw_invest_info(path): response_data = {'is_effect': '0'} order_id = request.args.get('order_id') if path == 'user_pre_transaction': inv = Invest_info.query.filter_by(order_id=order_id).first() if inv: pro_info = Product_info.query.filter_by(id=inv.product_id).first() response_data['is_effect'] = inv.is_effect response_data['product_name'] = pro_info.product_name response_data['time_limit'] = '%s天' % pro_info.time_limit response_data['money'] = '%s元' % inv.money response_data['rate'] = '%s' % (
def post_prize_result(phone): prize_id = request.form.get("prize_id", None) activity_id = request.form.get("activity_id", None) response_data = {} if prize_id is None: response_data["code"] = u"10001" response_data["desc"] = u"参数为空" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) m = Member.query.filter(Member.phone == phone).first() if m.isblack == 'Sync': response_data["code"] = u"10002" response_data["content"] = {} response_data["desc"] = u"您的账户已被迁移到菠萝理财存管版,请用菠萝理财存管版登录!" return toolkit.response(response_data, 200, None, True) if m is None: response_data["code"] = u"10002" response_data["desc"] = u"用户不存在" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) p = PrizeType.query.filter( or_(PrizeType.id == prize_id, PrizeType.hongbao_id == prize_id)).first() if p is None: response_data["code"] = u"10007" response_data["desc"] = u"奖品不存在" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) pr = Prize.query.filter(Prize.phone == phone, Prize.activity_id == activity_id).all() ps = PrizeShare.query.filter( PrizeShare.phone == phone, PrizeShare.activity_id == activity_id).first() if ps is None: response_data["code"] = u"10009" response_data["desc"] = u"尚未注册手机号" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if len(pr) >= ps.total_num: response_data["code"] = u"10003" response_data["desc"] = u"抽奖次数已用尽" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) if len(pr) < ps.total_num: now_time = datetime.strftime(datetime.now(), '%Y-%m-%d %H:%M:%S') try: pp = Prize(phone=m.phone, prize_id=prize_id, time=now_time, activity_id=activity_id) if prize_id == "36dc6dd45146b629015146b77be30004" or \ prize_id == "36dc6dd45146b629015146b7ad080006" or \ prize_id == "40288007518b44c901518b5007bd0001" or \ prize_id == "8a2db3e852a0744f0152a0860865000d" or \ prize_id == "8a2db3e852a0744f0152a08651e0000f" or \ prize_id == "8a2db3e852a0744f0152a0867e220011" or \ prize_id == "8a2db3e852a0744f0152a086efad0013": mr = gen_reg_red_pocket(p.hongbao_id, str(m.id).replace("-", "")) db.session.add(mr) db.session.commit() pp.is_grant = 1 db.session.add(pp) db.session.commit() response_data["code"] = u"10000" response_data["desc"] = u"抽奖成功" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) except: response_data["code"] = u"10004" response_data["desc"] = u"抽奖出现网络错误" response_data["content"] = {} return toolkit.response(response_data, 200, None, True) else: response_data["code"] = u"10003" response_data["desc"] = u"抽奖次数已用尽" response_data["content"] = {} return toolkit.response(response_data, 200, None, True)
def test(): response_data = {} return toolkit.response(response_data, 200, None, True)