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
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
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
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
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
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
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