558
+    })

+ 1 - 1
api/encrypt_views.py

@@ -145,7 +145,7 @@ def decrypt(request, v='v2'):
145 145
         mdli.decrypt_count += 1
146 146
         mdli.save()
147 147
 
148
-    #弃用老版本的劵形式,和会员系统统一
148
+    # 弃用老版本的劵形式,和会员系统统一
149 149
     if v == 'v1':
150 150
         has_unexpired_activity = False
151 151
         coupon_infos = {}

+ 7 - 6
api/mch_views.py

@@ -2,6 +2,8 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import json
6
+
5 7
 from django.conf import settings
6 8
 from django.contrib.auth.hashers import check_password
7 9
 from django.db import transaction
@@ -10,19 +12,18 @@ from django_response import response
10 12
 from pywe_miniapp import get_phone_number
11 13
 from pywe_storage import RedisStorage
12 14
 from TimeConvert import TimeConvert as tc
13
-import json
14 15
 
15
-from logs.models import MchInfoEncryptLogInfo
16 16
 from account.models import UserInfo
17
+from coupon.models import CouponInfo, UserCouponInfo
17 18
 from integral.models import SaleclerkSubmitLogInfo
19
+from logs.models import MchInfoEncryptLogInfo
18 20
 from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
19 21
                         LatestAppInfo, LatestAppScreenInfo, ModelInfo, OperatorInfo)
20
-from coupon.models import CouponInfo, UserCouponInfo
21 22
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
22 23
 from utils.error.errno_utils import (AdministratorStatusCode, OperatorStatusCode, ProductBrandStatusCode,
23 24
                                      ProductModelStatusCode, UserStatusCode)
24 25
 from utils.redis.connect import r
25
-from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MINI_PROGRAM_GIS_LIST, MEMBER_UPGRADE_INFO
26
+from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO, MINI_PROGRAM_GIS_LIST
26 27
 
27 28
 
28 29
 WECHAT = settings.WECHAT
@@ -264,7 +265,7 @@ def consumer_info_api(request):
264 265
 
265 266
         if encrypt_logs:
266 267
             code_version = encrypt_logs[0].version
267
-    
268
+
268 269
     user.code_version = code_version
269 270
     user.save()
270 271
 
@@ -313,7 +314,7 @@ def consumer_info_api(request):
313 314
                 )
314 315
             except:
315 316
                 continue
316
-        
317
+
317 318
         # 更新销售员提交的表
318 319
         logs = SaleclerkSubmitLogInfo.objects.filter(code=serialNo, model_pk=model.pk)
319 320
         for log in logs:

+ 2 - 2
api/member_views.py

@@ -14,8 +14,8 @@ from account.models import UserInfo
14 14
 from coupon.models import UserCouponInfo
15 15
 from member.models import (GoodsInfo, GoodsOrderInfo, MemberActivityInfo, MemberActivitySigninInfo,
16 16
                            MemberActivitySignupInfo, RightInfo)
17
-from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode, MemberRightStatusCode,
18
-                                     UserStatusCode)
17
+from utils.error.errno_utils import (MemberActivityStatusCode, MemberCouponStatusCode, MemberGoodStatusCode,
18
+                                     MemberRightStatusCode, UserStatusCode)
19 19
 from utils.redis.connect import r
20 20
 from utils.redis.rkeys import MEMBER_SEND_COUPON_LIST, MEMBER_UPGRADE_INFO
21 21
 from utils.redis.rshot import get_member_shot_data

+ 3 - 2
api/model_views.py

@@ -10,7 +10,7 @@ from django_response import response
10 10
 from paginator import pagination
11 11
 
12 12
 from account.models import UserInfo
13
-from mch.models import AdministratorInfo, ModelInfo, ModelCameraBodyInfo
13
+from mch.models import AdministratorInfo, ModelCameraBodyInfo, ModelInfo
14 14
 from utils.error.errno_utils import AdministratorStatusCode, ProductModelStatusCode, UserStatusCode
15 15
 
16 16
 
@@ -159,6 +159,7 @@ def model_list(request):
159 159
         'left': left,
