Пример #1
0
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
Пример #2
0
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 {}
Пример #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}
Пример #4
0
    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
Пример #5
0
def differences(obj, time_dif):
    """
    计算时间差
    """
    obj_pic = flatten(obj)
    obj_pic['difference'] = time_dif
    return obj_pic
Пример #6
0
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
Пример #7
0
    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)
Пример #8
0
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
Пример #9
0
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
Пример #10
0
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
Пример #11
0
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
Пример #12
0
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
Пример #13
0
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
Пример #14
0
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
Пример #15
0
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)
Пример #16
0
def system_message_pickler(system_message, resp_suc):
    """
        转换json
    """
    system_message_pic = flatten(system_message)
    resp_suc['system_message_list'].append(system_message_pic)
Пример #17
0
def direct_message_pickler(direct_message, resp_suc):
    """
        转换json
    """
    direct_message_pic = flatten(direct_message)
    resp_suc['direct_message_list'].append(direct_message_pic)
Пример #18
0
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)