:art: Codes Format

huangqimin001 4 年之前
父節點
當前提交
57be08ef32

+ 5 - 5
account/models.py

@@ -7,7 +7,7 @@ from jsonfield import JSONField
7 7
 from TimeConvert import TimeConvert as tc
8 8
 
9 9
 from kodo.basemodels import LensmanTypeBoolMixin
10
-from mch.models import SaleclerkInfo, MaintenancemanInfo
10
+from mch.models import MaintenancemanInfo, SaleclerkInfo
11 11
 from sales.models import SalesResponsibilityInfo
12 12
 
13 13
 
@@ -475,7 +475,7 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
475 475
             'shots_num': self.shots_num,
476 476
             'level': self.level,
477 477
         }
478
-    
478
+
479 479
     def brand_qydata(self, brand_id=None):
480 480
         if self.phone:
481 481
             try:
@@ -485,12 +485,12 @@ class UserInfo(BaseModelMixin, LensmanTypeBoolMixin):
485 485
             saleclerk_info = saleclerk.data if saleclerk and saleclerk.is_auth else {}
486 486
         else:
487 487
             saleclerk_info = {}
488
-        
488
+
489 489
         try:
490 490
             maintenance = MaintenancemanInfo.objects.get(brand_id=brand_id, user_id=self.user_id, status=True)
491
-        except:
491
+        except MaintenancemanInfo.DoesNotExist:
492 492
             maintenance = {}
493
-        
493
+
494 494
         maintenance_info = maintenance.data if maintenance and self.is_maintenance else {}
495 495
         return {
496 496
             'has_unionid': bool(self.unionid),

+ 23 - 25
api/admin_views.py

@@ -2,27 +2,22 @@
2 2
 
3 3
 from __future__ import division
4 4
 
5
-import json
6 5
 from collections import defaultdict
7 6
 from datetime import datetime
8
-from itertools import chain, groupby
9 7
 
10 8
 from django.conf import settings
11 9
 from django.db import transaction
12
-from django.db.models import Count, Sum, Q
10
+from django.db.models import Count, Q, Sum
13 11
 from django_logit import logit
14 12
 from django_response import response
15 13
 from paginator import pagination
16 14
 from TimeConvert import TimeConvert as tc
17
-from django.utils.timezone import utc
18 15
 
19 16
 from account.models import UserInfo
20
-from integral.models import SaleclerkSubmitLogInfo
21
-from logs.models import MchInfoEncryptLogInfo
22 17
 from coupon.models import UserCouponInfo
23
-from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, SaleclerkInfo
24
-from statistic.models import (ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo,
25
-                              ModelSaleStatisticInfo)
18
+from integral.models import SaleclerkSubmitLogInfo
19
+from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo
20
+from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
26 21
 from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
27 22
                                      ProductMachineStatusCode, UserStatusCode)
28 23
 
@@ -97,7 +92,7 @@ def usecoupon(request):
97 92
         model_id=model_id,
98 93
         serialNo=sn,
99 94
         submit_during_activity=True,
100
-        has_used=False, 
95
+        has_used=False,
101 96
         status=True
102 97
     ).first()
103 98
     if not log:
@@ -168,6 +163,7 @@ def query_usercoupons(request):
168 163
         'coupons': coupons,
169 164
     })
170 165
 
166
+
171 167
 @logit
172 168
 def query_usergoods(request):
173 169
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
@@ -224,22 +220,22 @@ def query_userinfo(request):
224 220
 
225 221
     if level:
226 222
         userinfos = userinfos.filter(level=level)
227
-    
223
+
228 224
     if code_version:
229 225
         userinfos = userinfos.filter(code_version=code_version)
230
-    
226
+
231 227
     if subscribe:
232 228
         userinfos = userinfos.filter(subscribe=subscribe)
233
-    
229
+
234 230
     if has_membercard:
235 231
         userinfos = userinfos.filter(has_membercard=has_membercard)
