Exemplo n.º 1
0
def get_follow_ount(userId, isUser=1):
    '''
    # 粉丝数:Followee (backup)followee, 照片数(认领的照片):Face assign.user,贡献者个数:Face assign.assigner uploader
    :param userId: 注册用户Id
    :return:
    '''

    # classHelper = ClassHelper( 'StatCount' )
    # try:
    #     if is_mine:
    #         result = classHelper.find( {'name': {
    #             '$in': ['albumMost_' + userId, 'albumAnimal_' + userId, 'albumBaby_' + userId,
    #                     'albumChowhound_' + userId, 'followers_' + userId, 'medias_' + userId, 'followees_' + userId,
    #                     'uploaders_' + userId, 'faces_' + userId, 'assigners_' + userId]}}, {"_id": 0} )
    #     else:
    #         result = classHelper.find( {'name': {
    #             '$in': ['followers_' + userId, 'medias_' + userId, 'followees_' + userId, 'assigners_' + userId]}},
    #                                    {"_id": 0} )
    # except Exception, e:
    #     log.err( "%s find StatCount error", userId )
    # if result:
    #     return result
    # else:
    #     return None
    #
    obj = {}
    try:
        followeeHelper = ClassHelper( 'Followee' )
        faceHelper = ClassHelper( 'Face' )
        if isUser:
            # 关注数
            followeesCount = followeeHelper.query_count( {'user': userId, "effect": {"$gt": 0}} ) or 0
            obj['followees'] = followeesCount
            mediasCount = faceHelper.query_count( {'assign.user': userId,'assign.status': 1} ) or 0
            obj['medias'] = mediasCount
            # 粉丝数
            followersCount = followeeHelper.query_count( {'followee': userId, "effect": {"$gt": 0}} ) or 0
            obj['followers'] = followersCount
        else:
            mediaHelper = ClassHelper( 'Media' )
            mediasCount = mediaHelper.query_count( {'backupUser': userId} )
            obj['medias'] = mediasCount
            # 粉丝数
            followersCount = followeeHelper.query_count( {'backupFollowee': userId, "effect": {"$gt": 0}} ) or 0
            obj['followers'] = followersCount

        # 贡献者数
        assignersCount = faceHelper.distinct( {'assign.user': userId, 'assign.status': 1}, "assign.assigner" ) or []
        obj['assigners'] = len( assignersCount.cursor )

    except Exception, ex:
        log.err( ex.message )
        return None
Exemplo n.º 2
0
def getIFCCount(userId=None, backupUser=None, keys=None):
    '''
    # 粉丝数:Followee (backup)followee, 照片数(认领的照片):Face assign.user,贡献者个数:Face assign.assigner uploader
    :param userId: 注册用户Id
    :param backupUser: 非注册用户Id
    :param keys: 查询某一个Count
    :return: 
    '''
    uid = userId or backupUser
    isUser = bool(userId)
    condition = {
        'imageCount': {'classname': 'Face', 'key': 'imageCount', 'condition': {'assign.status': 1, 'assign.user': uid},
                       'method': 1},
        'fansCount': {'classname': 'Followee', 'key': 'fansCount', 'condition': {'followee': uid, 'effect': 1},
                      'method': 1},
        'contributeCount': {'classname': 'Face', 'distinct': 'assign.assigner', 'key': 'contributeCount',
                            'condition': {'assign.status': 1, 'assign.user': uid}, 'method': 2}
    }
    where = []
    if not keys:
        if isUser:
            keys = {'imageCount': 1, 'fansCount': 1, 'contributeCount': 1}
        else:
            keys = {'fansCount': 1}
    for key in keys:
        where.append(condition[key])

    result = {}
    for item in where:  # 获取三种个数
        className = item['classname']
        query = item["condition"]
        try:
            if item['method'] == 1:
                classHelper = ClassHelper(className)
                result[item['key']] = classHelper.query_count(query)
            elif item['method'] == 2:
                classHelper = ClassHelper(className)
                obj = classHelper.distinct(query, item['distinct'])
                result[item['key']] = len(obj)
        except Exception, e:
            log.err("%s param error", item['key'])
