Example #1
0
def check_city(type_id, city_id, pub_type_count, page, resp_suc, province_id, user_id):
    if pub_type_count > 1:
        temp_page = int(page)
        page, per_page, max = page_utils(pub_type_count, page)
        is_max = max_page(temp_page, max, resp_suc)
        if is_max:
            return resp_suc
        pub = db.query(Pub).\
            join(PubTypeMid).\
            filter(PubTypeMid.pub_type_id == type_id, Pub.stopped == 0, Pub.province_id == province_id)[per_page*(temp_page-1):per_page*temp_page]
        is_collect_pub(pub, user_id, resp_suc)
        resp_suc['pub_count'] = len(pub)
        return resp_suc
    else:
        temp_page = int(page)
        page, per_page, max = page_utils(pub_type_count, page)
        is_max = max_page(temp_page, max, resp_suc)
        if is_max:
            return resp_suc
        pub = db.query(Pub).\
            join(PubTypeMid).\
            filter(PubTypeMid.pub_type_id == type_id, Pub.stopped == 0, Pub.province_id == province_id).first()
        is_collect_pub(pub, user_id, resp_suc)
        resp_suc['pub_count'] = 1
        return resp_suc
Example #2
0
    def get():
        """
        参数
           longitude: 经度
           latitude: 维度
        """
        parser = reqparse.RequestParser()
        parser.add_argument('longitude', type=str, required=True, help=u'longitude必须')
        parser.add_argument('latitude', type=str, required=True, help=u'latitude必须')
        parser.add_argument('page', type=str, required=True, help=u'page当前页必须')
        parser.add_argument('user_id', type=str, required=False)

        args = parser.parse_args()

        longitude = float(args['longitude'])
        latitude = float(args['latitude'])
        page = int(args['page'])
        user_id = args.get('user_id', 0)

        resp_suc = success_dic().dic
        resp_suc['pub_list'] = []
        scope = 5000
        pubs = Pub.query.filter().all()
        longitude_left = longitude + 0.00001 * scope
        longitude_right = longitude - 0.00001 * scope
        latitude_top = latitude + 0.00001 * 1.1 * scope
        latitude_bottom = latitude - 0.00001 * 1.1 * scope
        distance = get_distance_hav(latitude_top, longitude_left, latitude_bottom, longitude_right)

        east_west_longitude = 2 * asin(sin(distance / (2 * EARTH_RADIUS)) / cos(latitude))
        east_west_longitude = degrees(east_west_longitude)        # 弧度转换成角度

        south_north_latitude = distance / EARTH_RADIUS
        south_north_latitude = degrees(south_north_latitude)     # 弧度转换成角度
        array = {'left_top': (latitude + south_north_latitude, longitude - east_west_longitude),
        'right_top': (latitude + south_north_latitude, longitude + east_west_longitude),
        'left_bottom': (latitude - south_north_latitude, longitude - east_west_longitude),
        'right_bottom': (latitude - south_north_latitude, longitude + east_west_longitude)}
        left_top = array['left_top']
        right_top = array['right_top']
        left_bottom = array['left_bottom']
        right_bottom = array['right_bottom']
        pub_count = Pub.query.filter(Pub.latitude > right_bottom[0], Pub.latitude < left_top[0],
                                Pub.longitude > left_bottom[1], Pub.longitude < right_top[1]).count()
        temp_page = page
        page, per_page, max = page_utils(pub_count, page)
        is_max = max_page(temp_page, max, resp_suc)
        if is_max:
            return resp_suc
        if pub_count > 1:
            pubs = Pub.query.filter(Pub.latitude > right_bottom[0], Pub.latitude < left_top[0],
                                Pub.longitude > left_bottom[1], Pub.longitude < right_top[1], Pub.stopped == 0)[per_page*(int(temp_page)-1):per_page*int(temp_page)]
            is_collect_pub(pubs, user_id, resp_suc)
        else:
            pub = Pub.query.filter(Pub.latitude > right_bottom[0], Pub.latitude < left_top[0],
                                Pub.longitude > left_bottom[1], Pub.longitude < right_top[1], Pub.stopped == 0).first()
            is_collect_pub(pub, user_id, resp_suc)

        return resp_suc