236
-    
232
+
237 233
     if is_member:
238 234
         userinfos = userinfos.filter(level__gte=1)
239
-    
235
+
240 236
     if sex:
241 237
         userinfos = userinfos.filter(sex=sex)
242
-    
238
+
243 239
     if start_time and end_time:
244 240
         ftime = datetime.strptime(start_time + ' 00:00:00', '%Y%m%d %H:%M:%S')
245 241
         ttime = datetime.strptime(end_time + ' 23:59:59', '%Y%m%d %H:%M:%S')
@@ -626,6 +622,7 @@ def statistic_consumer(request):
626 622
         'province_logs': province_logs,
627 623
     })
628 624
 
625
+
629 626
 def statistic_member(request):
630 627
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
631 628
     admin_id = request.POST.get('admin_id', '')
@@ -647,7 +644,7 @@ def statistic_member(request):
647 644
 
648 645
     for user in users:
649 646
         userinfos |= UserInfo.objects.filter(user_id=user.get('user_id', ''))
650
-    
647
+
651 648
     # 会员级别
652 649
     level_logs = list(userinfos.values('level').annotate(num=Count('user_id')))
653 650
 
@@ -671,6 +668,7 @@ def statistic_member(request):
671 668
         'province_logs': province_logs,
672 669
     })
673 670
 
671
+
674 672
 def record_consumer(request):
675 673
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
676 674
     page = request.POST.get('page', 1)
@@ -689,15 +687,15 @@ def record_consumer(request):
689 687
         administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
690 688
     except AdministratorInfo.DoesNotExist:
691 689
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
692
-    
690
+
693 691
     logs = ConsumeInfoSubmitLogInfo.objects.filter(Q(status=True) & Q(test_user=False) & (Q(model_name__icontains=query) | Q(phone__icontains=query) | Q(serialNo__icontains=query))).order_by('-created_at')
694 692
 
695 693
     if dupload:
696 694
         logs = logs.filter(dupload=dupload)
697
-    
695
+
698 696
     if code_version:
699 697
         logs = logs.filter(code_version=code_version)
700
-    
698
+
701 699
     if start_time and end_time:
702 700
         logs = logs.filter(ymd__gte=start_time, ymd__lte=end_time)
703 701
 
@@ -711,6 +709,7 @@ def record_consumer(request):
711 709
         'left': left
712 710
     })
713 711
 
712
+
714 713
 def record_sale(request):
715 714
     brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
716 715
     admin_id = request.POST.get('admin_id', '')
@@ -731,15 +730,15 @@ def record_sale(request):
731 730
         administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
732 731
     except AdministratorInfo.DoesNotExist:
733 732
         return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
734
-    
735
-    logs = SaleclerkSubmitLogInfo.objects.filter(Q(status=True) & Q(test_user=False) & Q(test_sn=False) & (Q(model_name__icontains=query) | Q(clerk_name__icontains=query) | Q(distributor_name__icontains=query)| Q(code__icontains=query))).order_by('-created_at')
733
+
734
+    logs = SaleclerkSubmitLogInfo.objects.filter(Q(status=True) & Q(test_user=False) & Q(test_sn=False) & (Q(model_name__icontains=query) | Q(clerk_name__icontains=query) | Q(distributor_name__icontains=query) | Q(code__icontains=query))).order_by('-created_at')
736 735
 
737 736
     if dupload:
738 737
         logs = logs.filter(dupload=dupload)
739
-    
738
+
740 739
     if code_version:
741 740
         logs = logs.filter(code_version=code_version)
742
-    
741
+
743 742
     if has_scan:
744 743
         logs = logs.filter(has_scan=has_scan)
745 744
 
@@ -748,7 +747,6 @@ def record_sale(request):
748 747
 
749 748
     if is_online_sale:
750 749
         logs = logs.filter(remark=('扫描条形码' if is_online_sale == '1' else ''))
751
-    
752 750
 
753 751
     count = logs.count()
