def to_messages(times, content, message_id): """ 用户发送时间times 用户发送内容content """ user = User.query.filter(User.id == message_id).first() user_info = UserInfo.query.filter(UserInfo.user_id == user.id).first() json_pic = flatten(user) if user_info: sex = user_info.sex birthday = None if user_info.birthday: birthday = user_info.birthday age = get_year(birthday) json_pic = flatten(user) if user_info.rel_path and user_info.pic_name: json_pic['sender_pic_path'] = user_info.rel_path + '/' + user_info.pic_name if sex == 1: json_pic['sex'] = '男' else: json_pic['sex'] = '女' json_pic['age'] = age json_pic['send_time'] = times json_pic['content'] = content return json_pic
def to_messages_sender(content, sender_id, receiver_id): """ 用户发送时间times 用户发送内容content """ user = User.query.filter(User.id == sender_id).first() if user: user_info = UserInfo.query.filter(UserInfo.user_id == user.id).first() json_pic = flatten(user) if user_info: sex = user_info.sex birthday = None if user_info.birthday: birthday = user_info.birthday age = get_year(birthday) json_pic = flatten(user) if user_info.rel_path and user_info.pic_name: if sender_id == receiver_id: json_pic['receiver_path'] = user_info.rel_path + '/' + user_info.pic_name else: json_pic['sender_pic_path'] = user_info.rel_path + '/' + user_info.pic_name else: if sender_id == receiver_id: json_pic['receiver_path'] = "" else: json_pic['sender_pic_path'] = "" if sex == 1: json_pic['sex'] = '男' else: json_pic['sex'] = '女' json_pic['age'] = age json_pic['content'] = content return json_pic else: return {}
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 get(): """ 所需参数: 无 """ parser = reqparse.RequestParser() parser.add_argument('user_id', type=str, required=False) args = parser.parse_args() user_id = args.get('user_id', 0) pub_types = PubType.query.filter() resp_suc = {} resp_suc['pub_type_list'] = [] resp_suc['pub_list'] = [] if pub_types: for pub_type in pub_types: pub_type_pic = flatten(pub_type) resp_suc['pub_type_list'].append(pub_type_pic) else: resp_suc['status'] = 1 resp_suc['message'] = 'error' pub_count = Pub.query.filter(Pub.recommend == 1, Pub.stopped == 0).count() if pub_count > 1: pubs = Pub.query.filter(Pub.recommend == 1, Pub.stopped == 0).all() is_collect_pub(pubs, user_id, resp_suc) else: pub = Pub.query.filter(Pub.recommend == 1, Pub.stopped == 0).first() is_collect_pub(pub, user_id, resp_suc) resp_suc['status'] = 0 resp_suc['message'] = 'success' return resp_suc
def differences(obj, time_dif): """ 计算时间差 """ obj_pic = flatten(obj) obj_pic['difference'] = time_dif return obj_pic
def to_pub_longitude_latitude(pub, picture): """ 经度纬度 def calc_distance( l1, n1 , l2, n2 ): import math lat1 ,longt1 ,lat2 ,longt2 = float(l1),float(n1),float(l2),float(n2) PI = math.pi # 圆周率 R = 6371229; #地球的半径 x = (longt2 - longt1) * PI * R * math.cos(((lat1 + lat2) / 2) * PI / 180) / 180; y = (lat2 - lat1) * PI * R / 180; distance = math.sqrt(math.pow(x, 2) + math.pow(y,2)) #两者的平方和开根号 return distance """ pub_pic = flatten(pub) if picture: if picture.rel_path and picture.thumbnail: pub_pic['pic_path'] = picture.rel_path + '/' + picture.thumbnail pub_pic.pop('longitude') pub_pic.pop('latitude') pub_pic['longitude'] = str(pub.longitude) pub_pic['latitude'] = str(pub.latitude) return pub_pic
def post(): parser = reqparse.RequestParser() parser.add_argument('login_type', type=int, required=True, help=u'登陆必须需要login_type') parser.add_argument('user_name', type=str, required=False) parser.add_argument('password', type=str, required=False) parser.add_argument('open_id', type=str, required=False) args = parser.parse_args() login_type = args.get('login_type') user_name = args.get('user_name', None) password = args.get('password', None) open_id = args.get('open_id', None) err = {'status': 1} if login_type == 0: if not password: err['message'] = '登陆用户必须有密码' return err if not user_name: err['message'] = '登陆用户必须有账号名user_name,可以是登录名,可以是昵称' return err if User.query.filter(User.nick_name == user_name).count(): user = User.query.filter(User.nick_name == user_name).first() elif User.query.filter(User.login_name == user_name).count(): user = User.query.filter(User.login_name == user_name).first() else: err['message'] = '用户不存在' return err if user.check_password(password): return {'user': flatten(user), 'status': 0} else: err['message'] = '密码错误' return err if login_type == 1: if not open_id: err['message'] = '微博第三方登陆必须需要open_id' return err if User.query.filter(User.login_type == 1, User.open_id == open_id).count(): user = User.query.filter(User.login_type == 1, User.open_id == open_id).first() else: err['message'] = '不存在这个open_id' return err return wrap_user_json(user) if login_type == 2: if not open_id: err['message'] = '微博第三方登陆必须需要open_id' return err if User.query.filter(User.login_type == 2, User.open_id == open_id).count(): user = User.query.filter(User.login_type == 2, User.open_id == open_id).first() else: err['message'] = '不存在这个open_id' return err return wrap_user_json(user)
def get_activity_by_id(id, user_id): """ 通过id得到activity """ activity = Activity.query.filter(Activity.id == id).first() if activity: get_activity_address_by_id(activity) activity_is_collect(activity, user_id) activity = flatten(activity) return activity return None
def get_activity_picture(id): """ 获取活动图片 """ result = is_list(id) if result != -1: if type(result) is list: temp_list = [] for r in result: format_picture_path(r) r_pic = flatten(r) temp_list.append(r_pic) return temp_list else: format_picture_path(result) result_pic = flatten(result) return result_pic else: return None
def get_province_city(resp_suc): '''获取省市''' provinces = Province.query.filter().all() citys = City.query.filter().all() countys = County.query.filter().all() for province in provinces: province_pic = flatten(province) province_pic['city_list'] = [] for city in citys: if city.province_id == 1 and province.id == 1: get_county(countys, city.id, province_pic) elif city.province_id == 2 and province.id == 2: get_county(countys, city.id, province_pic) elif city.province_id == 9 and province.id == 9: get_county(countys, city.id, province_pic) elif city.province_id == 22 and province.id == 22: get_county(countys, city.id, province_pic) elif city.province_id == province.id: city_pic = flatten(city) province_pic['city_list'].append(city_pic) resp_suc['list'].append(province_pic) return resp_suc
def get_activity_by_pub_id(pub_id, user_id): """ 通过酒吧id得到所属最新活动 """ activity = Activity.query.filter(Activity.pub_id == pub_id).order_by(Activity.start_date.desc()).first() if activity: activity_is_collect(activity, user_id) activity_picture = ActivityPicture.query.filter(ActivityPicture.activity_id == activity.id).first() if activity_picture: if activity_picture.rel_path and activity_picture.pic_name: activity.pic_path = activity_picture.rel_path + "/" + activity_picture.pic_name activity = flatten(activity) return activity
def get_province_city_by_id(province_id, resp_suc): '''获取省市''' if province_id: provinces = Province.query.filter(Province.id == province_id).first() citys = City.query.filter().all() countys = County.query.filter().all() province_pic = flatten(provinces) city_list = [] for city in citys: if city.province_id == 1 and provinces.id == 1: get_county_city(countys, city.id, city_list) elif city.province_id == 2 and provinces.id == 2: get_county_city(countys, city.id, city_list) elif city.province_id == 9 and provinces.id == 9: get_county_city(countys, city.id, city_list) elif city.province_id == 22 and provinces.id == 22: get_county_city(countys, city.id, city_list) elif city.province_id == provinces.id: city_pic = flatten(city) city_list.append(city_pic) resp_suc['county'] = city_list return resp_suc
def to_flatten(obj, obj2): """ 转换json对象 """ obj_pic = None if obj: obj_pic = flatten(obj) if obj2: try: if obj2.rel_path and obj2.thumbnail: obj_pic['pic_path'] = obj2.rel_path + '/' + obj2.thumbnail except: if obj2.rel_path and obj2.pic_name: obj_pic['pic_path'] = obj2.rel_path + '/' + obj2.pic_name return obj_pic
def get_city(): '''获取城市''' city = City.query.filter().all() city_list = [] for c in city: province_id = c.province_id if c.name == '市辖区': province = Province.query.filter(Province.id == c.province_id).first() c.name = province.name if c.name == '市辖县' and c.province_id != province_id: province = Province.query.filter(Province.id == c.province_id).first() c.name = province.name city_pic = flatten(c) if c.name != '市辖县' and c.name != '县': city_list.append(city_pic) return city_list
def check_picture(picture, activity, user_id, success): if picture == -1: activity.pic_path = '' else: if type(picture) is list: format_picture_path(picture[0]) if picture[0].pic_path: activity.pic_path = picture[0].pic_path else: format_picture_path(picture) if picture.pic_path: activity.pic_path = picture.pic_path # 属于哪个酒吧 belong_pub_name(activity) activity_is_collect(activity, user_id) activity_pic = flatten(activity) success['activity_collect'].append(activity_pic)
def system_message_pickler(system_message, resp_suc): """ 转换json """ system_message_pic = flatten(system_message) resp_suc['system_message_list'].append(system_message_pic)
def direct_message_pickler(direct_message, resp_suc): """ 转换json """ direct_message_pic = flatten(direct_message) resp_suc['direct_message_list'].append(direct_message_pic)
def get_county_city(countys, city_id, province_pic): '''得到直辖市的区''' for county in countys: if county.city_id == city_id: county_pic = flatten(county) province_pic.append(county_pic)