:art: Support member/activity/contribute/welfare/unlocking relative apis

huangqimin001 2 年 前
コミット
0764ea5ba9
共有5 個のファイルを変更した158 個の追加10 個の削除を含む
  1. 60 2
      api/admin_views.py
  2. 72 3
      api/member_views.py
  3. 11 5
      api/urls.py
  4. 5 0
      member/models.py
  5. 10 0
      utils/error/errno_utils.py

+ 60 - 2
api/admin_views.py

@@ -30,7 +30,8 @@ from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContribution
30 30
 from pre.custom_message import sendtemplatemessage, sendwxasubscribemessage
31 31
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
32 32
 from utils.error.errno_utils import (AdministratorStatusCode, ComplementCodeStatusCode,
33
-                                     MemberActivityContributionStatusCode, ProductBrandStatusCode,
33
+                                     MemberActivityContributionStatusCode, MemberActivityContributionWelfareStatusCode,
34
+                                     MemberActivityContributionWelfareUnblockingStatusCode, ProductBrandStatusCode,
34 35
                                      ProductCouponStatusCode, ProductMachineStatusCode, UserStatusCode)
35 36
 
36 37
 
@@ -1038,7 +1039,7 @@ def member_activity_contribute_welfare_update(request, administrator):
1038 1039
     try:
1039 1040
         welfare = MemberActivityContributionWelfareInfo.objects.get(welfare_id=welfare_id, status=True)
1040 1041
     except MemberActivityContributionWelfareInfo.DoesNotExist:
1041
-        return response()
1042
+        return response(MemberActivityContributionWelfareStatusCode.ACTIVITY_CONTRIBUTION_WELFARE_NOT_FOUND)
1042 1043
 
1043 1044
     welfare.activity_id = activity_id
1044 1045
     welfare.welfare_type = welfare_type
@@ -1096,6 +1097,63 @@ def member_activity_contribute_welfare_unlock(request, administrator):
1096 1097
     return response(200, 'Unlock Member Activity Contribute Welfare Success', u'解锁会员活动投稿福利成功')
1097 1098
 
1098 1099
 
1100
+@logit
1101
+@check_admin
1102
+def member_activity_contribute_welfare_unlocking_list(request, administrator):
1103
+    user_id = request.POST.get('user_id', '')
1104
+    activity_id = request.POST.get('activity_id', '')
1105
+    contribution_id = request.POST.get('contribution_id', '')
1106
+    welfare_id = request.POST.get('welfare_id', '')
1107
+    page = request.POST.get('page', 1)
1108
+    num = request.POST.get('num', 20)
1109
+
1110
+    unlockings = MemberActivityContributionWelfareUnlockingInfo.objects.filter(status=True)
1111
+    if user_id:
1112
+        unlockings = unlockings.filter(user_id=user_id)
1113
+    if activity_id:
1114
+        unlockings = unlockings.filter(activity_id=activity_id)
1115
+    if contribution_id:
1116
+        unlockings = unlockings.filter(contribution_id=contribution_id)
1117
+    if welfare_id:
1118
+        unlockings = unlockings.filter(welfare_id=welfare_id)
1119
+    unlockings = unlockings.order_by('-pk')
1120
+    unlockings, left = pagination(unlockings, page, num)
1121
+    unlockings = [unlocking.data for unlocking in unlockings]
1122
+
1123
+    return response(data={
1124
+        'unlockings': unlockings,
1125
+        'left': left,
1126
+    })
1127
+
1128
+
1129
+@logit
1130
+@check_admin
1131
+@transaction.atomic
1132
+def member_activity_contribute_welfare_unlocking_update(request, administrator):
1133
+    unlocking_id = request.POST.get('unlocking_id', '')
1134
+    name = request.POST.get('name', '')
1135
+    phone = request.POST.get('phone', '')
1136
+    address = request.POST.get('address', '')
1137
+    tracking_number = request.POST.get('tracking_number', '')
1138
+
1139
+    try:
1140
+        unlocking = MemberActivityContributionWelfareUnlockingInfo.objects.select_for_update().get(unlocking_id=unlocking_id, status=True)
1141
+    except MemberActivityContributionWelfareUnlockingInfo.DoesNotExist:
1142
+        return response(MemberActivityContributionWelfareUnblockingStatusCode.ACTIVITY_CONTRIBUTION_WELFARE_UNBLOCKING_NOT_FOUND)
1143
+
1144
+    if name:
1145
+        unlocking.name = name
1146
+    if phone:
1147
+        unlocking.phone = phone
1148
+    if address:
1149
+        unlocking.address = address
1150
+    if tracking_number:
1151
+        unlocking.tracking_number = tracking_number
1152
+    unlocking.save()
1153
+
1154
+    return response(200, 'Update Member Activity Contribute Welfare Unblocking Success', u'更新会员活动投稿福利解锁成功')
1155
+
1156
+
1099 1157
 @check_admin
