@@ -0,0 +1,68 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +  | 
            |
| 3 | 
                +from __future__ import division  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django_logit import logit  | 
            |
| 6 | 
                +from django_response import response  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +from maintenance.models import MaintenacePointInfo  | 
            |
| 9 | 
                +from utils.error.errno_utils import MaintenacePointStatusCode  | 
            |
| 10 | 
                +  | 
            |
| 11 | 
                +  | 
            |
| 12 | 
                +@logit  | 
            |
| 13 | 
                +def maintenance_point_add(request):  | 
            |
| 14 | 
                +    name = request.POST.get('name', '')
               | 
            |
| 15 | 
                +    province = request.POST.get('province', '')
               | 
            |
| 16 | 
                +    location = request.POST.get('location', '')
               | 
            |
| 17 | 
                +    postcode = request.POST.get('postcode', '')
               | 
            |
| 18 | 
                +  | 
            |
| 19 | 
                + point = MaintenacePointInfo.objects.create(name=name, province=province, location=location, postcode=postcode)  | 
            |
| 20 | 
                +  | 
            |
| 21 | 
                +    return response(data={
               | 
            |
| 22 | 
                + 'point_id': point.id,  | 
            |
| 23 | 
                + })  | 
            |
| 24 | 
                +  | 
            |
| 25 | 
                +  | 
            |
| 26 | 
                +@logit  | 
            |
| 27 | 
                +def maintenance_point_delete(request):  | 
            |
| 28 | 
                +    point_id = request.POST.get('point_id', '')
               | 
            |
| 29 | 
                +  | 
            |
| 30 | 
                + MaintenacePointInfo.objects.filter(id=point_id).update(status=False)  | 
            |
| 31 | 
                +  | 
            |
| 32 | 
                + return response()  | 
            |
| 33 | 
                +  | 
            |
| 34 | 
                +  | 
            |
| 35 | 
                +@logit  | 
            |
| 36 | 
                +def maintenance_point_update(request):  | 
            |
| 37 | 
                +    point_id = request.POST.get('point_id', '')
               | 
            |
| 38 | 
                +    name = request.POST.get('name', '')
               | 
            |
| 39 | 
                +    province = request.POST.get('province', '')
               | 
            |
| 40 | 
                +    location = request.POST.get('location', '')
               | 
            |
| 41 | 
                +    postcode = request.POST.get('postcode', '')
               | 
            |
| 42 | 
                +  | 
            |
| 43 | 
                + try:  | 
            |
| 44 | 
                + point = MaintenacePointInfo.objects.get(id=point_id)  | 
            |
| 45 | 
                + except MaintenacePointInfo.DoesNotExist:  | 
            |
| 46 | 
                + return response(MaintenacePointStatusCode.MAINTENACE_POINT_NOT_FOUND)  | 
            |
| 47 | 
                +  | 
            |
| 48 | 
                + if name:  | 
            |
| 49 | 
                + point.name = name  | 
            |
| 50 | 
                + if province:  | 
            |
| 51 | 
                + point.province = province  | 
            |
| 52 | 
                + if location:  | 
            |
| 53 | 
                + point.location = location  | 
            |
| 54 | 
                + if postcode:  | 
            |
| 55 | 
                + point.postcode = postcode  | 
            |
| 56 | 
                + point.save()  | 
            |
| 57 | 
                +  | 
            |
| 58 | 
                + return response()  | 
            |
| 59 | 
                +  | 
            |
| 60 | 
                +  | 
            |
| 61 | 
                +@logit  | 
            |
| 62 | 
                +def maintenance_point_list(request):  | 
            |
| 63 | 
                + points = MaintenacePointInfo.objects.filter(status=True)  | 
            |
| 64 | 
                + points = [point.data for point in points]  | 
            |
| 65 | 
                +  | 
            |
| 66 | 
                +    return response(data={
               | 
            |
| 67 | 
                + 'points': points,  | 
            |
| 68 | 
                + })  | 
            
                @@ -5,64 +5,105 @@ from __future__ import division  | 
            ||
| 5 | 5 | 
                from django_logit import logit  | 
            
