摄影师版块新增备注,会员活动投稿新增消息

FFIB преди 1 година
родител
ревизия
4a7b65e9b3

+ 20 - 0
account/migrations/0062_lensmaninfo_remark.py

@@ -0,0 +1,20 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+# Generated by Django 3.2.16 on 2024-04-10 08:12
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('account', '0061_auto_20240327_1550'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='lensmaninfo',
17
+            name='remark',
18
+            field=models.CharField(blank=True, help_text='备注', max_length=255, null=True, verbose_name='remark'),
19
+        ),
20
+    ]

+ 3 - 0
account/models.py

@@ -384,6 +384,8 @@ class LensmanInfo(BaseModelMixin):
384 384
     name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'摄影师姓名')
385 385
     phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'摄影师联系电话')
386 386
     integral = models.IntegerField(_(u'integral'), default=0, help_text=u'摄影师积分')
387
+    remark = models.CharField(_(u'remark'), max_length=255, blank=True, null=True, help_text=u'备注')
388
+
387 389
 
388 390
     lensman_status = models.IntegerField(_(u'lensman_status'), choices=LENSMAN_STATUS, default=UNVERIFIED, help_text=u'摄影师状态', db_index=True)
389 391
 
@@ -432,6 +434,7 @@ class LensmanInfo(BaseModelMixin):
432 434
             'start_date': self.start_date,
433 435
             'end_date': self.end_date,
434 436
             'is_expired': self.is_expired,
437
+            'remark': self.remark,
435 438
             'created_at': tc.local_string(utc_dt=self.created_at),
436 439
         }
437 440
 

+ 2 - 0
api/lensman_admin_views.py

@@ -65,6 +65,7 @@ def lensman_update(request, administrator):
65 65
     end_date = tc.to_date(request.POST.get('end_date', ''))
66 66
     name = request.POST.get('name', '')
67 67
     phone = request.POST.get('phone', '')
68
+    remark = request.POST.get('remark', '')
68 69
         
69 70
     try:
70 71
       lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True)
@@ -75,6 +76,7 @@ def lensman_update(request, administrator):
75 76
     lensman.end_date = end_date
76 77
     lensman.name = name
77 78
     lensman.phone = phone
79
+    lensman.remark = remark
78 80
 
79 81
     lensman.save()
80 82
 

+ 2 - 2
member/lensman_activity_admin_views.py

@@ -63,8 +63,8 @@ def activity_integral_add(request, administrator):
63 63
     except LensmanInfo.DoesNotExist:
64 64
         return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
65 65
 
66
-    user.integral += integral
67
-    user.save()
66
+    lensman.integral += integral
67
+    lensman.save()
68 68
 
