Example #1
0
def create():
    user_id = session.get("user_id")
    content = request.data
    try:
        data = json.loads(str(content, encoding="utf-8"))
    except JSONDecodeError:
        return jsonify(Result().fail(code="error.json"))
    pros = data.get('pros')
    areas = data.get('areas')
    name = data.get('name')
    mobile = data.get('mobile')
    address = data.get('address')
    save = OrdSave()
    for pro in pros:
        pid = pro.split("_")[0]
        num = pro.split("_")[1]
        product = product_service.find_by_id(pid)
        if not product:
            return jsonify(Result().fail(code="product.not.exist",
                                         msg="product not exist"))
        save.add_product({
            "id": str(product.id),
            "num": num,
            "title": product.title
        })
    save.areas = areas
    save.name = name
    save.mobile = mobile
    save.address = address
    save.user_id = user_id
    save.status = 1
    id = ord_service.save(save)
    return jsonify(Result().success({"id": id}))
Example #2
0
def bind_product():
    try:
        data = json.loads(str(request.data, encoding="utf-8"))
    except JSONDecodeError:
        return jsonify(Result().fail(code="error.json"))
    product_id = str(data['product_id'])
    codes = data['codes']
    p = product_service.find_by_id(product_id)
    if not p:
        return jsonify(Result().fail(code="product.not.found"))
    gift_card_service.update_bind_product(codes, product_id)
    return jsonify(Result().success())
Example #3
0
def find_by_code(code):
    gift = gift_card_service.find_by_code(code)
    if not gift:
        current_app.logger.warn("can not find the gift code: %s" % code)
        return jsonify(Result().fail(code="gift_card.not.found"))
    pro = product_service.find_by_id(gift.product_id)
    if not pro:
        return jsonify(Result().fail(code="product.not.bind"))
    return jsonify(Result().success({
        "gift_card": gift.to_dict(),
        "product": pro.to_dict()
    }))
Example #4
0
def create_gift_card():
    user_id = session.get("user_id")
    content = request.data
    try:
        data = json.loads(str(content, encoding="utf-8"))
    except JSONDecodeError:
        return jsonify(Result().fail(code="error.json"))
    code = data.get('code')
    password = data.get('password')
    areas = data.get('areas')
    name = data.get('name')
    mobile = data.get('mobile')
    address = data.get('address')
    save = OrdSave()
    gift = gift_card_service.find_by_code(code)
    if not gift:
        current_app.logger.warn("can not find the gift code: %s" % code)
        return jsonify(Result().fail(code="gift.not.found"))
    if password != gift.password:
        return jsonify(Result().fail(code="gift.password.error"))
    if not gift.product_id:
        return jsonify(Result().fail(code="gift.product.relation",
                                     msg="gift card not bind to the product"))
    if gift.status != 1:
        return jsonify(Result().fail(code="gift.card.expire",
                                     msg="gift card expire or used"))
    save.gift_card_id = str(gift.id)
    save.gift_card_code = gift.code
    product = product_service.find_by_id(gift.product_id)
    if not product:
        return jsonify(Result().fail(code="product.not.exist",
                                     msg="product not exist"))
    gift_card_service.update_used(code, password)
    ord_product = OrdProduct()
    ord_product.product_id = str(product.id)
    ord_product.num = 1
    ord_product.title = product.title
    ord_product.main_pic = product.main_pic
    save.add_product(ord_product)
    save.areas = areas
    save.name = name
    save.mobile = mobile
    save.address = address
    save.user_id = user_id
    save.status = const.ORD_WAIT_SEND
    id = ord_service.save(save)
    return jsonify(Result().success({"id": id}))
Example #5
0
def bind_product_range():
    try:
        data = json.loads(str(request.data, encoding="utf-8"))
    except JSONDecodeError:
        return jsonify(Result().fail(code="error.json"))
    product_id = str(data['product_id'])
    start_code = data['start_code']
    end_code = data['end_code']
    code = start_code[:-6]
    num_start = int(start_code[-6:])
    num_end = int(end_code[-6:])
    # 0120190101000011
    p = product_service.find_by_id(product_id)
    if not p:
        return jsonify(Result().fail(code="product.not.found"))
    if num_end - num_start > 1000:
        return jsonify(Result().fail(code="param.range",
                                     msg="end - start over 1000"))
    codes = []
    for num in range(int(num_start), int(num_end)):
        codes.append(code + str(num).zfill(6))
    gift_card_service.update_bind_product(codes, product_id)
    return jsonify(Result().success())
Example #6
0
 def test_find_by_id(self):
     p = product_service.find_by_code(self.product_save.code)
     p2 = product_service.find_by_id(p.id)
     self.assertEqual(p, p2)
Example #7
0
def detail_by_id(pid):
    p = product_service.find_by_id(pid)
    if not p:
        return jsonify(Result().fail(code="not.exists", msg="not.exists"))
    return jsonify(Result().success(p.to_dict()))