160 160
     })
161 161
 
162
+
162 163
 @logit
163 164
 def model_name_list(request):
164 165
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
@@ -175,7 +176,7 @@ def model_name_list(request):
175 176
     models = list(models)
176 177
 
177 178
     return response(200, 'Get Model Name List Success', u'获取型号列表成功', {
178
-        'models': sorted(set(models),key=models.index)
179
+        'models': sorted(set(models), key=models.index)
179 180
     })
180 181
 
181 182
 

+ 4 - 4
api/urls.py

@@ -5,8 +5,8 @@ from django_file_upload import views as file_views
5 5
 
6 6
 from account import tourguide_views
7 7
 from account import views as account_views
8
-from api import (admin_views, clerk_views, distributor_views, encrypt_views, mch_views, member_views, model_views,
9
-                 operator_views, refresh_views, sr_views, staff_views, log_views)
8
+from api import (admin_views, clerk_views, distributor_views, encrypt_views, log_views, mch_views, member_views,
9
+                 model_views, operator_views, refresh_views, sr_views, staff_views)
10 10
 from box import views as box_views
11 11
 from geo import views as geo_views
12 12
 from group import (groupuser_views, lensman_views, tourguidegroup_views, tourguidegroupadmin_views,
@@ -230,8 +230,8 @@ urlpatterns += [
230 230
     url(r'^clerk/integral/list$', sale_views.clerk_integral_list_api, name='clerk_integral_list_api'),  # 店员销售积分列表
231 231
     url(r'^clerk/model/list$', sale_views.clerk_model_list_api, name='clerk_model_list_api'),
232 232
     url(r'^clerk/checkout/serialNo$', sale_views.clerk_checkout_serialNo_api, name='clerk_checkout_serialNo_api'),  # 校验序列号
233
-    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'), 
234
-    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'), 
233
+    url(r'^clerk/query/coupon$', sale_views.clerk_query_coupon, name='clerk_query_coupon'),
234
+    url(r'^clerk/writeoff/coupon$', sale_views.clerk_writeoff_coupon, name='clerk_writeoff_coupon'),
235 235
 ]
236 236
 
237 237
 urlpatterns += [

+ 1 - 1
commands/management/commands/gis.py

@@ -9,9 +9,9 @@ from django.db import transaction
9 9
 from django_models_ext import ProvinceModelMixin, ProvinceShortModelMixin
10 10
 from django_six import CompatibilityBaseCommand, close_old_connections
11 11
 
12
-from statistic.models import ConsumeProvinceSaleStatisticInfo
13 12
 from account.models import UserInfo
14 13
 from mch.models import ConsumeInfoSubmitLogInfo
14
+from statistic.models import ConsumeProvinceSaleStatisticInfo
15 15
 from utils.redis.connect import r
16 16
 from utils.redis.rkeys import MINI_PROGRAM_GIS_LIST
17 17
 

+ 1 - 2
commands/management/commands/membercard.py

@@ -89,7 +89,6 @@ class Command(CompatibilityBaseCommand):
89 89
                     log.phone = userinfo.phone
90 90
                     log.save()
91 91
 
92
-
93 92
                 try:
94 93
                     phoneinfo = requests.get(settings.PHONE_2_ADMINISTRATIVE_DIVISION.format(phone))
95 94
                 except Exception as e:
@@ -100,7 +99,7 @@ class Command(CompatibilityBaseCommand):
100 99
                 except Exception as e:
101 100
                     logger.info(e.message)
102 101
                     continue
103
-                
102
+
104 103
                 logs = ConsumeInfoSubmitLogInfo.objects.filter(user_id=userinfo.user_id)
105 104
                 for log in logs:
106 105
                     log.province = log.province if log.lat and log.lon else province_name

+ 1 - 1
commands/management/commands/subscribe.py

@@ -8,11 +8,11 @@ from django_redis_connector import connector
8 8
 from django_six import CompatibilityBaseCommand, close_old_connections
9 9
 from django_we.models import SubscribeUserInfo
10 10
 from pywe_storage import RedisStorage
11
-from pywe_user import get_user_info
12 11
 
13 12
 from account.models import UserInfo
14 13
 from mch.models import BrandInfo
15 14
 from pre.custom_message import sendcustomwxamessage
15
+from pywe_user import get_user_info
16 16
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
17 17
 
18 18
 

+ 0 - 1
coupon/models.py

@@ -51,7 +51,6 @@ class CouponInfo(BaseModelMixin):
51 51
     def coupon_image_url(self):
52 52
         return upload_file_url(self.coupon_image)
53 53
 
54
-
55 54
     @property
56 55
     def final_expire_at(self):
57 56
         if self.coupon_expire_type == CouponInfo.FIXED_EXPIRED_TIME:

+ 0 - 2
integral/admin.py

@@ -1,6 +1,5 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-from daterange_filter.filter import DateRangeFilter
4 3
 from django.contrib import admin
5 4
 from django_admin import AdvancedExportExcelModelAdmin, ReadOnlyModelAdmin
6 5
 
@@ -21,6 +20,5 @@ class SaleclerkSubmitLogInfoAdmin(AdvancedExportExcelModelAdmin, ReadOnlyModelAd
21 20
     search_fields = ('code', 'trackingNo', 'distributor_name', 'clerk_name', 'model_name', 'model_uni_name')
22 21
 
23 22
 
24
-
25 23
 admin.site.register(SaleclerkIntegralIncomeExpensesInfo, SaleclerkIntegralIncomeExpensesInfoAdmin)
26 24
 admin.site.register(SaleclerkSubmitLogInfo, SaleclerkSubmitLogInfoAdmin)

+ 2 - 2
logs/models.py

@@ -18,8 +18,8 @@ class MchInfoEncryptLogInfo(BaseModelMixin):
18 18
 
19 19
     sn = models.CharField(_(u'sn'), max_length=32, blank=True, null=True, help_text=u'序列号', db_index=True)
20 20
 
21
-    #二维码版本
22
-    version=models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
21
+    # 二维码版本
22
+    version = models.IntegerField(_(u'version'), default=2, help_text=u'二维码版本', db_index=True)
23 23
 
24 24
     # 一物一码
25 25
     application_id = models.IntegerField(_(u'application_id'), default=0, help_text=u'申请单号', db_index=True)

+ 1 - 0
marketcode/tests.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.test import TestCase
5 5
 
6
+
6 7
 # Create your tests here.

+ 1 - 0
marketcode/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 3 - 2
mch/admin.py

@@ -8,8 +8,9 @@ from django_admin import AdvancedActionsModelAdmin, AdvancedExportExcelModelAdmi
8 8
 from django_models_ext import ProvinceShortModelMixin
9 9
 from pysnippets.strsnippets import strip
10 10
 
11
-from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo, DistributorInfo,
12
-                        LatestAppInfo, LatestAppScreenInfo, ModelInfo, ModelCameraBodyInfo, OperatorInfo, SaleclerkInfo)
11
+from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo,
12
+                        DistributorInfo, LatestAppInfo, LatestAppScreenInfo, ModelCameraBodyInfo, ModelInfo,
13
+                        OperatorInfo, SaleclerkInfo)
13 14
 from utils.redis.rshot import update_member_shot_data
14 15
 
15 16
 

+ 14 - 14
mch/models.py

@@ -755,17 +755,17 @@ class ActivityInfo(BaseModelMixin):
755 755
     @property
756 756
     def coupon_info3(self):
757 757
         try:
758
-            coupon_info = CouponInfo.objects.get(coupon_id=self.coupon_id)
759
-            return {
760
-                'coupon_image': coupon_info.coupon_image_url,
761
-                'coupon_expire_at': coupon_info.coupon_expire_at,
762
-                'coupon_value': coupon_info.coupon_value,
763
-                'coupon_title': coupon_info.coupon_title,
764
-                'coupon_valid_period': coupon_info.coupon_valid_period,
765
-                'coupon_id': coupon_info.coupon_id,
766
-                'activity_id': self.activity_id,
767
-                'activity_name': self.activity_name,
768
-            }
769
-        except:
770
-            return {}
771
-        
758
+            coupon = CouponInfo.objects.get(coupon_id=self.coupon_id)
759
+        except CouponInfo.DoesNotExist:
760
+            coupon = None
761
+
762
+        return {
763
+            'coupon_image': coupon.coupon_image_url,
764
+            'coupon_expire_at': coupon.coupon_expire_at,
765
+            'coupon_value': coupon.coupon_value,
766
+            'coupon_title': coupon.coupon_title,
767
+            'coupon_valid_period': coupon.coupon_valid_period,
768
+            'coupon_id': coupon.coupon_id,
769
+            'activity_id': self.activity_id,
770
+            'activity_name': self.activity_name,
771
+        } if coupon else {}

+ 12 - 8
page/sale_views.py

@@ -2,6 +2,10 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
+import os
6
+import string
7
+import sys
8
+
5 9
 from django.conf import settings
6 10
 from django.db import transaction
7 11
 from django_logit import logit
@@ -10,16 +14,14 @@ from paginator import pagination
10 14
 from TimeConvert import TimeConvert as tc
11 15
 
12 16
 from account.models import UserInfo
17
+from coupon.models import UserCouponInfo
13 18
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
14 19
 from logs.models import MchInfoEncryptLogInfo
15
-from coupon.models import UserCouponInfo
16 20
 from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo, SaleclerkInfo
17 21
 from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo,
18 22
                               SaleclerkSaleStatisticInfo, SaleStatisticInfo)