69 69
     LensmanIntegralIncomeExpensesInfo.objects.create(
70 70
         brand_id=brand_id,

+ 18 - 9
member/lensman_activity_mp_views.py

@@ -6,7 +6,7 @@ from django.db.models import Q
6 6
 from django_response import response
7 7
 
8 8
 from account.models import LensmanInfo
9
-from member.models import MemberActivityInfo, MemberActivityDataInfo, MemberActivitySignupInfo
9
+from member.models import MemberActivityInfo, MemberActivityDataInfo, MemberActivitySignupInfo, MemberActivityContributionInfo
10 10
 from utils.error.errno_utils import MemberActivityStatusCode
11 11
 
12 12
 @logit
@@ -58,25 +58,34 @@ def activity_data_detail(request):
58 58
 
59 59
 
60 60
 @logit
61
-def activity_signup_message(request):
61
+def activity_message(request):
62 62
     user_id = request.POST.get('user_id', '')
63 63
 
64 64
     lensman_acts = MemberActivityInfo.objects.values_list('activity_id', flat=True).filter(activity_section=4, status=True)
65
-    infos = MemberActivitySignupInfo.objects.filter(Q(user_id=user_id) & Q(activity_id__in=lensman_acts) & Q(is_read=False)).exclude(audit_status=MemberActivitySignupInfo.UNAUDITED)
65
+    signup_infos = MemberActivitySignupInfo.objects.filter(Q(user_id=user_id) & Q(activity_id__in=lensman_acts) & Q(is_read=False)).exclude(audit_status=MemberActivitySignupInfo.UNAUDITED)
66
+    contribution_infos = MemberActivityContributionInfo.objects.filter(Q(user_id=user_id) & Q(activity_id__in=lensman_acts) & Q(is_read=False)).exclude(audit_status=MemberActivityContributionInfo.UNAUDITED)
66 67
 
67
-    infos = [info.data for info in infos]
68
+    signup_infos = [signup_infos.data for info in signup_infos]
69
+    contribution_infos = [contribution_infos.data for info in contribution_infos]
68 70
 
69 71
     return response(data={
70
-        'messages': infos
72
+        'signup_messages': signup_infos,
73
+        'contribution_messages': contribution_infos,
71 74
     })
72 75
 
76
+
73 77
 @logit
74
-def activity_signup_message_read(request):
78
+def activity_message_read(request):
75 79
     user_id = request.POST.get('user_id', '')
76 80
     signup_id = request.POST.get('signup_id', '')
81
+    contribution_id = request.POST.get('contribution_id', '')
82
+
83
+    if signup_id:
84
+        MemberActivitySignupInfo.objects.filter(user_id=user_id, signup_id=signup_id).update(is_read=True)
85
+    
86
+    if contribution_id:
87
+        MemberActivityContributionInfo.objects.filter(user_id=user_id, contribution_id=contribution_id).update(is_read=True)
77 88
 
78
-    MemberActivitySignupInfo.objects.filter(user_id=user_id, signup_id=signup_id).update(is_read=True)
89
+    return response(200, 'Activity Message Has Read Success', '活动消息已读')
79 90
 
80
-    return response(200, 'Activity Signup Message Has Read Success', '活动报名消息已读')
81 91
 
82
-                                 

+ 25 - 0
member/migrations/0071_auto_20240410_1612.py

@@ -0,0 +1,25 @@
1
+# -*- coding: utf-8 -*-
2
+
3
+# Generated by Django 3.2.16 on 2024-04-10 08:12
4
+
5
+from django.db import migrations, models
6
+
7
+
8
+class Migration(migrations.Migration):
9
+
10
+    dependencies = [
11
+        ('member', '0070_auto_20240327_1550'),
12
+    ]
13
+
14
+    operations = [
15
+        migrations.AddField(
16
+            model_name='memberactivitycontributioninfo',
17
+            name='is_read',
18
+            field=models.BooleanField(default=False, help_text='审核消息是否已读', verbose_name='is_read'),
19
+        ),
20
+        migrations.AlterField(
21
+            model_name='memberactivitycontributioninfo',
22
+            name='audit_status',
23
+            field=models.IntegerField(choices=[(0, '未审核'), (1, '已通过'), (2, '未通过')], db_index=True, default=0, help_text='审批状态', verbose_name='audit_status'),
24
+        ),
25
+    ]

+ 10 - 4
member/models.py

@@ -913,11 +913,14 @@ class MemberActivityContributionInfo(BaseModelMixin, BrandInfoMixin):
913 913
         # (2, u'入围'),
914 914
     )
915 915
 
916
-    AUDIT_PASS = 1
916
+    UNAUDITED = 0
917
+    PASSED = 1
918
+    UNPASSED = 2
919
+
917 920
     AUDIT_STATUS = (
918
-        (0, u'未审批'),
919
-        (1, u'已通过'),
920
-        (2, u'未通过'),
921
+        (UNAUDITED, '未审核'),
922
+        (PASSED, '已通过'),
923
+        (UNPASSED, '未通过'),
921 924
     )
922 925
 
923 926
     contribution_id = ShortUUIDField(_(u'contribution_id'), max_length=32, blank=True, null=True, help_text=u'投稿唯一标识', db_index=True, unique=True)
@@ -946,6 +949,9 @@ class MemberActivityContributionInfo(BaseModelMixin, BrandInfoMixin):
946 949
     audit_status = models.IntegerField(_(u'audit_status'), choices=AUDIT_STATUS, default=0, help_text=u'审批状态', db_index=True)
947 950
     is_selected = models.BooleanField(_(u'is_selected'), default=False, help_text=u'是否入围')
948 951
 
952
+    is_read = models.BooleanField(_(u'is_read'), default=False, help_text=u'审核消息是否已读')
953
+
954
+
949 955
     class Meta:
950 956
         verbose_name = _(u'会员活动投稿信息')
951 957
         verbose_name_plural = _(u'会员活动投稿信息')

+ 2 - 2
member/mp_urls.py

@@ -39,6 +39,6 @@ urlpatterns += [
39 39
 
40 40
 #activity message
41 41
 urlpatterns += [
42
-    url(r'^member/activity/signup/message$', lensman_activity_mp_views.activity_signup_message, name='mp_member_activity_signup_message'),
43
-    url(r'^member/activity/signup/message/read$', lensman_activity_mp_views.activity_signup_message_read, name='mp_member_activity_signup_message_read'),
42
+    url(r'^member/activity/message$', lensman_activity_mp_views.activity_message, name='mp_member_activity_message'),
43
+    url(r'^member/activity/message/read$', lensman_activity_mp_views.activity_message_read, name='mp_member_activity_message_read'),
44 44
 ]