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