19
-from utils.error.errno_utils import (ProductBrandStatusCode, ProductDistributorStatusCode, ProductMachineStatusCode,
20
-                                     ProductModelStatusCode, SaleclerkStatusCode, CouponStatusCode)
21
-import os,sys,string
22
-
23
+from utils.error.errno_utils import (CouponStatusCode, ProductBrandStatusCode, ProductDistributorStatusCode,
24
+                                     ProductMachineStatusCode, ProductModelStatusCode, SaleclerkStatusCode)
23 25
 
24 26
 
25 27
 @logit
@@ -99,7 +101,7 @@ def clerk_sale_submit_api(request):
99 101
     # 是否被消费者扫过
100 102
     has_scan = ConsumeInfoSubmitLogInfo.objects.filter(model_id=model.model_id, serialNo=serialNo).exists()
101 103
 
102
-    #是否是新二维码,即统览码2
104
+    # 是否是新二维码,即统览码2
103 105
     if not code_version:
104 106
         code_version = 1
105 107
         code = filter(lambda ch: ch in '0123456789', serialNo)
@@ -458,6 +460,7 @@ def clerk_query_coupon(request):
458 460
         'user_coupon': user_coupon.data
459 461
     })
460 462
 
463
+
461 464
 @logit
462 465
 def clerk_writeoff_coupon(request):
