def pub_list_picture(pub_pictures, resp_suc): """ 遍历多个酒吧图片 """ for pub_picture in pub_pictures: pub_picture_pic = to_flatten(pub_picture, pub_picture) pub = Pub.query.filter(Pub.id == pub_picture.pub_id).first() change_latitude_longitude(pub_picture_pic, pub) picture_pub(pub_picture_pic, pub, pub_picture) resp_suc['county'] = get_address(pub.province_id, pub.city_id, pub.county_id) resp_suc['picture_list'].append(pub_picture_pic)
def pub_list(pubs, resp_suc): """ 遍历多个酒吧 """ for pub in pubs: pub_picture = PubPicture.query.filter(PubPicture.pub_id == pub.id).first() pub_pic = to_flatten(pub, pub_picture) pub_pic.pop('longitude') pub_pic.pop('latitude') resp_suc['county'] = get_address(pub.province_id, pub.city_id, pub.county_id) change_latitude_longitude(pub_pic, pub) resp_suc['pub_list'].append(pub_pic)
def wrap_user_json(user=None, user_info=None, status=0, sign='$'): """将地址的ID转换为一个字符串,这里的字符串添加了一个county字段,返回一个json""" # db.commit() # todo-lyw 试图修复后台注册后第一次获取不到user消息的bug,sqlalchemy和mysql的工作模式不理解,变成更大的bug了,不理解 user_json = flatten(user) if user_info: user_info_json = flatten(user_info) user_info_json['county'] = get_address(user_info.province_id, user_info.city_id, user_info.county_id, sign=sign) if user_info.rel_path and user_info.pic_name: user_info_json['pic_path'] = user_info.rel_path + '/' + user_info.pic_name bool_to_int(user_info_json) return {'user':user_json, 'user_info':user_info_json, 'status':status} # todo-lyw 这里如果是后台注册用户,刚刚注册,然后立即获取用户消息,会额外添加一个地区的位置,为何啊 return {'user':user_json, 'status':status}
def pub_only(pub, resp_suc): """ 一个酒吧 """ if pub: pub_picture = PubPicture.query.filter(PubPicture.pub_id == pub.id).first() pub_pic = to_flatten(pub, pub_picture) pub_pic.pop('longitude') pub_pic.pop('latitude') pub_pic.pop('county_id') pub_pic['area'] = get_address(pub.province_id, pub.city_id, pub.county_id) to_pub_type(pub, pub_pic) change_latitude_longitude(pub_pic, pub) resp_suc['pub_list'].append(pub_pic)
def pub_activity(activity): """ 活动的关联酒吧 """ activity_pic = to_flatten(activity, activity) pub = Pub.query.filter(Pub.id == activity.pub_id).first() activity_pic['picture_path'] = '' activity_pic['pub_name'] = '' if activity.rel_path and activity.pic_name: activity_pic['activity_picture_path'] = activity.rel_path + '/' + activity.pic_name if pub: pub_picture = PubPicture.query.filter(PubPicture.pub_id == pub.id).first() if pub_picture: if pub_picture.rel_path and pub_picture.thumbnail: activity_pic['pub_picture_path'] = pub_picture.rel_path + '/' + pub_picture.thumbnail activity_pic['pub_name'] = pub.name activity_pic['county'] = get_address(pub.province_id, pub.city_id, pub.county_id) return activity_pic
def get(): """ 所需参数: pub_id:必传,用户所选中的酒吧id user_id: 必传,登录用户id """ parser = reqparse.RequestParser() parser.add_argument('pub_id', type=str, required=True, help=u'酒吧pub_id必须。') parser.add_argument('user_id', type=str, required=True, help=u'登录用户id必须。') args = parser.parse_args() resp_suc = {} resp_suc['picture_list'] = [] resp_suc['pub_list'] = [] pub_id = int(args['pub_id']) resp_suc['county'] = [] user_id = args['user_id'] if pub_id: collect = Collect.query.filter(Collect.user_id == user_id, Collect.pub_id == pub_id).first() resp_suc['is_collect'] = False if collect: resp_suc['is_collect'] = True pub = Pub.query.filter(Pub.id == pub_id).first() pub_picture = PubPicture.query.filter(PubPicture.pub_id == pub_id).first() resp_suc['county'] = get_address(pub.province_id, pub.city_id, pub.county_id) pub_pic = to_pub_longitude_latitude(pub, pub_picture) to_pub_type(pub, pub_pic) resp_suc['pub_list'].append(pub_pic) view_check = View.query.filter(View.user_id == user_id, View.pub_id == pub_id).first() if view_check: view_check.view_number = view_check.view_number + 1 db.commit() else: user = User.query.filter(User.id == user_id).first() if user: view = View(user_id, pub_id, 1) db.add(view) db.commit() view_count = View.query.filter(View.pub_id == pub_id).count() result_count = db.query(UserInfo).\ join(User).\ join(View).\ filter(View.pub_id == pub_id).order_by(View.time.desc()).count() if result_count > 1: results = db.query(UserInfo). \ join(User). \ join(View). \ filter(View.pub_id == pub_id).order_by(View.time.desc()).all() user_list_picture(results, resp_suc) else: result = db.query(UserInfo). \ join(User). \ join(View). \ filter(View.pub_id == pub_id).order_by(View.time.desc()).first() user_picture_only(result, resp_suc) resp_suc['activity'] = get_activity_by_pub_id(pub_id, user_id) resp_suc['show_count'] = view_count resp_suc['status'] = 0 resp_suc['message'] = 'success' return resp_suc else: resp_suc['status'] = 1 resp_suc['message'] = 'error' return resp_suc