Fix Bug: duplicate thumbup should not increase thumbup_num

Brightcells 9 年之前
父節點
當前提交
3586c96fbb
共有 2 個文件被更改,包括 14 次插入9 次删除
  1. 12 9
      group/views.py
  2. 2 0
      utils/error/errno_utils.py

+ 12 - 9
group/views.py

@@ -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,

+ 2 - 0
utils/error/errno_utils.py

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