| 6 | 6 | 
                from django_response import response  | 
            
| 7 | 7 | 
                 | 
            
| 8 | 
                -from maintenance.models import MaintenacePointInfo  | 
            |
| 9 | 
                -from utils.error.errno_utils import MaintenacePointStatusCode  | 
            |
| 8 | 
                +from maintenance.models import MaintenaceInfo  | 
            |
| 9 | 
                +from utils.error.errno_utils import MaintenaceStatusCode  | 
            |
| 10 | 10 | 
                 | 
            
| 11 | 11 | 
                 | 
            
| 12 | 12 | 
                @logit  | 
            
| 13 | 
                -def maintenance_point_add(request):  | 
            |
| 13 | 
                +def maintenance_add(request):  | 
            |
| 14 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 14 | 15 | 
                     name = request.POST.get('name', '')
               | 
            
| 15 | 
                -    province = request.POST.get('province', '')
               | 
            |
| 16 | 
                -    location = request.POST.get('location', '')
               | 
            |
| 17 | 
                -    postcode = request.POST.get('postcode', '')
               | 
            |
| 18 | 
                -  | 
            |
| 19 | 
                - point = MaintenacePointInfo.objects.create(name=name, province=province, location=location, postcode=postcode)  | 
            |
| 16 | 
                +    phone = request.POST.get('phone', '')
               | 
            |
| 17 | 
                +    address = request.POST.get('address', '')
               | 
            |
| 18 | 
                +    sn = request.POST.get('sn', '')
               | 
            |
| 19 | 
                +    desc = request.POST.get('desc', '')
               | 
            |
| 20 | 
                +    point_id = request.POST.get('point_id', '')
               | 
            |
| 21 | 
                +    point_name = request.POST.get('point_name', '')
               | 
            |
| 22 | 
                +    express_name = request.POST.get('express_name', '')
               | 
            |
| 23 | 
                +    tracking_number = request.POST.get('tracking_number', '')
               | 
            |
| 24 | 
                +    maintenace_status = request.POST.get('maintenace_status', '')
               | 
            |
| 25 | 
                +  | 
            |
| 26 | 
                + maintenace = MaintenaceInfo.objects.create(  | 
            |
| 27 | 
                + user_id=user_id,  | 
            |
| 28 | 
                + name=name,  | 
            |
| 29 | 
                + phone=phone,  | 
            |
| 30 | 
                + address=address,  | 
            |
| 31 | 
                + sn=sn,  | 
            |
| 32 | 
                + desc=desc,  | 
            |
| 33 | 
                + point_id=point_id,  | 
            |
| 34 | 
                + point_name=point_name,  | 
            |
| 35 | 
                + express_name=express_name,  | 
            |
| 36 | 
                + tracking_number=tracking_number,  | 
            |
| 37 | 
                + maintenace_status=maintenace_status,  | 
            |
| 38 | 
                + )  | 
            |
| 20 | 39 | 
                 | 
            
| 21 | 40 | 
                     return response(data={
               | 
            
| 22 | 
                - 'point_id': point.id,  | 
            |
| 41 | 
                + 'maintenace_id': maintenace.id,  | 
            |
| 23 | 42 | 
                })  | 
            
| 24 | 43 | 
                 | 
            
| 25 | 44 | 
                 | 
            
| 26 | 45 | 
                @logit  | 
            
| 27 | 
                -def maintenance_point_delete(request):  | 
            |
| 28 | 
                -    point_id = request.POST.get('point_id', '')
               | 
            |
| 46 | 
                +def maintenance_delete(request):  | 
            |
| 47 | 
                +    maintenace_id = request.POST.get('maintenace_id', '')
               | 
            |
| 48 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 29 | 49 | 
                 | 
            
| 30 | 
                - MaintenacePointInfo.objects.filter(id=point_id).update(status=False)  | 
            |
| 50 | 
                + MaintenaceInfo.objects.filter(id=maintenace_id, user_id=user_id).update(status=False)  | 
            |
| 31 | 51 | 
                 | 
            
| 32 | 52 | 
                return response()  | 
            
| 33 | 53 | 
                 | 
            
| 34 | 54 | 
                 | 
            