Exemplo n.º 3
0
    def profile(self, userId, isUser=1):  #isUser:1真实用户,0backupUser
        obj = {
            'followees': 0,
            'relationStatus': 0,
            'blackStatus': 0,
            'isUser': isUser  #1为user,0为backupUser
        }
        try:
            followeeHelper = ClassHelper('Followee')
            faceHelper = ClassHelper('Face')
            if isUser:
                userInfoHelper = ClassHelper('UserInfo')
                item = userInfoHelper.find_one({"user": userId})
                obj['user'] = item['user']
                # obj["nickName"] = item.get("nickName",None)
                # obj["avatar"] = item.get("avatar", None)
                # 关注数
                followeesCount = followeeHelper.query_count({
                    'user': userId,
                    "effect": {
                        "$gt": 0
                    }
                }) or 0
                obj['followees'] = followeesCount
                #照片数
                mediasCount = faceHelper.query_count({
                    'assign.user': userId,
                    'assign.status': 1
                }) or 0
                obj['medias'] = mediasCount

                #粉丝数
                followersCount = followeeHelper.query_count({
                    'followee': userId,
                    "effect": {
                        "$gt": 0
                    }
                }) or 0
                obj['followers'] = followersCount

                #关注状态
                itemF = followeeHelper.find_one({
                    "user": self.user['_id'],
                    "followee": userId,
                    "effect": {
                        "$gt": 0
                    }
                })
                if itemF:  #0 没有关系 1 关注 2 相互关注 3 粉丝关系
                    obj['relationStatus'] = itemF['effect']
                else:
                    itemF = followeeHelper.find_one({
                        "followee":
                        self.user['_id'],
                        "user":
                        userId
                    })
                    if itemF:
                        obj['relationStatus'] = 3

            else:
                backupUserHelper = ClassHelper('BackupUser')
                item = backupUserHelper.find_one({"_id": userId})
                #照片数
                mediaHelper = ClassHelper('Media')
                mediasCount = mediaHelper.query_count({'backupUser': userId})

                #粉丝数
                followersCount = followeeHelper.query_count({
                    'backupFollowee': userId,
                    "effect": {
                        "$gt": 0
                    }
                }) or 0
                obj['followers'] = followersCount

                obj['medias'] = mediasCount
                obj['user'] = item['_id']

                #关注状态
                itemF = followeeHelper.find_one({
                    "user": self.user['_id'],
                    "backupFollowee": userId,
                    "effect": {
                        "$gt": 0
                    }
                })
                if itemF:  #0 没有关系 1 关注 2 相互关注 3 粉丝关系
                    obj['relationStatus'] = itemF['effect']
                else:
                    itemF = followeeHelper.find_one({
                        "backupFollowee":
                        self.user['_id'],
                        "user":
                        userId
                    })
                    if itemF:
                        obj['relationStatus'] = 3

            if item:
                obj["nickname"] = item.get("nickName", None)
                obj["avatar"] = item.get("editAvatar", None) or item.get(
                    "avatar", None)
                obj["age"] = item.get("age", 0)
                obj["address"] = item.get("address", None)
                obj["gender"] = item.get("gender", None)
                rect = item.get("editRect", None) or item.get("rect", None)
                if rect:
                    rect = [int(i) for i in rect]
                obj['rect'] = rect
                obj["_id"] = item['_id']

            #贡献者数
            assignersCount = faceHelper.distinct(
                {
                    'assign.user': userId,
                    'assign.status': 1
                }, "assign.assigner") or []
            obj['assigners'] = len(assignersCount.cursor)
            #照片数
            # mediasCount = faceHelper.query_count({'assign.user':userId}) or 0
            # obj['mediasCount'] = mediasCount
            if self.user["_id"] != userId:
                #拉黑状态
                blackHelper = ClassHelper('Blacklist')
                item = blackHelper.find_one({
                    "user": self.user['_id'],
                    "blacker": userId
                })
                if item:
                    obj['blackStatus'] = 1
        except Exception, ex:
            log.err(ex.message)
            return ERR_INVALID.message
Exemplo n.º 4
0
 def getDistinct(self, className, query, field):
     classHelper = ClassHelper(className)
     result = classHelper.distinct(query, field)
     return len(result.cursor)