Пример #1
0
def pay_handler():
    if request.method =='POST':
        data = request_form_to_dict()
        pid = int(data.get("pid"))
        count = int(data.get("amount"))
        period=Period.get(id=pid)
        time_now=datetime.now()
        left=period.total_count-period.join_count
        if left >= count:
            num = get_num(pid, count)
            # 创建或更新夺宝订单明细记录
            create_or_update_order_detail(current_user.id, pid, {
                "count": count,
                "created_datetime": time_now,
                "num": num
            })
            # 更新用户余额
            update_user(current_user.id, current_user.balance - count)
            if left == count:
                kj_time = get_kj_time(time_now)
                update_period(pid, {
                     "join_count": period.join_count + count,
                     "status": 1,
                     "end_time": time_now,
                     "kj_count": create_kj_count(time_now),
                     "kj_time": kj_time,
                })
                create_period(period.product.id, period.total_count,  period.number+ 1)
            else:
                update_period(pid,{
                    "join_count": period.join_count + count,
                    })
            return redirect(url_for('period_detail',pid=pid))
Пример #2
0
def update_period(pid, data):
    period = Period.get(id=int(pid))
    if data.get("status"):
        period.join_count = data["join_count"]
        period.status = data["status"]
        period.end_time = data["end_time"]
        period.kj_count = data["kj_count"]
        period.kj_time = data["kj_time"]
    else:
        period.join_count = data["join_count"]
    period.save()
Пример #3
0
def get_num(pid, price):

    period = Period.get(id=pid)
    all_seq = str(period.all_num).split(' ')
    random_seq = random.sample(all_seq, price)
    random_text = ' '.join(random_seq)
    left_seq = set(all_seq) - set(random_seq)
    left_text = ' '.join(left_seq)
    period.all_num = left_text
    period.save()
    return random_text