| 35 | 55 | 
                @logit  | 
            
| 36 | 
                -def maintenance_point_update(request):  | 
            |
| 37 | 
                -    point_id = request.POST.get('point_id', '')
               | 
            |
| 56 | 
                +def maintenance_update(request):  | 
            |
| 57 | 
                +    maintenace_id = request.POST.get('maintenace_id', '')
               | 
            |
| 58 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 38 | 59 | 
                     name = request.POST.get('name', '')
               | 
            
| 39 | 
                -    province = request.POST.get('province', '')
               | 
            |
| 40 | 
                -    location = request.POST.get('location', '')
               | 
            |
| 41 | 
                -    postcode = request.POST.get('postcode', '')
               | 
            |
| 60 | 
                +    phone = request.POST.get('phone', '')
               | 
            |
| 61 | 
                +    address = request.POST.get('address', '')
               | 
            |
| 62 | 
                +    sn = request.POST.get('sn', '')
               | 
            |
| 63 | 
                +    desc = request.POST.get('desc', '')
               | 
            |
| 64 | 
                +    point_id = request.POST.get('point_id', '')
               | 
            |
| 65 | 
                +    point_name = request.POST.get('point_name', '')
               | 
            |
| 66 | 
                +    express_name = request.POST.get('express_name', '')
               | 
            |
| 67 | 
                +    tracking_number = request.POST.get('tracking_number', '')
               | 
            |
| 68 | 
                +    maintenace_status = request.POST.get('maintenace_status', '')
               | 
            |
| 42 | 69 | 
                 | 
            
| 43 | 70 | 
                try:  | 
            
| 44 | 
                - point = MaintenacePointInfo.objects.get(id=point_id)  | 
            |
| 45 | 
                - except MaintenacePointInfo.DoesNotExist:  | 
            |
| 46 | 
                - return response(MaintenacePointStatusCode.MAINTENACE_POINT_NOT_FOUND)  | 
            |
| 71 | 
                + maintenace = MaintenaceInfo.objects.get(id=maintenace_id, user_id=user_id, status=True)  | 
            |
| 72 | 
                + except MaintenaceInfo.DoesNotExist:  | 
            |
| 73 | 
                + return response(MaintenaceStatusCode.MAINTENACE_NOT_FOUND)  | 
            |
| 47 | 74 | 
                 | 
            
| 48 | 75 | 
                if name:  | 
            
| 49 | 
                - point.name = name  | 
            |
| 50 | 
                - if province:  | 
            |
| 51 | 
                - point.province = province  | 
            |
| 52 | 
                - if location:  | 
            |
| 53 | 
                - point.location = location  | 
            |
| 54 | 
                - if postcode:  | 
            |
| 55 | 
                - point.postcode = postcode  | 
            |
| 56 | 
                - point.save()  | 
            |
| 76 | 
                + maintenace.name = name  | 
            |
| 77 | 
                + if phone:  | 
            |
| 78 | 
                + maintenace.phone = phone  | 
            |
| 79 | 
                + if address:  | 
            |
| 80 | 
                + maintenace.address = address  | 
            |
| 81 | 
                + if sn:  | 
            |
| 82 | 
                + maintenace.sn = sn  | 
            |
| 83 | 
                + if desc:  | 
            |
| 84 | 
                + maintenace.desc = desc  | 
            |
| 85 | 
                + if point_id:  | 
            |
| 86 | 
                + maintenace.point_id = point_id  | 
            |
| 87 | 
                + if point_name:  | 
            |
| 88 | 
                + maintenace.point_name = point_name  | 
            |
| 89 | 
                + if express_name:  | 
            |
| 90 | 
                + maintenace.express_name = express_name  | 
            |
| 91 | 
                + if tracking_number:  | 
            |
| 92 | 
                + maintenace.tracking_number = tracking_number  | 
            |
| 93 | 
                + if maintenace_status:  | 
            |
| 94 | 
                + maintenace.maintenace_status = maintenace_status  | 
            |
| 95 | 
                + maintenace.save()  | 
            |
| 57 | 96 | 
                 | 
            
| 58 | 97 | 
                return response()  | 
            
