def obtain_menu(self, params: MenusRequestParam): """ 获取菜单 :param params: :return: """ query_dict: dict = params.obtain_dict() if params.id: query_dict['id'] = params.id menu = Menu.objects.filter(**query_dict).first() if not menu: raise ParamError(CODE_10012) menu_vo = MenuVO(menu=menu) if menu_vo.parent_id: pm = Menu.objects.filter(id=menu_vo.parent_id) menu_vo.parent_menu = utils.obj_to_dict( pm, lambda obj: MenuVO(menu=obj)) return utils.obj_to_dict(menu, lambda obj: MenuVO(menu=obj))
def ajax_update_user(request: HttpRequest): """更新用户""" resp = Resp() try: result = BdUserService().update_user(params=UserRequestParam(request)) resp.success(result) except BaseError as e: logger.error('update user fail: %s', e) resp.fail_error(e) except Exception as e: logger.error('update user error: %s', e) resp.fail(CODE_99999) return JsonResponse(utils.obj_to_dict(resp), encoder=CustomerEncoder)
def ajax_obtain_page_users(request: HttpRequest): """获取用户分页列表数据""" resp = Resp() try: result = BdUserService().obtain_page_users(params=UsersRequestParam(request)) resp.success(data=result) except BaseError as e: logger.error('obtain page users fail: %s', e) resp.fail_error(e) except Exception as e: logger.error('obtain page users error: %s', e) resp.fail(CODE_99999) return JsonResponse(utils.obj_to_dict(resp), encoder=CustomerEncoder)
def ajax_add_menu(request: HttpRequest): """添加菜单""" resp = Resp() try: result = BdMenuService().add_menu(params=MenusRequestParam(request)) resp.success(data=result) except BaseError as e: logger.error('add menu fail: %s', e) resp.fail_error(e) except Exception as e: logger.error('add menu error: %s', e) resp.fail(CODE_99999) return JsonResponse(utils.obj_to_dict(resp), encoder=CustomerEncoder)
def ajax_obtain_all_menus(request: HttpRequest): """获取所有菜单""" resp = Resp() try: result = BdMenuService().obtain_all_menus() resp.success(data=result) except BaseError as e: logger.error('obtain all menus fail: %s', e) resp.fail_error(e) except Exception as e: logger.error('obtain all menus error: %s', e) resp.fail(CODE_99999) return JsonResponse(utils.obj_to_dict(resp), encoder=CustomerEncoder)
def ajax_obtain_role(request: HttpRequest): """获取单个角色""" resp = Resp() try: result = BdRoleService().obtain_role(params=RoleRequestParam(request)) resp.success(data=result) except BaseError as e: logger.error('obtain role fail: %s', e) resp.fail_error(e) except Exception as e: logger.error('obtain role error: %s', e) resp.fail(CODE_99999) return JsonResponse(utils.obj_to_dict(resp), encoder=CustomerEncoder)
def obtain_user(self, params: UserRequestParam): """ 获取单个用户 :param params: :return: """ query_dict: dict = params.obtain_dict() if params.id: query_dict['id'] = params.id user = User.objects.filter(**query_dict).first() if not user: raise ParamError(CODE_10010) user_vo = UserVO(user=user) roles = Role.objects.filter(del_status=False, userrole__user=user) user_vo.roles = utils.objs_to_dicts(roles, lambda obj: RoleVO(role=obj)) return utils.obj_to_dict(user_vo)
def obtain_role(self, params: RoleRequestParam): """ 获取单个角色 :param params: :return: """ query_dict: dict = params.obtain_dict() if params.id: query_dict['id'] = params.id role = Role.objects.filter(**query_dict).first() if not role: raise ParamError(CODE_10011) role_vo = RoleVO(role=role) menus = Menu.objects.filter(del_status=False, rolemenu__role=role) role_vo.menus = utils.objs_to_dicts(menus, lambda obj: MenuVO(menu=obj)) return utils.obj_to_dict(role_vo)
def add_user(self, params: UserRequestParam): """ 添加用户 :param params: :return: """ params.validate() self.__validate_unique(params) now = timezone.now() create_dict: dict = params.obtain_dict() create_dict['create_time'] = now create_dict['update_time'] = now user = User.objects.create(**create_dict) user.save() # 添加角色关联关系 for role_id in params.roles: UserRole.objects.create(user=user, role_id=role_id, create_time=now) return utils.obj_to_dict(user, lambda obj: UserVO(user=obj))