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