754 752
     logs, left = pagination(logs, page, num)

+ 24 - 19
api/mch_views.py

@@ -294,28 +294,33 @@ def consumer_info_api(request):
294 294
         for act in activities:
295 295
             try:
296 296
                 coupon = CouponInfo.objects.get(coupon_id=act['coupon_id'])
297
+            except CouponInfo.DoesNotExist:
298
+                continue
299
+
300
+            try:
297 301
                 activity = ActivityInfo.objects.get(activity_id=act['activity_id'])
298
-                UserCouponInfo.objects.create(
299
-                    brand_id=coupon.brand_id,
300
-                    brand_name=coupon.brand_name,
301
-                    coupon_id=coupon.coupon_id,
302
-                    user_id=user_id,
303
-                    coupon_title=coupon.coupon_title,
304
-                    coupon_detail=coupon.coupon_detail,
305
-                    coupon_value=coupon.coupon_value,
306
-                    coupon_image=coupon.coupon_image,
307
-                    active_at=tc.utc_datetime(),
308
-                    expire_at=coupon.final_expire_at,
309
-                    is_coupon_admin_writeoff=coupon.is_coupon_admin_writeoff,
310
-                    coupon_valid_period=coupon.coupon_valid_period,
311
-                    coupon_limit_model_ids=coupon.coupon_limit_model_ids,
312
-                    coupon_from='PROMOTION',
313
-                    activity_id=activity.activity_id,
314
-                    activity_name=activity.activity_name,
315
-                )
316
-            except:
302
+            except ActivityInfo.DoesNotExist:
317 303
                 continue
318 304
 
305
+            UserCouponInfo.objects.create(
306
+                brand_id=coupon.brand_id,
307
+                brand_name=coupon.brand_name,
308
+                coupon_id=coupon.coupon_id,
309
+                user_id=user_id,
310
+                coupon_title=coupon.coupon_title,
311
+                coupon_detail=coupon.coupon_detail,
312
+                coupon_value=coupon.coupon_value,
313
+                coupon_image=coupon.coupon_image,
314
+                active_at=tc.utc_datetime(),
315
+                expire_at=coupon.final_expire_at,
316
+                is_coupon_admin_writeoff=coupon.is_coupon_admin_writeoff,
317
+                coupon_valid_period=coupon.coupon_valid_period,
318
+                coupon_limit_model_ids=coupon.coupon_limit_model_ids,
319
+                coupon_from='PROMOTION',
320
+                activity_id=activity.activity_id,
321
+                activity_name=activity.activity_name,
322
+            )
323
+
319 324
         # 更新销售员提交的表
320 325
         SaleclerkSubmitLogInfo.objects.filter(code=serialNo, model_pk=model.pk, status=True).update(has_scan=True)
321 326
 

+ 3 - 2
api/urls.py

@@ -13,7 +13,8 @@ from group import (groupuser_views, lensman_views, tourguidegroup_views, tourgui
13 13
                    tourguidegroupuser_views)
14 14
 from group import views as group_views
15 15
 from message import views as message_views
16
-from miniapp import views as mini_views, qy_views
16
+from miniapp import qy_views
17
+from miniapp import views as mini_views
17 18
 from operation import views as op_views
18 19
 from page import oauth_views, sale_views, screen_views
19 20
 from pay import views as pay_views
@@ -187,7 +188,7 @@ urlpatterns += [
187 188
 
188 189
     url(r'^qy/login$', qy_views.qy_login_api, name='qy_login_api'),  # 小程序登录
189 190
 
190
-    url(r'^qy/query/userinfo$', qy_views.query_userinfo, name='query_userinfo'), # 查询用户等级及维修劵
191
+    url(r'^qy/query/userinfo$', qy_views.query_userinfo, name='query_userinfo'),  # 查询用户等级及维修劵
191 192
 ]
192 193
 
