def get(self, userId, count, isuser=1): faceHelper = ClassHelper('FaceRecommend') isExistBackupUser = False field_name = 'user' if int(isuser) == 0: field_name = 'backupUser' isExistBackupUser = True oid = self.get_argument('objectId', None) if oid: query = {field_name: userId, 'read': {'$exists': False}, 'backupUser': {'$exists': isExistBackupUser}, '_id': {'$lt': oid}} else: query = {field_name: userId, 'read': {'$exists': False}, 'backupUser': {'$exists': isExistBackupUser}} sort = {'_id': -1} fs = faceHelper.find(query, sort=sort, limit=int(count)) faces = [] for face in fs: if face.has_key('createAt'): del (face['createAt']) del (face['updateAt']) del (face['acl']) if face.has_key('backupUser'): face['user'] = face['backupUser'] del (face['backupUser']) face['mosaic'] = 5 faces.append(face) result = deepcopy(ERR_SUCCESS.message) result['data'] = faces result['count'] = faceHelper.query_count({'user': userId}) result['unread'] = faceHelper.query_count({'user': userId, 'read': {'$exists': False}}) print result self.write(result)
def getCountUser(self, userId, isUser=1): item = profile(userId, isUser) obj = copy.deepcopy(item) item['assignersCount'] = item.get('assigners', 0) item['followersCount'] = item.get('followers', 0) item['imageCount'] = item.get('medias', 0) faceHelper = ClassHelper('Face') toClaimCount = faceHelper.query_count({ 'assign.user': userId, 'assign.status': 0 }) or 0 item['toClaimCount'] = toClaimCount if item['assignersCount'] and item['followersCount'] and item[ 'imageCount'] and item['toClaimCount']: return item return obj
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
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'])
def profile(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'] # 关注数 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: 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'] 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) except Exception, ex: log.err(ex.message) return ERR_INVALID.message
def getCount(self, className, query): classHelper = ClassHelper(className) result = classHelper.query_count(query) return result
def userCountTwo(self, userId, isUser=1): #isUser:1真实用户,0backupUser obj = { 'followeesCount': 0, 'followeeStatus': 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['followeesCount'] = followeesCount else: backupUserHelper = ClassHelper('BackupUser') item = backupUserHelper.find_one({"_id": userId}) obj['user'] = item['_id'] if item: obj["nickName"] = item.get("nickName", None) obj["avatar"] = item.get("avatar", None) obj["age"] = item.get("age", 0) obj["address"] = item.get("address", None) obj['rect'] = item.get("rect", None) obj["_id"] = item['_id'] #粉丝数 followersCount = followeeHelper.query_count({ 'followee': userId, "effect": { "$gt": 0 } }) or 0 obj['followersCount'] = followersCount #贡献者数 assignersCount = faceHelper.distinct({'assign.user': userId}, "assign.assigner") or [] obj['assignersCount'] = len(assignersCount.cursor) #照片数 mediasCount = faceHelper.query_count({'assign.user': userId}) or 0 obj['mediasCount'] = mediasCount if self.user["_id"] != userId: #关注状态 item = followeeHelper.find_one({ "user": self.user['_id'], "followee": userId, "effect": { "$gt": 0 } }) if item: #0 没有关系 1 关注 2 相互关注 3 粉丝关系 obj['followeeStatus'] = item['effect'] else: item = followeeHelper.find_one({ "followee": self.user['_id'], "user": userId }) if item: obj['followeeStatus'] = 3 #拉黑状态 blackHelper = ClassHelper('Blacklist') item = blackHelper.find_one({ "user": self.user['_id'], "blacker": userId, "effect": { "$gt": 0 } }) if item: obj['blackStatus'] = 1 except Exception, ex: log.err(ex.message) return ERR_INVALID.message