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()),#删除某个居民 ]