193 194
 urlpatterns += [

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

@@ -6,9 +6,9 @@ import os
6 6
 from django_six import CompatibilityBaseCommand, close_old_connections
7 7
 
8 8
 from integral.models import SaleclerkSubmitLogInfo
9
+from utils.qiniucdn import upload_file_path
9 10
 from utils.redis.connect import r
10 11
 from utils.redis.rkeys import QINIU_UPLOAD_LIST
11
-from utils.qiniucdn import upload_file_path
12 12
 
13 13
 
14 14
 logger = logging.getLogger('console')

+ 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
11 12
 
12 13
 from account.models import UserInfo
13 14
 from mch.models import BrandInfo
14 15
 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
 

+ 2 - 2
coupon/models.py

@@ -118,7 +118,7 @@ class UserCouponInfo(BaseModelMixin):
118 118
         if not self.expire_at:
119 119
             return False
120 120
         return tc.utc_datetime() > self.expire_at
121
-    
121
+
122 122
     @property
123 123
     def coupon_source(self):
124 124
         if self.coupon_from == 'INTEGRAL_MALL':
@@ -151,7 +151,7 @@ class UserCouponInfo(BaseModelMixin):
151 151
             'admin_id': self.admin_id,
152 152
             'used_at': self.used_at
153 153
         }
154
-    
154
+
155 155
     @property
156 156
     def admindata(self):
157 157
         return {

+ 4 - 4
integral/models.py

@@ -2,7 +2,7 @@
2 2
 
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5
-from django_models_ext import BaseModelMixin, upload_path, upload_file_path, upload_file_url
5
+from django_models_ext import BaseModelMixin, upload_file_path, upload_file_url, upload_path
6 6
 from TimeConvert import TimeConvert as tc
7 7
 
8 8
 from mch.models import ModelInfo
@@ -129,7 +129,7 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
129 129
 
130 130
     def __unicode__(self):
131 131
         return unicode(self.pk)
132
-    
132
+
133 133
     @property
134 134
     def image_path(self):
135 135
         return upload_file_path(self.image)
@@ -137,7 +137,7 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
137 137
     @property
138 138
     def image_url(self):
139 139
         return qiniu_file_url(self.image.name, bucket='tamron') if self.is_upload_qiniu else upload_file_url(self.image)
140
-    
140
+
141 141
     @property
142 142
     def code_image_path(self):
143 143
         return upload_file_path(self.code_image)
@@ -164,4 +164,4 @@ class SaleclerkSubmitLogInfo(BaseModelMixin):
164 164
             'image': self.image_url,
165 165
             'code_image': self.code_image_url,
166 166
             'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
167
-        }
167
+        }

+ 4 - 3
mch/admin.py

@@ -9,8 +9,8 @@ from django_models_ext import ProvinceShortModelMixin
9 9
 from pysnippets.strsnippets import strip
10 10
 
11 11
 from mch.models import (ActivityInfo, AdministratorInfo, BrandInfo, CameraModelInfo, ConsumeInfoSubmitLogInfo,
12
-                        DistributorInfo, LatestAppInfo, LatestAppScreenInfo, ModelCameraBodyInfo, ModelInfo,
13
-                        OperatorInfo, SaleclerkInfo, MaintenancemanInfo)
12
+                        DistributorInfo, LatestAppInfo, LatestAppScreenInfo, MaintenancemanInfo, ModelCameraBodyInfo,
13
+                        ModelInfo, OperatorInfo, SaleclerkInfo)
14 14
 from utils.redis.rshot import update_member_shot_data
15 15
 
16 16
 
