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}))
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())
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() }))
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}))
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())
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)
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()))