Exemplo n.º 1
0
def analyze_group(user_id):
    group_ids = request.form['aff_group_ids']
    try:
        group_id_list = group_ids.split(',')
        group_id_list = map(int, group_id_list)
    except:
        return to_json('invalid affair group list')

    data = []
    model = Model()
    for group_id in group_id_list:
        group_info = dict(aff_group_id=group_id)
        # 获取AffGroup对象并检测是否存在, 是否有权限访问
        group = model.session.query(AffGroup).get(group_id)
        if not group:
            continue
        error = check_aff_group_access(group, user_id)
        if error:
            return error

        # 获取用户发出的通知对象, 并检测其是否存在
        nft = model.session.query(Nft).filter_by(aff_group_id=group.id).first()
        try:
            accept_num = nft.ac_num
            total_num = nft.total_num
            check_num = nft.check_num
        except:
            return to_json('notification not exist')

        group_info.update(
            dict(accept_num=accept_num, total_num=total_num, check_num=check_num))

        # 获得同意加入事务组的用户信息
        accept_users_info = []
        nft_user_rels = model.session.query(NftUserRel).filter(
            and_(NftUserRel.nft_id == nft.id, NftUserRel.is_ac == True)).all()
        for nft_user_rel in nft_user_rels:
            user_info = {}
            new_user_info = model.session.query(UserInfo).filter(
                UserInfo.user_id == nft_user_rel.sender_id).first()
            try:
                user_id = new_user_info.user_id
                nickname = new_user_info.nickname
                user_info.update(dict(user_id=user_id, nickname=nickname))
            except:
                return to_json('user info not exist')
            accept_users_info.append(user_info)

        group_info['accept_users_info'] = accept_users_info
        data.append(group_info)

    return to_json(data, success=True)
Exemplo n.º 2
0
def get_affairs_in_group(user_id):
    model = Model()
    group_id = request.form['aff_group_id']

    # 检查该用户是否有权限访问该事务组
    aff_group = model.get_aff_group_by_id(group_id)
    print aff_group.id
    check_res = check_aff_group_access(aff_group, user_id)
    if check_res:
        return check_res

    affair_list = model.session.query(Aff).filter_by(aff_group_id=group_id).all()
    data = [affair.data() for affair in affair_list]
    return to_json(data, success=True)