def set_discount(): """ 设置食物折扣 """ restaurant_ids, category_ids, food_ids, restaurant_id, category_id, \ food_id = parse_args1() discount = float(request.json['discount']) with thrift_client('ers') as ers: for _id in restaurant_ids: ers.set_restaurant_food_eleme_buy_discount(_id, discount) _food_ids = copy.copy(food_ids) for _id in category_ids: food_query = thirdparty_svc.ers.TFoodQuery() food_query.category_id = _id food_query.is_valid = True food_query.limit = 1000 foods = ers.query_food(food_query) _food_ids.extend([food.id for food in foods]) foods = ers.mget_food(_food_ids) for food in foods: fix_food_b2f(food) food.attribute['eleme_buy_discount'] = discount food.attribute = jsonpickle_dumps(food.attribute) for k in food.__dict__.iterkeys(): if k not in ['id', 'attribute']: setattr(food, k, None) result = ers.save_food(food.id, food) return ''
def put(restaurant_id): restaurant_id = int(restaurant_id) restaurant = thirdparty_svc.ers.TRestaurant() for k, v in request.json.iteritems(): setattr(restaurant, k, v) if getattr(restaurant,'attribute',None) is not None: restaurant.attribute = jsonpickle_dumps(restaurant.attribute) with thrift_client('ers') as ers_client: result = ers_client.update_restaurant(restaurant_id, current_user.id, restaurant) return ''
def put(restaurant_id): restaurant_id = int(restaurant_id) restaurant = thirdparty_svc.ers.TRestaurant() for k, v in request.json.iteritems(): setattr(restaurant, k, v) if getattr(restaurant, 'attribute', None) is not None: restaurant.attribute = jsonpickle_dumps(restaurant.attribute) with thrift_client('ers') as ers_client: result = ers_client.update_restaurant(restaurant_id, current_user.id, restaurant) return ''
def fix_food_json_f2b(food_json): read_only_attrs = [ 'icons', 'recent_num_ratings', 'recent_rating', ] del_attrs = ['sort_order', '_image_url'] for _attr in read_only_attrs + del_attrs: food_json.pop(_attr, None) if 'attribute' in food_json: attribute = food_json.get('attribute', {}) if 'eleme_buy_discount' in attribute: discount = attribute['eleme_buy_discount'] if discount is not None: if not 0 <= discount <= 1: # todo raise error-.- attribute.pop('eleme_buy_discount', None) else: attribute.pop('eleme_buy_discount', None) food_json['attribute'] = jsonpickle_dumps(food_json['attribute'])
def any_to_raw(any): return jsonpickle_loads(jsonpickle_dumps(any))
def no_permission(): content = { 'status': 0, 'message': 'no permission', } return jsonpickle_dumps(content), 403