| 59 | 98 | 
                 | 
            
| 60 | 99 | 
                 | 
            
| 61 | 100 | 
                @logit  | 
            
| 62 | 
                -def maintenance_point_list(request):  | 
            |
| 63 | 
                - points = MaintenacePointInfo.objects.filter(status=True)  | 
            |
| 64 | 
                - points = [point.data for point in points]  | 
            |
| 101 | 
                +def maintenance_list(request):  | 
            |
| 102 | 
                +    user_id = request.POST.get('user_id', '')
               | 
            |
| 103 | 
                +  | 
            |
| 104 | 
                + maintenaces = MaintenaceInfo.objects.filter(user_id=user_id, status=True)  | 
            |
| 105 | 
                + maintenaces = [maintenace.data for maintenace in maintenaces]  | 
            |
| 65 | 106 | 
                 | 
            
| 66 | 107 | 
                     return response(data={
               | 
            
| 67 | 
                - 'points': points,  | 
            |
| 108 | 
                + 'maintenaces': maintenaces,  | 
            |
| 68 | 109 | 
                })  | 
            
                @@ -4,8 +4,8 @@ from django.conf.urls import url  | 
            ||
| 4 | 4 | 
                from django_file_upload import views as file_views  | 
            
| 5 | 5 | 
                 | 
            
| 6 | 6 | 
                from api import (admin_views, clerk_views, complement_views, distributor_views, encrypt_views, express_views, log_views,  | 
            
| 7 | 
                - maintenance_views, mch_views, member_views, model_views, operator_views, refresh_views, sr_views,  | 
            |
| 8 | 
                - staff_views, wx_views)  | 
            |
| 7 | 
                + maintenance_point_views, maintenance_views, mch_views, member_views, model_views, operator_views,  | 
            |
| 8 | 
                + refresh_views, sr_views, staff_views, wx_views)  | 
            |
| 9 | 9 | 
                from miniapp import qy_views  | 
            
| 10 | 10 | 
                from miniapp import views as mini_views  | 
            