@@ -161,6 +161,7 @@ class SaleclerkInfoAdmin(AdvancedExportExcelModelAdmin, AdvancedActionsModelAdmi
161 161
     search_fields = ('brand_id', 'brand_name', 'distributor_id', 'distributor_name', 'clerk_id', 'clerk_name', 'clerk_phone', 'unionid', 'openid')
162 162
     actions_exclude = ('delete_selected', )
163 163
 
164
+
164 165
 class MaintenancemanInfoAdmin(AdvancedExportExcelModelAdmin, AdvancedActionsModelAdmin, admin.ModelAdmin):
165 166
     list_display = ('brand_name', 'wx_userid', 'maintenance_id', 'maintenance_name', 'maintenance_phone', 'status', 'created_at', 'updated_at')
166 167
     search_fields = ('maintenance_id', 'maintenance_name', 'maintenance_phone')
@@ -252,4 +253,4 @@ admin.site.register(LatestAppInfo, LatestAppInfoAdmin)
252 253
 admin.site.register(LatestAppScreenInfo, LatestAppScreenInfoAdmin)
253 254
 admin.site.register(ConsumeInfoSubmitLogInfo, ConsumeInfoSubmitLogInfoAdmin)
254 255
 admin.site.register(ActivityInfo, ActivityInfoAdmin)
255
-admin.site.register(MaintenancemanInfo, MaintenancemanInfoAdmin)
256
+admin.site.register(MaintenancemanInfo, MaintenancemanInfoAdmin)

+ 4 - 2
mch/models.py

@@ -478,6 +478,7 @@ class SaleclerkInfo(BaseModelMixin, SexModelMixin):
478 478
 
479 479
     data = admindata
480 480
 
481
+
481 482
 class MaintenancemanInfo(BaseModelMixin, SexModelMixin):
482 483
     brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
483 484
     brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
@@ -503,12 +504,13 @@ class MaintenancemanInfo(BaseModelMixin, SexModelMixin):
503 504
 
504 505
     @property
505 506
     def data(self):
506
-        return  {
507
+        return {
507 508
             'maintenance_id': self.maintenance_id,
508 509
             'maintenance_name': self.maintenance_name,
509 510
             'maintenance_phone': self.maintenance_phone,
510 511
         }
511 512
 
513
+
512 514
 class BrandModelDistributorPriceInfo(BaseModelMixin):
513 515
     brand_id = models.CharField(_(u'brand_id'), max_length=32, blank=True, null=True, help_text=u'品牌唯一标识', db_index=True)
514 516
     brand_name = models.CharField(_(u'brand_name'), max_length=255, blank=True, null=True, help_text=u'品牌名称')
@@ -729,7 +731,7 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin):
729 731
             'code_version': self.code_version,
730 732
             'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'),
731 733
         }
732
-    
734
+
733 735
     @property
734 736
     def admindata(self):
735 737
         return {

+ 2 - 2
member/models.py

@@ -219,7 +219,7 @@ class RightInfo(BaseModelMixin):
219 219
             'left_num': 3,
220 220
             'left_tip': 3,
221 221
         }
222
-    
222
+
223 223
     def maintaindata(self, level):
224 224
         right_detail = ''
225 225
         if level == 1:
@@ -232,7 +232,7 @@ class RightInfo(BaseModelMixin):
232 232
             right_detail = self.level4 if self.level4 else ''
233 233
         elif level == 5:
234 234
             right_detail = self.level5 if self.level5 else ''
235
-        
235
+
236 236
         return right_detail
237 237
 
238 238
 

+ 15 - 14
miniapp/qy_views.py

@@ -1,9 +1,9 @@
1 1
 # -*- coding: utf-8 -*-
2 2
 
3
-import logging
4
-import requests
5 3
 import json
4
+import logging
6 5
 
6
+import requests
7 7
 from django.conf import settings
8 8
 from django.db import transaction
9 9
 from django_curtail_uuid import CurtailUUID
@@ -16,14 +16,15 @@ from pywe_storage import RedisStorage
16 16
 from TimeConvert import TimeConvert as tc
17 17
 
18 18
 from account.models import UserInfo
19
-from mch.models import SaleclerkInfo, DistributorInfo, MaintenancemanInfo
20
-from statistic.models import RegisterStatisticInfo
21
-from member.models import RightInfo
22 19
 from coupon.models import UserCouponInfo
