14.普通用户、网格长、网格员,操作数据(1)后端部分

1.在后端NewCenter

1.apps/user_operations/views.py中新建增删查:楼、单元、住户、用户的类:

from django.shortcuts import render,HttpResponse
from rest_framework.views import APIView,Response
from users.models import PianQu,UserProfile,UserToZhuHu,LouMing,DanYuan,ZhuHu
from users.serializers import PianQuModelSerializer,UserProfileModelSerializer,LouMingModelSerializer,DanYuanModelSerializer,ZhuHuModelSerializer,UserToZhuHuSerializer
from .models import Notice,OnOrOff
from .serializers import NoticeModelSerializer,OnOrOffModelSerializer
import json,time,hashlib,datetime


#…………


class AddLouView(APIView):
    """
    post:增加楼或街 get:获取网格长旗下的楼和街,以及所有网格员
    """
    def get(self, request):
        token = request.GET.get('token')
        if token:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==5:
                    all_wgy_list=UserProfile.objects.filter(power=4)
                    all_wgy_list_re=UserProfileModelSerializer(all_wgy_list,many=True)
                    lou_list=LouMing.objects.filter(pianqu__wgz=user).order_by('-add_time')
                    lou_list_re=LouMingModelSerializer(lou_list,many=True)
                    result = {"status": "200", "data": {'all_wgy_list':all_wgy_list_re.data,'lou_list':lou_list_re.data}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格长'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

    def post(self, request):
        token = request.data.get('token')
        wgy_id=request.data.get('wgy_id')
        lou_ming=request.data.get('lou_ming')
        if token and wgy_id and lou_ming:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==5:
                    new_lou=LouMing()
                    new_lou.name=lou_ming
                    pq=PianQu.objects.filter(wgz=user).first()
                    new_lou.pianqu=pq
                    wgy=UserProfile.objects.filter(id=int(wgy_id)).first()
                    new_lou.wgy=wgy
                    new_lou.save()
                    result = {"status": "200", "data": {'msg':'增加成功'}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格长'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class DelLouView(APIView):
    """
    删除某个楼名
    """
    def get(self, request):
        token = request.GET.get('token')
        lou_id=request.GET.get('lou_id')
        if token and lou_id:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==5:
                    LouMing.objects.filter(id=int(lou_id)).delete()
                    result = {"status": "200", "data": {'msg':'删除成功'}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格长'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class AddDanyuanView(APIView):
    """
    post:增加单元或组 get:获取所有单元,以及所有单元长
    """
    def get(self, request):
        token = request.GET.get('token')
        if token:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    all_dyz_list=UserProfile.objects.filter(power=2)
                    all_dyz_list_re=UserProfileModelSerializer(all_dyz_list,many=True)
                    danyuan_list=DanYuan.objects.filter(lou__wgy=user).order_by('-add_time')
                    danyuan_list_re=DanYuanModelSerializer(danyuan_list,many=True)
                    result = {"status": "200", "data": {'all_dyz_list':all_dyz_list_re.data,'danyuan_list':danyuan_list_re.data}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

    def post(self, request):
        token = request.data.get('token')
        lou_id=request.data.get('lou_id')
        danyuan_name=request.data.get('danyuan_name')
        if token and lou_id and danyuan_name:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    new_danyuan=DanYuan()
                    new_danyuan.name=danyuan_name
                    lou=LouMing.objects.filter(id=int(lou_id)).first()
                    new_danyuan.lou=lou
                    new_danyuan.save()
                    result = {"status": "200", "data": {'msg':'增加成功'}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class DelDanyuanView(APIView):
    """
    删除某个单元
    """
    def get(self, request):
        token = request.GET.get('token')
        danyuan_id=request.GET.get('danyuan_id')
        if token and danyuan_id:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    dy=DanYuan.objects.filter(id=int(danyuan_id)).first()
                    zhuhu=ZhuHu.objects.filter(dy=dy).first()
                    if zhuhu:
                        result = {"status": "403", "data": {'msg': '删除失败,此单元下有住户'}}
                    else:
                        DanYuan.objects.filter(id=int(danyuan_id)).delete()
                        result = {"status": "200", "data": {'msg':'删除成功'}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class AddZhuhuView(APIView):
    """
    post:增加住户 get:获取所有住户,以及所有用户
    """
    def get(self, request):
        token = request.GET.get('token')
        if token:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    zhuhu_list=ZhuHu.objects.filter(dy__lou__wgy=user).order_by('-add_time')
                    zhuhu_list_re=ZhuHuModelSerializer(zhuhu_list,many=True)
                    result = {"status": "200", "data": {'zhuhu_list':zhuhu_list_re.data}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

    def post(self, request):
        token = request.data.get('token')
        dy_id = request.data.get('dy_id')
        zhuhu_name = request.data.get('zhuhu_name')
        if token and dy_id and zhuhu_name:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power == 4:
                    new_zhuhu=ZhuHu()
                    new_zhuhu.name=zhuhu_name
                    dy=DanYuan.objects.filter(id=int(dy_id)).first()
                    new_zhuhu.dy=dy
                    new_zhuhu.save()
                    result = {"status": "200", "data": {'msg': '增加成功'}}
                else:
                    result = {"status": "404", "data": {'msg': '非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class DelZhuhuView(APIView):
    """
    删除某个住户
    """
    def get(self, request):
        token = request.GET.get('token')
        zhuhu_id=request.GET.get('zhuhu_id')
        if token and zhuhu_id:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    zhuhu=ZhuHu.objects.filter(id=int(zhuhu_id)).first()
                    u_to_z=UserToZhuHu.objects.filter(zhhu=zhuhu).first()
                    if u_to_z:
                        result = {"status": "403", "data": {'msg': '删除失败,此住户下有居民'}}
                    else:
                        ZhuHu.objects.filter(id=int(zhuhu_id)).delete()
                        result = {"status": "200", "data": {'msg': '删除成功'}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")


class AddUserView(APIView):
    """
    post:增加居民 get:获取所有居民,所有住户,所有 住户To用户记录
    """
    def get(self, request):
        token = request.GET.get('token')
        if token:
            user = UserProfile.objects.filter(token=token).first()
            if user:
                if user.power==4:
                    all_user=UserProfile.objects.all().order_by('-id')
                    all_user_re=UserProfileModelSerializer(all_user,many=True)
                    u2z_list=UserToZhuHu.objects.filter(zhhu__dy__lou__wgy=user)
                    u2z_list_re=UserToZhuHuSerializer(u2z_list,many=True)
                    result = {"status": "200", "data": {'all_user': all_user_re.data,'u2z_list':u2z_list_re.data}}
                else:
                    result = {"status": "404", "data": {'msg':'非网格员'}}
            else:
                result = {"status": "403", "data": {'msg': '请重新登录。'}}
        else:
            result = {"status": "403", "data": {'msg': '参数不足'}}
        return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

    def post(self, request):
        token = request.data.get('token')
        user_name = request.data.get('user_name')
        user_minzu = request.data.get('user_minzu')
        user_tel = request.data.get('user_tel')
        user_danwei = request.data.get('user_danwei')
        user_zhiwei = request.data.get('user_zhiwei')
        user_no = request.data.get('user_no')
        user_date = request.data.get('user_date')
        user_teshu = request.data.get('user_teshu')
        user_hujiadress = request.data.get('user_hujiadress')
        user_beizhu = request.data.get('user_beizhu')
        user_is_teshu = request.data.get('user_is_teshu')
        user_is_dangyuan = request.data.get('user_is_dangyuan')
        user_is_nongyehukou = request.data.get('user_is_nongyehukou')
        user_is_huzhu = request.data.get('user_is_huzhu')
        user_sex = request.data.get('user_sex')
        user_wenhua = request.data.get('user_wenhua')
        user_hunyin = request.data.get('user_hunyin')
        user_power = request.data.get('user_power')
        user_zhuhu_id = request.data.get('user_zhuhu_id')
        if token and user_zhuhu_id and user_name and user_minzu and user_tel and user_danwei and user_zhiwei and user_no and user_date and user_teshu 
and user_hujiadress and user_beizhu and user_sex and user_wenhua and user_hunyin and user_power: user = UserProfile.objects.filter(token=token).first() if user: if user.power == 4: old_user=UserProfile.objects.filter(mobile=user_tel).first() if old_user: result = {"status": "403", "data": {'msg': '新增用户失败,此手机号已被登记,请确认手机号是否正确。'}} return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8") else: had_user=UserProfile.objects.filter(no=user_no).first() if had_user: result = {"status": "403", "data": {'msg': '新增用户失败,此身份证号已被登记,请确认是否正确。'}} return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8") else: new_user = UserProfile() new_user.username = user_name new_user.password = '123' new_user.name = user_name new_user.minzu = user_minzu new_user.sex = int(user_sex) new_user.mobile=user_tel new_user.danwei=user_danwei new_user.zhiwei=user_zhiwei if user_is_dangyuan=='true': new_user.is_dangyuan=True else: new_user.is_dangyuan=False if user_is_nongyehukou=='true': new_user.hujixz=1 else: new_user.hujixz=2 new_user.huji=user_hujiadress new_user.wenhua=int(user_wenhua) new_user.hunyin=int(user_hunyin) new_user.no=user_no new_user.chusheng=datetime.date(*map(int, user_date.split('-')))#可能得从字符串转为日期型 if user_is_teshu=='true': new_user.is_teshu=True else: new_user.is_teshu=False new_user.teshu=user_teshu new_user.beizhu=user_beizhu new_user.power=int(user_power) zh=ZhuHu.objects.filter(id=int(user_zhuhu_id)).first() zh_name=zh.name dy=zh.dy dy_name=dy.name lou=dy.lou lou_name=lou.name pq=lou.pianqu pq_name=pq.name new_user.address=pq_name+lou_name+dy_name+zh_name new_user.save() new_u2z=UserToZhuHu() new_u2z.zhhu=zh new_u2z.user=new_user new_u2z.save() if user_is_huzhu=='true': zh.hz=new_user zh.save() if user_power=='2': dy.dyz=new_user dy.save() if user_power=='3': lou.lz=new_user lou.save() result = {"status": "200", "data": {'msg': '增加成功'}} else: result = {"status": "404", "data": {'msg': '非网格员'}} else: result = {"status": "403", "data": {'msg': '请重新登录。'}} else: result = {"status": "403", "data": {'msg': '参数不足'}} return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8") class DelUserView(APIView): """ 删除某个居民 """ def get(self, request): token = request.GET.get('token') user_id=request.GET.get('user_id') if token and user_id: user = UserProfile.objects.filter(token=token).first() if user: if user.power==4: UserProfile.objects.filter(id=int(user_id)).delete() result = {"status": "200", "data": {'msg': '删除成功'}} else: result = {"status": "404", "data": {'msg':'非网格员'}} else: result = {"status": "403", "data": {'msg': '请重新登录。'}} else: result = {"status": "403", "data": {'msg': '参数不足'}} return HttpResponse(json.dumps(result, ensure_ascii=False), content_type="application/json,charset=utf-8")

2.NewCenter.urls.py中

from django.urls import path
from .views import GetPianQuBannerView,GetNoticeListView,UserLoginView,UpPwdView,GetCaoZuoView,UpUserInfoView,EditPowerView,AddLouView,DelLouView,
AddDanyuanView,DelDanyuanView,AddZhuhuView,DelZhuhuView,AddUserView,DelUserView urlpatterns
= [ path('getbanner/',GetPianQuBannerView.as_view()),#手机端获取banner图 path('getnoticeclist/',GetNoticeListView.as_view()),#获取公告列表 path('userlogin/',UserLoginView.as_view()),#小程序用户登录 path('uppwd/',UpPwdView.as_view()),#用户修改密码 path('getcaozuo/',GetCaoZuoView.as_view()),#获取操作数据 path('upuserinfo/',UpUserInfoView.as_view()),#更新用户个人信息 path('editpower/',EditPowerView.as_view()),#查看网格长和网格员是否有编辑权 path('addlou/',AddLouView.as_view()),#get获取楼列表和网格员列表,post增加楼名 path('dellou/',DelLouView.as_view()),#删除某个楼 path('adddanyuan/',AddDanyuanView.as_view()),#post:增加单元或组 get:获取所有单元,以及所有单元长 path('deldanyuan/',DelDanyuanView.as_view()),#删除某个单元 path('addzhuhu/',AddZhuhuView.as_view()),#post:增加住户 get:获取所有住户 path('delzhuhu/',DelZhuhuView.as_view()),#删除某个住户 path('adduser/',AddUserView.as_view()),#post:增加居民 get:获取所有居民,所有住户,所有 住户To用户记录 path('deluser/',DelUserView.as_view()),#删除某个居民 ]

 

posted @ 2020-07-03 02:47  雪落忆海  阅读(190)  评论(0编辑  收藏  举报