| @@ -681,6 +681,10 @@ def thumbup_submit_api(request): | ||
| 681 | 681 | except GroupPhotoInfo.DoesNotExist: | 
| 682 | 682 | return response(GroupPhotoStatusCode.GROUP_PHOTO_NOT_FOUND) | 
| 683 | 683 |  | 
| 684 | + # user_id 是否点赞 photo_id | |
| 685 | + if PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id, thumbup=True).exists(): | |
| 686 | + return response(GroupPhotoStatusCode.DUPLICATE_THUMB_UP) | |
| 687 | + | |
| 684 | 688 | # 群组照片点赞记录创建/更新 | 
| 685 | 689 | photo_thumbup, created = PhotoThumbUpInfo.objects.get_or_create( | 
| 686 | 690 | photo_id=photo_id, | 
| @@ -691,10 +695,9 @@ def thumbup_submit_api(request): | ||
| 691 | 695 | photo_thumbup.thumbup = True | 
| 692 | 696 | photo_thumbup.save() | 
| 693 | 697 |  | 
| 694 | - if created: | |
| 695 | - # 群组照片点赞数更新 | |
| 696 | - group_photo.thumbup_num += 1 | |
| 697 | - group_photo.save() | |
| 698 | + # 群组照片点赞数更新 | |
| 699 | + group_photo.thumbup_num += 1 | |
| 700 | + group_photo.save() | |
| 698 | 701 |  | 
| 699 | 702 | # 判断群组照片发布者是否已经被管理员移除/主动退出,如若移除/退出,则不给发布者提醒 | 
| 700 | 703 | if r.sismember(GROUP_USERS_PASSED_SET % group_photo.group_id, group_photo.user_id): | 
| @@ -737,11 +740,7 @@ def thumbup_list_api(request): | ||
| 737 | 740 |      photo_id = request.POST.get('photo_id', '') | 
| 738 | 741 |  | 
| 739 | 742 | # user_id 是否点赞 photo_id | 
| 740 | - thumbup = PhotoThumbUpInfo.objects.filter( | |
| 741 | - photo_id=photo_id, | |
| 742 | - user_id=user_id, | |
| 743 | - thumbup=True, | |
| 744 | - ).exists() | |
| 743 | + thumbup = PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id, thumbup=True).exists() | |
| 745 | 744 |  | 
| 746 | 745 | # 群组照片点赞列表 | 
| 747 | 746 | photo_thumbups = PhotoThumbUpInfo.objects.filter( | 
| @@ -781,6 +780,10 @@ def thumbup_cancel_api(request): | ||
| 781 | 780 | except GroupPhotoInfo.DoesNotExist: | 
| 782 | 781 | return response(GroupPhotoStatusCode.GROUP_PHOTO_NOT_FOUND) | 
| 783 | 782 |  | 
| 783 | + # user_id 是否点赞 photo_id | |
| 784 | + if not PhotoThumbUpInfo.objects.filter(photo_id=photo_id, user_id=user_id, thumbup=True).exists(): | |
| 785 | + return response(GroupPhotoStatusCode.THUMB_UP_NOT_FOUND) | |
| 786 | + | |
| 784 | 787 | # 群组照片点赞取消 | 
| 785 | 788 | photo_thumbup, created = PhotoThumbUpInfo.objects.get_or_create( | 
| 786 | 789 | photo_id=photo_id, | 
| @@ -57,6 +57,8 @@ class GroupUserStatusCode(BaseStatusCode): | ||
| 57 | 57 | class GroupPhotoStatusCode(BaseStatusCode): | 
| 58 | 58 | """ 群组照片(飞图)相关错误码 4022xx """ | 
| 59 | 59 | GROUP_PHOTO_NOT_FOUND = StatusCodeField(402201, u'Group Photo Not Found', description=u'飞图不存在') | 
| 60 | + THUMB_UP_NOT_FOUND = StatusCodeField(402202, u'Thumb Up Not Found', description=u'未点赞') | |
| 61 | + DUPLICATE_THUMB_UP = StatusCodeField(402203, u'Duplicate Thumb Up', description=u'重复点赞') | |
| 60 | 62 |  | 
| 61 | 63 |  | 
| 62 | 64 | class OrderStatusCode(BaseStatusCode): |