1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/cmdshare-cmdAdmin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 12 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 01.12.2024 10:25 e88dfd9

На основе SpringBoot+SpringMVC+MybatisPlus распределённая система быстрой разработки программного обеспечения, поддерживающая SAAS.

Предназначена для создания комплексных решений корпоративного уровня для малых и средних предприятий.

Архитектура системы:

  • cmdAdmin — это распределённая микросервисная система быстрой разработки на основе Spring Cloud Alibaba. Поддерживает SAAS и предоставляет набор общих микросервисов, включая управление пользователями, управление правами доступа к ресурсам и другие модули. Является основой для разработки серверных приложений.
  • Код написан лаконично, архитектура ясная, подходит для изучения и непосредственного использования в проектах.
  • Используются основные компоненты Spring Boot 2.2.7 и Spring Cloud, Nacos для регистрации и настройки центра, Sentinel для защиты от перегрузок, Dubbo для удалённого вызова, Activiti для рабочих процессов, динамические формы и динамические рабочие процессы, а также рабочие процессы с выпадающим списком выбора представителей. Фронтенд реализован с использованием vue-element-admin.

Установка:

  1. Установите Redis, JDK, Maven.
  2. Установите Nacos и импортируйте файлы из папки doc в базу данных SQL.
  3. Запустите шлюз, модули admin, log и workflow.

Использование:

Если у вас есть вопросы, вы можете присоединиться к группе QQ: 951379340.

  1. Суперпользовательский аккаунт: 13455555555/123456. Не участвует в бизнес-процессах, только управляет арендаторами и меню.
  2. Арендатор 1: 13468935090/123456.

Основные функции:

— Демонстрация: http://43.142.119.227/. — Центр пользователей: * Управление пользователями: настройка параметров пользователя, пароль по умолчанию после создания пользователя — cmd.c0m. * Пользователи онлайн: подсчёт количества активных пользователей. * Ролевое управление: назначение разрешений и меню в соответствии с отделами. * Организационная структура отделов: возможность настройки структуры организации. — Системный центр: * Меню управления: реализована динамическая маршрутизация меню, поддерживается многоуровневое меню. * Словарь управления: поддержка управления часто используемыми данными, такими как пол. * Хранилище управления: запись и хранение прикреплённых файлов. * Конфигурация форм: использование генератора форм для создания форм. * Управление данными: централизованное управление данными динамических форм. — Журнал центра: * Ведение журнала: регистрация действий пользователей и исключений. * ELK журнал: не реализовано. — Рабочий процесс центра: * Управление рабочим процессом: создание рабочих процессов вручную. * Задачи на рассмотрении: текущие задачи на рассмотрение. * Отпускные заявки: динамическая настройка, просмотр конфигурации форм. * Финансовые заявки: динамическая настройка, просмотр конфигурации форм.

Структура проекта:

— cmdAdmin-common — общие модули системы, содержащие различные инструменты и общую конфигурацию. — cmdAdmin-gateway — уровень шлюза, через который проходят все входящие запросы. — cmdAdmin-modules — модули системы.

  • cmdAdmin-modules-admin — базовый модуль.
  • cmdAdmin-modules-log — модуль журнала.
  • cmdAdmin-modules-workflow — модуль рабочего процесса. — cmdAdmin-rpc — удалённые вызовы. — cmdadmin-template — фронтенд.

Запуск проекта:

  1. Установка Redis: https://www.runoob.com/redis/redis-install.html.
  2. Установка Nacos: https://nacos.io/zh-cn/docs/quick-start.html.
  3. Создание базы данных cmdadmin и импорт SQL-скриптов из папки db.
  4. Откройте Nacos, перейдите в раздел «Конфигурация» → «Список конфигураций» → «Импортировать конфигурацию» из zip-файла в папке doc. В списке появится конфигурация.
  5. Измените конфигурацию в файле cmdAdmin-modules-admin-dev.yml в разделе master, чтобы настроить параметры базы данных. Раздел slave должен быть отключен (enabled = false). Если необходимо включить, измените также параметры подключения к базе данных. Остальные модули настраиваются аналогичным образом. Адрес реестра — адрес Nacos.
  6. Запустите cmdAdmin-gateway и cmdAdmin-modules-admin, чтобы войти в систему и использовать базовые функции.
  7. Запустите cmdadmin-template: npm install, npm run dev. ### Пользовательский класс исключений

