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

OSCHINA-MIRROR/tinaroot-pigs-blog

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

pigs-blog

Группа для обсуждения проекта

Присоединиться к группе [PIGS-BLOG блог общения] (ID группы: 975875276)

Официальное запуск

Ссылка на демонстрацию

Способ коммита в Git

feat: новая функциональность (новый функционал)

fix: исправление ошибки

docs: документация (документирование)

style: форматирование (изменение, которое не влияет на выполнение кода)

refactor: рефакторинг (не добавляет новых функций, а также не исправляет ошибки)

test: добавление тестов

chore: изменения в процессе сборки или вспомогательных инструментах

Введение

Фронтенд системы блога

Множественные модули Spring Boot

    Модель model

    Уровень хранения данных persistence

    Представление web

    Инструментальная библиотека util

    Web зависит от persistence

    Persistence зависит от model
    
    Model зависит от util

    Связь: web -> persistence -> model -> util

Подсказки информации

Способ вызова:

$('.btn-success').on('click', function(){
     $.message('Успешно');
});

$('.btn-danger').on('click', function(){
     $.message({
         message: 'Неудачное сообщение',
         type: 'error'
     });
});

$('.btn-warning').on('click', function(){
     $.message({
         message: 'Предупреждение',
         type: 'warning'
     });
});

$('.btn-info').on('click', function(){
     $.message({
         message: 'Информационное уведомление',
         type: 'info'
     });
});

Подробное описание параметров:

message: 'Операция успешна', // сообщение

time: '2000', // время показа (по умолчанию: 2 секунды)

type: 'success', // тип сообщения, четыре типа: success, error, info, warning showClose: false, // показывать кнопку закрытия (по умолчанию: нет) autoClose: true // автоматически закрывать (по умолчанию: да)

Сохранение значений Redis и получение значений

/**
 * Добавление пользователя
 * Сохранение ID пользователя в Redis
 * @param userEntity
 * @return
 */
@Override
public Integer saveUser(UserEntity userEntity) {
    Integer insert = userMapper.insert(userEntity);
    if (insert > 0) {
        redisUtil.sSet("userId", userEntity.getId());
        redisUtil.set("user:" + userEntity.getId(), userEntity);
    }
    return insert;
}

/**
 * Обновление пользователя
 * Получение информации о пользователе по его ID для обновления
 * @param userEntity
 * @return
 */
@Override
public Integer updateUser(UserEntity userEntity) {
    Integer updateById = userMapper.updateById(userEntity);
    if (updateById > 0) {
        redisUtil.set("user:" + userEntity.getId(), userEntity);
    }
    return updateById;
}

/**
 * Поиск полной информации о пользователе
 * Если информация о пользователе не найдена, она будет получена из MySQL
 * @return
 */
@Override
public List<UserEntity> queryUser() {
    Set<Object> userId = redisUtil.sGet("userId");
    Set<Object> objects = redisUtil.sGet("user:" + userId);

    List<UserEntity> userEntityList = userMapper.selectList(null);
    if (userEntityList.size() > 0) {
        System.out.println("Данные из MySQL=" + userEntityList);

        for (UserEntity userEntity : userEntityList) {
            redisUtil.set("user:" + userEntity.getId(), userEntity);
        }
    }

    return userEntityList;
}

/**
 * Удаление пользователя по ID и удаление ID пользователя из Redis
 *
 * @param userId
 * @return
 */
@Override
public Integer delUser(Integer userId) {
    Integer deleteById = userMapper.deleteById(userId);
    if (deleteById > 0) {
        Long delete = redisUtil.delete("user:" + String.valueOf(userId));
    }
    return deleteById;
}

Проект: обзор и анализ

1.1 Контекст проекта

Хочется создать свой сайт уже давно. Со временем понимание вещей стало глубже, поэтому выбором текущего проекта стала система личного блога. Шаблон фронта взят с интернета, за что хочу поблагодарить всех авторов открытых проектов. Этот проект используется исключительно для обучения...

1.2 Анализ

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

  1. Управление пользователями: регистрация и вход пользователей, публикация статей и комментариев.

  2. Управление статьями: возможность публиковать и настраивать статьи на сайте.

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

  4. Управление категориями: добавление и удаление категорий, назначение категории статьям.

  5. Управление метками: добавление и удаление меток, назначение меток статьям.

  6. Управление правами доступа: добавление прав доступа пользователям, CRUD операции.

  7. Управление ролями: добавление ролей пользователям, CRUD операции.

1.3 Функции системы

1.3.1 Управление пользователями

Основная информация о пользователе включает следующие поля: ID пользователя, IP адрес пользователя, имя пользователя, никнейм пользователя, пароль пользователя, электронная почта пользователя, аватар пользователя, дата регистрации, день рождения пользователя, возраст пользователя, номер телефона пользователя.

При регистрации пользователя требуется указать имя пользователя, пароль пользователя, электронную почту или номер телефона.

При входе в систему пользователи могут использовать имя пользователя, электронную почту или номер телефона.

Пользователи могут публиковать статьи, комментарии и ответы, а также добавлять других пользователей в друзья.

1.3.2 Управление статьями

Основная информация о статьях включает следующие поля: ID статьи, дата публикации, автор статьи, заголовок статьи, содержание статьи, количество лайков, количество комментариев, количество просмотров.

Статьи могут быть созданы, изменены и удалены обычными пользователями, но изменения и удаления возможны только для авторов этих статей.

При публикации статьи необходимо указать категорию и метки.

1.3.3 Управление комментариями

Основная информация о комментариях включает следующие поля: ID комментария, дата создания комментария, количество лайков, автор комментария, ID статьи, содержание комментария, ID родительского комментария.

Комментарии могут быть созданы, удалены и отвечены другими пользователями.

1.3.4 Управление категориями

Основная информация о категориях включает следующие поля: ID категории, название категории, псевдоним категории, описание категории, ID родительской категории.

Только администратор может добавлять, удалять и изменять категории.Категории используются не только для разделения статей, но и как меню сайта.

1.3.5 Управление метками

Основная информация о метках включает следующие поля: ID метки, название метки, псевдоним метки, описание метки.

При публикации статьи можно указать метки, которые используются не только для разделения статей, но и как меню сайта.

1.3.6 Управление правами доступа

Пользователи без соответствующих прав не смогут выполнять действия.

1.3.7 Управление ролями

Роли

Эффекты

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

введите описание изображения здесь

Если возникнут вопросы, свяжитесь со мной через QQ

введите описание изображения здесь

Если вам помог этот проект, пожалуйста, сделайте пожертвование, чтобы помочь мне арендовать облачные серверы

введите описание изображения здесь

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

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

Введение

Блог: система фронтенда. Развернуть Свернуть
CSS и 4 других языков
AFL-3.0
Отмена

Обновления

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

Участники

все

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

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