Example #3
0
    def get():
        """
        所需参数:
            user_id: 登录用户id
            page: 分页page,传入当前页
        """
        parser = reqparse.RequestParser()
        parser.add_argument('user_id', type=str, required=True, help=u'用户user_id。')
        parser.add_argument('page', type=str, required=True, help=u'分页page,传入当前页')

        args = parser.parse_args()
        user_id = args['user_id']
        page = args['page']
        resp_suc = {}
        resp_suc['list'] = []
        if user_id:
            message_count = db.query(Message).\
                filter(Message.receiver_id == user_id).group_by(Message.sender_id).count()
            temp_page = page
            page, per_page, max = page_utils(message_count, page)
            is_max = max_page(temp_page, max, resp_suc)
            if is_max:
                return resp_suc
            if message_count > 1:
                # messages = Message.query.filter(Message.receiver_id == user_id, Message.view == 0).order_by
                # (Message.time.desc()).group_by(Message.receiver_id)[per_page*(page-1):per_page*page]
                messages = db.query(Message).\
                    filter(Message.receiver_id == user_id).order_by(Message.time.desc()).\
                    group_by(Message.sender_id)[per_page*(int(temp_page)-1):per_page*int(temp_page)]
                traverse_messages(messages, resp_suc)
            else:
                message = Message.query.filter(Message.receiver_id == user_id).first()
                traverse_message(message, resp_suc)
            resp_suc['status'] = 0
            resp_suc['message'] = 'success'
            return resp_suc
        else:
            resp_suc['status'] = 1
            resp_suc['message'] = 'error'
            return resp_suc
Example #4
0
    def get():
        """
        所需参数:
            user_id:必传,用户登录的id
        """
        parser = reqparse.RequestParser()
        parser.add_argument('user_id', type=str, required=True, help=u'必须要传入user_id。')
        parser.add_argument('page', type=str, required=True, help=u'分页page,传入当前页码')

        args = parser.parse_args()
        user_id = args['user_id']
        page = args['page']
        resp_suc = {}
        resp_suc['list'] = []
        if user_id:
            result_count = db.query(Pub).\
                join(Collect).\
                filter(Collect.user_id == user_id).count()
            temp_page = page
            page, per_page, max = page_utils(result_count, page)
            is_max = max_page(temp_page, max, resp_suc)
            if is_max:
                return resp_suc
            if result_count > 1:
                results = db.query(Pub).\
                    join(Collect).\
                    filter(Collect.user_id == user_id).order_by(Collect.time.desc())[per_page*(int(temp_page)-1):per_page*int(temp_page)]
                traverse_collects(results, user_id, resp_suc)
            else:
                result = db.query(Pub).\
                    join(Collect).\
                    filter(Collect.user_id == user_id).first()
                traverse_collect(result, user_id, resp_suc)
            resp_suc['count'] = result_count
            resp_suc['status'] = 0
        else:
            resp_suc['message'] = 'error'
            resp_suc['status'] = 1

        return resp_suc
Example #5
0
def get_pub(type_id, resp_suc, page, county_id):
    """
       获取酒吧
    """
    pub_type_count = PubTypeMid.query.filter(PubTypeMid.pub_type_id == type_id).count()
    if pub_type_count > 1:
        temp_page = page
        page, per_page,max = page_utils(pub_type_count, page)
        is_max = max_page(temp_page, max, resp_suc)
        if is_max:
            return resp_suc
        pub_types = PubTypeMid.query.filter(PubTypeMid.pub_type_id == type_id)[per_page*(int(temp_page)-1):per_page*int(temp_page)]
        for pub_type in pub_types:
            pub = Pub.query.filter(Pub.id == pub_type.pub_id, Pub.county_id == county_id, Pub.stopped == 0).first()
            pub_only(pub, resp_suc)
        return resp_suc
    else:
        pub_type = PubTypeMid.query.filter(PubTypeMid.pub_type_id == type_id).first()
        if pub_type:
            pub = Pub.query.filter(Pub.id == pub_type.pub_id, Pub.county_id == county_id, Pub.stopped == 0).first()
            pub_only(pub, resp_suc)
        return resp_suc
