Esempio n. 1
0
def user_add_order():
    # 验证用户是否已登录
    token = request.args.get('token', None)
    if token is None:
        return jsonify({
            'code': 202,
            'msg': 'token查询参数必须提供或者登录后获取token'
        })
    if cache.check_token(token):
        user_id = cache.get_token_user_id(token)
        order_info = request.get_json()

        # 验证订单参数(和t_order表字段对应或order_detail)
        # 下订单的业务处理
        # 生成订单号(2019070200001,  2019070200002)
        dao = OrderDao()
        next_order_num = dao.next_order_num()
        order_info['order_num'] = next_order_num
        order_info['user_id'] = user_id

        tasks.add_order.delay(**order_info)

    return jsonify({
        'code': 201,
        'msg': '正在抢单',
        'oder_num': next_order_num
    })
Esempio n. 2
0
def add_order():
    token = request.get_json().get("token")
    if token is None:
        return jsonify({"code": 201, "msg": "token查询参数必须提供"})
    resp = request.get_json()
    total = resp.get("total")
    type1 = resp.get("type")
    c_id = resp.get("course")  # 获取的c_id是字符串 <class 'str'>
    u_id = cache_.get_token_user_id(token)
    print(c_id)
    if u_id:
        if type1 == "fromcart":  # 如果是从购物车提交订单
            cart_dao = CartDao()
            course_info = cart_dao.will_pay_course(c_id,
                                                   u_id).get("course_list")
            total_price = cart_dao.will_pay_course(c_id,
                                                   u_id).get("total_price")
            # print("aaaaaaaaaa", course_info,type(course_info))
            if len(c_id) > 1:
                if total_price == total:  # 提交订单传递的总价是否和后台计算的总价相等
                    order_obj = OrderDao()
                    # user_course = UserCourseDao()
                    order_num = order_obj.next_order_num()  # 生成订单编号
                    for course in course_info:  # 创建订单记录
                        order_success = order_obj.save(
                            "orders", **{
                                "order_num": order_num,
                                "user_id": u_id,
                                "course_id": course.get("id"),
                                "price": course.get("price")
                            })

                        if order_success:
                            # 如果创建订单,购买的课程存入用户课程表中成功,则删除购物车记录
                            cart_delete = cart_dao.delete_user_cart_course(
                                course.get("id"), u_id)
                            if cart_delete:
                                continue
                    # 返回订单信息
                    return jsonify({
                        "code": 200,
                        "order_num": order_num,
                        "data": course_info
                    })
                return jsonify({"code": 201, "msg": "价格不正确"})
            elif len(c_id) == 1:
                if total_price == total:
                    order_obj = OrderDao()
                    order_num = order_obj.next_order_num()
                    order_success = order_obj.save(
                        "orders", **{
                            "order_num": order_num,
                            "user_id": u_id,
                            "course_id": course_info.get("id"),
                            "price": course_info.get("price")
                        })
                    if order_success:  # 如果创建订单记录成功,返回订单信息
                        cart_delete = cart_dao.delete_user_cart_course(
                            course_info.get("id"), u_id)
                        if cart_delete:
                            return jsonify({
                                "code": 200,
                                "order_num": order_num,
                                "data": course_info
                            })
                return jsonify({"code": 201, "msg": "价格不正确"})

        elif type1 == "fromcombat":  # 如果是立即购买提交订单
            pay_dao = PayDao()
            cid = pay_dao.get_course_id(c_id)
            course_info = pay_dao.get_pay_course(cid).get("pay_course")
            total_price = pay_dao.get_pay_course(cid).get("total_price")
            if total_price == total:  # 总价相等,创建一条订单记录
                order_obj = OrderDao()
                order_num = order_obj.next_order_num()
                order_success = order_obj.save(
                    "orders", **{
                        "order_num": order_num,
                        "user_id": u_id,
                        "course_id": course_info[0].get("id"),
                        "price": course_info[0].get("price")
                    })
                if order_success:  # 如果创建订单记录成功,返回订单信息
                    return jsonify({
                        "code": 200,
                        "order_num": order_num,
                        "data": course_info
                    })
            return jsonify({"code": 201, "msg": "价格不正确"})
    return jsonify({"code": 201, "msg": "用户未登录或注册"})