def comment(): resp_data = {} req = request.values page = int(req['page']) if ('page' in req and req['page']) else 1 query = MemberComments.query # 开始分页 page_params = { 'total': query.count(), 'page_size': app.config['PAGE_SIZE'], 'page': page, 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={0}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app.config['PAGE_SIZE'] # 查找 分页评论表 comment_list = query.order_by( MemberComments.member_id.asc()).offset(offset).limit( app.config['PAGE_SIZE']).all() # 待完成 selectFilterObj data_comment_list = [] if comment_list: # 寻找foods_id foods_id = selectCommentFoodIDs(comment_list, 'food_ids') foods_map = getDictFilterField(Food, Food.id, 'id', foods_id) # print( "foods_id:{0} foods_map:{1}".format( foods_id, foods_map) ) # 寻找 member_id member_ids = selectFilterObj(comment_list, 'member_id') member_ids_map = getDictFilterField(Member, Member.id, 'id', member_ids) # print( "member_ids:{0} member_ids_map:{1}".format( member_ids, member_ids_map) ) # pay_order_ids = selectFilterObj( comment_list,"pay_order_id" ) # pay_order_map = getDictFilterField( PayOrder,PayOrder.id,"id",pay_order_ids ) for item in comment_list: tmp_member_info = member_ids_map[item.member_id] data_foods = [] for i in item.food_ids.split('_'): if i != '': data_foods.append(foods_map[int(i)]) tmp_data = { "member_info": tmp_member_info, "foods": data_foods, "content": item.content, "score": item.score, "date": item.created_time.strftime("%Y-%m-%d %H:%M:%S"), } data_comment_list.append(tmp_data) resp_data['list'] = data_comment_list resp_data['pages'] = pages resp_data['current'] = 'comment' return ops_render("member/comment.html", resp_data)
def comment(): resp_data = {} req = request.args page = int(req['p']) if ('p' in req and req['p']) else 1 query = MemberComment.query page_params = { 'total': query.count(), 'page_size': app.config['PAGE_SIZE'], 'page': page, 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app.config['PAGE_SIZE'] comment_list = query.order_by( MemberComment.id.desc()).offset(offset).limit( app.config['PAGE_SIZE']).all() data_list = [] if comment_list: member_map = getDictFilterField( Member, Member.id, "id", selectFilterObj(comment_list, "member_id")) product_ids = [] for item in comment_list: tmp_product_ids = (item.product_ids[1:-1]).split("_") tmp_product_ids = {}.fromkeys(tmp_product_ids).keys() product_ids = product_ids + list(tmp_product_ids) product_map = getDictFilterField(Product, Product.id, "id", product_ids) for item in comment_list: tmp_member_info = member_map[item.member_id] tmp_products = [] tmp_product_ids = (item.product_ids[1:-1]).split("_") for tmp_product_id in tmp_product_ids: tmp_product_info = product_map[int(tmp_product_id)] tmp_products.append({ 'name': tmp_product_info.name, }) tmp_data = { "content": item.content, "score": item.score, "member_info": tmp_member_info, "products": tmp_products } data_list.append(tmp_data) resp_data['list'] = data_list resp_data['pages'] = pages resp_data['current'] = 'comment' return ops_render("member/comment.html", resp_data)
def cartIndex(): resp = {'code': 200, 'msg': '查询购物车成功~', 'data': {}} member_info = g.member_info # 取出用户信息 if not member_info: resp['code'] = -1 resp['msg'] = "获取失败,伪登录~~" return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: food_ids = selectFilterObj(cart_list, "food_id") # 获取所有的 food_id food_map = getDictFilterField( Food, Food.id, "id", food_ids) # 到food表里面进行查询。返回map方柏霓取值,因为它有 key for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { # 已添加的商品信息 "id": item.id, # 购物车商品id "number": item.quantity, # 添加的数量 "food_id": item.food_id, # 商品id "name": tmp_food_info.name, # 商品名称 "price": str(tmp_food_info.price), "pic_url": UrlManager.buildImageUrl(tmp_food_info.main_image), # 封面图 "active": True # 是否被选中 } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def CartIndex(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = '获取失败,未登录~' return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: food_ids = selectFilterObj(cart_list, 'food_id') food_map = getDictFilterField(Food, Food.id, 'id', food_ids) for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { "id": item.id, "number": item.quantity, "food_id": item.food_id, "name": tmp_food_info.name, "price": str(tmp_food_info.price), "pic_url": UrlManager.buildImageUrl(tmp_food_info.main_image), "active": True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def info(): resp_data = {} req = request.args id = int(req.get("id", 0)) reback_url = UrlManager.buildUrl("/food/index") if id < 1: return redirect(reback_url) info = Food.query.filter_by(id=id).first() if not info: return redirect(reback_url) # stock_change_list = FoodStockChangeLog.query.filter( FoodStockChangeLog.food_id == id )\ # .order_by( FoodStockChangeLog.id.desc() ).all() mem_comments = MemberComments.query.filter_by(food_ids=id).all() data_member_comments_list = [] if mem_comments: member_ids = selectFilterObj(mem_comments, "member_id") member_map = getDictFilterField(Member, Member.id, "id", member_ids) mem_com = {} for item in mem_comments: tmp_mem_com = member_map[item.member_id] data_member_comments_list.append({ 'nickname': tmp_mem_com.nickname, 'comment': item.content }) print("!!!!!!") print(data_member_comments_list) resp_data['info'] = info resp_data['comment'] = data_member_comments_list resp_data['current'] = 'index' return ops_render("food/info.html", resp_data)
def cartIndex(): resp = {'code': 200, 'msg': '添加购物车成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = "获取失败,未登录~~" return jsonify(resp) cart_list = MemberCart.query.filter_by( member_id=member_info.id).all() # 所有的car组成列表 data_cart_list = [] if cart_list: food_ids = selectFilterObj(cart_list, "food_id") # 从购物车列表中取出id(组成id列表) food_map = getDictFilterField(Food, Food.id, "id", food_ids) # 在food表获得{'id':{food信息}}的字典 # 传入要查询的表,表的字段,等于food_ids里面的,生成的可以值为id for item in cart_list: # 组装成列表 tmp_food_info = food_map[item.food_id] # 取出map信息 tmp_data = { "id": item.id, "number": item.quantity, "food_id": item.food_id, "name": tmp_food_info.name, "price": str(tmp_food_info.price), "pic_url": UrlManager.buildImageUrl(tmp_food_info.main_image), "active": True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def cartIndex(): resp = {'code': 200, 'msg': "操作成功", 'data': {}} req = request.values member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = "未登录" return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: food_ids = selectFilterObj(cart_list, "food_id") food_map = getDictFilterField(Food, Food.id, "id", food_ids) for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { 'id': item.id, 'food_id': item.food_id, 'number': item.quantity, 'name': tmp_food_info.name, 'price': str(tmp_food_info.price), 'pic_url': UrlManager.buildImageUrl(tmp_food_info.main_image), 'active': True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def foodComments(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} req = request.values id = int(req['id']) if 'id' in req else 0 # 使用 ilike查询; 且注意这里只查询出来了五条 query = MemberComments.query.filter( MemberComments.food_ids.ilike("%_{0}_%".format(id))) list = query.order_by(MemberComments.id.desc()).limit(5).all() data_list = [] if list: member_map = getDictFilterField(Member, Member.id, 'id', selectFilterObj(list, "member_id")) for item in list: if item.member_id not in member_map: continue tmp_member_info = member_map[item.member_id] tmp_data = { "score": item.score_desc, "date": item.created_time.strftime("%Y-%m-%d %H:%M:%S"), "content": item.content, "user": { "nickname": tmp_member_info.nickname, "avatar_url": tmp_member_info.avatar, } } data_list.append(tmp_data) resp['data']['list'] = data_list resp['data']['count'] = query.count() return jsonify(resp)
def cartIndex(): resp = {'code': 200, 'msg': '添加预约成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = "请登录后查看预约列表~~" return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: food_ids = selectFilterObj(cart_list, "food_id") food_map = getDictFilterField(Food, Food.id, "id", food_ids) for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { "id": item.id, # "number":item.quantity, "food_id": item.food_id, "name": tmp_food_info.name, "speaker": tmp_food_info.speaker, "speaker_address": tmp_food_info.speaker_address, "lecture_time": tmp_food_info.lecture_time, "pic_url": UrlManager.buildImageUrl(tmp_food_info.main_image), "active": True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def myIndex(): resp = {'code': 200, 'msg': '展示成功', 'data': {}} comment_list = InstructorComment.query.order_by( InstructorComment.id.desc()).all() data_comment_list = [] if comment_list: course_ids = selectFilterObj(comment_list, "course_id") course_map = getDictFilterField(Course, Course.id, "id", course_ids) for item in comment_list: tmp_course_info = course_map[item.course_id] tmp_data = { #comment表中的数据 "id": item.id, "instructor_id": item.instructor_id, "title": item.title, "instructor_course_summary": item.instructor_course_summary, "updated_date": item.updated_time.strftime("%Y-%m-%d"), "pic_url": UrlManager.buildImageUrl(item.main_image), #mapping到course表中的数据 "name": tmp_course_info.name, "course_date": tmp_course_info.course_date, "tags": tmp_course_info.tags, "active": True } data_comment_list.append(tmp_data) resp['data']['list'] = data_comment_list return jsonify(resp)
def myCommentList(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} req = request.values p = int(req['p']) if 'p' in req else 0 page_size = int(req['size']) if 'size' in req else 10 if p < 1: p = 1 offset = (p - 1) * page_size member_info = g.member_info comment_list = MemberComment.query.filter_by(member_id=member_info.id)\ .order_by(MemberComment.id.desc()).offset(offset).limit(page_size).all() data_comment_list = [] if comment_list: pay_order_ids = selectFilterObj(comment_list, 'pay_order_id') pay_order_map = getDictFilterField(PayOrder, PayOrder.id, 'id', pay_order_ids) for item in comment_list: tmp_pay_order_info = pay_order_map[item.pay_order_id] tmp_data = { "date": item.created_time.strftime("%Y-%m-%d %H:%M:%S"), "content": item.content, "order_number": tmp_pay_order_info.order_number } data_comment_list.append(tmp_data) resp['data']['list'] = data_comment_list resp['data']['has_more'] = 0 if len(data_comment_list) < page_size else 1 return jsonify(resp)
def cartIndex(): resp = {"code": 200, "msg": "添加成功", "data": {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = '未登录' return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: product_ids = selectFilterObj(cart_list, 'product_id') product_map = getDictFilterField(Product, Product.id, 'id', product_ids) for item in cart_list: tmp_product_info = product_map[item.product_id] tmp_data = { 'id': item.id, 'product_id': item.product_id, 'number': item.quantity, 'name': tmp_product_info.name, 'price': str(tmp_product_info.price), 'pic_url': UrlManager.buildImageUrl(tmp_product_info.main_image), 'active': True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def index(): resp_data = {} req = request.values page = int(req['p']) if ('p' in req and req['p']) else 1 query = Food.query if 'mix_kw' in req: rule = or_(Food.name.ilike("%{0}%".format(req['mix_kw'])),Food.tags.ilike("%{0}%".format(req['mix_kw']))) query = query.filter(rule) if 'status' in req and int(req['status']) > -1: query = query.filter(Food.status == int(req['status'])) if 'cat_id' in req and int(req['cat_id']) > 0: query = query.filter(Food.cat_id == int(req['cat_id'])) page_params = { 'total': query.count(), 'page_size': app.config['PAGE_SIZE'], 'page': page, 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page-1) * app.config['PAGE_SIZE'] list = query.order_by(Food.id.desc()).offset(offset).limit(app.config['PAGE_SIZE']).all() cat_mapping = getDictFilterField(FoodCat,FoodCat.id,"id",[]) resp_data['list'] = list resp_data['pages'] = pages resp_data['search_con'] = req resp_data['status_mapping'] = app.config['STATUS_MAPPING'] resp_data['cat_mapping'] = cat_mapping resp_data['current'] = 'index' return ops_render("food/index.html", resp_data)
def cartIndex(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = "获取失败,未登录~~" return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] if cart_list: # 获取表中所有的book_id,联合查询 book_ids = selectFilterObj(cart_list, "book_id") book_map = getDictFilterField(Book, Book.id, "id", book_ids) for item in cart_list: tmp_book_info = book_map[item.book_id] tmp_data = { "id": item.id, "book_id": item.book_id, "number": item.quantity, "name": tmp_book_info.name, "price": str(tmp_book_info.price), "pic_url": UrlManager.buildImageUrl(tmp_book_info.main_image), "active": True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def myCommentList(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code']=-1 resp['msg']="请登录后查看我的总结~" return jsonify(resp) comment_list = MemberComments.query.filter_by( member_id=member_info.id )\ .order_by(MemberComments.id.desc()).all() data_comment_list = [] if comment_list: pay_order_ids = selectFilterObj( comment_list,"pay_order_id" ) pay_order_map = getDictFilterField( PayOrderItem,PayOrderItem.id,"id",pay_order_ids ) for item in comment_list: tmp_pay_order_info = pay_order_map[ item.pay_order_id ] food_info = Food.query.filter_by( id=tmp_pay_order_info.food_id ).first() tmp_data = { "date":item.created_time.strftime("%Y-%m-%d %H:%M:%S"), "content":item.content, "speaker":tmp_pay_order_info.speaker, "lecture_time":tmp_pay_order_info.lecture_time, "name":food_info.name } data_comment_list.append( tmp_data ) resp['data']['list'] = data_comment_list return jsonify(resp)
def cartIndex(): resp = {'code':200, 'msg':'操作成功', 'data':{}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = '获取失败,未登录' return jsonify(resp) cart_list = MemberCart.query.filter_by(member_id = member_info.id).all() # cart_list [<common.models.member.MemberCart.MemberCart object at 0x7ff44568d9b0>, # <common.models.member.MemberCart.MemberCart object at 0x7ff44568da90>] data_cart_list = [] if cart_list: # 在购物车表里找food_ids,然后再筛选出对象 food_ids = selectFilterObj(cart_list, "food_id") # food_ids:[17, 3] food_map = getDictFilterField(Food, Food.id, "id", food_ids) # food_map:{3: <common.models.food.Food.Food object at 0x7ff445632b70>, # 17: <common.models.food.Food.Food object at 0x7ff445632be0>} for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { "id":item.id, "food_id":item.food_id, "number":item.quantity, "name":tmp_food_info.name, "price":str(tmp_food_info.price), "pic_url":UrlManager.buildImageUrl(tmp_food_info.main_image), "active":True } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def myComment(): resp = {'code': 200, 'msg': '操作成功', 'data': {}} req = request.values instructor_comment_id = req['id'] if 'id' in req else 0 query = MemberComments.query.filter_by( instructor_comment_id=instructor_comment_id) list = query.order_by(MemberComments.id.desc()).limit(5).all() data_list = [] if list: member_map = getDictFilterField(Member, Member.id, "id", selectFilterObj(list, 'member_id')) for item in list: if item.member_id not in member_map: continue tmp_member_info = member_map[item.member_id] tmp_data = { 'score': item.score_desc, 'date': item.created_time.strftime("%Y-%m-%d %H:%M:%S"), 'content': item.content, 'user': { 'nickname': tmp_member_info.nickname, 'avatar_url': tmp_member_info.avatar } } data_list.append(tmp_data) resp['data']['list'] = data_list resp['data']['count'] = query.count() return jsonify(resp)
def cartIndex(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info if not member_info: resp['code'] = -1 resp['msg'] = "获取失败,未登录~" return jsonify(resp) # 取出购物车list cart_list = MemberCart.query.filter_by(member_id=member_info.id).all() data_cart_list = [] # 业务封装 if cart_list: # 重点逻辑! food_ids = selectFilterObj(cart_list, 'food_id') # 获取所有的 food_id food_map = getDictFilterField(Food, Food.id, 'id', food_ids) for item in cart_list: tmp_food_info = food_map[item.food_id] tmp_data = { 'id': item.id, 'food_id': item.food_id, 'number': item.quantity, 'name': tmp_food_info.name, 'price': str(tmp_food_info.price), 'pic_url': UrlManager.buildImageUrl(tmp_food_info.main_image), 'active': True # 默认是否为选中状态 } data_cart_list.append(tmp_data) resp['data']['list'] = data_cart_list return jsonify(resp)
def myOrderList(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info req = request.values status = int( req['status'] ) if 'status' in req else 0 query = PayOrder.query.filter_by( member_id = member_info.id ) if status == -8 :#等待付款 query = query.filter( PayOrder.status == -8 ) elif status == -7:#待发货 query = query.filter( PayOrder.status == 1,PayOrder.express_status == -7,PayOrder.comment_status == 0 ) elif status == -6:#待确认 query = query.filter(PayOrder.status == 1, PayOrder.express_status == -6,PayOrder.comment_status == 0) elif status == -5:#待评价 query = query.filter(PayOrder.status == 1, PayOrder.express_status == 1,PayOrder.comment_status == 0) elif status == 1:#已完成 query = query.filter(PayOrder.status == 1, PayOrder.express_status == 1,PayOrder.comment_status == 1 ) else: query = query.filter( PayOrder.status == 0 ) pay_order_list = query.order_by( PayOrder.id.desc() ).all() data_pay_order_list = [] if pay_order_list: pay_order_ids = selectFilterObj( pay_order_list,"id" ) pay_order_item_list = PayOrderItem.query.filter( PayOrderItem.pay_order_id.in_( pay_order_ids ) ).all() food_ids = selectFilterObj( pay_order_item_list,"food_id" ) food_map = getDictFilterField( Food,Food.id,"id",food_ids ) pay_order_item_map = {} if pay_order_item_list: for item in pay_order_item_list: if item.pay_order_id not in pay_order_item_map: pay_order_item_map[ item.pay_order_id ] = [] tmp_food_info = food_map[ item.food_id ] pay_order_item_map[item.pay_order_id].append({ 'id':item.id, 'food_id':item.food_id, 'quantity':item.quantity, 'price':str( item.price ), 'pic_url':UrlManager.buildImageUrl( tmp_food_info.main_image ), 'name':tmp_food_info.name }) for item in pay_order_list: tmp_data = { 'status':item.pay_status, 'status_desc':item.status_desc, 'date':item.created_time.strftime("%Y-%m-%d %H:%M:%S"), 'order_number':item.order_number, 'order_sn':item.order_sn, 'note':item.note, 'total_price':str( item.total_price ), 'goods_list':pay_order_item_map[ item.id ] } data_pay_order_list.append( tmp_data ) resp['data']['pay_order_list'] = data_pay_order_list return jsonify(resp)
def myOrderInfo(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info req = request.values order_sn = req['order_sn'] if 'order_sn' in req else '' pay_order_info = PayOrder.query.filter_by(member_id=member_info.id, order_sn=order_sn).first() if not pay_order_info: resp['code'] = -1 resp['msg'] = "系统繁忙,请稍后再试~~" return jsonify(resp) address_info = MemberAddress.query.filter_by( id=pay_order_info.express_address_id).first() if address_info: address_info = { 'mobile': address_info.mobile, 'nickname': address_info.nickname, "address": "%s%s%s%s" % (address_info.province_str, address_info.city_str, address_info.area_str, address_info.address) } tmp_deadline = pay_order_info.created_time + datetime.timedelta(minutes=30) info = { "order_sn": pay_order_info.order_sn, "status": pay_order_info.pay_status, "status_desc": pay_order_info.status_desc, "pay_price": str(pay_order_info.pay_price), "yun_price": str(pay_order_info.yun_price), "total_price": str(pay_order_info.total_price), "address": address_info, "goods": [], "deadline": tmp_deadline.strftime("%Y-%m-%d %H:%M") } pay_order_items = PayOrderItem.query.filter_by( pay_order_id=pay_order_info.id).all() if pay_order_items: food_ids = selectFilterObj(pay_order_items, "food_id") food_map = getDictFilterField(Food, Food.id, "id", food_ids) for item in pay_order_items: tmp_food_info = food_map[item.food_id] tmp_data = { "name": tmp_food_info.name, "price": str(item.price), "unit": item.quantity, "pic_url": UrlManager.buildImageUrl(tmp_food_info.main_image), } info['goods'].append(tmp_data) resp['data']['info'] = info return jsonify(resp)
def index(): # http://192.168.153.155:8999/food/index?status=1&cat_id=1&mix_kw=%E9%BB%84%E7%84%96%E9%B8%A1 resp_data = {} req = request.values page = int(req['p']) if ('p' in req and req['p']) else 1 query = Food.query # status cat_id mix_kw if 'mix_kw' in req: # query = query.filter(Member.nickname.ilike("%{0}%".format(req['mix_kw']))) rule = or_(Food.name.ilike("%{0}%".format(req['mix_kw'])), Food.tags.ilike("%{0}%".format(req['mix_kw']))) query = query.filter(rule) if 'cat_id' in req and int(req['cat_id']) > 0: print( 'cat_id...........................................................' ) query = query.filter(Food.cat_id == int(req['cat_id'])) if 'status' in req and int(req['status']) > -1: print( 'status...........................................................' ) query = query.filter(Food.status == int(req['status'])) page_params = { # 总数 'total': query.count(), # 单页数量 'page_size': app.config['PAGE_SIZE'], 'page': page, # 在页面上你想要展示多少页 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), '') } # 生成分页 pages = iPagination(page_params) # 偏移量 offset = (page - 1) * app.config['PAGE_SIZE'] list = query.order_by(Food.id.desc()).offset(offset).limit( app.config['PAGE_SIZE']).all() # # 分类 cat_mapping = getDictFilterField(FoodCat, 'id', 'id', []) resp_data['cat_mapping'] = cat_mapping resp_data['list'] = list resp_data['pages'] = pages resp_data['search_con'] = req resp_data['status_mapping'] = app.config['STATUS_MAPPING'] resp_data['current'] = 'index' return ops_render("food/index.html", resp_data)
def food(): now = datetime.datetime.now() date_before_30days = now + datetime.timedelta(days=-30) default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d") default_date_to = getFormatDate(date=now, format="%Y-%m-%d") resp_data = {} req = request.values page = int(req['p']) if ('p' in req and req['p']) else 1 date_from = req['date_from'] if 'date_from' in req else default_date_from date_to = req['date_to'] if 'date_to' in req else default_date_to query = StatDailyFood.query.filter(StatDailyFood.date >= date_from) \ .filter(StatDailyFood.date <= date_to) app_config = current_app.config page_params = { 'total': query.count(), 'page_size': app_config['PAGE_SIZE'], 'page': page, 'display': app_config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app_config['PAGE_SIZE'] res_list = query.order_by(StatDailyFood.id.desc()).offset(offset).limit( app_config['PAGE_SIZE']).all() date_list = [] if res_list: food_map = getDictFilterField(Food, Food.id, "id", selectFilterObj(res_list, "food_id")) for item in res_list: tmp_food_info = food_map[ item.food_id] if item.food_id in food_map else {} tmp_data = { "date": item.date, "total_count": item.total_count, "total_pay_money": item.total_pay_money, 'food_info': tmp_food_info } date_list.append(tmp_data) resp_data['list'] = date_list resp_data['pages'] = pages resp_data['current'] = 'food' resp_data['search_con'] = {'date_from': date_from, 'date_to': date_to} return ops_render("stat/food.html", **resp_data)
def myOrderInfo(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info req = request.values order_sn = req['order_sn'] if 'order_sn' in req else '' pay_order_info = PayOrder.query.filter_by(member_id=member_info.id, order_sn=order_sn).first() if not pay_order_info: resp['code'] = -1 resp['msg'] = "系统繁忙,请稍后再试~~" return jsonify(resp) express_info = {} if pay_order_info.express_info: express_info = json.loads(pay_order_info.express_info) # print(express_info) tmp_deadline = pay_order_info.created_time + datetime.timedelta(minutes=30) info = { "order_sn": pay_order_info.order_sn, "status": pay_order_info.pay_status, "status_desc": pay_order_info.status_desc, "pay_price": str(pay_order_info.pay_price), "yun_price": str(pay_order_info.yun_price), "total_price": str(pay_order_info.total_price), "address": express_info, "goods": [], "deadline": tmp_deadline.strftime("%Y-%m-%d %H:%M") } pay_order_items = PayOrderItem.query.filter_by( pay_order_id=pay_order_info.id).all() if pay_order_items: book_ids = selectFilterObj(pay_order_items, "book_id") book_map = getDictFilterField(Book, Book.id, "id", book_ids) for item in pay_order_items: tmp_book_info = book_map[item.book_id] tmp_data = { "name": tmp_book_info.name, "price": str(item.price), "unit": item.quantity, "pic_url": UrlManager.buildImageUrl(tmp_book_info.main_image), } info['goods'].append(tmp_data) resp['data']['info'] = info return jsonify(resp)
def info(): resp_data = {} req = request.values id = int(req['id']) if 'id' in req else 0 reback_url = UrlManager.buildUrl("/finance/index") if id < 1: return redirect( reback_url ) pay_order_info = PayOrder.query.filter_by( id = id ).first() if not pay_order_info: return redirect(reback_url) member_info = Member.query.filter_by( id = pay_order_info.member_id ).first() if not member_info: return redirect(reback_url) order_item_list = PayOrderItem.query.filter_by( pay_order_id = pay_order_info.id ).all() data_order_item_list = [] if order_item_list: food_map = getDictFilterField(Food, Food.id, "id", selectFilterObj(order_item_list, "food_id")) for item in order_item_list: tmp_food_info = food_map[ item.food_id ] tmp_data = { "quantity":item.quantity, "price":item.price, "name":tmp_food_info.name } data_order_item_list.append( tmp_data ) address_info = MemberAddress.query.filter_by(id=pay_order_info.express_address_id).first() if address_info: address_info = { 'mobile': address_info.mobile, 'nickname': address_info.nickname, "address": "%s%s%s%s" % ( address_info.province_str, address_info.city_str, address_info.area_str, address_info.address) } resp_data['pay_order_info'] = pay_order_info resp_data['pay_order_items'] = data_order_item_list resp_data['member_info'] = member_info resp_data['address_info'] = address_info resp_data['current'] = 'index' return render_template_ops( "finance/pay_info.html",resp_data )
def info(): resp_data = {} req = request.values id = int(req['id']) if 'id' in req else 0 reback_url = UrlManager.buildUrl("/finance/index") # 重定向 if id < 1: return redirect(reback_url) pay_order_info = PayOrder.query.filter_by(id=id).first() if not pay_order_info: return redirect(reback_url) member_info = Member.query.filter_by(id=pay_order_info.member_id).first() if not member_info: return redirect(reback_url) # 同样通过item 查找,food name。不如新建一个view。 order_item_list = PayOrderItem.query.filter_by( pay_order_id=pay_order_info.id).all() data_order_item_list = [] if order_item_list: food_map = getDictFilterField( Food, Food.id, "id", selectFilterObj(order_item_list, "food_id")) for item in order_item_list: tmp_food_info = food_map[item.food_id] tmp_data = { "quantity": item.quantity, "price": item.price, "name": tmp_food_info.name } data_order_item_list.append(tmp_data) address_info = {} if pay_order_info.express_info: address_info = json.loads(pay_order_info.express_info) resp_data['pay_order_info'] = pay_order_info resp_data['pay_order_items'] = data_order_item_list resp_data['member_info'] = member_info resp_data['address_info'] = address_info resp_data['current'] = 'index' return ops_render("finance/pay_info.html", resp_data)
def memebr(): resp_data = {} now = datetime.datetime.now() date_before_30days = now + datetime.timedelta(days=-30) default_date_from = getFormatDate(date=date_before_30days, format="%Y-%m-%d") default_date_to = getFormatDate(date=now, format="%Y-%m-%d") req = request.values page = req['p'] if 'p' in req and req['p'] else 1 date_from = req['date_from'] if 'date_from' in req else default_date_from date_to = req['date_to'] if 'date_to' in req else default_date_to query = StatDailyMember.query.filter(StatDailyMember.date >= date_from)\ .filter(StatDailyMember.date <= date_to) page_params = { 'total': query.count(), 'page_size': app.config['PAGE_SIZE'], 'page': page, 'display': app.config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), '') } pages = iPagination((page_params)) offset = (page - 1) * app.config['PAGE_SIZE'] list = query.order_by(StatDailyMember.id.desc()).offset(offset).limit( app.config['PAGE_SIZE']).all() date_list = [] if list: member_map = getDictFilterField(Member, Member.id, 'id', selectFilterObj(list, 'member_id')) for item in list: tmp_member_info = member_map[ item.member_id] if item.member_id in member_map else {} tmp_data = { 'date': item.date, 'total_pay_money': item.total_pay_money, 'total_shared_count': item.total_shared_count, 'member_info': tmp_member_info } date_list.append(tmp_data) resp_data['list'] = date_list resp_data['pages'] = pages resp_data['current'] = 'member' resp_data['search_con'] = {'date_from': date_from, 'date_to': date_to} return ops_render("stat/member.html", resp_data)
def index(): resp_data = {} req = request.values page = request.args.get('p', 1, type=int) mix_kw = ParamsValidator.GetORSetValue(req, 'mix_kw', value="") # 状态 1:有效 0:无效 status = ParamsValidator.GetORSetValue(req, 'status', value=None) cat_id = ParamsValidator.GetORSetValue(req, 'cat_id', value="") query = Food.query if mix_kw: rule = or_(Food.name.ilike(f"%{mix_kw}%"), Food.tags.ilike(f"%{mix_kw}%")) query = query.filter(rule) if status and int(status) > -1: query = query.filter(Food.status == int(status)) if cat_id and int(cat_id) > 0: query = query.filter(Food.cat_id == int(cat_id)) app_config = current_app.config page_params = { 'total': query.count(), 'page_size': app_config['PAGE_SIZE'], 'page': page, 'display': app_config['PAGE_DISPLAY'], 'url': request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app_config['PAGE_SIZE'] res_list = query.order_by(Food.id.desc()).offset(offset).limit( app_config['PAGE_SIZE']).all() cat_mapping = getDictFilterField(FoodCat, FoodCat.id, "id", []) # 获取FoodCat所有内容 resp_data['list'] = res_list resp_data['pages'] = pages resp_data['search_con'] = req resp_data['status_mapping'] = app_config['STATUS_MAPPING'] resp_data['cat_mapping'] = cat_mapping resp_data['current'] = 'index' return ops_render("food/index.html", **resp_data)
def myCommentList(): resp = {'code': 200, 'msg': '操作成功~', 'data': {}} member_info = g.member_info comment_list = MemberComments.query.filter_by( member_id=member_info.id )\ .order_by(MemberComments.id.desc()).all() data_comment_list = [] if comment_list: pay_order_ids = selectFilterObj( comment_list,"pay_order_id" ) pay_order_map = getDictFilterField( PayOrder,PayOrder.id,"id",pay_order_ids ) for item in comment_list: tmp_pay_order_info = pay_order_map[ item.pay_order_id ] tmp_data = { "date":item.created_time.strftime("%Y-%m-%d %H:%M:%S"), "content":item.content, "order_number":tmp_pay_order_info.order_number } data_comment_list.append( tmp_data ) resp['data']['list'] = data_comment_list return jsonify(resp)
def index(): resp_data = {} req = request.values page = int(req["p"]) if ("p" in req and req["p"]) else 1 query = Food.query # 食品名称或标签查询 if "mix_kw" in req: rule = or_(Food.name.ilike("%{0}%".format(req["mix_kw"])), Food.tags.ilike("%{0}%".format(req["mix_kw"]))) query = query.filter(rule) # 状态查询 if "status" in req and int(req["status"]) > -1: query = query.filter(Food.status == int(req["status"])) # 菜系分类查询 if 'cat_id' in req and int(req['cat_id']) > 0: query = query.filter(Food.cat_id == int(req['cat_id'])) page_params = { "total": query.count(), "page_size": app.config["PAGE_SIZE"], "page": page, "display": app.config["PAGE_DISPLAY"], "url": request.full_path.replace("&p={}".format(page), "") } pages = iPagination(page_params) offset = (page - 1) * app.config["PAGE_SIZE"] list = query.order_by(Food.id.desc()).offset(offset).limit( app.config["PAGE_SIZE"]).all() cat_mapping = getDictFilterField(FoodCat, FoodCat.id, "id", []) resp_data["list"] = list resp_data["pages"] = pages resp_data["search_con"] = req resp_data["status_mapping"] = app.config["STATUS_MAPPING"] resp_data["cat_mapping"] = cat_mapping resp_data["current"] = "index" return ops_render("food/index.html", resp_data)
def info(): resp_data = {} req = request.values id = int(req['id']) if 'id' in req else 0 reback_url = UrlManager.buildUrl("/finance/index") if id < 1: return redirect(reback_url) pay_order_info = PayOrder.query.filter_by(id=id).first() if not pay_order_info: return redirect(reback_url) member_info = Member.query.filter_by(id=pay_order_info.member_id).first() if not member_info: return redirect(reback_url) order_item_list = PayOrderItem.query.filter_by( pay_order_id=pay_order_info.id).all() data_order_item_list = [] if order_item_list: product_map = getDictFilterField( Product, Product.id, "id", selectFilterObj(order_item_list, "product_id")) for item in order_item_list: tmp_product_info = product_map[item.product_id] tmp_data = { "quantity": item.quantity, "price": item.price, "name": tmp_product_info.name } data_order_item_list.append(tmp_data) resp_data['pay_order_info'] = pay_order_info resp_data['pay_order_items'] = data_order_item_list resp_data['member_info'] = member_info resp_data['current'] = 'index' return ops_render("finance/pay_info.html", resp_data)