463 466
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)
@@ -490,7 +493,7 @@ def clerk_writeoff_coupon(request):
490 493
     try:
491 494
         user_coupon = UserCouponInfo.objects.get(user_coupon_id=user_coupon_id)
492 495
         if user_coupon.has_used:
493
-            return response(CouponStatusCode.COUPON_HAS_USED) 
496
+            return response(CouponStatusCode.COUPON_HAS_USED)
494 497
         elif user_coupon.is_coupon_admin_writeoff:
495 498
             return response(CouponStatusCode.COUPON_PERMISSION_DENIED)
496 499
         elif not user_coupon.has_expired:
@@ -502,12 +505,13 @@ def clerk_writeoff_coupon(request):
502 505
             user_coupon.used_at = tc.utc_datetime()
503 506
             user_coupon.save()
504 507
         else:
505
-          return response(CouponStatusCode.COUPON_EXPIRED)
508
+            return response(CouponStatusCode.COUPON_EXPIRED)
506 509
     except UserCouponInfo.DoesNotExist:
507 510
         return response(CouponStatusCode.COUPON_NOT_FOUND)
508 511
 
509 512
     return response(200, 'Write Off Coupon Success', u'劵核销成功')
510 513
 
514
+
511 515
 @logit
512 516
 def clerk_checkout_serialNo_api(request):
