Example #1
0
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)
Example #2
0
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)
Example #3
0
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}
Example #4
0
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)
Example #5
0
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
Example #6
0
    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