1100 1158
 def coupon_list(request, administrator):
1101 1159
     title = request.POST.get('title', '')

+ 72 - 3
api/member_views.py

@@ -15,11 +15,13 @@ from TimeConvert import TimeConvert as tc
15 15
 
16 16
 from account.models import UserInfo
17 17
 from coupon.models import UserCouponInfo
18
-from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo, MemberActivityGroupShareInfo,
18
+from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityContributionInfo,
19
+                           MemberActivityContributionWelfareUnlockingInfo, MemberActivityGroupShareInfo,
19 20
                            MemberActivityInfo, MemberActivitySigninInfo, MemberActivitySignupInfo, RightInfo)
20
-from utils.error.errno_utils import (MemberActivityContributionStatusCode, MemberActivityStatusCode,
21
+from utils.error.errno_utils import (MemberActivityContributionStatusCode,
22
+                                     MemberActivityContributionWelfareUnblockingStatusCode, MemberActivityStatusCode,
21 23
                                      MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,
22
-                                     UserStatusCode)
24
+                                     PermissionStatusCode, UserStatusCode)
23 25
 from utils.redis.connect import r
24 26
 from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO
25 27
 from utils.redis.rshot import get_member_shot_data
@@ -595,3 +597,70 @@ def activity_contribute_detail(request):
595 597
         return response(MemberActivityContributionStatusCode.ACTIVITY_CONTRIBUTION_NOT_FOUND)
596 598
 
597 599
     return response(data=contribution.data)
600
+
601
+
602
+@logit
603
+def activity_contribute_welfare_unlocking_list(request):
604
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
605
+    user_id = request.POST.get('user_id', '')
606
+    page = request.POST.get('page', 1)
607
+    num = request.POST.get('num', 20)
608
+
609
+    unlockings = MemberActivityContributionWelfareUnlockingInfo.objects.filter(user_id=user_id, is_handled=False, status=True).order_by('-pk')
610
+    unlockings, left = pagination(unlockings, page, num)
611
+    unlockings = [unlocking.data for unlocking in unlockings]
612
+
613
+    return response(data={
614
+        'unlockings': unlockings,
615
+        'left': left,
616
+    })
617
+
618
+
619
+@logit
620
+@transaction.atomic
621
+def activity_contribute_welfare_unlocking_update(request):
622
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
623
+    unlocking_id = request.POST.get('unlocking_id', '')
624
+    user_id = request.POST.get('user_id', '')
625
+    name = request.POST.get('name', '')
626
+    phone = request.POST.get('phone', '')
627
+    address = request.POST.get('address', '')
628
+
629
+    try:
630
+        unlocking = MemberActivityContributionWelfareUnlockingInfo.objects.select_for_update().get(unlocking_id=unlocking_id, status=True)
631
+    except MemberActivityContributionWelfareUnlockingInfo.DoesNotExist:
632
+        return response(MemberActivityContributionWelfareUnblockingStatusCode.ACTIVITY_CONTRIBUTION_WELFARE_UNBLOCKING_NOT_FOUND)
633
+
634
+    if user_id != unlocking.user_id:
635
+        return response(PermissionStatusCode.PERMISSION_DENIED)
636
+
637
+    if name:
638
+        unlocking.name = name
639
+    if phone:
640
+        unlocking.phone = phone
641
+    if address:
642
+        unlocking.address = address
643
+    unlocking.save()
644
+
645
+    return response(200, 'Update Member Activity Contribute Welfare Unblocking Success', u'更新会员活动投稿福利解锁成功')
646
+
647
+
648
+@logit
649
+@transaction.atomic
650
+def activity_contribute_welfare_unlocking_handled(request):
651
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
652
+    unlocking_id = request.POST.get('unlocking_id', '')
653
+    user_id = request.POST.get('user_id', '')
654
+
655
+    try:
656
+        unlocking = MemberActivityContributionWelfareUnlockingInfo.objects.select_for_update().get(unlocking_id=unlocking_id, status=True)
657
+    except MemberActivityContributionWelfareUnlockingInfo.DoesNotExist:
658
+        return response(MemberActivityContributionWelfareUnblockingStatusCode.ACTIVITY_CONTRIBUTION_WELFARE_UNBLOCKING_NOT_FOUND)
659
+
660
+    if user_id != unlocking.user_id:
661
+        return response(PermissionStatusCode.PERMISSION_DENIED)
662
+
663
+    unlocking.is_handled = True
664
+    unlocking.save()
665
+
666
+    return response(200, 'Update Member Activity Contribute Welfare Unblocking Success', u'处理会员活动投稿福利解锁成功')