513 517
     brandID = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_PK)

+ 1 - 1
shells/views.py

@@ -3,8 +3,8 @@
3 3
 from django.conf import settings
4 4
 from django_redis_connector import connector
5 5
 from pywe_storage import RedisStorage
6
-from pywe_user import get_all_users
7 6
 
7
+from pywe_user import get_all_users
8 8
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
9 9
 
10 10
 

+ 1 - 0
staff/tests.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.test import TestCase
5 5
 
6
+
6 7
 # Create your tests here.

+ 1 - 0
staff/views.py

@@ -3,4 +3,5 @@ from __future__ import unicode_literals
3 3
 
4 4
 from django.shortcuts import render
5 5
 
6
+
6 7
 # Create your views here.

+ 1 - 0
utils/error/errno_utils.py

@@ -256,6 +256,7 @@ class PermissionStatusCode(BaseStatusCode):
256 256
     """ 4099xx 权限相关错误码 """
257 257
     PERMISSION_DENIED = StatusCodeField(409900, 'Permission Denied', description=u'权限不足')
258 258
 
259
+
259 260
 class CouponStatusCode(BaseStatusCode):
260 261
     """ 4050xx 优惠劵相关错误码 """
261 262
     COUPON_NOT_FOUND = StatusCodeField(405001, 'Coupon Not Found', description=u'劵不存在')

kodo - Gogs: Go Git Service

Nav apraksta

joinus.html 2.6KB

    <!doctype html> <html> <head> <meta charset="UTF-8"> <title>拍爱 PAI.AI 加入拍爱</title> <meta name="keywords" content="摄影 图片 影像 分享 交流 社交 交友 摄影师 女性 孩子 亲子 旅行 旅游 约拍 iphone android app" /> <link href="css/layout.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" src="js/jquery.min.js"></script> </head> <body> <div id="header"> <div class="content"> <a href="index.html" target="_self" class="logo"></a> <div class="navigation"> <a href="contactus.html" target="_self" >联系我们</a> <a href="joinus.html" target="_self" class="current" >加入拍爱</a> <a href="aboutus.html" target="_self" >关于我们</a> <a href="index.html" target="_self" >首页</a> </div> </div> </div> <div id="container" ><div class="content joinus"> <p> 在我们这里,你可以参与到一个火热的创业项目,未来很有可能看到自己作品满大街的人都在使用...如果您喜欢摄影...除了会有各种相机把玩,还会有同好可以畅聊...最重要的,你还会发现...... 你将成为——软件工程师中最懂摄影的人 来和我们一起做一份激动人心的事业吧 </p> <p> <strong>职位名称:iOS软件工程师</strong><br> <strong>岗位职责:</strong><br> 负责iOS平台下应用的开发<br> <strong>任职要求:</strong><br> 1、至少1年的iOS平台开发经验;<br> 2、具备扎实的数据结构、算法等技术功底;<br> 3、具备良好的编程风格与团队合作意识,可承担较大的工作压力;<br> 4、正直、优秀、有上进心,经验丰富的同时没有丧失开发NB产品的热情;<br> 5、年轻;<br> 6、期待您喜欢摄影,喜欢相机;<br> </p> <p> <strong>职位名称:专利工程师</strong><br> <strong>岗位职责:</strong><br> 1、撰写高质量的专利申请文件、答复审查意见;<br> 2、专利检索咨询、专利挖掘、以及撰写专利分析报告。<br> <strong>任职要求:</strong><br> 1、具有一年以上独立撰写专利文件经验,熟悉专利申请相关知识;<br> 2、理工科,大学本科以上毕业,物理、数学、电子、通讯、互联网等技术专业背景之一;<br> 3、有专利代理人资格证优先考虑;<br> 4、期待您喜欢摄影,喜欢相机; </p> </div></div> <div id="footer"> <div class="content foot"> <a href="aboutus.html" target="_self" >关于我们</a> <span>|</span> <a href="contactus.html" target="_self" >联系我们</a> ©2016 拍爱 PAI.AI 琼ICP备16000076号 </div> </div> </body> </html>