def get(self, request, team): """获取指定团队发布的成果 :return: count: 成果总数 list: 成果列表 id: 成果ID team_id: 团队ID team_name: 团队名称 icon_url: 团队头像 description: 成果描述 picture: 图片 time_created: 发布时间 """ # 团队成果,要 team 非空 achievements = team.achievements.all() c = achievements.count() l = [{ 'id': a.id, 'name': a.name, 'team_id': a.team.id, 'team_name': a.team.name, 'icon_url': a.team.icon, 'description': a.description, 'tags': deal_tags(a.tags), 'picture': a.picture, 'yes_count': a.likers.count(), 'is_yes': request.user in a.likers.all(), 'require_count': a.requirers.count(), 'is_require': request.user in a.requirers.all(), 'time_created': a.time_created } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})
def get(self, request, description='', offset=0, limit=10, order=1): """获取所有用户发布的成果 :param offset: 偏移量 :param limit: 数量上限 :param order: 排序方式 0: 发布时间升序 1: 发布时间降序(默认值) :return: count: 成果总数 list: 成果列表 id: 成果ID user_id: 团队ID user_name: 团队名称 icon_url: 团队头像 description: 成果描述 picture: 图片 time_created: 发布时间 """ # 获取当前用户好友id. userIds = [] for item in request.user.friends.all(): userIds.append(str(item.other_user.id)) userIds.append(str(request.user.id)) i, j, k = offset, offset + limit, self.ORDERS[order] achievements = Achievement.objects.filter( team=None, description__icontains=description).order_by(k) c = achievements.count() achievements = achievements[i:j] l = [{ 'id': a.id, 'name': a.name, 'user_id': a.user.id, 'user_name': a.user.real_name if str(a.user.id) in userIds and a.user.real_name != '' else a.user.name, 'icon_url': a.user.icon, 'description': a.description, 'tags': deal_tags(a.tags), 'picture': a.picture, 'time_created': a.time_created, 'yes_count': a.likers.count(), 'is_yes': request.user in a.likers.all(), 'require_count': a.requirers.count(), 'is_require': request.user in a.requirers.all(), } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})
def get(self, request, achievement): # 获取当前用户好友id. userIds = [] for item in request.user.friends.all(): userIds.append(str(item.other_user.id)) userIds.append(str(request.user.id)) result = { 'achievement_id': achievement.id, 'name': achievement.name, 'desc': achievement.description, 'tags': deal_tags(achievement.tags), 'pics': achievement.picture, 'yes_count': achievement.likers.count(), # 点赞数 'is_yes': request.user in achievement.likers.all(), # 是否点赞 'require_count': achievement.requirers.count(), # 需求树 'is_require': request.user in achievement.requirers.all(), # 是否需求 } if achievement.team == None: result['user_id'] = achievement.user.id result[ 'user_name'] = achievement.user.unit1 if achievement.user.is_role_verified else achievement.user.name result['real_name'] = achievement.user.real_name if str( achievement.user.id) in userIds else '' result['icon_url'] = achievement.user.icon else: result['team_id'] = achievement.team.id result['team_name'] = achievement.team.name result['icon_url'] = achievement.team.icon return JsonResponse(result)
def get(self, request, team, offset=0, limit=10, order=1): """获取某团队发布的成果 TODO 使用 SearchTeamAchievement :param offset: 偏移量 :param limit: 数量上限 :param order: 排序方式 0: 发布时间升序 1: 发布时间降序(默认值) :return: count: 成果总数 list: 成果列表 id: 成果ID description: 成果描述 picture: 图片 time_created: 发布时间 """ i, j, k = offset, offset + limit, self.ORDERS[order] c = team.achievements.count() achievements = team.achievements.order_by(k)[i:j] l = [{ 'id': a.id, 'description': a.description, 'picture': a.picture, 'tags': deal_tags(a.tags), 'time_created': a.time_created } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})
def get(self, request, offset=0, limit=10, order=1): """获取当前用户发布的成果 :param offset: 偏移量 :param limit: 数量上限 :param order: 排序方式 0: 发布时间升序 1: 发布时间降序(默认值) :return: count: 成果总数 list: 成果列表 id: 成果ID description: 成果描述 picture: 图片 time_created: 发布时间 """ i, j, k = offset, offset + limit, self.ORDERS[order] c = request.user.achievements.count() achievements = request.user.achievements.order_by(k)[i:j] l = [{ 'id': a.id, 'name': a.name, 'user_id': request.user.id, 'user_name': request.user.name, 'require_count': a.requirers.count(), 'is_require': request.user in a.requirers.all(), 'yes_count': a.likers.count(), 'is_yes': request.user in a.likers.all(), 'icon_url': request.user.icon, 'description': a.description, 'picture': a.picture, 'time_created': a.time_created, 'tags': deal_tags(a.tags) } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})
def get(self, request, user): """获取用户发布的成果 :return: count: 成果总数 list: 成果列表 id: 成果ID user_id: 团队ID user_name: 团队名称 icon_url: 团队头像 description: 成果描述 picture: 图片 time_created: 发布时间 """ # 获取当前用户好友id. userIds = [] for item in request.user.friends.all(): userIds.append(str(item.other_user.id)) userIds.append(str(request.user.id)) achievements = user.achievements.all() c = achievements.count() l = [{ 'id': a.id, 'name': a.name, 'user_id': a.user.id, 'user_name': a.user.real_name if str(a.user.id) in userIds and a.user.real_name != '' else a.user.name, 'icon_url': a.user.icon, 'description': a.description, 'tags': deal_tags(a.tags), 'picture': a.picture, 'time_created': a.time_created, 'yes_count': a.likers.count(), 'is_yes': request.user in a.likers.all(), 'require_count': a.requirers.count(), 'is_require': request.user in a.requirers.all(), } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})
def get(self, request, description='', offset=0, limit=10, order=1): """获取所有团队发布的成果 :param offset: 偏移量 :param limit: 数量上限 :param order: 排序方式 0: 发布时间升序 1: 发布时间降序(默认值) :return: count: 成果总数 list: 成果列表 id: 成果ID team_id: 团队ID team_name: 团队名称 icon_url: 团队头像 description: 成果描述 picture: 图片 time_created: 发布时间 """ i, j, k = offset, offset + limit, self.ORDERS[order] # 团队成果,要 team 非空 achievements = Achievement.objects.filter( team__isnull=False, description__icontains=description).order_by(k) c = achievements.count() achievements = achievements[i:j] l = [{ 'id': a.id, 'name': a.name, 'team_id': a.team.id, 'team_name': a.team.name, 'icon_url': a.team.icon, 'description': a.description, 'tags': deal_tags(a.tags), 'picture': a.picture, 'yes_count': a.likers.count(), 'is_yes': request.user in a.likers.all(), 'require_count': a.requirers.count(), 'is_require': request.user in a.requirers.all(), 'time_created': a.time_created } for a in achievements] return JsonResponse({'count': c, 'list': l, 'code': 0})