前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14.普通用户、网格长、网格员,操作数据(1)后端部分

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

作者头像
玩蛇的胖纸
发布2020-07-03 10:42:42
4340
发布2020-07-03 10:42:42
举报

1.在后端NewCenter

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

代码语言:javascript
复制
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中

代码语言:javascript
复制
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()),#删除某个居民
]
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-07-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.在后端NewCenter
    • 1.apps/user_operations/views.py中新建增删查:楼、单元、住户、用户的类:
      • 2.NewCenter.urls.py中
      相关产品与服务
      云开发 CloudBase
      云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档