20
+from mch.models import DistributorInfo, MaintenancemanInfo, SaleclerkInfo
21
+from member.models import RightInfo
22
+from statistic.models import RegisterStatisticInfo
23 23
 from utils.error.errno_utils import ProductBrandStatusCode, ProductDistributorStatusCode, UserStatusCode
24 24
 from utils.redis.connect import r
25 25
 from utils.redis.rprofile import set_profile_info
26 26
 
27
+
27 28
 WECHAT = settings.WECHAT
28 29
 logger = logging.getLogger('logit')
29 30
 
@@ -48,11 +49,11 @@ def qy_login_api(request):
48 49
 
49 50
     token = access_token(appid=appid, secret=secret, storage=RedisStorage(r))
50 51
 
51
-    userinfo = requests.post(url='https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token='+token+'&userid='+userid).text
52
+    userinfo = requests.post(url='https://qyapi.weixin.qq.com/cgi-bin/user/get?access_token=' + token + '&userid=' + userid).text
52 53
     userinfo = json.loads(userinfo)
53 54
 
54 55
     mobile = userinfo.get('mobile', '')
55
-    
56
+
56 57
     # Get or Create User
57 58
     user, created = UserInfo.objects.select_for_update().get_or_create(appid=appid, userid=userid)
58 59
 
@@ -83,14 +84,14 @@ def qy_login_api(request):
83 84
     if 122 in userinfo.get('department', []):
84 85
         maintenance, created = MaintenancemanInfo.objects.get_or_create(brand_id=brand_id, maintenance_phone=mobile, status=True)
85 86
         user.is_maintenance = True
86
-        
87
+
87 88
         if created:
88 89
             maintenance.maintenance_name = userinfo.get('name', '')
89 90
             maintenance.maintenance_sex = userinfo.get('gender', 0)
90 91
             maintenance.maintenance_phone = mobile
91 92
             maintenance.user_id = user.user_id
92 93
             maintenance.wx_userid = userid
93
-            maintenance.save()        
94
+            maintenance.save()
94 95
     else:
95 96
         user.is_maintenance = False
96 97
         # 销售员登录
@@ -99,9 +100,9 @@ def qy_login_api(request):
99 100
         if created:
100 101
             try:
101 102
                 distributor = DistributorInfo.objects.get(department_id__in=userinfo.get('department', []))
102
-            except:
103
+            except DistributorInfo.DoesNotExist:
103 104
                 return response(ProductDistributorStatusCode.DISTRIBUTOR_NOT_FOUND)
104
-            
105
+
105 106
             saleclerk.brand_id = brand_id
106 107
             saleclerk.distributor_id = distributor.distributor_id
107 108
             saleclerk.distributor_name = distributor.distributor_name
@@ -113,7 +114,7 @@ def qy_login_api(request):
113 114
             saleclerk.user_status = SaleclerkInfo.ACTIVATED
114 115
             saleclerk.is_auth = True
115 116
             saleclerk.save()
116
-          
117
+
117 118
     user.save()
118 119
 
119 120
     return response(200, 'Mini App Login Success', u'微信小程序登录成功', user.brand_qydata(brand_id=brand_id))
@@ -128,9 +129,9 @@ def query_userinfo(request):
128 129
 
129 130
     try:
130 131
         user = UserInfo.objects.get(memberusercardcode=memebercardcode, status=True)
131
-    except:
132
+    except UserInfo.DoesNotExist:
132 133
         return response(UserStatusCode.USER_NOT_FOUND)
133
-    
134
+
134 135
     # 维修人工费
135 136
     right = RightInfo.objects.get(right_id='X457xEV8KVxHQiTvhA7Dtf')
136 137
     coupons = UserCouponInfo.objects.filter(user_id=user.user_id, has_used=False, status=True)

+ 4 - 3
miniapp/views.py

@@ -14,8 +14,8 @@ from pywe_storage import RedisStorage
14 14
 from TimeConvert import TimeConvert as tc
