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")