@@ -7,8 +7,11 @@ from paginator import pagination  | 
            ||
| 7 | 7 | 
                from django.db import transaction  | 
            
| 8 | 8 | 
                from django.db.models import Q  | 
            
| 9 | 9 | 
                from django_logit import logit  | 
            
| 10 | 
                +from django_response import response  | 
            |
| 11 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 10 | 12 | 
                 | 
            
| 11 | 13 | 
                from kodo.decorators import check_admin  | 
            
| 14 | 
                +from account.models import UserInfo  | 
            |
| 12 | 15 | 
                from mch.models import AdministratorInfo, ConsumeShotUnbindingInfo  | 
            
| 13 | 16 | 
                 | 
            
| 14 | 17 | 
                 | 
            
                @@ -18,21 +21,35 @@ def consumer_shot_unbinding_list(request, administrator):  | 
            ||
| 18 | 21 | 
                     start_time = request.POST.get('start_time', '')
               | 
            
| 19 | 22 | 
                     end_time = request.POST.get('end_time', '')
               | 
            
| 20 | 23 | 
                     query = request.POST.get('query', '')
               | 
            
| 24 | 
                +    model_id = request.POST.get('model_id', '')
               | 
            |
| 25 | 
                +    page = request.POST.get('page', 1)
               | 
            |
| 26 | 
                +    num = request.POST.get('num', 20)
               | 
            |
| 21 | 27 | 
                 | 
            
| 22 | 
                - unbindings = ConsumeShotUnbindingInfo.objects.filter(Q(phone__icontains=query) | Q(sn__icontains=query), status=True)  | 
            |
| 28 | 
                +    unbindings = ConsumeShotUnbindingInfo.objects.filter(status=True).order_by('-created_at')
               | 
            |
| 29 | 
                +  | 
            |
| 30 | 
                + if query:  | 
            |
| 31 | 
                + user_id = ''  | 
            |
| 32 | 
                + try:  | 
            |
| 33 | 
                + user_id = UserInfo.objects.get(phone__icontains=query, status=True)  | 
            |
| 34 | 
                + except UserInfo.DoesNotExist:  | 
            |
| 35 | 
                + pass  | 
            |
| 36 | 
                + unbindings = unbindings.filter(Q(sn__icontains=query) | Q(user_id=user_id))  | 
            |
| 23 | 37 | 
                 | 
            
| 24 | 38 | 
                if start_time and end_time:  | 
            
| 25 | 39 | 
                start_time = tc.string_to_utc_datetime(start_time, format='%Y%m%d')  | 
            
| 26 | 40 | 
                end_time = tc.string_to_utc_datetime(end_time + ' 23:59:59', format='%Y%m%d %H:%M:%S')  | 
            
| 27 | 41 | 
                unbindings = unbindings.filter(created_at__range=(start_time, end_time))  | 
            
| 28 | 42 | 
                 | 
            
| 43 | 
                + if model_id:  | 
            |
| 44 | 
                + unbindings = unbindings.filter(model_id=model_id)  | 
            |
| 45 | 
                +  | 
            |
| 29 | 46 | 
                count = unbindings.count()  | 
            
| 30 | 47 | 
                 | 
            
| 31 | 48 | 
                unbindings, left = pagination(unbindings, page, num)  | 
            
| 32 | 49 | 
                unbindings = [unbinding.admindata for unbinding in unbindings]  | 
            
| 33 | 50 | 
                 | 
            
| 34 | 
                -    return response(200, 'Get Cosumer Shot Unbinding List Success', u'用户列表获取成功', data={
               | 
            |
| 35 | 
                - 'unbinding': userinfos,  | 
            |
| 51 | 
                +    return response(200, 'Get Cosumer Shot Unbinding List Success', u'消费者镜头解绑列表获取成功', data={
               | 
            |
| 52 | 
                + 'unbindings': unbindings,  | 
            |
| 36 | 53 | 
                'count': count,  | 
            
| 37 | 54 | 
                'left': left  | 
            
| 38 | 55 | 
                })  | 
            
                @@ -500,7 +500,7 @@ def consumer_snlist_api(request):  | 
            ||
| 500 | 500 | 
                return response(UserStatusCode.USER_NOT_FOUND)  | 
            
| 501 | 501 | 
                 | 
            
| 502 | 502 | 
                # 用户信息提交列表  | 
            
| 503 | 
                - logs = ConsumeInfoSubmitLogInfo.objects.filter(user_id=user_id, status=True).distinct()  | 
            |
| 503 | 
                +    logs = ConsumeInfoSubmitLogInfo.objects.filter(user_id=user_id, status=True).distinct().order_by('-created_at')
               | 
            |
| 504 | 504 | 
                seen = set()  | 
            
| 505 | 505 | 
                seen_add = seen.add  | 
            
| 506 | 506 | 
                logs = [log.data for log in logs if not ((log.serialNo, log.model_name) in seen or seen_add((log.serialNo, log.model_name)))]  | 
            
                @@ -302,6 +302,9 @@ def exec_del_consumer_submit(pk, admin_id):  | 
            ||
| 302 | 302 | 
                code=ssli.serialNo  | 
            
| 303 | 303 | 
                )  | 
            
| 304 | 304 | 
                 | 
            
| 305 | 
                + if ssli.unbound:  | 
            |
| 306 | 
                + return response()  | 
            |
| 307 | 
                +  | 
            |
| 305 | 308 | 
                # 消除用户劵  | 
            
| 306 | 309 | 
                if user.shots_num <= 5:  | 
            
| 307 | 310 | 
                rights = RightInfo.objects.filter(is_send_coupon=True, status=True)  | 
            
                @@ -841,7 +841,7 @@ class ConsumeShotUnbindingInfo(BaseModelMixin, BrandInfoMixin):  | 
            ||
| 841 | 841 | 
                def admindata(self):  | 
            
| 842 | 842 | 
                from account.models import UserInfo  | 
            
| 843 | 843 | 
                 | 
            
| 844 | 
                - info = ModelInfo.objects.get(model_id=self.model_id).fulldata  | 
            |
| 844 | 
                + model_info = ModelInfo.objects.get(model_id=self.model_id).fulldata  | 
            |
| 845 | 845 | 
                user = UserInfo.objects.get(user_id=self.user_id)  | 
            
| 846 | 846 | 
                 | 
            
| 847 | 847 | 
                         return {
               | 
            
                @@ -851,8 +851,8 @@ class ConsumeShotUnbindingInfo(BaseModelMixin, BrandInfoMixin):  | 
            ||
| 851 | 851 | 
                'sn': self.sn,  | 
            
| 852 | 852 | 
                'reason': self.reason,  | 
            
| 853 | 853 | 
                'submit_pk': self.submit_pk,  | 
            
| 854 | 
                - 'submit_at': self.submit_at,  | 
            |
| 855 | 
                - 'created_at': self.created_at,  | 
            |
| 854 | 
                + 'submit_at': tc.local_string(utc_dt=self.submit_at, format='%Y-%m-%d %H:%M'),  | 
            |
| 855 | 
                + 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M'),  | 
            |
| 856 | 856 | 
                }  | 
            
| 857 | 857 | 
                 | 
            
| 858 | 858 | 
                 |