@@ -0,0 +1,40 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+# Generated by Django 3.2.16 on 2024-03-27 07:50 |
|
| 4 |
+ |
|
| 5 |
+from django.db import migrations, models |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+class Migration(migrations.Migration): |
|
| 9 |
+ |
|
| 10 |
+ dependencies = [ |
|
| 11 |
+ ('account', '0060_auto_20240312_1350'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.CreateModel( |
|
| 16 |
+ name='LensmanIntegralIncomeExpensesInfo', |
|
| 17 |
+ fields=[ |
|
| 18 |
+ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
|
| 19 |
+ ('status', models.BooleanField(default=True, help_text='Status', verbose_name='status')),
|
|
| 20 |
+ ('created_at', models.DateTimeField(auto_now_add=True, help_text='Create Time', verbose_name='created_at')),
|
|
| 21 |
+ ('updated_at', models.DateTimeField(auto_now=True, help_text='Update Time', verbose_name='updated_at')),
|
|
| 22 |
+ ('user_id', models.CharField(blank=True, db_index=True, help_text='用户唯一标识', max_length=32, null=True, verbose_name='user_id')),
|
|
| 23 |
+ ('brand_id', models.CharField(blank=True, db_index=True, help_text='品牌唯一标识', max_length=32, null=True, verbose_name='brand_id')),
|
|
| 24 |
+ ('brand_name', models.CharField(blank=True, help_text='品牌名称', max_length=255, null=True, verbose_name='brand_name')),
|
|
| 25 |
+ ('integral', models.IntegerField(default=0, help_text='增减积分', verbose_name='integral')),
|
|
| 26 |
+ ('remark', models.CharField(blank=True, help_text='备注', max_length=255, null=True, verbose_name='remark')),
|
|
| 27 |
+ ('activity_id', models.CharField(blank=True, db_index=True, help_text='活动唯一标识', max_length=32, null=True, verbose_name='activity_id')),
|
|
| 28 |
+ ('expired_at', models.DateField(blank=True, help_text='积分过期日期', null=True, verbose_name='expired_at')),
|
|
| 29 |
+ ], |
|
| 30 |
+ options={
|
|
| 31 |
+ 'verbose_name': 'lensmanintegralincomeexpensesinfo', |
|
| 32 |
+ 'verbose_name_plural': 'lensmanintegralincomeexpensesinfo', |
|
| 33 |
+ }, |
|
| 34 |
+ ), |
|
| 35 |
+ migrations.AddField( |
|
| 36 |
+ model_name='lensmaninfo', |
|
| 37 |
+ name='integral', |
|
| 38 |
+ field=models.IntegerField(default=0, help_text='摄影师积分', verbose_name='integral'), |
|
| 39 |
+ ), |
|
| 40 |
+ ] |
@@ -383,6 +383,7 @@ class LensmanInfo(BaseModelMixin): |
||
| 383 | 383 |
|
| 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 |
+ integral = models.IntegerField(_(u'integral'), default=0, help_text=u'摄影师积分') |
|
| 386 | 387 |
|
| 387 | 388 |
lensman_status = models.IntegerField(_(u'lensman_status'), choices=LENSMAN_STATUS, default=UNVERIFIED, help_text=u'摄影师状态', db_index=True) |
| 388 | 389 |
|
@@ -412,6 +413,9 @@ class LensmanInfo(BaseModelMixin): |
||
| 412 | 413 |
'lensman_id': self.lensman_id, |
| 413 | 414 |
'name': self.name, |
| 414 | 415 |
'phone': self.phone, |
| 416 |
+ 'start_date': self.start_date, |
|
| 417 |
+ 'end_date': self.end_date, |
|
| 418 |
+ 'integral': self.integral, |
|
| 415 | 419 |
'is_expired': self.is_expired, |
| 416 | 420 |
'lensman_status': self.lensman_status, |
| 417 | 421 |
} |
@@ -423,6 +427,7 @@ class LensmanInfo(BaseModelMixin): |
||
| 423 | 427 |
'user_id': self.user_id, |
| 424 | 428 |
'name': self.name, |
| 425 | 429 |
'phone': self.phone, |
| 430 |
+ 'integral': self.integral, |
|
| 426 | 431 |
'lensman_status': self.lensman_status, |
| 427 | 432 |
'start_date': self.start_date, |
| 428 | 433 |
'end_date': self.end_date, |
@@ -496,3 +501,54 @@ class UserIntegralIncomeExpensesInfo(BaseModelMixin): |
||
| 496 | 501 |
'created_at': tc.local_string(utc_dt=self.created_at), |
| 497 | 502 |
} |
| 498 | 503 |
|
| 504 |
+ |
|
| 505 |
+class LensmanIntegralIncomeExpensesInfo(BaseModelMixin): |
|
| 506 |
+ user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
|
| 507 |
+ |
|
| 508 |
+ brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True) |
|
| 509 |
+ brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称') |
|
| 510 |
+ |
|
| 511 |
+ integral = models.IntegerField(_(u'integral'), default=0, help_text=u'增减积分') |
|
| 512 |
+ remark = models.CharField(_(u'remark'), max_length=255, blank=True, null=True, help_text=u'备注') |
|
| 513 |
+ |
|
| 514 |
+ activity_id = models.CharField(_(u'activity_id'), max_length=32, blank=True, null=True, help_text=u'活动唯一标识', db_index=True) |
|
| 515 |
+ expired_at = models.DateField(_(u'expired_at'), blank=True, null=True, help_text=u'积分过期日期') |
|
| 516 |
+ |
|
| 517 |
+ class Meta: |
|
| 518 |
+ verbose_name = _(u'lensmanintegralincomeexpensesinfo') |
|
| 519 |
+ verbose_name_plural = _(u'lensmanintegralincomeexpensesinfo') |
|
| 520 |
+ |
|
| 521 |
+ def __unicode__(self): |
|
| 522 |
+ return '%d' % self.pk |
|
| 523 |
+ |
|
| 524 |
+ @property |
|
| 525 |
+ def admindata(self): |
|
| 526 |
+ if self.activity_id: |
|
| 527 |
+ act = MemberActivityInfo.objects.get(activity_id=self.activity_id) |
|
| 528 |
+ else: |
|
| 529 |
+ act = None |
|
| 530 |
+ |
|
| 531 |
+ return {
|
|
| 532 |
+ 'integral': self.integral, |
|
| 533 |
+ 'remark': self.remark, |
|
| 534 |
+ 'act_info': act.admindata if act else None, |
|
| 535 |
+ 'activity_id': self.activity_id, |
|
| 536 |
+ 'expired_at': self.expired_at if self.expired_at else '', |
|
| 537 |
+ 'created_at': tc.local_string(utc_dt=self.created_at), |
|
| 538 |
+ } |
|
| 539 |
+ |
|
| 540 |
+ @property |
|
| 541 |
+ def userdata(self): |
|
| 542 |
+ if self.activity_id: |
|
| 543 |
+ act = MemberActivityInfo.objects.get(activity_id=self.activity_id) |
|
| 544 |
+ else: |
|
| 545 |
+ act = None |
|
| 546 |
+ |
|
| 547 |
+ return {
|
|
| 548 |
+ 'integral': self.integral, |
|
| 549 |
+ 'remark': self.remark, |
|
| 550 |
+ 'act_info': act.admindata if act else None, |
|
| 551 |
+ 'activity_id': self.activity_id, |
|
| 552 |
+ 'expired_at': self.expired_at if self.expired_at else '', |
|
| 553 |
+ 'created_at': tc.local_string(utc_dt=self.created_at), |
|
| 554 |
+ } |
@@ -2,13 +2,14 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from __future__ import division |
| 4 | 4 |
|
| 5 |
+from django.conf import settings |
|
| 5 | 6 |
from django_logit import logit |
| 6 | 7 |
from django_response import response |
| 7 | 8 |
from django.db.models import Q |
| 8 | 9 |
from paginator import pagination |
| 9 | 10 |
from TimeConvert import TimeConvert as tc |
| 10 | 11 |
|
| 11 |
-from account.models import LensmanInfo, UserIntegralIncomeExpensesInfo |
|
| 12 |
+from account.models import LensmanInfo, LensmanIntegralIncomeExpensesInfo |
|
| 12 | 13 |
from kodo.decorators import check_admin |
| 13 | 14 |
|
| 14 | 15 |
|
@@ -90,9 +91,36 @@ def lensman_integral_list(request, administrator): |
||
| 90 | 91 |
except LensmanInfo.DoesNotExist: |
| 91 | 92 |
return response(200, 'Lensman Not Found', u'摄影师不存在') |
| 92 | 93 |
|
| 93 |
- integrals = UserIntegralIncomeExpensesInfo.objects.filter(user_id=user_id, integral_from=UserIntegralIncomeExpensesInfo.LENSMAN_ACTIVITY, status=True) |
|
| 94 |
+ integrals = LensmanIntegralIncomeExpensesInfo.objects.filter(user_id=user_id, status=True) |
|
| 94 | 95 |
|
| 95 |
- integrals = [integral.lensman_admindata for integral in integrals] |
|
| 96 |
+ integrals = [integral.admindata for integral in integrals] |
|
| 96 | 97 |
|
| 97 | 98 |
|
| 98 |
- return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
|
| 99 |
+ return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
|
| 100 |
+ |
|
| 101 |
+ |
|
| 102 |
+@logit |
|
| 103 |
+def lensman_integral_update(request): |
|
| 104 |
+ user_id = request.POST.get('user_id', '')
|
|
| 105 |
+ integral = int(request.POST.get('integral', 0))
|
|
| 106 |
+ remark = request.POST.get('remark', '')
|
|
| 107 |
+ brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
|
|
| 108 |
+ |
|
| 109 |
+ try: |
|
| 110 |
+ lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
|
| 111 |
+ except LensmanInfo.DoesNotExist: |
|
| 112 |
+ return response(200, 'Lensman Not Found', u'摄影师不存在') |
|
| 113 |
+ |
|
| 114 |
+ lensman.integral += integral |
|
| 115 |
+ lensman.save() |
|
| 116 |
+ |
|
| 117 |
+ LensmanIntegralIncomeExpensesInfo.objects.create( |
|
| 118 |
+ brand_id=brand_id, |
|
| 119 |
+ user_id=user_id, |
|
| 120 |
+ integral=integral, |
|
| 121 |
+ remark=remark, |
|
| 122 |
+ expired_at=lensman.end_date, |
|
| 123 |
+ ) |
|
| 124 |
+ |
|
| 125 |
+ return response(200, 'Lensman Integral Update Success', u'摄影师积分更新成功') |
|
| 126 |
+ |
@@ -2,10 +2,11 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from __future__ import division |
| 4 | 4 |
|
| 5 |
+from django.conf import settings |
|
| 5 | 6 |
from django_logit import logit |
| 6 | 7 |
from django_response import response |
| 7 | 8 |
|
| 8 |
-from account.models import LensmanInfo, UserIntegralIncomeExpensesInfo |
|
| 9 |
+from account.models import LensmanInfo, LensmanIntegralIncomeExpensesInfo |
|
| 9 | 10 |
|
| 10 | 11 |
@logit |
| 11 | 12 |
def lensman_register(request): |
@@ -39,15 +40,16 @@ def lensman_detail(request): |
||
| 39 | 40 |
@logit |
| 40 | 41 |
def lensman_integral_list(request): |
| 41 | 42 |
user_id = request.POST.get('user_id', '')
|
| 43 |
+ brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
|
|
| 42 | 44 |
|
| 43 | 45 |
try: |
| 44 | 46 |
lensman = LensmanInfo.objects.get(user_id=user_id, status=True) |
| 45 | 47 |
except LensmanInfo.DoesNotExist: |
| 46 | 48 |
return response(200, 'Lensman Not Found', u'摄影师不存在') |
| 47 | 49 |
|
| 48 |
- integrals = UserIntegralIncomeExpensesInfo.objects.filter(user_id=user_id, integral_from=UserIntegralIncomeExpensesInfo.LENSMAN_ACTIVITY, status=True) |
|
| 50 |
+ integrals = LensmanIntegralIncomeExpensesInfo.objects.filter(user_id=user_id, status=True) |
|
| 49 | 51 |
|
| 50 |
- integrals = [integral.lensman_userdata for integral in integrals] |
|
| 52 |
+ integrals = [integral.userdata for integral in integrals] |
|
| 51 | 53 |
|
| 52 | 54 |
|
| 53 |
- return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
|
| 55 |
+ return response(200, 'Get Lensman Integral List Success', u'获取摄影师积分列表成功', data=integrals) |
@@ -383,4 +383,5 @@ urlpatterns += [ |
||
| 383 | 383 |
url(r'^admin/lensman/audit$', lensman_admin_views.lensman_audit, name='admin_lensman_audit'), |
| 384 | 384 |
url(r'^admin/lensman/update$', lensman_admin_views.lensman_update, name='admin_lensman_update'), |
| 385 | 385 |
url(r'^admin/lensman/integral/list$', lensman_admin_views.lensman_integral_list, name='admin_lensman_integral_list'), |
| 386 |
+ url(r'^admin/lensman/integral/update$', lensman_admin_views.lensman_integral_update, name='admin_lensman_integral_update'), |
|
| 386 | 387 |
] |
@@ -9,10 +9,9 @@ from django_response import response |
||
| 9 | 9 |
from paginator import pagination |
| 10 | 10 |
from TimeConvert import TimeConvert as tc |
| 11 | 11 |
|
| 12 |
-from account.models import UserIntegralIncomeExpensesInfo, UserInfo, LensmanInfo |
|
| 13 |
-from member.models import MemberActivityInfo, MemberActivitySignupInfo, MemberActivityContributionInfo, MemberActivityDataInfo |
|
| 12 |
+from member.models import MemberActivityInfo, MemberActivitySignupInfo, MemberActivityContributionInfo |
|
| 14 | 13 |
from kodo.decorators import check_admin |
| 15 |
-from utils.error.errno_utils import MemberActivityStatusCode, UserStatusCode |
|
| 14 |
+from utils.error.errno_utils import MemberActivityStatusCode |
|
| 16 | 15 |
|
| 17 | 16 |
|
| 18 | 17 |
@check_admin |
@@ -87,6 +86,8 @@ def activity_update(request, administrator): |
||
| 87 | 86 |
end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE)
|
| 88 | 87 |
start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE)
|
| 89 | 88 |
end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE)
|
| 89 |
+ start_data_submit_date = tc.to_date(request.POST.get('start_data_submit_date', '') or settings.DEFAULT_START_DATE)
|
|
| 90 |
+ end_data_submit_date = tc.to_date(request.POST.get('end_data_submit_date', '') or settings.DEFAULT_END_DATE)
|
|
| 90 | 91 |
city = request.POST.get('city', '')
|
| 91 | 92 |
location = request.POST.get('location', '')
|
| 92 | 93 |
integral = int(request.POST.get('integral', 0))
|
@@ -128,6 +129,8 @@ def activity_update(request, administrator): |
||
| 128 | 129 |
log.end_date = end_date |
| 129 | 130 |
log.start_display_date = start_display_date |
| 130 | 131 |
log.end_display_date = end_display_date |
| 132 |
+ log.start_data_submit_date = start_data_submit_date |
|
| 133 |
+ log.end_data_submit_date = end_data_submit_date |
|
| 131 | 134 |
log.city = city |
| 132 | 135 |
log.location = location |
| 133 | 136 |
log.integral = integral |
@@ -166,6 +169,8 @@ def activity_create(request, administrator): |
||
| 166 | 169 |
end_date = date = tc.to_date(request.POST.get('end_date', '') or settings.DEFAULT_END_DATE)
|
| 167 | 170 |
start_display_date = tc.to_date(request.POST.get('start_display_date', '') or settings.DEFAULT_START_DATE)
|
| 168 | 171 |
end_display_date = tc.to_date(request.POST.get('end_display_date', '') or settings.DEFAULT_END_DATE)
|
| 172 |
+ start_data_submit_date = tc.to_date(request.POST.get('start_data_submit_date', '') or settings.DEFAULT_START_DATE)
|
|
| 173 |
+ end_data_submit_date = tc.to_date(request.POST.get('end_data_submit_date', '') or settings.DEFAULT_END_DATE)
|
|
| 169 | 174 |
city = request.POST.get('city', '')
|
| 170 | 175 |
location = request.POST.get('location', '')
|
| 171 | 176 |
integral = int(request.POST.get('integral', 0))
|
@@ -201,6 +206,8 @@ def activity_create(request, administrator): |
||
| 201 | 206 |
end_date=end_date, |
| 202 | 207 |
start_display_date=start_display_date, |
| 203 | 208 |
end_display_date=end_display_date, |
| 209 |
+ start_data_submit_date=start_data_submit_date, |
|
| 210 |
+ end_data_submit_date=end_data_submit_date, |
|
| 204 | 211 |
city=city, |
| 205 | 212 |
location=location, |
| 206 | 213 |
integral=integral, |
@@ -239,7 +246,7 @@ def activity_signup_list(request, administrator): |
||
| 239 | 246 |
num = int(request.POST.get('num', 20))
|
| 240 | 247 |
query = request.POST.get('query', '')
|
| 241 | 248 |
is_signin = request.POST.get('is_signin', False)
|
| 242 |
- passed = request.POST.get('passed', '')
|
|
| 249 |
+ audit_status = request.POST.get('audit_status', '')
|
|
| 243 | 250 |
|
| 244 | 251 |
logs = MemberActivitySignupInfo.objects.filter(activity_id=activity_id, status=True).exclude(fields='[]') |
| 245 | 252 |
|
@@ -249,8 +256,8 @@ def activity_signup_list(request, administrator): |
||
| 249 | 256 |
if is_signin: |
| 250 | 257 |
logs = logs.filter(is_signin=is_signin) |
| 251 | 258 |
|
| 252 |
- if passed: |
|
| 253 |
- logs = logs.filter(passed=passed) |
|
| 259 |
+ if audit_status: |
|
| 260 |
+ logs = logs.filter(audit_status=audit_status) |
|
| 254 | 261 |
|
| 255 | 262 |
|
| 256 | 263 |
count = logs.count() |
@@ -262,70 +269,3 @@ def activity_signup_list(request, administrator): |
||
| 262 | 269 |
'count': count, |
| 263 | 270 |
'left': left, |
| 264 | 271 |
}) |
| 265 |
- |
|
| 266 |
- |
|
| 267 |
-@check_admin |
|
| 268 |
-def activity_signup_pass(request, administrator): |
|
| 269 |
- activity_id = request.POST.get('activity_id', '')
|
|
| 270 |
- signup_id = request.POST.get('signup_id', '')
|
|
| 271 |
- |
|
| 272 |
- MemberActivitySignupInfo.objects.filter(activity_id=activity_id, signup_id=signup_id, status=True).update(passed=True) |
|
| 273 |
- |
|
| 274 |
- return response(200, 'Member Activity Signup Passed Success', u'活动报名通过成功') |
|
| 275 |
- |
|
| 276 |
- |
|
| 277 |
-@check_admin |
|
| 278 |
-def activity_data_list(request, administrator): |
|
| 279 |
- activity_id = request.POST.get('activity_id', '')
|
|
| 280 |
- page = int(request.POST.get('page', 1))
|
|
| 281 |
- num = int(request.POST.get('num', 20))
|
|
| 282 |
- query = request.POST.get('query', '')
|
|
| 283 |
- |
|
| 284 |
- logs = MemberActivityDataInfo.objects.filter(activity_id=activity_id, status=True) |
|
| 285 |
- if query: |
|
| 286 |
- logs = logs.filter(Q(lensman_name__icontains=query) | Q(lensman_phone__icontains=query)) |
|
| 287 |
- |
|
| 288 |
- count = logs.count() |
|
| 289 |
- logs, left = pagination(logs, page, num) |
|
| 290 |
- logs = [log.admindata for log in logs] |
|
| 291 |
- |
|
| 292 |
- return response(200, 'Get Member Activity Data List Success', u'获取会员活动数据列表成功', data={
|
|
| 293 |
- 'logs': logs, |
|
| 294 |
- 'count': count, |
|
| 295 |
- 'left': left, |
|
| 296 |
- }) |
|
| 297 |
- |
|
| 298 |
-@check_admin |
|
| 299 |
-def activity_integral_add(request, administrator): |
|
| 300 |
- activity_id = request.POST.get('activity_id', '')
|
|
| 301 |
- user_id = request.POST.get('user_id', '')
|
|
| 302 |
- lensman_id = request.POST.get('lensman_id', '')
|
|
| 303 |
- integral = int(request.POST.get('integral', 0))
|
|
| 304 |
- remark = request.POST.get('remark', '')
|
|
| 305 |
- brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
|
|
| 306 |
- |
|
| 307 |
- try: |
|
| 308 |
- user = UserInfo.objects.get(user_id=user_id, status=True) |
|
| 309 |
- except UserInfo.DoesNotExist: |
|
| 310 |
- return response(UserStatusCode.USER_NOT_FOUND) |
|
| 311 |
- |
|
| 312 |
- try: |
|
| 313 |
- lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
| 314 |
- except LensmanInfo.DoesNotExist: |
|
| 315 |
- return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
|
|
| 316 |
- |
|
| 317 |
- user.integral += integral |
|
| 318 |
- user.save() |
|
| 319 |
- |
|
| 320 |
- UserIntegralIncomeExpensesInfo.objects.create( |
|
| 321 |
- brand_id=brand_id, |
|
| 322 |
- user_id=user_id, |
|
| 323 |
- integral_from=UserIntegralIncomeExpensesInfo.LENSMAN_ACTIVITY, |
|
| 324 |
- integral=integral, |
|
| 325 |
- final_integral=user.integral, |
|
| 326 |
- activity_id=activity_id, |
|
| 327 |
- remark=remark, |
|
| 328 |
- expired_at=lensman.end_date, |
|
| 329 |
- ) |
|
| 330 |
- |
|
| 331 |
- return response(200, 'Add Member Activity Integral Success', u'添加积分成功') |
@@ -129,54 +129,6 @@ def activity_signup_detail(request): |
||
| 129 | 129 |
|
| 130 | 130 |
|
| 131 | 131 |
@logit |
| 132 |
-def activity_data_submit(request): |
|
| 133 |
- user_id = request.POST.get('user_id', '')
|
|
| 134 |
- lensman_id = request.POST.get('lensman_id', '')
|
|
| 135 |
- activity_id = request.POST.get('activity_id', '')
|
|
| 136 |
- data_fields = request.POST.get('data_fields', '[]')
|
|
| 137 |
- |
|
| 138 |
- try: |
|
| 139 |
- act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) |
|
| 140 |
- except MemberActivityInfo.DoesNotExist: |
|
| 141 |
- return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
| 142 |
- |
|
| 143 |
- try: |
|
| 144 |
- lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
| 145 |
- except LensmanInfo.DoesNotExist: |
|
| 146 |
- return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
|
|
| 147 |
- |
|
| 148 |
- if lensman.is_expired: |
|
| 149 |
- return response(40001, 'Lensman Has Expired', '摄影师合作已到期') |
|
| 150 |
- |
|
| 151 |
- MemberActivityDataInfo.objects.update_or_create(user_id=user_id, activity_id=activity_id, defaults={
|
|
| 152 |
- 'title': act.title, |
|
| 153 |
- 'lensman_id': lensman_id, |
|
| 154 |
- 'lensman_name': lensman.name, |
|
| 155 |
- 'lensman_phone': lensman.phone, |
|
| 156 |
- 'data_fields': data_fields, |
|
| 157 |
- }) |
|
| 158 |
- |
|
| 159 |
- return response(data={
|
|
| 160 |
- 'activity': act.data(user_id), |
|
| 161 |
- }) |
|
| 162 |
- |
|
| 163 |
- |
|
| 164 |
-@logit |
|
| 165 |
-def activity_data_detail(request): |
|
| 166 |
- user_id = request.POST.get('user_id', '')
|
|
| 167 |
- activity_id = request.POST.get('activity_id', '')
|
|
| 168 |
- |
|
| 169 |
- try: |
|
| 170 |
- data_info = MemberActivityDataInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True) |
|
| 171 |
- except MemberActivityDataInfo.DoesNotExist: |
|
| 172 |
- return response() |
|
| 173 |
- |
|
| 174 |
- return response(data={
|
|
| 175 |
- 'data_info': data_info.data, |
|
| 176 |
- }) |
|
| 177 |
- |
|
| 178 |
- |
|
| 179 |
-@logit |
|
| 180 | 132 |
def activity_contribute_create(request): |
| 181 | 133 |
brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
|
| 182 | 134 |
user_id = request.POST.get('user_id', '')
|
@@ -2,7 +2,7 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from django.conf.urls import url |
| 4 | 4 |
|
| 5 |
-from member import activity_admin_views |
|
| 5 |
+from member import activity_admin_views, lensman_activity_admin_views |
|
| 6 | 6 |
|
| 7 | 7 |
# activity |
| 8 | 8 |
urlpatterns = [ |
@@ -15,11 +15,11 @@ urlpatterns = [ |
||
| 15 | 15 |
# activity signup |
| 16 | 16 |
urlpatterns += [ |
| 17 | 17 |
url(r'^member/activity/signup/list$', activity_admin_views.activity_signup_list, name='admin_member_activity_signup_list'), |
| 18 |
- url(r'^member/activity/signup/pass$', activity_admin_views.activity_signup_pass, name='admin_member_activity_signup_pass'), |
|
| 18 |
+ url(r'^member/activity/signup/audit$', lensman_activity_admin_views.activity_signup_audit, name='admin_member_activity_signup_audit'), |
|
| 19 | 19 |
] |
| 20 | 20 |
|
| 21 | 21 |
#activity data |
| 22 | 22 |
urlpatterns += [ |
| 23 |
- url(r'^member/activity/data/list$', activity_admin_views.activity_data_list, name='admin_member_activity_data_list'), |
|
| 24 |
- url(r'^member/activity/integral/add$', activity_admin_views.activity_integral_add, name='admin_member_activity_integral_add'), |
|
| 23 |
+ url(r'^member/activity/data/list$', lensman_activity_admin_views.activity_data_list, name='admin_member_activity_data_list'), |
|
| 24 |
+ url(r'^member/activity/integral/add$', lensman_activity_admin_views.activity_integral_add, name='admin_member_activity_integral_add'), |
|
| 25 | 25 |
] |
@@ -0,0 +1,78 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+from django.conf import settings |
|
| 4 |
+from django.db.models import Q |
|
| 5 |
+from django_logit import logit |
|
| 6 |
+from django_response import response |
|
| 7 |
+from paginator import pagination |
|
| 8 |
+ |
|
| 9 |
+from account.models import LensmanIntegralIncomeExpensesInfo, UserInfo, LensmanInfo |
|
| 10 |
+from member.models import MemberActivitySignupInfo, MemberActivityDataInfo |
|
| 11 |
+from kodo.decorators import check_admin |
|
| 12 |
+from utils.error.errno_utils import UserStatusCode |
|
| 13 |
+ |
|
| 14 |
+ |
|
| 15 |
+@check_admin |
|
| 16 |
+def activity_signup_audit(request, administrator): |
|
| 17 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 18 |
+ signup_id = request.POST.get('signup_id', '')
|
|
| 19 |
+ audit_status = request.POST.get('audit_status', 0)
|
|
| 20 |
+ |
|
| 21 |
+ MemberActivitySignupInfo.objects.filter(activity_id=activity_id, signup_id=signup_id, status=True).update(audit_status=audit_status) |
|
| 22 |
+ |
|
| 23 |
+ return response(200, 'Member Activity Signup Audit Success', u'活动审核成功') |
|
| 24 |
+ |
|
| 25 |
+ |
|
| 26 |
+@check_admin |
|
| 27 |
+def activity_data_list(request, administrator): |
|
| 28 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 29 |
+ page = int(request.POST.get('page', 1))
|
|
| 30 |
+ num = int(request.POST.get('num', 20))
|
|
| 31 |
+ query = request.POST.get('query', '')
|
|
| 32 |
+ |
|
| 33 |
+ logs = MemberActivityDataInfo.objects.filter(activity_id=activity_id, status=True) |
|
| 34 |
+ if query: |
|
| 35 |
+ logs = logs.filter(Q(lensman_name__icontains=query) | Q(lensman_phone__icontains=query)) |
|
| 36 |
+ |
|
| 37 |
+ count = logs.count() |
|
| 38 |
+ logs, left = pagination(logs, page, num) |
|
| 39 |
+ logs = [log.admindata for log in logs] |
|
| 40 |
+ |
|
| 41 |
+ return response(200, 'Get Member Activity Data List Success', u'获取会员活动数据列表成功', data={
|
|
| 42 |
+ 'logs': logs, |
|
| 43 |
+ 'count': count, |
|
| 44 |
+ 'left': left, |
|
| 45 |
+ }) |
|
| 46 |
+ |
|
| 47 |
+@check_admin |
|
| 48 |
+def activity_integral_add(request, administrator): |
|
| 49 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 50 |
+ user_id = request.POST.get('user_id', '')
|
|
| 51 |
+ lensman_id = request.POST.get('lensman_id', '')
|
|
| 52 |
+ integral = int(request.POST.get('integral', 0))
|
|
| 53 |
+ remark = request.POST.get('remark', '')
|
|
| 54 |
+ brand_id = request.POST.get('brand_id') or settings.KODO_DEFAULT_BRAND_ID
|
|
| 55 |
+ |
|
| 56 |
+ try: |
|
| 57 |
+ user = UserInfo.objects.get(user_id=user_id, status=True) |
|
| 58 |
+ except UserInfo.DoesNotExist: |
|
| 59 |
+ return response(UserStatusCode.USER_NOT_FOUND) |
|
| 60 |
+ |
|
| 61 |
+ try: |
|
| 62 |
+ lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
| 63 |
+ except LensmanInfo.DoesNotExist: |
|
| 64 |
+ return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
|
|
| 65 |
+ |
|
| 66 |
+ user.integral += integral |
|
| 67 |
+ user.save() |
|
| 68 |
+ |
|
| 69 |
+ LensmanIntegralIncomeExpensesInfo.objects.create( |
|
| 70 |
+ brand_id=brand_id, |
|
| 71 |
+ user_id=user_id, |
|
| 72 |
+ integral=integral, |
|
| 73 |
+ activity_id=activity_id, |
|
| 74 |
+ remark=remark, |
|
| 75 |
+ expired_at=lensman.end_date, |
|
| 76 |
+ ) |
|
| 77 |
+ |
|
| 78 |
+ return response(200, 'Add Member Activity Integral Success', u'添加积分成功') |
@@ -0,0 +1,82 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+from django.conf import settings |
|
| 4 |
+from django_logit import logit |
|
| 5 |
+from django.db.models import Q |
|
| 6 |
+from django_response import response |
|
| 7 |
+ |
|
| 8 |
+from account.models import LensmanInfo |
|
| 9 |
+from member.models import MemberActivityInfo, MemberActivityDataInfo, MemberActivitySignupInfo |
|
| 10 |
+from utils.error.errno_utils import MemberActivityStatusCode |
|
| 11 |
+ |
|
| 12 |
+@logit |
|
| 13 |
+def activity_data_submit(request): |
|
| 14 |
+ user_id = request.POST.get('user_id', '')
|
|
| 15 |
+ lensman_id = request.POST.get('lensman_id', '')
|
|
| 16 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 17 |
+ data_fields = request.POST.get('data_fields', '[]')
|
|
| 18 |
+ |
|
| 19 |
+ try: |
|
| 20 |
+ act = MemberActivityInfo.objects.get(activity_id=activity_id, status=True) |
|
| 21 |
+ except MemberActivityInfo.DoesNotExist: |
|
| 22 |
+ return response(MemberActivityStatusCode.ACTIVITY_NOT_FOUND) |
|
| 23 |
+ |
|
| 24 |
+ try: |
|
| 25 |
+ lensman = LensmanInfo.objects.get(lensman_id=lensman_id, status=True) |
|
| 26 |
+ except LensmanInfo.DoesNotExist: |
|
| 27 |
+ return response('400001', 'LensmanInfo Not Found', '摄影师不存在')
|
|
| 28 |
+ |
|
| 29 |
+ if lensman.is_expired: |
|
| 30 |
+ return response(40001, 'Lensman Has Expired', '摄影师合作已到期') |
|
| 31 |
+ |
|
| 32 |
+ MemberActivityDataInfo.objects.update_or_create(user_id=user_id, activity_id=activity_id, defaults={
|
|
| 33 |
+ 'title': act.title, |
|
| 34 |
+ 'lensman_id': lensman_id, |
|
| 35 |
+ 'lensman_name': lensman.name, |
|
| 36 |
+ 'lensman_phone': lensman.phone, |
|
| 37 |
+ 'data_fields': data_fields, |
|
| 38 |
+ }) |
|
| 39 |
+ |
|
| 40 |
+ return response(data={
|
|
| 41 |
+ 'activity': act.data(user_id), |
|
| 42 |
+ }) |
|
| 43 |
+ |
|
| 44 |
+ |
|
| 45 |
+@logit |
|
| 46 |
+def activity_data_detail(request): |
|
| 47 |
+ user_id = request.POST.get('user_id', '')
|
|
| 48 |
+ activity_id = request.POST.get('activity_id', '')
|
|
| 49 |
+ |
|
| 50 |
+ try: |
|
| 51 |
+ data_info = MemberActivityDataInfo.objects.get(user_id=user_id, activity_id=activity_id, status=True) |
|
| 52 |
+ except MemberActivityDataInfo.DoesNotExist: |
|
| 53 |
+ return response() |
|
| 54 |
+ |
|
| 55 |
+ return response(data={
|
|
| 56 |
+ 'data_info': data_info.data, |
|
| 57 |
+ }) |
|
| 58 |
+ |
|
| 59 |
+ |
|
| 60 |
+@logit |
|
| 61 |
+def activity_signup_message(request): |
|
| 62 |
+ user_id = request.POST.get('user_id', '')
|
|
| 63 |
+ |
|
| 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) |
|
| 66 |
+ |
|
| 67 |
+ infos = [info.data for info in infos] |
|
| 68 |
+ |
|
| 69 |
+ return response(data={
|
|
| 70 |
+ 'messages': infos |
|
| 71 |
+ }) |
|
| 72 |
+ |
|
| 73 |
+@logit |
|
| 74 |
+def activity_signup_message_read(request): |
|
| 75 |
+ user_id = request.POST.get('user_id', '')
|
|
| 76 |
+ signup_id = request.POST.get('signup_id', '')
|
|
| 77 |
+ |
|
| 78 |
+ MemberActivitySignupInfo.objects.filter(user_id=user_id, signup_id=signup_id).update(is_read=True) |
|
| 79 |
+ |
|
| 80 |
+ return response(200, 'Activity Signup Message Has Read Success', '活动报名消息已读') |
|
| 81 |
+ |
|
| 82 |
+ |
@@ -0,0 +1,44 @@ |
||
| 1 |
+# -*- coding: utf-8 -*- |
|
| 2 |
+ |
|
| 3 |
+# Generated by Django 3.2.16 on 2024-03-27 07:50 |
|
| 4 |
+ |
|
| 5 |
+from django.db import migrations, models |
|
| 6 |
+ |
|
| 7 |
+ |
|
| 8 |
+class Migration(migrations.Migration): |
|
| 9 |
+ |
|
| 10 |
+ dependencies = [ |
|
| 11 |
+ ('member', '0069_auto_20240312_1350'),
|
|
| 12 |
+ ] |
|
| 13 |
+ |
|
| 14 |
+ operations = [ |
|
| 15 |
+ migrations.RemoveField( |
|
| 16 |
+ model_name='memberactivitysignupinfo', |
|
| 17 |
+ name='passed', |
|
| 18 |
+ ), |
|
| 19 |
+ migrations.AddField( |
|
| 20 |
+ model_name='memberactivityinfo', |
|
| 21 |
+ name='end_data_submit_date', |
|
| 22 |
+ field=models.DateField(blank=True, help_text='活动数据提交截止日期', null=True, verbose_name='end_data_submit_date'), |
|
| 23 |
+ ), |
|
| 24 |
+ migrations.AddField( |
|
| 25 |
+ model_name='memberactivityinfo', |
|
| 26 |
+ name='start_data_submit_date', |
|
| 27 |
+ field=models.DateField(blank=True, help_text='活动数据提交开始日期', null=True, verbose_name='start_data_submit_date'), |
|
| 28 |
+ ), |
|
| 29 |
+ migrations.AddField( |
|
| 30 |
+ model_name='memberactivitysignupinfo', |
|
| 31 |
+ name='audit_status', |
|
| 32 |
+ field=models.IntegerField(choices=[(0, '未审核'), (1, '已通过'), (2, '未通过')], db_index=True, default=0, help_text='审核状态', verbose_name='audit_status'), |
|
| 33 |
+ ), |
|
| 34 |
+ migrations.AddField( |
|
| 35 |
+ model_name='memberactivitysignupinfo', |
|
| 36 |
+ name='is_read', |
|
| 37 |
+ field=models.BooleanField(default=False, help_text='报名消息是否已读', verbose_name='is_read'), |
|
| 38 |
+ ), |
|
| 39 |
+ migrations.AlterField( |
|
| 40 |
+ model_name='memberactivityinfo', |
|
| 41 |
+ name='activity_section', |
|
| 42 |
+ field=models.IntegerField(choices=[(0, 'Tamron Life'), (1, 'Tamron LRC直播课'), (2, '会员投稿'), (3, '其他'), (4, '摄影师')], db_index=True, default=3, help_text='活动分区', verbose_name='activity_section'), |
|
| 43 |
+ ), |
|
| 44 |
+ ] |
@@ -379,7 +379,7 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 379 | 379 |
(1, u'Tamron LRC直播课'), |
| 380 | 380 |
(2, u'会员投稿'), |
| 381 | 381 |
(3, u'其他'), |
| 382 |
- (4, u'会员投稿'), |
|
| 382 |
+ (4, u'摄影师'), |
|
| 383 | 383 |
) |
| 384 | 384 |
|
| 385 | 385 |
activity_id = ShortUUIDField(_(u'activity_id'), max_length=32, blank=True, help_text=u'活动唯一标识', db_index=True, unique=True) |
@@ -395,6 +395,8 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 395 | 395 |
end_date = models.DateField(_(u'end_date'), blank=True, null=True, help_text=u'活动报名截止日期') |
| 396 | 396 |
start_display_date = models.DateField(_(u'start_display_date'), blank=True, null=True, help_text=u'活动展示开始日期') |
| 397 | 397 |
end_display_date = models.DateField(_(u'end_display_date'), blank=True, null=True, help_text=u'活动展示截止日期') |
| 398 |
+ start_data_submit_date = models.DateField(_(u'start_data_submit_date'), blank=True, null=True, help_text=u'活动数据提交开始日期') |
|
| 399 |
+ end_data_submit_date = models.DateField(_(u'end_data_submit_date'), blank=True, null=True, help_text=u'活动数据提交截止日期') |
|
| 398 | 400 |
|
| 399 | 401 |
city = models.CharField(_(u'city'), max_length=255, blank=True, default='', help_text=u'活动城市') |
| 400 | 402 |
location = models.CharField(_(u'location'), max_length=255, blank=True, default='', help_text=u'活动地点') |
@@ -507,7 +509,7 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 507 | 509 |
return MemberActivityContributionInfo.objects.filter(user_id=user_id, activity_id=self.activity_id, status=True).exists() |
| 508 | 510 |
|
| 509 | 511 |
def is_signup_passed(self, user_id): |
| 510 |
- return MemberActivitySignupInfo.objects.filter(user_id=user_id, activity_id=self.activity_id, passed=True, status=True).exists() |
|
| 512 |
+ return MemberActivitySignupInfo.objects.filter(user_id=user_id, activity_id=self.activity_id, audit_status=MemberActivitySignupInfo.PASSED, status=True).exists() |
|
| 511 | 513 |
|
| 512 | 514 |
@property |
| 513 | 515 |
def welfares(self): |
@@ -544,6 +546,8 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 544 | 546 |
'end_date': tc.local_date_string(self.end_date), |
| 545 | 547 |
'start_display_date': tc.local_date_string(self.start_display_date), |
| 546 | 548 |
'end_display_date': tc.local_date_string(self.end_display_date), |
| 549 |
+ 'start_data_submit_date': tc.local_date_string(self.start_data_submit_date), |
|
| 550 |
+ 'end_data_submit_date': tc.local_date_string(self.end_data_submit_date), |
|
| 547 | 551 |
'city': self.city, |
| 548 | 552 |
'location': self.location, |
| 549 | 553 |
'lat': self.lat, |
@@ -590,6 +594,8 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 590 | 594 |
'end_date': tc.local_date_string(self.end_date), |
| 591 | 595 |
'start_display_date': tc.local_date_string(self.start_display_date), |
| 592 | 596 |
'end_display_date': tc.local_date_string(self.end_display_date), |
| 597 |
+ 'start_data_submit_date': tc.local_date_string(self.start_data_submit_date), |
|
| 598 |
+ 'end_data_submit_date': tc.local_date_string(self.end_data_submit_date), |
|
| 593 | 599 |
'city': self.city, |
| 594 | 600 |
'location': self.location, |
| 595 | 601 |
'lat': self.lat, |
@@ -638,6 +644,8 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 638 | 644 |
'end_date': tc.local_date_string(self.end_date), |
| 639 | 645 |
'start_display_date': tc.local_date_string(self.start_display_date), |
| 640 | 646 |
'end_display_date': tc.local_date_string(self.end_display_date), |
| 647 |
+ 'start_data_submit_date': tc.local_date_string(self.start_data_submit_date), |
|
| 648 |
+ 'end_data_submit_date': tc.local_date_string(self.end_data_submit_date), |
|
| 641 | 649 |
'city': self.city, |
| 642 | 650 |
'location': self.location, |
| 643 | 651 |
'lat': self.lat, |
@@ -685,6 +693,8 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 685 | 693 |
'end_date': tc.local_date_string(self.end_date), |
| 686 | 694 |
'start_display_date': tc.local_date_string(self.start_display_date), |
| 687 | 695 |
'end_display_date': tc.local_date_string(self.end_display_date), |
| 696 |
+ 'start_data_submit_date': tc.local_date_string(self.start_data_submit_date), |
|
| 697 |
+ 'end_data_submit_date': tc.local_date_string(self.end_data_submit_date), |
|
| 688 | 698 |
'city': self.city, |
| 689 | 699 |
'location': self.location, |
| 690 | 700 |
'lat': self.lat, |
@@ -723,6 +733,16 @@ class MemberActivityInfo(BaseModelMixin, BrandInfoMixin): |
||
| 723 | 733 |
|
| 724 | 734 |
|
| 725 | 735 |
class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
| 736 |
+ UNAUDITED = 0 |
|
| 737 |
+ PASSED = 1 |
|
| 738 |
+ UNPASSED = 2 |
|
| 739 |
+ |
|
| 740 |
+ AUDIT_STATUS = ( |
|
| 741 |
+ (UNAUDITED, '未审核'), |
|
| 742 |
+ (PASSED, '已通过'), |
|
| 743 |
+ (UNPASSED, '未通过'), |
|
| 744 |
+ ) |
|
| 745 |
+ |
|
| 726 | 746 |
signup_id = ShortUUIDField(_(u'signup_id'), max_length=32, blank=True, null=True, help_text=u'活动报名唯一标识', db_index=True, unique=True) |
| 727 | 747 |
|
| 728 | 748 |
user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True) |
@@ -738,10 +758,12 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
| 738 | 758 |
|
| 739 | 759 |
fields = JSONField(_(u'fields'), blank=True, null=True, default='[]', help_text=u'自定义报名字段') |
| 740 | 760 |
|
| 741 |
- passed = models.BooleanField(_(u'passed'), default=False, help_text=u'是否通过') |
|
| 761 |
+ audit_status = models.IntegerField(_(u'audit_status'), choices=AUDIT_STATUS, default=UNAUDITED, help_text=u'审核状态', db_index=True) |
|
| 742 | 762 |
|
| 743 | 763 |
is_signin = models.BooleanField(_(u'is_signin'), default=False, help_text=u'是否已签到') |
| 744 | 764 |
|
| 765 |
+ is_read = models.BooleanField(_(u'is_read'), default=False, help_text=u'报名消息是否已读') |
|
| 766 |
+ |
|
| 745 | 767 |
class Meta: |
| 746 | 768 |
verbose_name = _(u'会员活动报名信息') |
| 747 | 769 |
verbose_name_plural = _(u'会员活动报名信息') |
@@ -756,6 +778,7 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
| 756 | 778 |
@property |
| 757 | 779 |
def final_avatar(self): |
| 758 | 780 |
return self.avatar and self.avatar.replace(settings.QINIU_FILE_URL_BEFORE, settings.QINIU_FILE_URL_AFTER).replace(settings.QINIU_FILE_URL_BEFORE2, settings.QINIU_FILE_URL_AFTER) |
| 781 |
+ |
|
| 759 | 782 |
|
| 760 | 783 |
@property |
| 761 | 784 |
def data(self): |
@@ -767,7 +790,7 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
| 767 | 790 |
'name': self.name, |
| 768 | 791 |
'phone': self.phone, |
| 769 | 792 |
'fields': json.loads(self.fields) if self.fields else [], |
| 770 |
- 'passed': self.passed, |
|
| 793 |
+ 'audit_status': self.audit_status, |
|
| 771 | 794 |
} |
| 772 | 795 |
|
| 773 | 796 |
@property |
@@ -783,7 +806,7 @@ class MemberActivitySignupInfo(BaseModelMixin, BrandInfoMixin): |
||
| 783 | 806 |
'phone': self.phone, |
| 784 | 807 |
'fields': json.loads(self.fields) if self.fields else [], |
| 785 | 808 |
'is_signin': self.is_signin, |
| 786 |
- 'passed': self.passed, |
|
| 809 |
+ 'audit_status': self.audit_status, |
|
| 787 | 810 |
} |
| 788 | 811 |
|
| 789 | 812 |
class MemberActivityDataInfo(BaseModelMixin, BrandInfoMixin): |
@@ -2,7 +2,7 @@ |
||
| 2 | 2 |
|
| 3 | 3 |
from django.conf.urls import url |
| 4 | 4 |
|
| 5 |
-from member import activity_mp_views |
|
| 5 |
+from member import activity_mp_views, lensman_activity_mp_views |
|
| 6 | 6 |
|
| 7 | 7 |
# activity |
| 8 | 8 |
urlpatterns = [ |
@@ -22,8 +22,8 @@ urlpatterns += [ |
||
| 22 | 22 |
|
| 23 | 23 |
# activity data |
| 24 | 24 |
urlpatterns += [ |
| 25 |
- url(r'^member/activity/data/submit$', activity_mp_views.activity_data_submit, name='mp_member_activity_data_submit'), # 会员活动数据提交 |
|
| 26 |
- url(r'^member/activity/data/detail$', activity_mp_views.activity_data_detail, name='mp_member_activity_data_detail'), # 获取会员活动报名信息 |
|
| 25 |
+ url(r'^member/activity/data/submit$', lensman_activity_mp_views.activity_data_submit, name='mp_member_activity_data_submit'), # 会员活动数据提交 |
|
| 26 |
+ url(r'^member/activity/data/detail$', lensman_activity_mp_views.activity_data_detail, name='mp_member_activity_data_detail'), # 获取会员活动报名信息 |
|
| 27 | 27 |
] |
| 28 | 28 |
|
| 29 | 29 |
|
@@ -36,3 +36,9 @@ urlpatterns += [ |
||
| 36 | 36 |
|
| 37 | 37 |
url(r'^member/activity/contribute/detail/lastest$', activity_mp_views.activity_contribute_detail_lastest, name='member_activity_contribute_detail_lastest'), |
| 38 | 38 |
] |
| 39 |
+ |
|
| 40 |
+#activity message |
|
| 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'), |
|
| 44 |
+] |