+ 11 - 5
api/urls.py

@@ -175,11 +175,13 @@ urlpatterns += [
175 175
     url(r'^admin/member/activity/contribute/audit$', admin_views.member_activity_contribute_audit, name='admin_member_activity_contribute_audit'),
176 176
     url(r'^admin/member/activity/contribute/selected$', admin_views.member_activity_contribute_selected, name='admin_member_activity_contribute_selected'),
177 177
 
178
-    url(r'^admin/member/activity/contribute/welfare/list$', admin_views.member_activity_contribute_welfare_list, name='member_activity_contribute_welfare_list'),
179
-    url(r'^admin/member/activity/contribute/welfare/detail$', admin_views.member_activity_contribute_welfare_detail, name='member_activity_contribute_welfare_detail'),
180
-    url(r'^admin/member/activity/contribute/welfare/update$', admin_views.member_activity_contribute_welfare_update, name='member_activity_contribute_welfare_update'),
181
-    url(r'^admin/member/activity/contribute/welfare/create$', admin_views.member_activity_contribute_welfare_create, name='member_activity_contribute_welfare_create'),
182
-    url(r'^admin/member/activity/contribute/welfare/unlock$', admin_views.member_activity_contribute_welfare_unlock, name='member_activity_contribute_welfare_unlock'),
178
+    url(r'^admin/member/activity/contribute/welfare/list$', admin_views.member_activity_contribute_welfare_list, name='admin_member_activity_contribute_welfare_list'),
179
+    url(r'^admin/member/activity/contribute/welfare/detail$', admin_views.member_activity_contribute_welfare_detail, name='admin_member_activity_contribute_welfare_detail'),
180
+    url(r'^admin/member/activity/contribute/welfare/update$', admin_views.member_activity_contribute_welfare_update, name='admin_member_activity_contribute_welfare_update'),
181
+    url(r'^admin/member/activity/contribute/welfare/create$', admin_views.member_activity_contribute_welfare_create, name='admin_member_activity_contribute_welfare_create'),
182
+    url(r'^admin/member/activity/contribute/welfare/unlock$', admin_views.member_activity_contribute_welfare_unlock, name='admin_member_activity_contribute_welfare_unlock'),
183
+    url(r'^admin/member/activity/contribute/welfare/unlocking/list$', admin_views.member_activity_contribute_welfare_unlocking_list, name='admin_member_activity_contribute_welfare_unlocking_list'),
184
+    url(r'^admin/member/activity/contribute/welfare/unlocking/update$', admin_views.member_activity_contribute_welfare_unlocking_update, name='admin_member_activity_contribute_welfare_unlocking_update'),
183 185
 
184 186
     url(r'^admin/coupon/list$', admin_views.coupon_list, name='coupon_list'),
185 187
     url(r'^admin/coupon/details$', admin_views.coupon_detail, name='coupon_detail'),
@@ -242,6 +244,10 @@ urlpatterns += [
242 244
     url(r'^member/activity/contribute/list$', member_views.activity_contribute_list, name='member_activity_contribute_list'),
243 245
     url(r'^member/activity/contribute/detail$', member_views.activity_contribute_detail, name='member_activity_contribute_detail'),
244 246
 
247
+    url(r'^member/activity/contribute/welfare/unlocking/list$', member_views.activity_contribute_welfare_unlocking_list, name='member_activity_contribute_welfare_unlocking_list'),
248
+    url(r'^member/activity/contribute/welfare/unlocking/update$', member_views.activity_contribute_welfare_unlocking_update, name='member_activity_contribute_welfare_unlocking_update'),
249
+    url(r'^member/activity/contribute/welfare/unlocking/handled$', member_views.activity_contribute_welfare_unlocking_handled, name='member_activity_contribute_welfare_unlocking_handled'),
250
+
245 251
     url(r'^rights$', member_views.rights, name='rights'),
246 252
     url(r'^right/detail$', member_views.right_detail, name='right_detail'),
247 253
     url(r'^goods$', member_views.goods, name='goods'),

+ 5 - 0
member/models.py

@@ -792,6 +792,10 @@ class MemberActivityContributionWelfareUnlockingInfo(BaseModelMixin, BrandInfoMi
792 792
 
793 793
     @property
794 794
     def data(self):
795
+        try:
796
+            welfare = MemberActivityContributionWelfareInfo.objects.get(welfare_id=self.welfare_id)
797
+        except MemberActivityContributionWelfareInfo.DoesNotExist:
798
+            welfare = None
795 799
         return {
796 800
             'unlocking_id': self.unlocking_id,
797 801
             'brand_id': self.brand_id,
@@ -801,6 +805,7 @@ class MemberActivityContributionWelfareUnlockingInfo(BaseModelMixin, BrandInfoMi
801 805
             'activity_id': self.activity_id,
802 806
             'contribution_id': self.contribution_id,
803 807
             'welfare_id': self.welfare_id,
808
+            'welfare': welfare.data if welfare else {},
804 809
             'name': self.name,
805 810
             'phone': self.phone,
806 811
             'address': self.address,

+ 10 - 0
utils/error/errno_utils.py

@@ -100,6 +100,16 @@ class MemberActivityContributionStatusCode(BaseStatusCode):
100 100
     ACTIVITY_CONTRIBUTION_NOT_FOUND = StatusCodeField(503801, 'Activity Contribution Not Found', description=u'活动投稿不存在')
101 101
 
102 102
 
103
+class MemberActivityContributionWelfareStatusCode(BaseStatusCode):
104
+    """ 会员活动投稿福利相关错误码 5039xx """
105
+    ACTIVITY_CONTRIBUTION_WELFARE_NOT_FOUND = StatusCodeField(503901, 'Activity Contribution Welfare Not Found', description=u'活动投稿福利不存在')
106
+
107
+
108
+class MemberActivityContributionWelfareUnblockingStatusCode(BaseStatusCode):
109
+    """ 会员活动投稿福利相关错误码 5039xx """
110
+    ACTIVITY_CONTRIBUTION_WELFARE_UNBLOCKING_NOT_FOUND = StatusCodeField(503999, 'Activity Contribution Welfare Unblocking Not Found', description=u'活动投稿福利解锁不存在')
111
+
112
+
103 113
 class MemberCouponStatusCode(BaseStatusCode):
104 114
     """ 会员优惠券相关错误码 5040xx """
105 115
     USER_COUPON_NOT_FOUND = StatusCodeField(504001, 'User Coupon Not Found', description=u'用户优惠券不存在')