15 15
 
16 16
 from account.models import UserInfo
17
-from statistic.models import RegisterStatisticInfo
18 17
 from mch.models import SaleclerkInfo
18
+from statistic.models import RegisterStatisticInfo
19 19
 from utils.error.errno_utils import ProductBrandStatusCode, UserStatusCode
20 20
 from utils.redis.connect import r
21 21
 from utils.redis.rprofile import set_profile_info
@@ -158,9 +158,10 @@ def mini_login_api(request):
158 158
         # 同步销售员手机号
159 159
         try:
160 160
             saleclerk = SaleclerkInfo.objects.get(unionid=unionid, is_auth=True, status=True)
161
+        except SaleclerkInfo.DoesNotExist:
162
+            saleclerk = None
163
+        if saleclerk:
161 164
             user.phone = saleclerk.clerk_phone
162
-        except:
163
-            pass
164 165
         user.unionid = unionid
165 166
     user.user_status = UserInfo.ACTIVATED
166 167
     user.signup_ip = client_ip(request)

+ 38 - 27
page/sale_views.py

@@ -17,10 +17,11 @@ from account.models import UserInfo
17 17
 from coupon.models import UserCouponInfo
18 18
 from integral.models import SaleclerkIntegralIncomeExpensesInfo, SaleclerkSubmitLogInfo
19 19
 from logs.models import MchInfoEncryptLogInfo
20
-from mch.models import BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, ModelInfo, SaleclerkInfo, MaintenancemanInfo
20
+from mch.models import (BrandInfo, ConsumeInfoSubmitLogInfo, DistributorInfo, MaintenancemanInfo, ModelInfo,
21
+                        SaleclerkInfo)
22
+from member.models import RightInfo
21 23
 from statistic.models import (DistributorSaleStatisticInfo, ModelSaleStatisticInfo, ProvinceSaleStatisticInfo,
22 24
                               SaleclerkSaleStatisticInfo, SaleStatisticInfo)
23
-from member.models import RightInfo
24 25
 from utils.error.errno_utils import (CouponStatusCode, ProductBrandStatusCode, ProductDistributorStatusCode,
25 26
                                      ProductMachineStatusCode, ProductModelStatusCode, SaleclerkStatusCode)
26 27
 
@@ -454,19 +455,26 @@ def clerk_query_coupon(request):
454 455
         user_coupon = UserCouponInfo.objects.get(user_coupon_id=user_coupon_id)
455 456
     except UserCouponInfo.DoesNotExist:
456 457
         return response(CouponStatusCode.COUPON_NOT_FOUND)
457
-    
458
+
458 459
     right_detail = ''
459 460
     if is_maintenance:
460 461
         try:
461
-            maintenance = MaintenancemanInfo.objects.get(brand_id=brand.brand_id, user_id=user.user_id,  status=True)
462
-            
463
-            # 维修人工费
462
+            maintenance = MaintenancemanInfo.objects.get(brand_id=brand.brand_id, user_id=user.user_id, status=True)
463
+        except MaintenancemanInfo.DoesNotExist:
464
+            return response(400001, 'MaintenancemanInfo Not Found', u'维修员不存在')
465
+
466
+        # 维修人工费
467
+        try:
464 468
             right = RightInfo.objects.get(right_id='X457xEV8KVxHQiTvhA7Dtf')
465
-            member = UserInfo.objects.get(user_id=user_coupon.user_id)
469
+        except RightInfo.DoesNotExist:
470
+            return response(400001, 'MaintenancemanInfo Not Found', u'维修员不存在')
466 471
 
467
-            right_detail = right.maintaindata(level=member.level)
468
-        except:
472
+        try:
473
+            member = UserInfo.objects.get(user_id=user_coupon.user_id)
474
+        except UserInfo.DoesNotExist:
469 475
             return response(400001, 'MaintenancemanInfo Not Found', u'维修员不存在')