Общие исключения

Исключения CmdException используются для обработки общих исключений.

/**
* @author cmd
* @date 2020-11-23 Общая обработка исключений
*/
@Getter
public class CmdException extends RuntimeException {

    /**
    *
    */
    private static final long serialVersionUID = 1L;
    private Integer status = BAD_REQUEST.value();

    public CmdException(String msg) {
        super(msg);
    }

    public CmdException(Integer status, String msg) {
        super(msg);
        this.status = status;
    }
    public CmdException(BusinessEnum bus) {
      super(bus.getMsg());
      this.status = bus.getStatus();
    }
}

Глобальная обработка исключений

Используется глобальный обработчик исключений @RestControllerAdvice для обработки отправленных запросов на исключение.

  • @RestControllerAdvice: по умолчанию будет сканировать все аннотации @RequestMapping в указанном пакете.

  • @ExceptionHandler: можно фильтровать и перехватывать условия с помощью свойства value аннотации @ExceptionHandler.

  /\*\*

  - Обработчик исключений
  -
  - @author cmd
  - @date 2020  11  28  下午 11:22:48
    \*/

  @Slf4j
  @RestControllerAdvice
  public class GlobalExceptionHandler {

      /**
      * Обработка всех неизвестных исключений
      */
      @ExceptionHandler(Throwable.class)
      public ResponseEntity<CmdError> handleException(Throwable e) {
        // Печать стека вызовов
        log.error(ThrowableUtil.getStackTrace(e));
        return buildResponseEntity(CmdError.error(e.getMessage()));
      }

      /**
      * Обработка пользовательских исключений
      */
      @ExceptionHandler(value = CmdException.class)
      public ResponseEntity<CmdResponse> badRequestException(CmdException e) {
        CmdResponse response = new CmdResponse();
        response.setCode(e.getStatus());
        response.setMessage(e.getMessage());
        return ResponseEntity.ok(response);
      }

      /**
        * Исключение проверки параметров интерфейса
        *
        * @param e
        * @return
        */
        @ExceptionHandler(value = MethodArgumentNotValidException.class)
        public ResponseEntity<CmdResponse> methodArgumentNotValidException(MethodArgumentNotValidException e) {
            List<FieldError> bindingResult = e.getBindingResult().getFieldErrors();
            StringBuilder sb = new StringBuilder();
            for (FieldError fieldError : bindingResult) {
                sb.append(fieldError.getDefaultMessage()).append(";");
            }
            CmdResponse response = new CmdResponse();
        response.setCode(100);
        response.setMessage(sb.toString());
            return ResponseEntity.ok(response);
        }


      /**
      * Унифицированный ответ
      */
      private ResponseEntity<CmdError> buildResponseEntity(CmdError CmdError) {
        return new ResponseEntity<>(CmdError, HttpStatus.valueOf(CmdError.getStatus()));
      }
    }

Использование

// Общее исключение
throw new CmdException("Системное напоминание");
// Общее исключение, использование пользовательского кода состояния
throw new CmdException(402, "Системное напоминание");

Системный журнал

В этой системе используется AOP для записи журналов операций пользователей. Нужно только использовать аннотацию @Log("") в методе контроллера, чтобы записать операции пользователя в базу данных.

Конкретное использование:

@Log("Удаление пользователя")
@CmdAdmin({"admin","user:delete"})
@DeleteMapping
public ResponseEntity<CmdResponse> delete(@RequestBody String[] ids)  {
  userService.delete(ids);
  CmdResponse response = new CmdResponse();
  response.setMessage(BusinessEnum.DELETE_SUCCESS.getMsg());
  return ResponseEntity.ok(response);
}

Центр журнала страниц может отображать журналы операций и журналы исключений. Изображения не несут текстовой информации, поэтому их перевод невозможен.

В запросе приведены ссылки на изображения с пометкой «屏幕截图.png», что в переводе означает «скриншот экрана». Вероятно, это скриншоты из какого-то технического документа или инструкции.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/cmdshare-cmdAdmin.git
git@api.gitlife.ru:oschina-mirror/cmdshare-cmdAdmin.git
oschina-mirror
cmdshare-cmdAdmin
cmdshare-cmdAdmin
master