Example #6
0
def get_activity_list(resp_suc, page):
    """
        获取活动
    """
    activity_host_count = Activity.query.filter().count()
    temp_page = page
    page, per_page, max = page_utils(activity_host_count, page)
    is_max = max_page(temp_page, max, resp_suc)
    if is_max:
        return resp_suc
    if activity_host_count > 1:
        activity_host = Activity.query.filter()[per_page*(int(temp_page)-1):per_page*int(temp_page)]
        for hot in activity_host:
            hot_pic = pub_activity(hot)
            resp_suc['activity_list'].append(hot_pic)
        return resp_suc
    else:
        activity_host = Activity.query.filter().first()
        activity_pic = None
        if activity_host:
            activity_pic = pub_activity(activity_host)
        resp_suc['activity_list'].append(activity_pic)
        return resp_suc
Example #7
0
    def get():
        """
        所需参数:
            content:搜索酒吧内容
        """
        parser = reqparse.RequestParser()
        parser.add_argument('content', type=str, required=True, help=u'content必须,搜索酒吧')
        parser.add_argument('type_id', type=str, required=False)
        parser.add_argument('page', type=str, required=True, help=u'分页page必须.')
        parser.add_argument('user_id', type=str, required=False)

        args = parser.parse_args()
        resp_suc = {}
        resp_suc['pub_list'] = []
        resp_fail = fail_dic().dic
        pub_pic = None
        page = args['page']
        user_id = args.get('user_id', 0)
        if args['content']:
            content = str(args['content'])
            s = "%" + content + "%"
            if args['type_id']:
                pub_count = db.query(Pub).\
                    join(PubTypeMid).\
                    filter(Pub.name.like(s), PubTypeMid.pub_type_id == int(args['type_id'])).count()
                temp_page = page
                page, per_page, max = page_utils(pub_count, page)
                is_max = max_page(temp_page, max, resp_suc)
                if is_max:
                    return resp_suc
                if pub_count == 0:
                    return resp_fail()
                if pub_count > 1:
                    pubs = db.query(Pub). \
                        join(PubTypeMid). \
                        filter(Pub.name.like(s), PubTypeMid.pub_type_id == int(args['type_id']))[per_page*(int(temp_page)-1):per_page*int(temp_page)]
                    is_collect_pub(pubs, user_id, resp_suc)
                else:
                    pub = db.query(Pub). \
                        join(PubTypeMid). \
                        filter(Pub.name.like(s), PubTypeMid.pub_type_id == int(args['type_id'])).first()
                    is_collect_pub(pub, user_id, resp_suc)
            else:
                pub_count = Pub.query.filter(Pub.name.like(s)).count()
                temp_page = page
                page, per_page, max = page_utils(pub_count, page)
                is_max = max_page(temp_page, max, resp_suc)
                if is_max:
                    return resp_suc
                if pub_count == 0:
                    return resp_fail
                if pub_count > 1:
                    pubs = Pub.query.filter(Pub.name.like(s))[per_page*(int(temp_page)- 1):per_page*int(temp_page)]
                    is_collect_pub(pubs, user_id, resp_suc)
                else:
                    pub = Pub.query.filter(Pub.name.like(s)).first()
                    is_collect_pub(pub, user_id, resp_suc)

            resp_suc['message'] = "success"
            resp_suc['status'] = 0
            return resp_suc
        else:
            resp_suc['message'] = "error"
            resp_suc['status'] = 1
            return resp_suc