| 11 | 11 | 
                from page import oauth_views, sale_views, screen_views  | 
            
                @@ -250,10 +250,10 @@ urlpatterns += [  | 
            ||
| 250 | 250 | 
                 | 
            
| 251 | 251 | 
                # 维修点  | 
            
| 252 | 252 | 
                urlpatterns += [  | 
            
| 253 | 
                - url(r'^maintenance/point/add$', maintenance_views.maintenance_point_add, name='maintenance_point_add'),  | 
            |
| 254 | 
                - url(r'^maintenance/point/delete$', maintenance_views.maintenance_point_delete, name='maintenance_point_delete'),  | 
            |
| 255 | 
                - url(r'^maintenance/point/update$', maintenance_views.maintenance_point_update, name='maintenance_point_update'),  | 
            |
| 256 | 
                - url(r'^maintenance/point/list$', maintenance_views.maintenance_point_list, name='maintenance_point_list'),  | 
            |
| 253 | 
                + url(r'^maintenance/point/add$', maintenance_point_views.maintenance_point_add, name='maintenance_point_add'),  | 
            |
| 254 | 
                + url(r'^maintenance/point/delete$', maintenance_point_views.maintenance_point_delete, name='maintenance_point_delete'),  | 
            |
| 255 | 
                + url(r'^maintenance/point/update$', maintenance_point_views.maintenance_point_update, name='maintenance_point_update'),  | 
            |
| 256 | 
                + url(r'^maintenance/point/list$', maintenance_point_views.maintenance_point_list, name='maintenance_point_list'),  | 
            |
| 257 | 257 | 
                ]  | 
            
| 258 | 258 | 
                 | 
            
| 259 | 259 | 
                # 快递公司  | 
            
                @@ -263,3 +263,11 @@ urlpatterns += [  | 
            ||
| 263 | 263 | 
                url(r'^express/update$', express_views.express_update, name='express_update'),  | 
            
| 264 | 264 | 
                url(r'^express/list$', express_views.express_list, name='express_list'),  | 
            
| 265 | 265 | 
                ]  | 
            
| 266 | 
                +  | 
            |
| 267 | 
                +# 维修  | 
            |
| 268 | 
                +urlpatterns += [  | 
            |
| 269 | 
                + url(r'^maintenance/add$', maintenance_views.maintenance_add, name='maintenance_add'),  | 
            |
| 270 | 
                + url(r'^maintenance/delete$', maintenance_views.maintenance_delete, name='maintenance_delete'),  | 
            |
| 271 | 
                + url(r'^maintenance/update$', maintenance_views.maintenance_update, name='maintenance_update'),  | 
            |
| 272 | 
                + url(r'^maintenance/list$', maintenance_views.maintenance_list, name='maintenance_list'),  | 
            |
| 273 | 
                +]  | 
            
                @@ -14,7 +14,7 @@ class ExpressCompanyInfoAdmin(admin.ModelAdmin):  | 
            ||
| 14 | 14 | 
                 | 
            
| 15 | 15 | 
                 | 
            
| 16 | 16 | 
                class MaintenaceInfoAdmin(admin.ModelAdmin):  | 
            
| 17 | 
                -    list_display = ('name', 'phone', 'address', 'sn', 'desc', 'point_id', 'point_name', 'express_name', 'tracking_number', 'maintenace_status', 'status', 'created_at', 'updated_at')
               | 
            |
| 17 | 
                +    list_display = ('user_id', 'name', 'phone', 'address', 'sn', 'desc', 'point_id', 'point_name', 'express_name', 'tracking_number', 'maintenace_status', 'status', 'created_at', 'updated_at')
               | 
            |
| 18 | 18 | 
                 | 
            
| 19 | 19 | 
                 | 
            
| 20 | 20 | 
                admin.site.register(MaintenacePointInfo, MaintenacePointInfoAdmin)  | 
            
                @@ -0,0 +1,20 @@  | 
            ||
| 1 | 
                +# -*- coding: utf-8 -*-  | 
            |
| 2 | 
                +# Generated by Django 1.11.29 on 2021-09-15 07:17  | 
            |
| 3 | 
                +from __future__ import unicode_literals  | 
            |
| 4 | 
                +  | 
            |
| 5 | 
                +from django.db import migrations, models  | 
            |
| 6 | 
                +  | 
            |
| 7 | 
                +  | 
            |
| 8 | 
                +class Migration(migrations.Migration):  | 
            |
| 9 | 
                +  | 
            |
| 10 | 
                + dependencies = [  | 
            |
| 11 | 
                +        ('maintenance', '0001_initial'),
               | 
            |
| 12 | 
                + ]  | 
            |
| 13 | 
                +  | 
            |
| 14 | 
                + operations = [  | 
            |
| 15 | 
                + migrations.AddField(  | 
            |
| 16 | 
                + model_name='maintenaceinfo',  | 
            |
| 17 | 
                + name='user_id',  | 
            |
| 18 | 
                + field=models.CharField(blank=True, db_index=True, help_text='\u7528\u6237\u552f\u4e00\u6807\u8bc6', max_length=32, null=True, verbose_name='user_id'),  | 
            |
| 19 | 
                + ),  | 
            |
| 20 | 
                + ]  | 
            
                @@ -3,6 +3,7 @@  | 
            ||
| 3 | 3 | 
                from django.db import models  | 
            
| 4 | 4 | 
                from django.utils.translation import ugettext_lazy as _  | 
            
| 5 | 5 | 
                from django_models_ext import BaseModelMixin  | 
            
| 6 | 
                +from TimeConvert import TimeConvert as tc  | 
            |
| 6 | 7 | 
                 | 
            
| 7 | 8 | 
                 | 
            
| 8 | 9 | 
                class MaintenacePointInfo(BaseModelMixin):  | 
            
                @@ -21,6 +22,7 @@ class MaintenacePointInfo(BaseModelMixin):  | 
            ||
| 21 | 22 | 
                @property  | 
            
| 22 | 23 | 
                def data(self):  | 
            
| 23 | 24 | 
                         return {
               | 
            
| 25 | 
                + 'id': self.pk,  | 
            |
| 24 | 26 | 
                'name': self.name,  | 
            
| 25 | 27 | 
                'province': self.province,  | 
            
| 26 | 28 | 
                'location': self.location,  | 
            
                @@ -41,11 +43,14 @@ class ExpressCompanyInfo(BaseModelMixin):  | 
            ||
| 41 | 43 | 
                @property  | 
            
| 42 | 44 | 
                def data(self):  | 
            
| 43 | 45 | 
                         return {
               | 
            
| 46 | 
                + 'id': self.pk,  | 
            |
| 44 | 47 | 
                'name': self.name,  | 
            
| 45 | 48 | 
                }  | 
            
| 46 | 49 | 
                 | 
            
| 47 | 50 | 
                 | 
            
| 48 | 51 | 
                class MaintenaceInfo(BaseModelMixin):  | 
            
| 52 | 
                + user_id = models.CharField(_(u'user_id'), max_length=32, blank=True, null=True, help_text=u'用户唯一标识', db_index=True)  | 
            |
| 53 | 
                +  | 
            |
| 49 | 54 | 
                name = models.CharField(_(u'name'), max_length=255, blank=True, null=True, help_text=u'姓名')  | 
            
| 50 | 55 | 
                phone = models.CharField(_(u'phone'), max_length=11, blank=True, null=True, help_text=u'电话')  | 
            
| 51 | 56 | 
                address = models.CharField(_(u'address'), max_length=255, blank=True, null=True, help_text=u'地址')  | 
            
                @@ -67,3 +72,22 @@ class MaintenaceInfo(BaseModelMixin):  | 
            ||
| 67 | 72 | 
                 | 
            
| 68 | 73 | 
                def __unicode__(self):  | 
            
| 69 | 74 | 
                return '%d' % self.pk  | 
            
| 75 | 
                +  | 
            |
| 76 | 
                + @property  | 
            |
| 77 | 
                + def data(self):  | 
            |
| 78 | 
                +        return {
               | 
            |
| 79 | 
                + 'id': self.pk,  | 
            |
| 80 | 
                + 'user_id': self.user_id,  | 
            |
| 81 | 
                + 'name': self.name,  | 
            |
| 82 | 
                + 'phone': self.phone,  | 
            |
| 83 | 
                + 'address': self.address,  | 
            |
| 84 | 
                + 'sn': self.sn,  | 
            |
| 85 | 
                + 'desc': self.desc,  | 
            |
| 86 | 
                + 'point_id': self.point_id,  | 
            |
| 87 | 
                + 'point_name': self.point_name,  | 
            |
| 88 | 
                + 'express_name': self.express_name,  | 
            |
| 89 | 
                + 'tracking_number': self.tracking_number,  | 
            |
| 90 | 
                + 'maintenace_status': self.maintenace_status,  | 
            |
| 91 | 
                + 'created_at': tc.local_string(utc_dt=self.created_at),  | 
            |
| 92 | 
                + 'updated_at': tc.local_string(utc_dt=self.updated_at),  | 
            |
| 93 | 
                + }  | 
            
                @@ -118,6 +118,11 @@ class ExpressStatusCode(BaseStatusCode):  | 
            ||
| 118 | 118 | 
                EXPRESS_NOT_FOUND = StatusCodeField(507001, 'Express Not Found', description=u'快递公司不存在')  | 
            
| 119 | 119 | 
                 | 
            
| 120 | 120 | 
                 | 
            
| 121 | 
                +class MaintenaceStatusCode(BaseStatusCode):  | 
            |
| 122 | 
                + """ 维修相关错误码 5080xx """  | 
            |
| 123 | 
                + MAINTENACE_NOT_FOUND = StatusCodeField(508001, 'Maintenace Not Found', description=u'维修不存在')  | 
            |
| 124 | 
                +  | 
            |
| 125 | 
                +  | 
            |
| 121 | 126 | 
                class AdministratorStatusCode(BaseStatusCode):  | 
            
| 122 | 127 | 
                """ 操作员相关错误码 4002xx """  | 
            
| 123 | 128 | 
                ADMINISTRATOR_NOT_FOUND = StatusCodeField(400201, 'Administrator Not Found', description=u'管理员不存在')  |