Example #1
0
    def get(self, request, user_id, *args, **kwargs):
        try:

            user = User.objects.get(pk=user_id)
            roles = user.role.all()
            ret = []
            ids = list(roles.values('id'))
            for i in ids:
                ret.append(i['id'])
            fid = Role.objects.filter(~Q(id__in=ret)).values(
                'id', 'code', 'name')

            ser2 = RoleSerializer(instance=fid, many=True)
            # todo 判断查询条件查询数据库是否为空
            if roles.exists():

                ser = RoleSerializer(instance=roles, many=True)

                return restful.result(message="查询成功",
                                      role2=ser.data,
                                      role=ser2.data)
            else:
                rets = self.list(request, *args, **kwargs)
                return restful.result(message="查询成功,当前用户无角色,请为用户添加角色",
                                      role=rets.data)
        except Exception as e:
            ip_username(request)
            return restful.result2(message="查询失败,id传输错误",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #2
0
    def get(self, request, role_id, *args, **kwargs):
        try:
            role = Role.objects.get(pk=role_id)
            menus = role.menu.all()
            ret = []
            ids = list(menus.values('id'))

            for i in ids:
                ret.append(i['id'])
            fid = Menu.objects.filter(~Q(id__in=ret)).values(
                'id', 'parent_id', 'name', 'code', 'type', 'layer')

            ser2 = MenuSerializer(instance=fid, many=True)

            # todo 判断当前查询条件是否为空
            if menus.exists():
                ser = MenuSerializer(instance=menus, many=True)
                return restful.result(message="查询成功",
                                      role2=ser.data,
                                      role=ser2.data)
            else:
                rets = self.list(request, *args, **kwargs)
                return restful.result(message="查询成功,当前角色无菜单,请为角色添加菜单",
                                      role=rets.data)
        except Exception as e:
            ip_username(request)
            return restful.result(message="role_id传入错误,请检查",
                                  kwargs=logger.error(e.args),
                                  data=e.args)
Example #3
0
    def post(self, request, *args, **kwargs):
        try:
            # eavl 将字符串转换为列表

            if "," in request.data["role_id"]:
                roles = Role.objects.filter(
                    id__in=eval(request.data["role_id"]))
            else:
                roles = Role.objects.filter(id=request.data["role_id"])

            if "," in request.data["user_id"]:
                users = User.objects.filter(
                    id__in=eval(request.data["user_id"]))

            else:
                users = User.objects.filter(id=request.data["user_id"])

            for user in users:
                # 设置角色之前,先查询当前用户对应的所有角色,进行删除,然后在插入。
                user.role.set([])  # 删除
                user.role.set(roles)  # 插入
            return restful.result(message="操作成功")
        except Exception as e:
            ip_username(request)
            return restful.result2(message="操作失败",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #4
0
def my_login(request):
    if request.method == "GET":
        return render(request, 'auth/auth.html')
    else:
        form = LoginForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('pwd')
            next = form.cleaned_data.get("next")
            if next:
                next_url = next.split("=")[1]
            else:
                next_url = ""
            user = authenticate(request, username=username, password=password)
            # print("user",user)
            if user:
                login(request, user)
                request.session.set_expiry(None)
                data = {"next_url": next_url}
                return restful.result(data=data)
            else:
                return restful.noauth(message="用户名或者密码错误!")
        else:
            print(form.get_error())
            return restful.paramserror(form.get_error())
Example #5
0
def new_order(request):
    form = NewOrderForms(request.POST)
    if form.is_valid():
        which_time = form.cleaned_data.get("which_time")
        which_date = form.cleaned_data.get("which_date")
        person_nums = form.cleaned_data.get("person_nums")
        order_tel = form.cleaned_data.get("order_tel")
        order_info = form.cleaned_data.get("order_info")
        goods_pk = form.cleaned_data.get("goods_pk")

        if which_time == "time-am":
            which_time = "上午场"
        else:
            which_time = "下午场"

        if order_tel == '0':
            order_tel = request.user.telephone

        goods = Goods.objects.get(pk=int(goods_pk))
        prices = goods.prices.strip("¥")
        amount = int(prices) * int(person_nums)

        goods_order = GoodsOrder.objects.create(goods=goods, buyer=request.user, which_time=which_time,
                                                which_date=which_date, person_nums=person_nums, amount=amount,
                                                order_info=order_info, order_tel=order_tel, isdeal=1)

        return restful.result(data={"order_id": goods_order.pk})
    else:
        print("fail")
        return restful.params_error(message=form.errors)
Example #6
0
    def post(self, request, *args, **kwargs):
        try:
            # eavl 将字符串转换为列表

            if "," in request.data["role_id"]:
                roles = Role.objects.filter(
                    id__in=eval(request.data["role_id"]))
            else:
                roles = Role.objects.filter(id=request.data["role_id"])

            if "," in request.data["menu_id"]:
                menus = Menu.objects.filter(
                    id__in=eval(request.data["menu_id"]))

            else:
                menus = Menu.objects.filter(id=request.data["menu_id"])

            for role in roles:
                # 设置权限之前,先查询当前角色对应的所有权限,进行删除,然后在插入。
                role.menu.set([])  # 删除
                role.menu.set(menus)  # 插入
            return restful.result(message="操作成功")
        except Exception as e:
            ip_username(request)
            return restful.result2(message="操作失败",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #7
0
 def post(self, request):
     # self.dispatch()
     try:
         username = request.data['username']
         pwd = request.data['password']
         user = authenticate(request, username=username, password=pwd)
         if user.check_password(pwd):
             login(request, user)
         else:
             return restful.params_error_400("用户名和密码不对")
         # 为用户创建token
         token = md5(user.username)
         # 创建获取时间
         expr = time_add_min(constant.TOKEN_EXPR_MIN)
         # 存在就更新,不存在就创建
         base_model.UserToken.objects.update_or_create(user=user,
                                                       defaults={
                                                           'token': token,
                                                           'expr': expr
                                                       })
         ret = {'token': token, 'expr': expr}
         return restful.result(message="登录成功", data=ret)
     except Exception as e:
         print(e)
         return restful.server_error_500("系统错误!")
Example #8
0
def upload_img_file(request):
    file = request.FILES.get('file')
    name = file.name
    with open(os.path.join(settings.MEDIA_ROOT, name), 'wb') as fp:
        for chunk in file.chunks():
            fp.write(chunk)
    url = request.build_absolute_uri(settings.MEDIA_URL + name)
    return restful.result(data={'url': url})
Example #9
0
 def get(self, request, *args, **kwargs):
     try:
         ret = self.list(request, *args, **kwargs)
         return restful.result(message="操作成功", data=ret.data)
     except Exception as e:
         ip_username(request)
         return restful.result2(message="操作失败",
                                kwargs=logger.error(e.args),
                                data=e.args)
Example #10
0
def write_comment_view(request):
    page = int(request.GET.get('p', 1))
    start = (page - 1) * settings.ONE_PAGE_SCENE_COMMENT_COUNT
    ends = start + settings.ONE_PAGE_SCENE_COMMENT_COUNT

    comments = Comment.objects.select_related('author').all()[start:ends]
    serializer = CommentSerializer(comments, many=True)
    data = serializer.data

    return restful.result(data=data)
Example #11
0
 def get(self, request):
     try:
         # 删除当前用户对应的token
         UserToken.objects.get(user_id=request.user.id).delete()
         # 调用django的登出方法
         logout(request)
         return restful.result("登出成功")
     except Exception as e:
         print(e)
         return restful.server_error_500("系统错误!")
Example #12
0
    def post(self, request, *args, **kwargs):

        try:
            ret = self.create(request, *args, **kwargs)
            return restful.result(message="保存成功")
        except Exception as e:
            ip_username(request)
            return restful.result2(message="操作失败",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #13
0
 def patch(self, request, id):
     try:
         ret = Role.objects.filter(pk=id).first()
         ser = RoleSerializer(instance=ret, many=False)
         return restful.result(data=ser.data)
     except Exception as e:
         ip_username(request)
         return restful.result2("操作失败",
                                kwargs=logger.error(e.args),
                                data=e.args)
Example #14
0
 def get(self, request, *args, **kwargs):
     # todo 创建用户
     # User.objects.create_user("dading","1")
     try:
         ret = self.list(request, *args, **kwargs)
         return restful.result(message="操作成功", data=ret.data)
     except Exception as e:
         ip_username(request)
         return restful.result2(message="操作失败",
                                kwargs=logger.error(e.args),
                                data=e.args)
Example #15
0
    def patch(self, request, id):
        try:

            ret = User.objects.filter(pk=id).first()
            ser = UserSerializer(instance=ret, many=False)
            return restful.result(message="查询成功", data=ser.data)
        except Exception as e:
            ip_username(request)
            return restful.result2(message="传输id有误",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #16
0
def add_banner(request):
    form = AddBannerForm(request.POST)
    if form.is_valid():
        priority = form.cleaned_data.get('priority')
        image_url = form.cleaned_data.get('image_url')
        link_to = form.cleaned_data.get('link_to')
        banner = Banner.objects.create(priority=priority,
                                       image_url=image_url,
                                       link_to=link_to)

        return restful.result(data={"banner_id": banner.pk})
    else:
        print("创建轮播图模型错误")
        return restful.params_error(message=form.get_errors())
Example #17
0
def imgOcr(request):
    imgurl = request.POST.get("imgurl")
    img_filename = imgurl.split("/")[-1]
    txt_filename = img_filename.split(".")[0] + '.txt'
    file_path = os.path.join(settings.MEDIA_ROOT, img_filename)
    txturl = request.build_absolute_uri(settings.MEDIA_URL + txt_filename)
    respDict = imgOCrApi(file_path)
    wordslist = []
    context = ""
    if respDict['words_result']:
        for item in respDict['words_result']:
            wordslist.append(item['words'])
            context = "".join(wordslist)
            with open(os.path.join(settings.UEDITOR_UPLOAD_PATH, txt_filename),
                      'w') as fp:
                fp.write(context)
        print(context)
        return restful.result(data={
            'context': context,
            't_filename': txt_filename
        })
    else:
        return restful.result(data={'context': context})
Example #18
0
def goods_list(request):
    # 通过p参数来获取第几页的数据
    # 并且P参数通过查询字符串的方式传过来的/scene/list/?p=2
    page = int(request.GET.get('p', 1))
    start = (page - 1) * settings.ONE_PAGE_SCENE_GOODS_COUNT
    ends = start + settings.ONE_PAGE_SCENE_GOODS_COUNT
    goods = Goods.objects.all()[start:ends].values()
    for good in goods:
        good['feature_info'] = re.sub(r'<.*?>', '', good['feature_info'])
        good['feature_info'] = good['feature_info'].replace('\n',
                                                            '')[:30] + "..."

    serializer = GoodsSerializer(goods, many=True)
    data = serializer.data

    return restful.result(data=data)
Example #19
0
 def post(self, request, *args, **kwargs):
     print(request.data)
     try:
         # 判断是否为一级菜单,parent_id为0标识一级菜单
         if request.data["parent_id"] == 0:
             # 查询编码值最大的一级菜单,设置以及菜单的编码和排序字段
             firstLevelMenu = Menu.objects.filter(
                 parent_id=0).order_by("-code").first()
             # print(connection.queries)
             if firstLevelMenu:
                 code_num = int(firstLevelMenu.code) + 1
                 code = "%03d" % code_num
                 order_num = firstLevelMenu.order_num + 5
             else:
                 code = "001"
                 order_num = 1
             request.data["code"] = code
             request.data["order_num"] = order_num
             request.data["layer"] = 1
             # print(code)
             # print(order_num)
         else:
             # 查询父级菜单
             parentNenu = Menu.objects.get(id=request.data["parent_id"])
             # 其他层级的菜单,查询同一个父亲的菜单
             brotherMenu = Menu.objects.filter(
                 parent_id=parentNenu.id).order_by("-code").first()
             if brotherMenu:
                 code_num = int(brotherMenu.code[-3:]) + 1
                 code = brotherMenu.code[:-3] + "%03d" % code_num
                 order_num = brotherMenu.order_num + 5
             else:
                 code = parentNenu.code + "001"
                 order_num = 1
             request.data["code"] = code
             request.data["order_num"] = order_num
             request.data["layer"] = parentNenu.layer + 1
         request.data["perms"] = request.data["code"]
         ret = self.create(request, *args, **kwargs)
         # return restful.result(message="保存成功",data=ret.data)
         return restful.result(message="保存成功")
     except Exception as e:
         ip_username(request)
         return restful.result2(message="操作失败",
                                kwargs=logger.error(e.args),
                                data=e.args)
Example #20
0
    def get(self, request):
        # self.dispatch()

        try:
            username = request.user.get_username()
            # login(request, request.user)
            # 为用户创建token
            token = md5(username)
            # 创建获取时间
            expr = time_add_min(constant.TOKEN_EXPR_MIN)
            # 存在就更新,不存在就创建
            base_model.UserToken.objects.update_or_create(user=request.user,
                                                          defaults={
                                                              'token': token,
                                                              'expr': expr
                                                          })
            ret = {'token': token, 'expr': expr}
            return restful.result(message="登录成功", data=ret)
        except Exception as e:
            print(e)
            return restful.server_error_500("系统错误!")
Example #21
0
    def get(self, request):
        try:

            user_id = request.GET.get("user_id")
            if not user_id:
                user_id = request.user.id

            menus = Menu.objects.filter(roles__users__id=user_id).distinct()

            if menus.count() == 0:
                print("请为用户添加角色")
                return restful.result2(message="当前用户无角色,请联系管理员")
            else:

                ser = MenuSerializer(instance=menus, many=True)
                return restful.result(message="查询成功", data=ser.data)
        except Exception as e:
            ip_username(request)
            return restful.result2(message="操作失败",
                                   kwargs=logger.error(e.args),
                                   data=e.args)
Example #22
0
def banner_list(request):
    banners = Banner.objects.all()
    serializer = BannerSerializer(banners, many=True)
    return restful.result(data=serializer.data)