476
+
477
+        right_detail = right.maintaindata(level=member.level)
470 478
     else:
471 479
         try:
472 480
             clerk = SaleclerkInfo.objects.get(brand_id=brand.brand_id, clerk_phone=user.phone, status=True)
@@ -503,40 +511,43 @@ def clerk_writeoff_coupon(request):
503 511
             brand = BrandInfo.objects.get(brand_id=brandID)
504 512
         except BrandInfo.DoesNotExist:
505 513
             return response(ProductBrandStatusCode.BRAND_NOT_FOUND)
506
-    
514
+
507 515
     try:
508 516
         user_coupon = UserCouponInfo.objects.get(user_coupon_id=user_coupon_id)
509
-        if user_coupon.has_used:
510
-            return response(CouponStatusCode.COUPON_HAS_USED)
511
-        elif user_coupon.is_coupon_admin_writeoff and not is_maintenance:
512
-            return response(CouponStatusCode.COUPON_PERMISSION_DENIED)
513
-        elif user_coupon.has_expired:
514
-            return response(CouponStatusCode.COUPON_EXPIRED)   
515 517
     except UserCouponInfo.DoesNotExist:
516 518
         return response(CouponStatusCode.COUPON_NOT_FOUND)
517
-    
519
+
520
+    if user_coupon.has_used:
521
+        return response(CouponStatusCode.COUPON_HAS_USED)
522
+    elif user_coupon.is_coupon_admin_writeoff and not is_maintenance:
523
+        return response(CouponStatusCode.COUPON_PERMISSION_DENIED)
524
+    elif user_coupon.has_expired:
525
+        return response(CouponStatusCode.COUPON_EXPIRED)
526
+
518 527
     user_coupon.has_used = True
519 528
     user_coupon.used_at = tc.utc_datetime()
520 529
 
521 530
     if is_maintenance:
522 531
         try:
523
-            maintenance = MaintenancemanInfo.objects.get(brand_id=brand.brand_id, user_id=user.user_id,  status=True)
524
-            user_coupon.admin_id = maintenance.maintenance_id
525
-            user_coupon.admin_name = maintenance.maintenance_name
526
-            user_coupon.save()
527
-        except:
532
+            maintenance = MaintenancemanInfo.objects.get(brand_id=brand.brand_id, user_id=user.user_id, status=True)
533
+        except MaintenancemanInfo.DoesNotExist:
528 534
             return response(400001, 'MaintenancemanInfo Not Found', u'维修员不存在')
535
+
536
+        user_coupon.admin_id = maintenance.maintenance_id
537
+        user_coupon.admin_name = maintenance.maintenance_name
538
+        user_coupon.save()
529 539
     else:
530 540
         try:
531 541
             clerk = SaleclerkInfo.objects.get(brand_id=brand.brand_id, clerk_phone=user.phone, status=True)
532
-            user_coupon.clerk_id = clerk.clerk_id
533
-            user_coupon.clerk_name = clerk.clerk_name
534
-            user_coupon.distributor_id = clerk.distributor_id
535
-            user_coupon.distributor_name = clerk.distributor_name
536
-            user_coupon.save()
537 542
         except SaleclerkInfo.DoesNotExist:
538 543
             return response(SaleclerkStatusCode.CLERK_NOT_FOUND)
539 544
 
545
+        user_coupon.clerk_id = clerk.clerk_id
546
+        user_coupon.clerk_name = clerk.clerk_name
547
+        user_coupon.distributor_id = clerk.distributor_id
548
+        user_coupon.distributor_name = clerk.distributor_name
549
+        user_coupon.save()
550
+
540 551
     return response(200, 'Write Off Coupon Success', u'劵核销成功')
541 552
 
542 553
 

+ 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
-
7 6
 from pywe_user import get_all_users
7
+
8 8
 from utils.redis.rkeys import SUBSCRIBE_USERINFO_LIST
9 9
 
10 10