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

OSCHINA-MIRROR/duzilin-Lin

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Данный проект является тренировочным проектом автора, созданным год назад, и больше не обновляется. Он предоставляется для изучения и использования.

Ранее два друга также сделали пожертвования проекту. Большое спасибо!

Проект:

Данный проект основан на SpringBoot и нацелен на автоматизацию офисной работы. На текущем этапе он объединяет Spring MVC, Shiro, MyBatis и Thymeleaf, а также другие распространённые фреймворки. Проект включает в себя управление пользователями, отделами, уведомлениями, журналами, закладками, ролями, меню, отпусками и их одобрением, а также генерацию кода.

  • По умолчанию используется учётная запись администратора с именем ttt и паролем ttt.

Функции:

  1. Управление пользователями.
  2. Модуль управления отделами.
  3. Управление уведомлениями.
  4. Изменение пароля.
  5. Журнал входа.
  6. Операционный журнал.
  7. Закладки.
  8. Управление ролями.
  9. Отпуск.
  10. Одобрение отпуска.
  11. Генерация кода.

★ После добавления пользователя пароль по умолчанию устанавливается как 111111.

★ Если пользователь сбрасывает свой пароль, то по умолчанию ему устанавливается пароль 111111.

★ Когда отдел расформировывается, все пользователи этого отдела автоматически получают статус «не распределён».

★ При удалении роли все пользователи этой роли автоматически становятся обычными пользователями.

★ Можно настроить отображаемые меню через роли.

Видеоматериалы:

Импорт проекта. Руководство по использованию. Генерация кода.

Особенности проекта:

  1. Основан на Spring Boot, что упрощает конфигурацию и зависимости Maven.

  2. Система регистрации журналов записывает действия пользователей, такие как вход, выход и операции. С помощью аннотации @BizLog и функции AOP в Spring регистрируются конкретные бизнес-операции пользователей, включая вход и выход. Журналы можно скачать в формате Excel для удобства просмотра.

  3. Использование Thymeleaf делает HTML-код более понятным.

  4. Управление ролями позволяет настраивать меню для разных отделов, косвенно управляя правами доступа.

  5. После создания таблицы класс LinGenerater может генерировать код, включающий HTML, JS, Dao, Service, Controller и т. д. Этот код можно скопировать в проект и использовать напрямую.

Конфигурация файла в стиле javabean:

В Lin отказались от традиционных XML-файлов конфигурации, сделав файлы конфигурации более понятными и лаконичными. Ниже приведён фрагмент из файла конфигурации Shiro:

@Configuration
public class ShiroConfig {
    /**
     * 安全管理器
     * @param rememberMeManager
     * @return
     */
    @Bean
    public DefaultWebSecurityManager securityManager(CookieRememberMeManager rememberMeManager){
        DefaultWebSecurityManager securityManager = new DefaultWebSecurityManager();
        securityManager.setRememberMeManager(rememberMeManager);
        securityManager.setRealm(this.shiroDbRealm());
        return securityManager;
    }
 
    @Bean
    public ShiroDbRealm shiroDbRealm(){
        return new ShiroDbRealm();
    }

Генерация кода:

Проект использует генератор Mybatis Plus для создания Bean и Dao. Velocity используется для генерации Controller, Service, ServiceImpl, HTML и JS файлов. После создания новой таблицы в базе данных, файлы кода могут быть сгенерированы на основе этой таблицы, реализуя базовые функции отображения таблиц, вставки, обновления, удаления и поиска, которые можно сразу же использовать, скопировав в проект. Также можно добавить данные меню в базу данных, чтобы увидеть эту страницу меню в проекте.

    public static void main(String[] args) throws IOException {
//      参数为表名
        LinGenerater lg = new LinGenerater("thing");
//      此方法可以 генерировать код
        lg.execute();
//      Этот метод может вставлять данные меню
        lg.insertMenu("thing", "Тестирование генерации", "globe");
    }   

Регистрация журнала:

Регистрация журналов осуществляется через аспектно-ориентированное программирование (AOP) с использованием класса LogAop. Все методы, содержащие аннотацию @BizLog, подвергаются AOP-внедрению. Значение свойства value в аннотации используется для получения действий пользователя и упаковки их в класс журнала. Затем данные асинхронно сохраняются в базе данных с помощью класса ScheduledThreadPoolExecutor.

    @Pointcut("@annotation(com.du.lin.annotation.BizLog)")
    public void logCut() {

    }

Использование Thymeleaf для упрощения HTML-кода:

Ниже приведён фрагмент кода для реализации функции закладок. На стороне сервера:

     List<Memo> list = service.getUserMemoList();
     request.setAttribute("memolist", list);

На стороне клиента HTML:

      <li th:each="memo,memoStat:${memolist}">
         <div>
           <small th:text="${memo.time}"></small>
              <small th:text="${memo.time}"></small>
                 <h4 th:text="${memo.title}"></h4>
                    <p th:text="${memo.text}"></p>
                      <a th:id="${memo.id}" onclick="deletememodialog(this)">   
                          <i class="fa fa-trash-o "></i></a>
                        </div>
                    </li>

Используемые фреймворки:

Фронтенд:

  1. Bootstrap.
  2. jQuery.
  3. jqGrid.
  4. jstree.
  5. SweetAlert.

Бэкенд:

  1. SpringBoot.
  2. MyBatis Plus.
  3. Spring.
  4. Thymeleaf.
  5. Ehcache.
  6. Kaptcha.
  7. Shiro.
  8. Velocity.

Скриншоты проекта:

Интерфейс входа: Интерфейс входа. Интерфейс управления пользователями: Интерфейс управления пользователями. Интерфейс управления уведомлениями: Интерфейс управления уведомлениями. Интерфейс журнала входа: Интерфейс журнала входа. Изменение пароля: Изменение пароля. Интерфейс закладок: Интерфейс закладок. Управление ролями: Управление ролями}.

Комментарии ( 0 )

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

Введение

Lin разрабатывает систему на основе SpringBoot. Цель проекта — реализовать бэкенд для управления компанией и частично автоматизировать работу офиса. На текущем этапе разработки система интегрирует springmvc, shiro, mybatis и Thymeleaf, а также другие распространённые фреймворки. Система включает в себя управление пользователями, отделами, уведом... Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/duzilin-Lin.git
git@api.gitlife.ru:oschina-mirror/duzilin-Lin.git
oschina-mirror
duzilin-Lin
duzilin-Lin
master