Full Code of geshanzsq/geshanzsq-nav for AI

master 57c8d780bc1a cached
519 files
58.4 MB
449.0k tokens
1239 symbols
1 requests
Download .txt
Showing preview only (1,651K chars total). Download the full file or copy to clipboard to get everything.
Repository: geshanzsq/geshanzsq-nav
Branch: master
Commit: 57c8d780bc1a
Files: 519
Total size: 58.4 MB

Directory structure:
gitextract_6bk_xo_u/

├── .gitignore
├── LICENSE
├── README.md
├── docker/
│   ├── mysql/
│   │   ├── conf.d/
│   │   │   └── my.cnf
│   │   ├── docker-compose.yml
│   │   └── geshanzsq_nav.sql
│   ├── nginx/
│   │   ├── conf.d/
│   │   │   └── gesdh.cn.conf
│   │   ├── docker-compose.yml
│   │   └── nginx.conf
│   ├── project/
│   │   ├── backend/
│   │   │   ├── Dockerfile
│   │   │   ├── application-prod.yml
│   │   │   ├── docker-compose.yml
│   │   │   ├── geshanzsq-nav-admin-application.jar
│   │   │   └── start.sh
│   │   └── frontend/
│   │       ├── Dockerfile
│   │       ├── docker-compose.yml
│   │       ├── nginx/
│   │       │   └── nginx.conf
│   │       └── start.sh
│   ├── redis/
│   │   ├── docker-compose.yml
│   │   └── redis.conf
│   └── start.sh
├── geshanzsq-nav-admin/
│   ├── geshanzsq-nav-admin-application/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── geshanzsq/
│   │           │           └── admin/
│   │           │               ├── GeshanzsqNavAdminApplication.java
│   │           │               ├── client/
│   │           │               │   ├── nav/
│   │           │               │   │   ├── constant/
│   │           │               │   │   │   └── NavClientConstant.java
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   ├── ClientNavCommentController.java
│   │           │               │   │   │   └── ClientNavController.java
│   │           │               │   │   ├── dto/
│   │           │               │   │   │   └── ClientNavCommentAddDTO.java
│   │           │               │   │   ├── mapstruct/
│   │           │               │   │   │   └── ClientNavConverter.java
│   │           │               │   │   ├── service/
│   │           │               │   │   │   ├── ClientNavService.java
│   │           │               │   │   │   └── impl/
│   │           │               │   │   │       └── ClientNavServiceImpl.java
│   │           │               │   │   ├── util/
│   │           │               │   │   │   ├── NavClientCategoryUtils.java
│   │           │               │   │   │   └── NavClientUtils.java
│   │           │               │   │   └── vo/
│   │           │               │   │       ├── ClientNavCommentTreeVO.java
│   │           │               │   │       ├── NavCategoryClientVO.java
│   │           │               │   │       ├── NavCategorySiteClientVO.java
│   │           │               │   │       └── NavClientListVO.java
│   │           │               │   └── search/
│   │           │               │       ├── controller/
│   │           │               │       │   └── ClientSearchController.java
│   │           │               │       └── vo/
│   │           │               │           └── NavClientSiteSearchVO.java
│   │           │               ├── core/
│   │           │               │   ├── bing/
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   └── BingController.java
│   │           │               │   │   ├── util/
│   │           │               │   │   │   └── BingUtils.java
│   │           │               │   │   └── vo/
│   │           │               │   │       └── BingImageVO.java
│   │           │               │   ├── captcha/
│   │           │               │   │   ├── constant/
│   │           │               │   │   │   └── CaptchaConstant.java
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   └── CaptchaController.java
│   │           │               │   │   └── vo/
│   │           │               │   │       └── CaptchaImageVO.java
│   │           │               │   ├── config/
│   │           │               │   │   ├── InsertUpdateMyBatisInterceptorConfig.java
│   │           │               │   │   ├── MyBatisPlusConfig.java
│   │           │               │   │   └── XssFilterConfig.java
│   │           │               │   ├── exception/
│   │           │               │   │   └── GlobalExceptionHandler.java
│   │           │               │   └── security/
│   │           │               │       ├── auth/
│   │           │               │       │   ├── controller/
│   │           │               │       │   │   └── AuthController.java
│   │           │               │       │   ├── dto/
│   │           │               │       │   │   └── AuthLoginDTO.java
│   │           │               │       │   ├── filter/
│   │           │               │       │   │   └── TokenAuthenticationFilter.java
│   │           │               │       │   ├── service/
│   │           │               │       │   │   ├── AuthService.java
│   │           │               │       │   │   └── impl/
│   │           │               │       │   │       ├── AuthServiceImpl.java
│   │           │               │       │   │       └── UserDetailsServiceImpl.java
│   │           │               │       │   └── vo/
│   │           │               │       │       └── AuthLoginVO.java
│   │           │               │       └── config/
│   │           │               │           └── SecurityConfig.java
│   │           │               └── nav/
│   │           │                   ├── category/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavCategoryController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── NavCategoryAddDTO.java
│   │           │                   │   │   ├── NavCategoryListDTO.java
│   │           │                   │   │   └── NavCategoryUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavCategoryMapper.java
│   │           │                   │   ├── mapstrcut/
│   │           │                   │   │   └── NavCategoryConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavCategory.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavCategoryService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavCategoryServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── NavCategoryTreeVO.java
│   │           │                   │       └── NavCategoryVO.java
│   │           │                   ├── comment/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── NavCommentConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavCommentController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── NavCommentPageDTO.java
│   │           │                   │   │   └── NavCommentRejectDTO.java
│   │           │                   │   ├── enums/
│   │           │                   │   │   └── NavCommentStatus.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavCommentMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── NavCommentConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavComment.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavCommentService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavCommentServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavCommentVO.java
│   │           │                   ├── config/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavSiteConfigController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   └── NavSiteConfigUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavSiteConfigMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── NavSiteConfigConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavSiteConfig.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavSiteConfigService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavSiteConfigServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── NavSiteConfigAboutVO.java
│   │           │                   │       └── NavSiteConfigVO.java
│   │           │                   ├── index/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavIndexController.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavIndexService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavIndexServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavIndexStatisticsVO.java
│   │           │                   ├── picture/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── NavPictureConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavPictureController.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavPictureMapper.java
│   │           │                   │   ├── mapstrcut/
│   │           │                   │   │   └── NavPictureConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavPicture.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavPictureService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavPictureServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavPictureUploadVO.java
│   │           │                   └── site/
│   │           │                       ├── constant/
│   │           │                       │   └── NavSiteClientConstant.java
│   │           │                       ├── controller/
│   │           │                       │   └── NavSiteController.java
│   │           │                       ├── dto/
│   │           │                       │   ├── NavSiteAddDTO.java
│   │           │                       │   ├── NavSiteListUserImportDTO.java
│   │           │                       │   ├── NavSitePageDTO.java
│   │           │                       │   ├── NavSiteUpdateDTO.java
│   │           │                       │   └── NavSiteUpdateSortDTO.java
│   │           │                       ├── mapper/
│   │           │                       │   └── NavSiteMapper.java
│   │           │                       ├── mapstrcut/
│   │           │                       │   └── NavSiteConverter.java
│   │           │                       ├── po/
│   │           │                       │   └── NavSite.java
│   │           │                       ├── service/
│   │           │                       │   ├── NavSiteService.java
│   │           │                       │   └── impl/
│   │           │                       │       └── NavSiteServiceImpl.java
│   │           │                       └── vo/
│   │           │                           ├── NavSiteClientVO.java
│   │           │                           ├── NavSiteLatestCollectVO.java
│   │           │                           ├── NavSiteMatchVO.java
│   │           │                           └── NavSiteVO.java
│   │           └── resources/
│   │               ├── application-dev.yml
│   │               ├── application-prod.yml
│   │               ├── application.yml
│   │               ├── i18n/
│   │               │   └── message.properties
│   │               ├── logback-spring.xml
│   │               └── mapper/
│   │                   └── nav/
│   │                       ├── category/
│   │                       │   └── NavCategoryMapper.xml
│   │                       ├── config/
│   │                       │   └── NavSiteConfigMapper.xml
│   │                       └── site/
│   │                           └── NavSiteMapper.xml
│   ├── geshanzsq-nav-admin-system/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── geshanzsq/
│   │           │           └── admin/
│   │           │               └── system/
│   │           │                   ├── api/
│   │           │                   │   ├── controller/
│   │           │                   │   │   ├── SysApiCategoryController.java
│   │           │                   │   │   └── SysApiController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysApiAddDTO.java
│   │           │                   │   │   ├── SysApiCategoryAddDTO.java
│   │           │                   │   │   ├── SysApiCategoryPageDTO.java
│   │           │                   │   │   ├── SysApiCategoryUpdateDTO.java
│   │           │                   │   │   ├── SysApiPageDTO.java
│   │           │                   │   │   └── SysApiUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysApiCategoryMapper.java
│   │           │                   │   │   ├── SysApiMapper.java
│   │           │                   │   │   └── SysApiMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   ├── SysApiCategoryConverter.java
│   │           │                   │   │   └── SysApiConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysApi.java
│   │           │                   │   │   ├── SysApiCategory.java
│   │           │                   │   │   └── SysApiMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysApiCategoryService.java
│   │           │                   │   │   ├── SysApiMenuService.java
│   │           │                   │   │   ├── SysApiService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysApiCategoryServiceImpl.java
│   │           │                   │   │       ├── SysApiMenuServiceImpl.java
│   │           │                   │   │       └── SysApiServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── SysApiCategoryVO.java
│   │           │                   │       └── SysApiVO.java
│   │           │                   ├── dictionary/
│   │           │                   │   ├── controller/
│   │           │                   │   │   ├── SysDictionaryController.java
│   │           │                   │   │   └── SysDictionaryDataController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysDictionaryAddDTO.java
│   │           │                   │   │   ├── SysDictionaryDataAddDTO.java
│   │           │                   │   │   ├── SysDictionaryDataPageDTO.java
│   │           │                   │   │   ├── SysDictionaryDataUpdateDTO.java
│   │           │                   │   │   ├── SysDictionaryPageDTO.java
│   │           │                   │   │   └── SysDictionaryUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysDictionaryDataMapper.java
│   │           │                   │   │   └── SysDictionaryMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   ├── SysDictionaryConverter.java
│   │           │                   │   │   └── SysDictionaryDataConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysDictionary.java
│   │           │                   │   │   └── SysDictionaryData.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysDictionaryDataService.java
│   │           │                   │   │   ├── SysDictionaryService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysDictionaryDataServiceImpl.java
│   │           │                   │   │       └── SysDictionaryServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── DictionaryDataInfoVO.java
│   │           │                   │       ├── DictionaryInfoVO.java
│   │           │                   │       ├── SysDictionaryDataVO.java
│   │           │                   │       └── SysDictionaryVO.java
│   │           │                   ├── log/
│   │           │                   │   ├── login/
│   │           │                   │   │   ├── controller/
│   │           │                   │   │   │   └── LogLoginController.java
│   │           │                   │   │   ├── dto/
│   │           │                   │   │   │   ├── LogLoginAddDTO.java
│   │           │                   │   │   │   └── LogLoginPageDTO.java
│   │           │                   │   │   ├── enums/
│   │           │                   │   │   │   └── LogLoginStatus.java
│   │           │                   │   │   ├── factory/
│   │           │                   │   │   │   └── LogLoginAsyncFactory.java
│   │           │                   │   │   ├── mapper/
│   │           │                   │   │   │   └── LogLoginMapper.java
│   │           │                   │   │   ├── mapstruct/
│   │           │                   │   │   │   └── LogLoginConverter.java
│   │           │                   │   │   ├── po/
│   │           │                   │   │   │   └── LogLogin.java
│   │           │                   │   │   ├── service/
│   │           │                   │   │   │   ├── LogLoginService.java
│   │           │                   │   │   │   └── impl/
│   │           │                   │   │   │       └── LogLoginServiceImpl.java
│   │           │                   │   │   └── vo/
│   │           │                   │   │       └── LogLoginVO.java
│   │           │                   │   └── operation/
│   │           │                   │       ├── config/
│   │           │                   │       │   └── LogMqConfig.java
│   │           │                   │       ├── controller/
│   │           │                   │       │   └── LogOperationController.java
│   │           │                   │       ├── dto/
│   │           │                   │       │   └── LogOperationPageDTO.java
│   │           │                   │       ├── mapper/
│   │           │                   │       │   └── LogOperationMapper.java
│   │           │                   │       ├── mapstruct/
│   │           │                   │       │   └── LogOperationConverter.java
│   │           │                   │       ├── mq/
│   │           │                   │       │   └── LogOperationMq.java
│   │           │                   │       ├── po/
│   │           │                   │       │   └── LogOperation.java
│   │           │                   │       ├── service/
│   │           │                   │       │   ├── LogOperationService.java
│   │           │                   │       │   └── impl/
│   │           │                   │       │       └── LogOperationServiceImpl.java
│   │           │                   │       └── vo/
│   │           │                   │           └── LogOperationVo.java
│   │           │                   ├── menu/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── MenuConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysMenuController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysMenuAddDTO.java
│   │           │                   │   │   ├── SysMenuAuthApiDTO.java
│   │           │                   │   │   ├── SysMenuListDTO.java
│   │           │                   │   │   └── SysMenuUpdateDTO.java
│   │           │                   │   ├── enums/
│   │           │                   │   │   ├── MenuShowStatus.java
│   │           │                   │   │   ├── MenuStatus.java
│   │           │                   │   │   └── MenuType.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── SysMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysMenuConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── SysMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysMenuService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── SysMenuServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── MetaVO.java
│   │           │                   │       ├── RouterVO.java
│   │           │                   │       ├── SysMenuAuthApiVO.java
│   │           │                   │       └── SysMenuVO.java
│   │           │                   ├── param/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── SysParamConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysParamController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysParamAddDTO.java
│   │           │                   │   │   ├── SysParamPageDTO.java
│   │           │                   │   │   └── SysParamUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── SysParamMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysParamConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── SysParam.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysParamService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── SysParamServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── SysParamVO.java
│   │           │                   ├── role/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysRoleController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysRoleAddDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserDeleteDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserPageDTO.java
│   │           │                   │   │   ├── SysRoleNotAuthUserPageDTO.java
│   │           │                   │   │   ├── SysRolePageDTO.java
│   │           │                   │   │   └── SysRoleUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysRoleMapper.java
│   │           │                   │   │   └── SysRoleMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysRoleConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysRole.java
│   │           │                   │   │   └── SysRoleMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysRoleMenuService.java
│   │           │                   │   │   ├── SysRoleService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysRoleMenuServiceImpl.java
│   │           │                   │   │       └── SysRoleServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── SysRoleVO.java
│   │           │                   └── user/
│   │           │                       ├── controller/
│   │           │                       │   ├── SysUserController.java
│   │           │                       │   └── SysUserInfoController.java
│   │           │                       ├── dto/
│   │           │                       │   ├── SysUserAddDTO.java
│   │           │                       │   ├── SysUserPageDTO.java
│   │           │                       │   ├── SysUserResetPasswordDTO.java
│   │           │                       │   ├── SysUserResetUserPasswordDTO.java
│   │           │                       │   ├── SysUserUpdateDTO.java
│   │           │                       │   └── SysUserUpdateInfoDTO.java
│   │           │                       ├── enums/
│   │           │                       │   └── UserType.java
│   │           │                       ├── mapper/
│   │           │                       │   ├── SysUserMapper.java
│   │           │                       │   └── SysUserRoleMapper.java
│   │           │                       ├── mapstruct/
│   │           │                       │   └── SysUserConverter.java
│   │           │                       ├── po/
│   │           │                       │   ├── SysUser.java
│   │           │                       │   └── SysUserRole.java
│   │           │                       ├── service/
│   │           │                       │   ├── SysUserInfoService.java
│   │           │                       │   ├── SysUserRoleService.java
│   │           │                       │   ├── SysUserService.java
│   │           │                       │   └── impl/
│   │           │                       │       ├── SysUserInfoServiceImpl.java
│   │           │                       │       ├── SysUserRoleServiceImpl.java
│   │           │                       │       └── SysUserServiceImpl.java
│   │           │                       └── vo/
│   │           │                           └── SysUserVO.java
│   │           └── resources/
│   │               └── mapper/
│   │                   ├── api/
│   │                   │   ├── SysApiCategoryMapper.xml
│   │                   │   └── SysApiMapper.xml
│   │                   ├── dictionary/
│   │                   │   ├── SysDictionaryDataMapper.xml
│   │                   │   └── SysDictionaryMapper.xml
│   │                   ├── log/
│   │                   │   └── LogOperationMapper.xml
│   │                   ├── menu/
│   │                   │   └── SysMenuMapper.xml
│   │                   ├── param/
│   │                   │   └── SysParamMapper.xml
│   │                   ├── role/
│   │                   │   └── SysRoleMapper.xml
│   │                   └── user/
│   │                       └── SysUserRoleMapper.xml
│   └── pom.xml
├── geshanzsq-nav-common/
│   ├── geshanzsq-nav-common-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── core/
│   │                               ├── constant/
│   │                               │   ├── CommonConstant.java
│   │                               │   └── HttpStatus.java
│   │                               ├── enums/
│   │                               │   ├── CommonStatus.java
│   │                               │   ├── DelFlag.java
│   │                               │   ├── OpenStatus.java
│   │                               │   └── YesNo.java
│   │                               ├── exception/
│   │                               │   ├── BaseException.java
│   │                               │   ├── ParamException.java
│   │                               │   └── ServiceException.java
│   │                               ├── filter/
│   │                               │   ├── XssFilter.java
│   │                               │   └── XssHttpServletRequestWrapper.java
│   │                               ├── util/
│   │                               │   ├── html/
│   │                               │   │   ├── EscapeUtil.java
│   │                               │   │   └── HTMLFilter.java
│   │                               │   ├── http/
│   │                               │   │   └── HttpUtils.java
│   │                               │   ├── id/
│   │                               │   │   ├── IdUtils.java
│   │                               │   │   └── IdWorker.java
│   │                               │   ├── ip/
│   │                               │   │   ├── AddressUtils.java
│   │                               │   │   └── IpUtils.java
│   │                               │   ├── message/
│   │                               │   │   └── MessageUtils.java
│   │                               │   ├── servlet/
│   │                               │   │   └── ServletUtils.java
│   │                               │   ├── spring/
│   │                               │   │   └── SpringUtils.java
│   │                               │   ├── string/
│   │                               │   │   └── StrUtils.java
│   │                               │   └── thread/
│   │                               │       └── Threads.java
│   │                               └── web/
│   │                                   ├── response/
│   │                                   │   └── ResponseResult.java
│   │                                   └── vo/
│   │                                       └── BaseVO.java
│   ├── geshanzsq-nav-common-framework/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── framework/
│   │                               ├── config/
│   │                               │   ├── ResourceConfig.java
│   │                               │   └── WebConfig.java
│   │                               ├── file/
│   │                               │   ├── exception/
│   │                               │   │   └── FileException.java
│   │                               │   ├── property/
│   │                               │   │   └── FileUploadProperty.java
│   │                               │   ├── service/
│   │                               │   │   ├── FileService.java
│   │                               │   │   └── impl/
│   │                               │   │       └── FileServiceImpl.java
│   │                               │   └── util/
│   │                               │       ├── FileUploadUtils.java
│   │                               │       └── MimeTypeUtils.java
│   │                               ├── manager/
│   │                               │   └── AsyncManager.java
│   │                               ├── mybatis/
│   │                               │   ├── page/
│   │                               │   │   ├── dto/
│   │                               │   │   │   └── PageDTO.java
│   │                               │   │   ├── util/
│   │                               │   │   │   └── PageUtils.java
│   │                               │   │   └── vo/
│   │                               │   │       └── PageVO.java
│   │                               │   ├── plugin/
│   │                               │   │   ├── annotation/
│   │                               │   │   │   └── Query.java
│   │                               │   │   ├── constant/
│   │                               │   │   │   └── FieldConstant.java
│   │                               │   │   ├── enums/
│   │                               │   │   │   └── QueryWay.java
│   │                               │   │   ├── interceptor/
│   │                               │   │   │   └── InsertUpdateMyBatisInterceptor.java
│   │                               │   │   └── query/
│   │                               │   │       ├── LambdaQueryWrapperPlus.java
│   │                               │   │       └── QueryWrapperPlus.java
│   │                               │   ├── property/
│   │                               │   │   └── PageProperty.java
│   │                               │   └── util/
│   │                               │       └── MybatisUtils.java
│   │                               ├── thread/
│   │                               │   ├── config/
│   │                               │   │   └── ThreadPoolConfig.java
│   │                               │   └── property/
│   │                               │       └── ThreadPoolProperty.java
│   │                               └── web/
│   │                                   ├── controller/
│   │                                   │   └── BaseController.java
│   │                                   ├── mapper/
│   │                                   │   └── BaseMapperPlus.java
│   │                                   └── service/
│   │                                       ├── BaseService.java
│   │                                       └── impl/
│   │                                           └── BaseServiceImpl.java
│   ├── geshanzsq-nav-common-log/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── log/
│   │                               ├── annotation/
│   │                               │   └── Log.java
│   │                               ├── aspect/
│   │                               │   └── LogAspect.java
│   │                               ├── constant/
│   │                               │   └── LogConstant.java
│   │                               ├── dto/
│   │                               │   └── LogDTO.java
│   │                               ├── enums/
│   │                               │   ├── BusinessType.java
│   │                               │   ├── LogStatus.java
│   │                               │   └── OperateType.java
│   │                               ├── factory/
│   │                               │   └── LogAsyncFactory.java
│   │                               └── service/
│   │                                   ├── LogMqService.java
│   │                                   └── impl/
│   │                                       └── LogMqServiceImpl.java
│   ├── geshanzsq-nav-common-rate-limiter/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── rate/
│   │                               └── limiter/
│   │                                   ├── annotation/
│   │                                   │   └── RateLimiter.java
│   │                                   ├── aspect/
│   │                                   │   └── RateLimiterAspect.java
│   │                                   ├── constant/
│   │                                   │   └── RateLimitConstant.java
│   │                                   ├── enums/
│   │                                   │   └── RateLimiterType.java
│   │                                   └── exception/
│   │                                       └── RateLimiterException.java
│   ├── geshanzsq-nav-common-redis/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── redis/
│   │                               ├── config/
│   │                               │   ├── FastJson2JsonRedisSerializer.java
│   │                               │   └── RedisConfig.java
│   │                               └── service/
│   │                                   └── RedisService.java
│   ├── geshanzsq-nav-common-security/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── framework/
│   │                           └── security/
│   │                               ├── constant/
│   │                               │   └── SecurityConstant.java
│   │                               ├── domain/
│   │                               │   ├── ApiPermission.java
│   │                               │   └── LoginUserDetail.java
│   │                               ├── handler/
│   │                               │   ├── AccessDeniedExceptionHandler.java
│   │                               │   ├── AuthenticationEntryPointImpl.java
│   │                               │   └── LogoutSuccessHandlerImpl.java
│   │                               ├── property/
│   │                               │   ├── SecurityProperty.java
│   │                               │   └── TokenProperty.java
│   │                               ├── service/
│   │                               │   ├── TokenService.java
│   │                               │   └── impl/
│   │                               │       ├── AuthorizationService.java
│   │                               │       └── TokenServiceImpl.java
│   │                               └── util/
│   │                                   └── SecurityUtils.java
│   ├── geshanzsq-nav-common-swagger/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── swagger/
│   │                               ├── config/
│   │                               │   └── SwaggerConfig.java
│   │                               └── property/
│   │                                   └── SwaggerProperty.java
│   └── pom.xml
├── pom.xml
├── sql/
│   └── geshanzsq_nav.sql
└── vue-geshanzsq-nav/
    ├── .browserslistrc
    ├── .editorconfig
    ├── .eslintrc.js
    ├── .gitignore
    ├── .prettierrc
    ├── README.md
    ├── babel.config.js
    ├── jsconfig.json
    ├── lint-staged.config.js
    ├── package.json
    ├── public/
    │   └── index.html
    ├── src/
    │   ├── App.vue
    │   ├── api/
    │   │   ├── auth/
    │   │   │   ├── login.js
    │   │   │   └── user.js
    │   │   ├── client/
    │   │   │   ├── comment.js
    │   │   │   ├── nav.js
    │   │   │   └── search.js
    │   │   ├── common/
    │   │   │   └── bing.js
    │   │   ├── nav/
    │   │   │   ├── category.js
    │   │   │   ├── comment.js
    │   │   │   ├── config.js
    │   │   │   ├── index.js
    │   │   │   ├── picture.js
    │   │   │   └── site.js
    │   │   └── system/
    │   │       ├── api/
    │   │       │   ├── api.js
    │   │       │   └── category.js
    │   │       ├── dictionary/
    │   │       │   ├── data.js
    │   │       │   └── dictionary.js
    │   │       ├── log/
    │   │       │   ├── login.js
    │   │       │   └── operation.js
    │   │       ├── menu.js
    │   │       ├── param.js
    │   │       ├── role.js
    │   │       └── user.js
    │   ├── assets/
    │   │   └── styles/
    │   │       ├── btn.scss
    │   │       ├── element-plus-ui.scss
    │   │       ├── geshanzsq.scss
    │   │       ├── index.scss
    │   │       ├── mixin.scss
    │   │       ├── sidebar.scss
    │   │       ├── themes/
    │   │       │   ├── blue-black.scss
    │   │       │   └── blue-white.scss
    │   │       └── variables.module.scss
    │   ├── components/
    │   │   ├── Breadcrumb/
    │   │   │   └── index.vue
    │   │   ├── DictionaryOption/
    │   │   │   └── index.vue
    │   │   ├── DictionaryRadio/
    │   │   │   └── index.vue
    │   │   ├── DictionaryTag/
    │   │   │   └── index.vue
    │   │   ├── Hamburger/
    │   │   │   └── index.vue
    │   │   ├── HeaderSearch/
    │   │   │   └── index.vue
    │   │   ├── IconSelect/
    │   │   │   ├── index.vue
    │   │   │   └── requireIcons.js
    │   │   ├── Pagination/
    │   │   │   └── index.vue
    │   │   ├── ParentView/
    │   │   │   └── index.vue
    │   │   ├── Screenfull/
    │   │   │   └── index.vue
    │   │   ├── SiteCard/
    │   │   │   └── index.vue
    │   │   ├── SizeSelect/
    │   │   │   └── index.vue
    │   │   ├── SvgIcon/
    │   │   │   ├── index.vue
    │   │   │   └── svgicon.js
    │   │   ├── TopNav/
    │   │   │   └── index.vue
    │   │   ├── WangEditor/
    │   │   │   └── index.vue
    │   │   └── Weather/
    │   │       └── index.vue
    │   ├── config/
    │   │   ├── index.js
    │   │   ├── network.config.js
    │   │   ├── setting.config.js
    │   │   ├── theme.config.js
    │   │   └── vue.cli.config.js
    │   ├── directive/
    │   │   ├── index.js
    │   │   └── permission/
    │   │       ├── hasPermission.js
    │   │       └── hasRole.js
    │   ├── layout/
    │   │   ├── client/
    │   │   │   ├── components/
    │   │   │   │   ├── FooterBottom/
    │   │   │   │   │   └── index.vue
    │   │   │   │   ├── Navbar/
    │   │   │   │   │   └── index.vue
    │   │   │   │   ├── Search/
    │   │   │   │   │   └── index.vue
    │   │   │   │   └── Sidebar/
    │   │   │   │       ├── Link.vue
    │   │   │   │       ├── Logo.vue
    │   │   │   │       ├── SidebarItem.vue
    │   │   │   │       └── index.vue
    │   │   │   └── index.vue
    │   │   ├── components/
    │   │   │   ├── AppMain.vue
    │   │   │   ├── InnerLink/
    │   │   │   │   └── index.vue
    │   │   │   ├── Navbar/
    │   │   │   │   └── index.vue
    │   │   │   ├── Settings/
    │   │   │   │   └── index.vue
    │   │   │   ├── Sidebar/
    │   │   │   │   ├── Link.vue
    │   │   │   │   ├── Logo.vue
    │   │   │   │   ├── SidebarItem.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── TagsView/
    │   │   │   │   ├── ScrollPane.vue
    │   │   │   │   └── index.vue
    │   │   │   └── index.js
    │   │   └── index.vue
    │   ├── main.js
    │   ├── permission.js
    │   ├── plugins/
    │   │   ├── auth.js
    │   │   ├── cache.js
    │   │   ├── index.js
    │   │   ├── modal.js
    │   │   ├── svg-icon.js
    │   │   └── tab.js
    │   ├── router/
    │   │   └── index.js
    │   ├── store/
    │   │   ├── index.js
    │   │   └── modules/
    │   │       ├── app.js
    │   │       ├── dictionary.js
    │   │       ├── permission.js
    │   │       ├── settings.js
    │   │       ├── tagsView.js
    │   │       └── user.js
    │   ├── utils/
    │   │   ├── auth.js
    │   │   ├── download.js
    │   │   ├── dynamicTitle.js
    │   │   ├── geshanzsq.js
    │   │   ├── request.js
    │   │   ├── scroll-to.js
    │   │   └── validate.js
    │   └── views/
    │       ├── client/
    │       │   ├── about/
    │       │   │   ├── components/
    │       │   │   │   ├── Comment.vue
    │       │   │   │   └── SendComment.vue
    │       │   │   └── index.vue
    │       │   ├── index/
    │       │   │   └── index.vue
    │       │   └── search/
    │       │       └── index.vue
    │       ├── error/
    │       │   ├── 403.vue
    │       │   └── 404.vue
    │       ├── index/
    │       │   └── index.vue
    │       ├── login/
    │       │   └── index.vue
    │       ├── nav/
    │       │   ├── category/
    │       │   │   ├── components/
    │       │   │   │   └── CategoryEdit.vue
    │       │   │   └── index.vue
    │       │   ├── comment/
    │       │   │   ├── components/
    │       │   │   │   └── CommentReject.vue
    │       │   │   └── index.vue
    │       │   ├── components/
    │       │   │   └── SitePicture.vue
    │       │   ├── config/
    │       │   │   └── index.vue
    │       │   └── site/
    │       │       ├── components/
    │       │       │   └── SiteEdit.vue
    │       │       └── index.vue
    │       └── system/
    │           ├── api/
    │           │   ├── category.vue
    │           │   ├── components/
    │           │   │   ├── ApiCategoryEdit.vue
    │           │   │   └── ApiEdit.vue
    │           │   └── index.vue
    │           ├── dictionary/
    │           │   ├── components/
    │           │   │   ├── DictionaryDataEdit.vue
    │           │   │   └── DictionaryEdit.vue
    │           │   ├── data.vue
    │           │   └── index.vue
    │           ├── log/
    │           │   ├── login/
    │           │   │   └── index.vue
    │           │   └── operation/
    │           │       ├── components/
    │           │       │   └── LogOperationDetail.vue
    │           │       └── index.vue
    │           ├── menu/
    │           │   ├── components/
    │           │   │   ├── MenuEdit.vue
    │           │   │   └── SelectApi.vue
    │           │   └── index.vue
    │           ├── param/
    │           │   ├── components/
    │           │   │   └── ParamEdit.vue
    │           │   └── index.vue
    │           ├── role/
    │           │   ├── authUser.vue
    │           │   ├── components/
    │           │   │   ├── RoleEdit.vue
    │           │   │   └── SelectAuthUser.vue
    │           │   └── index.vue
    │           └── user/
    │               ├── components/
    │               │   ├── UserEdit.vue
    │               │   └── UserResetPassword.vue
    │               ├── index.vue
    │               └── profile/
    │                   ├── UpdateUserInfo.vue
    │                   ├── UserAvatar.vue
    │                   ├── UserBaseInfo.vue
    │                   └── index.vue
    └── vue.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
######################################################################
# Build Tools

.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar

target/
!.mvn/wrapper/maven-wrapper.jar

######################################################################
# IDE

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr

### NetBeans ###
nbproject/private/
build/*
nbbuild/
dist/
nbdist/
.nb-gradle/

######################################################################
# Others
*.log
*.xml.versionsBackup
*.swp

!*/build/*.java
!*/build/*.html
!*/build/*.xml


================================================
FILE: LICENSE
================================================
                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entisty authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: README.md
================================================
# 格姗导航网站

一个基于 Spring Boot、MyBatis Plus、Vue3、Element Plus 前后端分离的导航网站系统,在线演示地址:[https://gesdh.cn](https://gesdh.cn)。由于工作和个人能力原因,部分技术都是边学习边开发,特别是前端(工作中是后端开发),基本上不熟悉,代码质量和设计,请大家多多指教

欢迎加群一起学习交流技术。

QQ 群交流:673465233

微信群:添加我微信:geshanintell,备注:格姗导航

码云下载地址(国内推荐):[https://gitee.com/geshanzsq/geshanzsq-nav](https://gitee.com/geshanzsq/geshanzsq-nav)

Github 下载地址:[https://github.com/geshanzsq/geshanzsq-nav](https://github.com/geshanzsq/geshanzsq-nav)

## 简介

本项目是一个网站导航,网站内容均由[小格子](https://geshanzsq.com/)本人收集并整理。前端基于 Vue3,后端使用 Spring Boot。目前只是基础版,没有开源自定义导航,大家可以根据此开源项目进行自定义导航开发。如果对自定义导航感兴趣,可联系小格子购买自定义导航源码

- 前端采用 Vue3、Element Plus。
- 后端采用 Spring Boot、MyBatis Plus、Spring Security、Redis。
- 后台管理支持加载动态权限菜单,权限修改立即生效,不用再退出重新登录。
- 高效率开发,只需要简单的 @Query 注解即可实现分页和列表接口。

## 内置功能

1. 用户管理:用户是整个系统操作人,主要完成系统用户配置
2. 角色管理:配置角色菜单、分配用户角色等。
3. 菜单管理:配置系统菜单、按钮权限标识、关联 API 等。
4. 数据字典:系统中经常使用的一些较为固定的数据进行维护。
5. API 管理:后端所有接口地址、请求方式等。
6. 参数配置:系统动态配置常用参数。
7. 登录日志:系统登录日志记录查询。
8. 操作日志:系统操作日志记录和查询。
9. 导航管理:分类管理、网站管理、评论管理

## 运行

前端:需要搭建 Vue 脚手架环境,如:安装 Node.js、Vue-cli 。

后端:需要搭建 Java 开发环境。此外,还需要安装 MySQL 数据库(推荐 MySQL 8)、Redis。

#### 相关环境版本:

| 软件名称 | 版本号    |
| -------- | --------- |
| Node     | 16.16.0   |
| NPM      | 6.14.15   |
| JDK      | 1.8.0_202 |
| MySQL    | 8.0.17    |
| Redis    | 5.0.9     |
| Nginx    | 1.9.9     |

### 项目目录结构说明

```yml
geshanzsq-nav-admin: 后台管理模块
    geshanzsq-nav-admin-application: 后台管理应用启动和导航业务
    geshanzsq-nav-admin-system: 后台管理的系统管理模块
geshanzsq-nav-common: 通用模块
    geshanzsq-nav-common-core: 核心通用模块,包含一些通用工具类
    geshanzsq-nav-common-framework: 通用框架模块
    geshanzsq-nav-common-rate-limiter: 通用限流模块
    geshanzsq-nav-common-log: 通用日志模块
    geshanzsq-nav-common-redis: 通用缓存模块
    geshanzsq-nav-common-security: 通用安全框架模块
    geshanzsq-nav-common-swagger: 通用接口文档模块
vue-geshanzsq-nav: 前端模块
```

#### 前端运行

```bash
# 进入项目目录
cd vue-geshanzsq-nav

# 安装依赖
npm install

# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org

# 启动服务
npm run serve
```

浏览器访问 [http://127.0.0.1:8023](http://127.0.0.1:8023)

#### 后端运行

新建数据库,导入 `sql/geshanzsq_nav.sql ` 数据库脚本

在 `geshanzsq-nav/geshanzsq-nav-admin/geshanzsq-nav-admin-application`应用启动模块下,有三个配置文件:

| application.yml            | application-dev.yml                               | application-prod.yml                              |
| -------------------------- | ------------------------------------------------- | ------------------------------------------------- |
| 主要配置文件,配置公共信息 | 开发环境,配置 MySQL 数据库、Redis 缓存、文件路径 | 生产环境,配置 MySQL 数据库、Redis 缓存、文件路径 |

上述配置完成后,启动后台管理 `geshanzsq-nav-admin-application` 应用

在开发环境的 application-dev.yml 配置文件中,配置 MySQL 数据库连接信息、Redis 缓存、网站初始化图片。

![导航网站-数据库配置信息](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/02de4f3e-7e5c-4370-acea-3701c243759d.png)

![导航网站-文件上传配置信息](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/a514cec3-084d-41b2-ab64-1585c962a8ba.png)

**注:** 需要把目录【网站图片】下的 profile.zip 解压到配置文件的文件路径中,否则内置的网站数据加载不出图片。比如我的是:`D:/data/geshanzsq-nav/profile`,解压后的文件路径如图所示,如果网站图片加载失败,请检查图片路径是否正确。

![导航网站-图片路径](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/cd09da46-c2a8-476e-908c-ae75998c7ef9.png)

##### 生产环境

在 application.yml 配置文件中,把 dev 改为 prod;并在 application-prod.yml 配置对应的 MySQL 数据库、Redis 环境、文件路径。

### 后端技术

| 技术            | 说明                       | 官网链接                                                     |
| --------------- | -------------------------- | ------------------------------------------------------------ |
| Spring Boot     | MVC 框架                   | [https://spring.io/projects/spring-boot](https://spring.io/projects/spring-boot) |
| Spring Security | 认证和授权安全框架         | [https://spring.io/projects/spring-security](https://spring.io/projects/spring-security) |
| MyBatis Plus    | ORM 框架                   | [https://mp.baomidou.com](https://mp.baomidou.com)           |
| Knife4j         | 接口文档管理框架           | [https://doc.xiaominfo.com](https://doc.xiaominfo.com)       |
| Redis           | 缓存框架                   | [https://redis.io](https://redis.io)                         |
| Lombok          | 对象封装工具               | [https://github.com/projectlombok/lombok](https://github.com/projectlombok/lombok) |
| Nginx           | Http 和反向代理 Web 服务器 | [http://nginx.org](http://nginx.org)                         |

### 前端技术

| 说明                   | 官网                                                         |
| ---------------------- | ------------------------------------------------------------ |
| 前端框架               | [https://vuejs.org](https://vuejs.org)                       |
| 路由框架               | [https://router.vuejs.org](https://router.vuejs.org)         |
| 全局状态管理框架       | [https://vuex.vuejs.org](https://vuex.vuejs.org)             |
| 前端 Element Plus 框架 | [https://element-plus.gitee.io](https://element-plus.gitee.io) |
| 前端 Http 框架         | [https://github.com/axios/axios](https://github.com/axios/axios) |
| 富文本编辑器           | [https://www.wangeditor.com](https://www.wangeditor.com)     |
| 代码语法高亮插件       | [https://github.com/highlightjs/highlight.js](https://github.com/highlightjs/highlight.js) |

## 使用

导航首页:[http://127.0.0.1:8023](http://127.0.0.1:8023)

登录地址:[http://127.0.0.1:8023/login](http://127.0.0.1:8023.login)

默认用户:admin

默认密码:123456

## 演示图

![导航网站-首页.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/32f77495-f788-4889-acb1-417760f89f4c.png)

![导航网站-首页-格式转换.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/558ab7c3-3703-43c9-af3b-fd7ab00b57aa.png)

![导航网站-分类管理.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/84a02a68-5b1e-4429-9f5f-f09d8c4f00bc.png)

![导航网站-网站管理.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/d9f336e5-1454-459e-9431-3d50fa582e13.png)

![导航网站-网站配置.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/3efd39b9-6cc5-453e-9a64-e07e6f8ad1de.png)

![导航网站-接口文档.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/05/22/b001cf3c-b053-45b0-b84f-d6dac1ae878b.png)

## 项目部署

最近有挺多小伙伴不知道如何部署到服务器,小格子给大家简单的介绍一下。

### 安装相关环境

首先需要有一台服务器(建议 Linux 系统),安装 JDK1.8、MySQL 数据库、Redis 缓存、Nginx 代理。不会安装的请看这几篇文章。

[Linux 安装 MySQL 8 数据库](https://geshanzsq.com/article/34)

[Linux 安装 Nginx 代理](https://geshanzsq.com/article/65)

前端打包后会生成 dist,上传到服务器对应目录。打包命令:

```shell
npm run build
```

后端打包为 Jar 包,上传到服务器对应目录并执行下面命令:

```shell
nohup java -jar geshanzsq-nav-admin.jar &
```

### Nginx 代理配置

为了保证前端和后端不存在跨域问题,需要部署在 Nginx 进行配置:

```nginx
server {
    listen       80;
    server_name  localhost;
    
    # 前端项目配置
    location / {
        # root 后面为项目存在目录
        root /data/project/geshanzsq-nav/dist;
        index index.html index.htm;
        try_files $uri $uri/ /index.html;
   }
    
   # 后端项目配置
   location /geshanzsq-nav-api/ {
        # 项目 IP 地址和端口,如果不在一台服务器,请填写对应的 IP;如果后端端口修改后,请填写修改后的端口
        proxy_pass http://127.0.0.1:8083/geshanzsq-nav-api/;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  } 
}

```

### Docker 部署
现在流行 Docker 部署,有很多小伙伴叫小格子整理一下 Docker 部署,下面以 Linux 系统为例,给大家简单的说明
#### Docker 安装
网上有很多安装教程,大家自行安装即可
#### 项目启动
把 docker 目录压缩上传到服务器并解压
1. `docker/project/file/profile/profile.zip` 图片文件解压
2. 如果修改了前端代码,自行打包 `dist.zip` 到 `docker/frontend/dist` 目录并解压
3. 如果修改了后端代码,自行打包 `geshanzsq-nav-admin-application.jar` 到 `docker/project/backend`
4. `docker` 目录提供了一键启动脚本 `start.sh`,执行 `sh start.sh` 可直接安装并启动 mysql、redis、nginx、后端、前端。同时提供了单独启动脚本,每个目录均有 `start.sh` 脚本。

## License

Copyright © 2020-2023 **[格姗导航](https://gesdh.cn)** Released under the **Apache-2.0**.

> 注:本导航开源的目的是大家能够在本站的基础之上有所启发,做出更多新的东西,比如自定义导航。并不是让大家照搬所有代码。 如果你使用这个开源项目,请**注明**本项目开源地址。

## 参与贡献

开源项目离不开大家的支持与贡献,如果您有好的想法,或者遇到一些 **BUG** 并修复了,欢迎小伙伴们提交 **Pull Request** 参与开源贡献。代码贡献步骤:

1. **fork** 本项目到自己的 **repo**
2. 把 **fork** 过去的项目也就是你仓库中的项目 **clone** 到你的本地
3. 修改代码
4. **commit** 后 **push** 到自己的库
5. 发起**PR**( **pull request**) 请求,提交到 **master** 分支
6. 等待小格子合并

## 自定义导航

自定义导航源码限时优惠中,功能强大,支持自定义导航、分享、第三方账号登录、自定义顶部链接、主题配置、简约版、访问记录、评论管理、分享管理、友情链接、网站配置、登录配置等功能,有需要的可联系小格子,下面是部分页面截图。

![自定义导航-首页.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/531a07f7-5590-4f15-bf33-d2236d6c5e41.png)

![自定义导航-主题设置.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/387ab999-8af1-44f3-b6a8-04c640444bb7.png)

![自定义导航-后台首页.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/9fd1c241-903c-450d-8d32-7da3f7a8898c.png)

![自定义导航-访问统计.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/9db24b35-293d-4d80-8ca4-b940bb182b7b.png)

![自定义导航-分享管理.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/4c87c459-c267-4899-a8a7-d356af6e91af.png)

![自定义导航-顶部配置.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/bb3f5616-05d1-4fd1-a86e-d736b5750829.png)

![自定义导航-登录配置.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/41c053a7-d25f-4d07-ae24-9f664a1c464c.png)

![自定义导航-网站配置.png](https://geshanzsq.com/geshanzsq-file/profile/image/2023/07/12/aad69891-5744-4f3e-8dd4-87a904d71135.png)

## 感谢

若依后台管理系统:[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue)

蘑菇博客:[mogu_blog](https://gitee.com/moxi159753/mogu_blog_v2)


================================================
FILE: docker/mysql/conf.d/my.cnf
================================================
###### [client]配置模块 ######
[client]
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysql]配置模块 ######
[mysql]
# 设置MySQL客户端默认字符集
default-character-set=utf8mb4
socket=/var/lib/mysql/mysql.sock

###### [mysqld]配置模块 ######
[mysqld]
port=3306
user=mysql
# 设置sql模式 sql_mode模式引起的分组查询出现*this is incompatible with sql_mode=only_full_group_by,这里最好剔除ONLY_FULL_GROUP_BY
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
server-id = 1

# MySQL8 的密码认证插件 如果不设置低版本navicat无法连接
default_authentication_plugin=mysql_native_password

# 禁用符号链接以防止各种安全风险
symbolic-links=0

# 允许最大连接数
max_connections=1000

# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8mb4

# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

# 0: 表名将按指定方式存储,并且比较区分大小写;
# 1: 表名以小写形式存储在磁盘上,比较不区分大小写;
lower_case_table_names=0

max_allowed_packet=16M 

# 设置时区
default-time_zone='+8:00'



================================================
FILE: docker/mysql/docker-compose.yml
================================================
version: '3'
services:
  mysql: # 服务名称
    image: mysql:8.0.18 # 或其它mysql版本
    container_name: mysql8 # 容器名称
    environment:
      - MYSQL_ROOT_PASSWORD=gesdh.cn@MySQL8 # root用户密码
      - MYSQL_DATABASE=geshanzsq_nav  # 自动创建数据库
      - MYSQL_USER=geshanzsq_nav    # 自动创建用户
      - MYSQL_PASSWORD=gesdh.cn@MySQL8 # 用户密码
#      - TZ=Asia/Shanghai # 设置容器时区 我这里通过下面挂载方式同步的宿主机时区和时间了,这里忽略
    volumes:
      - ./log:/var/log/mysql # 映射日志目录,宿主机:容器
      - ./data:/var/lib/mysql # 映射数据目录,宿主机:容器
      - ./conf.d:/etc/mysql/conf.d # 映射配置目录,宿主机:容器
      - ./geshanzsq_nav.sql:/docker-entrypoint-initdb.d/geshanzsq_nav.sql # 挂载SQL文件到初始化目录
      - /etc/localtime:/etc/localtime:ro # 让容器的时钟与宿主机时钟同步,避免时间的问题,ro是read only的意思,就是只读。
    ports:
      - 3306:3306 # 指定宿主机端口与容器端口映射关系,宿主机:容器
    restart: always # 容器随docker启动自启


================================================
FILE: docker/mysql/geshanzsq_nav.sql
================================================
/*
 Navicat Premium Data Transfer

 Source Server         : localhost
 Source Server Type    : MySQL
 Source Server Version : 80017 (8.0.17)
 Source Host           : localhost:3306
 Source Schema         : geshanzsq_nav

 Target Server Type    : MySQL
 Target Server Version : 80017 (8.0.17)
 File Encoding         : 65001

 Date: 22/05/2023 20:09:21
*/

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for log_login
-- ----------------------------
DROP TABLE IF EXISTS `log_login`;
CREATE TABLE `log_login`  (
  `id` bigint(20) NOT NULL COMMENT '登录日志 id',
  `username` varchar(50) NULL DEFAULT '' COMMENT '登录用户名',
  `fk_user_id` bigint(20) NOT NULL COMMENT '用户 id',
  `ip_address` varchar(200) NULL DEFAULT NULL COMMENT '登录 ip 地址',
  `login_location` varchar(255) NULL DEFAULT '' COMMENT '登录位置',
  `browser_type` varchar(50) NULL DEFAULT '' COMMENT '浏览器类型',
  `operate_system` varchar(50) NULL DEFAULT '' COMMENT '操作系统',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '登录状态(1 成功,2 失败)',
  `hint_message` varchar(255) NULL DEFAULT '' COMMENT '提示消息',
  `gmt_login` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '登录时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '登录日志' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of log_login
-- ----------------------------

-- ----------------------------
-- Table structure for log_operation
-- ----------------------------
DROP TABLE IF EXISTS `log_operation`;
CREATE TABLE `log_operation`  (
  `id` bigint(20) NOT NULL COMMENT '操作日志 id',
  `module_name` varchar(50) NULL DEFAULT '' COMMENT '模块名称',
  `business_type` tinyint(1) NULL DEFAULT 1 COMMENT '业务类型(1 其它,2 新增,3 修改,4 删除)',
  `operate_type` tinyint(1) NULL DEFAULT 1 COMMENT '操作类型(1 其它,2 后台用户,3 手机端用户,4 博客用户)',
  `fk_user_id` bigint(20) NULL DEFAULT NULL COMMENT '操作用户 id',
  `request_method` varchar(10) NULL DEFAULT '' COMMENT '请求方式',
  `class_method` varchar(255) NULL DEFAULT '' COMMENT '类方法',
  `request_url` varchar(255) NULL DEFAULT '' COMMENT '请求地址',
  `ip_address` varchar(200) NULL DEFAULT '' COMMENT '操作 ip 地址',
  `operate_location` varchar(255) NULL DEFAULT '' COMMENT '操作位置',
  `request_param` longtext NULL COMMENT '请求参数',
  `return_result` longtext NULL COMMENT '返回结果',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '登录状态(1 成功,2 异常)',
  `gmt_operate` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '操作时间',
  `error_message` longtext NULL COMMENT '错误消息',
  `browser_type` varchar(50) NULL DEFAULT '' COMMENT '浏览器类型',
  `operate_system` varchar(50) NULL DEFAULT '' COMMENT '操作系统',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '操作日志' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of log_operation
-- ----------------------------

-- ----------------------------
-- Table structure for nav_category
-- ----------------------------
DROP TABLE IF EXISTS `nav_category`;
CREATE TABLE `nav_category`  (
  `id` bigint(20) NOT NULL COMMENT '分类 id',
  `parent_id` bigint(20) NOT NULL DEFAULT 0 COMMENT '父级id',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `category_name` varchar(50) NULL DEFAULT '' COMMENT '分类名称',
  `category_icon` varchar(20) NULL DEFAULT '' COMMENT '分类图标',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '导航分类' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of nav_category
-- ----------------------------
INSERT INTO `nav_category` VALUES (150725316141100103, 0, 30, '资源搜索', 'search', '2020-07-10 23:58:54', '2021-03-27 00:27:58', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100104, 0, 40, '在线工具', 'cogs', '2020-07-25 19:39:39', '2021-03-27 00:27:49', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100105, 0, 60, '学习教程', 'study', '2020-07-25 19:39:39', '2021-03-27 00:27:30', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100106, 0, 60, '软件下载', 'software', '2020-07-25 19:39:39', '2021-03-27 00:27:24', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100107, 0, 70, '休闲娱乐', 'music', '2020-07-25 19:39:39', '2021-03-27 00:27:21', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100108, 0, 80, '灵感采集', 'Light-Bulb', '2020-07-25 21:41:31', '2021-03-27 00:27:17', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141100109, 0, 90, '素材资源', 'international', '2020-07-25 21:41:31', '2021-03-27 00:27:13', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101001, 150725316141100103, 1, '网盘搜索', 'chart', '2020-07-11 00:02:09', '2020-07-11 11:35:42', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101002, 150725316141100103, 2, '电子书搜索', 'code', '2020-07-11 10:46:40', '2020-07-11 11:35:46', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101004, 0, 1, '格式转换', 'lock', '2020-07-25 21:30:22', '2021-03-27 00:22:23', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101005, 150725316141100104, 2, '语言翻译', 'component', '2020-07-25 21:30:22', '2020-07-25 21:31:18', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101006, 0, 3, '图标素材', 'component', '2020-07-25 21:30:22', '2021-03-27 00:28:42', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101007, 150725316141100105, 1, '博客网站', 'wechat', '2020-07-25 21:43:34', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101008, 150725316141100106, 1, 'Windows', 'tool', '2020-07-25 21:44:10', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101009, 150725316141100106, 2, 'Android', 'upload', '2020-07-25 21:44:36', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101010, 150725316141100106, 3, 'Apple|Mac', 'time', '2020-07-25 21:44:52', '2020-08-18 22:46:22', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101011, 150725316141100107, 1, '影视', 'icon', '2020-07-25 21:45:44', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101012, 150725316141100107, 2, '音乐', 'people', '2020-07-25 21:45:58', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101013, 150725316141100104, 3, '图形创意', 'dict', '2020-08-01 15:06:54', NULL, 1, NULL, 1);
INSERT INTO `nav_category` VALUES (150725316141101014, 150725316141100104, 4, '界面设计', 'select', '2020-08-01 15:08:33', '2023-05-07 18:24:41', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101015, 150725316141100104, 5, '交互动效', 'tool', '2020-08-01 15:13:19', '2023-05-07 18:24:51', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101016, 150725316141100104, 6, '在线配色', 'time', '2020-08-01 15:15:46', '2023-05-07 18:25:00', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101017, 150725316141100104, 7, '其他工具', 'tag', '2020-08-01 15:15:58', '2023-05-07 18:25:09', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101018, 150725316141100104, 8, 'Chrome插件', 'clipboard', '2020-08-01 15:16:14', '2023-05-07 18:25:19', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101019, 150725316141100108, 1, '发现产品', 'build', '2020-08-01 15:23:57', '2023-05-07 18:28:31', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101020, 150725316141100108, 2, '界面灵感', 'clipboard', '2020-08-01 15:24:11', '2023-05-07 18:28:40', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101021, 150725316141100108, 3, '网页灵感', 'druid', '2020-08-01 15:24:34', '2023-05-07 18:28:48', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101022, 150725316141100109, 2, 'LOGO设计', 'clipboard', '2020-08-01 15:35:28', '2023-05-07 18:29:10', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101023, 150725316141100109, 3, '平面素材', 'drag', '2020-08-01 15:35:55', '2023-05-07 18:29:19', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101024, 150725316141100109, 4, 'UI资源', 'example', '2020-08-01 15:36:05', '2023-05-07 18:29:26', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101025, 150725316141100109, 5, 'Sketch资源', 'form', '2020-08-01 15:36:17', '2023-05-07 18:29:31', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101026, 150725316141100109, 6, '字体资源', 'international', '2020-08-01 15:36:40', '2023-05-07 18:29:36', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101027, 150725316141100109, 7, 'Mockup', 'monitor', '2020-08-01 15:37:03', '2023-05-07 18:29:44', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101028, 150725316141100109, 8, '摄影图库', 'post', '2020-08-01 15:37:24', '2023-05-07 18:29:50', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101029, 0, 10, 'PPT资源', 'theme', '2020-08-01 15:37:35', '2021-03-27 00:28:21', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101030, 150725316141100105, 4, '后端学习', 'textarea', '2020-08-08 15:06:09', '2023-05-07 18:26:50', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101031, 150725316141100105, 3, '前端学习', 'rate', '2020-08-08 15:07:26', '2023-05-07 18:27:03', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101032, 150725316141100105, 2, '个人博客', 'Light-Bulb', '2020-08-08 15:19:13', '2023-05-07 18:27:13', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101034, 0, 100, '自媒体', 'select', '2020-08-11 17:44:07', '2021-03-27 00:27:08', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101035, 150725316141101034, 1, '运营平台', 'theme', '2020-08-11 17:44:31', '2023-05-07 18:30:22', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101036, 0, 2, '图片素材', 'clipboard', '2020-08-11 20:12:23', '2021-03-27 00:30:29', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101037, 0, 12, '桌面壁纸', 'computer', '2020-08-19 19:39:19', '2021-03-27 00:29:55', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101039, 150725316141101034, 2, '排版工具', 'shopping', '2020-08-20 11:02:52', '2023-05-07 18:30:31', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101040, 150725316141100104, 9, 'Github加速下载', 'chart', '2020-08-31 22:51:30', '2023-05-07 18:25:28', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101042, 150725316141100105, 5, '开源项目', 'article', '2020-09-16 14:37:04', '2023-05-07 18:27:22', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101043, 150725316141100104, 11, '电视直播', 'online', '2020-09-20 14:54:03', '2023-05-07 18:25:45', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101046, 150725316141100106, 0, '软件博客', 'software', '2020-10-16 21:41:47', '2023-05-07 18:22:23', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101047, 150725316141100107, 3, '游戏资源', 'menu', '2020-10-16 22:59:20', '2023-05-07 18:28:20', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101048, 150725316141101034, 4, '视频制作', 'movie', '2021-01-07 19:56:03', '2023-05-07 18:30:39', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101049, 150725316141100104, 12, '免费图床', 'excel', '2021-01-12 16:28:22', '2023-05-07 18:26:00', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101050, 150725316141100104, 13, '办公协作', 'swagger', '2021-01-18 10:27:16', '2023-05-07 18:26:22', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101051, 150725316141101034, 5, '数据分析', 'dict', '2021-02-01 14:34:50', '2023-05-07 18:30:45', 1, 1, 1);
INSERT INTO `nav_category` VALUES (150725316141101052, 0, 0, '热门导航', 'cc-thumbs-up', '2021-03-27 00:34:10', NULL, 1, NULL, 1);

-- ----------------------------
-- Table structure for nav_comment
-- ----------------------------
DROP TABLE IF EXISTS `nav_comment`;
CREATE TABLE `nav_comment`  (
  `id` bigint(20) NOT NULL COMMENT '评论 id',
  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '上级 id',
  `has_sticky` tinyint(1) NULL DEFAULT 2 COMMENT '是否置顶(1 是,2 否) ',
  `comment_content` longtext NOT NULL COMMENT '评论内容',
  `nick_name` varchar(30) NULL DEFAULT '' COMMENT '昵称',
  `email` varchar(50) NULL DEFAULT '' COMMENT '邮箱',
  `remark` varchar(255) NULL DEFAULT '' COMMENT '备注',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 待审核,2 通过,3 驳回)',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '评论表' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of nav_comment
-- ----------------------------

-- ----------------------------
-- Table structure for nav_picture
-- ----------------------------
DROP TABLE IF EXISTS `nav_picture`;
CREATE TABLE `nav_picture`  (
  `id` bigint(20) NOT NULL COMMENT '图片 id',
  `picture_original_name` varchar(200) NULL DEFAULT '' COMMENT '图片原名称',
  `picture_path` varchar(500) NULL DEFAULT '' COMMENT '图片路径',
  `picture_md5` varchar(100) NULL DEFAULT '' COMMENT '图片 md5',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '导航图片' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of nav_picture
-- ----------------------------

-- ----------------------------
-- Table structure for nav_site
-- ----------------------------
DROP TABLE IF EXISTS `nav_site`;
CREATE TABLE `nav_site`  (
  `id` bigint(20) NOT NULL COMMENT '网站 id',
  `fk_category_id` bigint(20) NULL DEFAULT NULL COMMENT '分类 id',
  `site_name` varchar(50) NULL DEFAULT NULL COMMENT '网站名称',
  `site_path` varchar(100) NULL DEFAULT NULL COMMENT '网站图片路径',
  `site_description` varchar(300) NULL DEFAULT NULL COMMENT '网站描述',
  `site_url` varchar(300) NULL DEFAULT NULL COMMENT '网站地址',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `click_count` int(11) NULL DEFAULT 0 COMMENT '点击量',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '用户导航网站信息' ROW_FORMAT = Dynamic;

-- ----------------------------
-- Records of nav_site
-- ----------------------------
INSERT INTO `nav_site` VALUES (150725316141100003, 150725316141101001, '小昭来啦', '/profile/site/system/b27e89c97230454302cbb24a115c3577.ico', '网盘搜索', 'https://www.xiaozhaolaila.com', 2, 0, '2020-07-30 22:18:26', NULL, NULL, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100004, 150725316141101001, '小猪快盘', '/profile/site/system/16ad1dd9-810c-44e0-b553-5ee7a155aa35.png', '有你更方便', 'https://www.xiaokesoso.com/', 3, 0, '2020-07-30 22:18:26', '2022-11-07 19:46:34', NULL, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100006, 150725316141101001, '小不点搜索', '/profile/site/system/7f0c4a571333ea397c688b7fc0ba7191.jpg', '好资源一网打尽', 'https://www.xiaoso.net', 5, 0, '2020-07-30 22:18:26', '2020-07-30 23:16:32', NULL, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100007, 150725316141101001, '56网盘搜索', '/profile/site/system/7dc0f592b6ac032ca20e3d29c2daf2dd.ico', '网盘搜索', 'https://www.56wangpan.com', 6, 0, '2020-07-30 22:18:26', '2020-07-30 23:17:37', NULL, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100008, 150725316141101001, '大圣盘', '/profile/site/system/b054e2e190eb787aedcef330c4a78e1e.png', '网盘搜索,就用大圣盘 - 最好用的百度网盘搜索引擎', 'https://www.dashengpan.com', 7, 0, '2020-07-30 22:18:26', '2020-07-30 23:20:10', NULL, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100016, 150725316141101002, '点点文档搜索', '/profile/site/system/a35d2046-f0c9-4a94-b007-79322b05c5a7.jpg', '专注专业文档搜索', 'https://www.torrent.org.cn/bd', 1, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100017, 150725316141101002, 'Telegram书籍搜索', '/profile/site/system/d51adf1b-6baa-4aaf-90e7-d444309ce737.png', '免费电子书搜索', 'https://bks.thefuture.top/', 2, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100019, 150725316141101002, '鸠摩搜索', '/profile/site/system/69d815f7-ff4f-49ba-b294-535fd1f5ddbf.png', '强大的电子书搜索', 'https://www.jiumodiary.com/', 4, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100020, 150725316141101002, 'kindle 漫画', '/profile/site/system/9ff2df64-77bd-4c12-8e6d-92d28ae264df.ico', '漫画', 'https://volmoe.com/', 5, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100021, 150725316141101002, '中华珍宝馆', '/profile/site/system/857063b3-ea38-4eb8-8c29-d372ba2740a6.png', '中华珍宝馆', 'https://ltfc.net/', 6, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100022, 150725316141101002, '国图文津', '/profile/site/system/c356a6b5-f8f4-4857-9142-732d5defd004.png', '文津搜索', 'http://find.nlc.cn', 7, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100023, 150725316141101002, '书格', '/profile/site/system/a60e1981c4c4a14e5469b9c2e8a16cac.png', '搜索资源集', 'https://new.shuge.org/', 8, 0, '2020-08-01 14:24:18', '2020-08-08 14:50:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100024, 150725316141101002, '古籍馆', '/profile/site/system/5350f9dd-1818-4b8b-84b3-cf926d5c7cc2.ico', '中國最大的古籍圖書館,在线搜索', 'https://www.gujiguan.com', 9, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100025, 150725316141101002, 'Gutenberg', '/profile/site/system/5b2c64cb-a793-4bd9-a69a-e6535cdd36bc.png', ' 无版权书籍在线搜索与下载,外文版', 'http://www.gutenberg.org', 10, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100028, 150725316141101002, '书栈网', '/profile/site/system/2e2d77a6-3c44-4de0-a5eb-a6d2b754a731.png', '程序员IT互联网开源编程书籍免费阅读与下载,取之于猿用之于猿', 'https://www.bookstack.cn', 13, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100029, 150725316141101002, '码农之家', '/profile/site/system/54f8a778eaaa63550b63e8a051484d43.ico', '计算机电子书下载网-编程pdf电子书下载', 'https://www.xz577.com', 14, 0, '2020-08-01 14:24:18', '2020-08-06 13:53:33', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100030, 150725316141101002, '书享家', '/profile/site/system/6737d6da-43f3-4b67-b528-5aa58e77e86d.png', '电子书下载导航', 'http://shuxiangjia.cn', 15, 0, '2020-08-01 14:24:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100031, 150725316141101005, '有道翻译', '/profile/site/system/316e6dde-d4a6-4590-9d0a-e082b40a4876.ico', '免费、及时的多语种在线翻译', 'http://fanyi.youdao.com/', 1, 0, '2020-08-01 14:41:43', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100032, 150725316141101005, 'Google 翻译', '/profile/site/system/c9f49602-6db2-488c-994c-45524e499090.ico', 'Google 在线翻译', 'https://translate.google.cn/', 2, 0, '2020-08-01 14:41:43', '2021-01-13 15:29:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100033, 150725316141101005, '百度翻译', '/profile/site/system/b4354f2c-a638-4e25-9269-f572af38318c.jpg', '百度在线翻译', 'https://fanyi.baidu.com/translate', 3, 0, '2020-08-01 14:41:43', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100034, 150725316141101005, '必应翻译', '/profile/site/system/e877f478-17d8-4549-9858-cb5edd5ab4f2.ico', '微软在线翻译', 'https://cn.bing.com/translator', 4, 0, '2020-08-01 14:41:43', '2021-01-13 15:29:46', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100035, 150725316141101008, '腾讯软件中心', '/profile/site/system/3d244575922fd6f3f251cf2326901817.ico', '不错的软件商店', 'https://pc.qq.com/', 1, 0, '2020-08-01 14:48:15', '2020-08-06 13:43:40', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100036, 150725316141101008, 'MSDN', '/profile/site/system/e377b1038d9b1de65faa974cd0f1697d.ico', '原版系统镜像下载', 'https://msdn.itellyou.cn', 2, 0, '2020-08-01 14:48:15', '2020-08-06 13:44:22', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100037, 150725316141101008, '致美化', '/profile/site/system/095e81f7aabe0a02d59e260b5a006181.ico', '桌面美化交流平台', 'https://zhutix.com', 3, 0, '2020-08-01 14:48:15', '2020-08-06 13:45:11', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100038, 150725316141101046, '大眼仔旭', '/profile/site/system/e9b2f20ae9880fb20b98a07a309b96c1.ico', '专注视频剪辑、解压、录屏、思维导图等办公软件分享', 'http://www.dayanzai.me', 2, 0, '2020-08-01 14:48:15', '2020-10-16 21:45:14', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100039, 150725316141101046, '爱绿软', '/profile/site/system/161d313406154438d4319655b0892cd8.png', '收集分享各类有趣好玩的绿色软件', 'https://ilvruan.com', 3, 0, '2020-08-01 14:48:15', '2020-10-16 21:45:18', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100040, 150725316141101046, '异次元软件站', '/profile/site/system/5edb929d595ea22f900244e4985e4cb2.ico', '异次元软件世界 - 软件改变生活', 'https://www.iplaysoft.com', 4, 0, '2020-08-01 14:48:15', '2020-10-16 21:45:22', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100041, 150725316141101046, '吾爱破解', '/profile/site/system/25ef62ba415682c09a4a0a2dea4cbf67.ico', '软件交流社区', 'https://www.52pojie.cn', 0, 0, '2020-08-01 14:48:15', '2020-10-16 21:45:05', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100042, 150725316141101009, '魔趣 ROM', '/profile/site/system/46363edb-dafa-451a-bb0b-74030679e0e1.png', '可能是中国最好的安卓开源系统', 'https://www.mokeedev.com', 1, 0, '2020-08-01 14:49:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100043, 150725316141101009, 'Xposed框架中文站', '/profile/site/system/29575a8c-5830-4310-b04c-1ddb978dcb3f.png', '超多Xposed框架模块介绍与下载', 'http://xposed.appkg.com', 2, 0, '2020-08-01 14:49:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100044, 150725316141101009, '观道', '/profile/site/system/1b3a7fddd824ac8f01e5c0d400875808.ico', '国外App下载_App下载界的一股清流', 'http://www.guandao.cc', 3, 0, '2020-08-01 14:49:28', '2020-08-06 13:51:36', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100045, 150725316141101009, '豌豆荚', '/profile/site/system/e0ccaa1741577bac575a049479df805e.ico', '海量安卓APP应用与游戏免费下载', 'https://www.wandoujia.com', 4, 0, '2020-08-01 14:49:28', '2020-08-06 13:50:56', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100046, 150725316141101009, 'TapTap', '/profile/site/system/0f03874c92974facb1706e69c54f94d4.png', '发现好游戏', 'https://www.taptap.com', 5, 0, '2020-08-01 14:49:28', '2020-08-06 13:52:24', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100047, 150725316141101010, '腾讯柠檬精选', '/profile/site/system/25206276f20af4103ea56a75be6c0802.png', '收录免费、正版、好用的Mac应用及产品', 'https://lemon.qq.com/lab/', 1, 0, '2020-08-01 14:50:21', '2020-08-06 13:49:34', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100048, 150725316141101010, '每日限免', '/profile/site/system/5d4d23c3-7135-4f82-b946-6c10f3a11f84.png', '每日精品限免_促销应用', 'https://app.so/xianmian', 2, 0, '2020-08-01 14:50:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100052, 150725316141101011, '腾讯视频', '/profile/site/system/fe2b466d9fe6bed552c0adcaac1c2813.ico', '中国领先的在线视频媒体平台,海量高清视频在线观看', 'https://v.qq.com', 4, 0, '2020-08-01 14:51:38', '2020-08-06 13:42:24', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100053, 150725316141101011, '爱奇艺', '/profile/site/system/b9555fb5-e19c-4547-a542-eb55e4a6bd72.png', '在线视频网站-海量正版高清视频在线观看', 'https://www.iqiyi.com', 5, 0, '2020-08-01 14:51:38', '2021-01-13 15:21:57', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100054, 150725316141101011, '优酷', '/profile/site/system/e4e0ee80c4466950ae51cecdd28080e1.png', '这世界很酷', 'https://www.youku.com', 6, 0, '2020-08-01 14:51:38', '2020-08-06 13:39:48', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100055, 150725316141101012, '疯狂音乐', '/profile/site/system/e1ace6a5-b279-49a9-8f1e-afb98ab97956.ico', '音乐聚集平台,支持国内大部分音乐平台', 'http://music.ifkdy.com', 1, 0, '2020-08-01 14:52:55', '2021-01-13 15:26:30', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100059, 150725316141101012, 'QQ音乐', '/profile/site/system/6dfcb9895c4d834dac1bc7256a54a9b8.ico', '千万正版音乐海量无损曲库新歌热歌天天畅听的高品质音乐平台', 'https://y.qq.com', 5, 0, '2020-08-01 14:52:55', '2020-08-04 14:48:12', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100060, 150725316141101012, '网易云音乐', '/profile/site/system/21f3ff494c85b7adbd62f6308651e4cf.png', '专注于发现与分享的音乐产品,依托专业音乐人、DJ、好友推荐及社交功能,为用户打造全新的音乐生活', 'https://music.163.com', 6, 0, '2020-08-01 14:52:55', '2020-08-04 14:49:42', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100061, 150725316141101012, '酷狗音乐', '/profile/site/system/0e8a8d31be0727fcd077c9df5e6a9ba9.ico', '就是歌多', 'https://www.kugou.com', 7, 0, '2020-08-01 14:52:55', '2020-08-04 14:52:05', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100062, 150725316141101012, '虾米音乐', '/profile/site/system/3d4c138efe8f0c64cf3a94c17c3344b7.png', '发现音乐新世界', 'https://www.xiami.com', 8, 0, '2020-08-01 14:52:55', '2020-08-05 00:19:33', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100063, 150725316141101004, '在线格式转换', '/profile/site/system/95ed0b48-8dbc-4407-a52a-2541bc16f054.jpg', '万能且免费的格式转换,支持各种格式。', 'https://www.alltoall.net', 1, 0, '2020-08-01 14:54:25', '2020-08-11 23:28:53', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100064, 150725316141101032, '良许', '/profile/site/system/0fcd5b42-a5c6-4023-86e3-97448d7f20a2.ico', 'Linux系统常用命令教学,shell脚本入门学习', 'https://www.lxlinux.net', 9, 0, '2020-08-01 14:56:49', '2021-01-13 15:33:05', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100065, 150725316141101032, '程序猿圈', '/profile/site/system/a198ddc1-8b73-4900-93b4-87fda77fb50f.jpg', '程序员在线学习站点', 'https://www.cxyquan.com/', 2, 0, '2020-08-01 14:56:49', '2020-08-08 15:19:47', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100066, 150725316141101032, '纯洁的微笑', '/profile/site/system/bee2f3c7-4fb8-4b06-8ba3-c678585d5b54.jpg', '分享技术,品味人生', 'http://ityouknow.com/', 3, 0, '2020-08-01 14:56:49', '2020-08-08 15:19:56', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100067, 150725316141101032, '江南一点雨', '/profile/site/system/063a8d1d-1e81-4c0d-9c43-53cc8a873d7a.jpg', '技术文章分享', 'http://www.javaboy.org', 4, 0, '2020-08-01 14:56:49', '2020-08-08 15:20:07', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100068, 150725316141101032, '程序猿DD', '/profile/site/system/9625e95b-8a7b-4548-8e57-5a191b306f2f.jpg', 'Java Spring Boot Spring Cloud 最新干货分享', 'http://blog.didispace.com', 5, 0, '2020-08-01 14:56:49', '2020-08-08 15:20:11', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100069, 150725316141101006, 'Iconfinder', '/profile/site/system/e3325f68179436ccfc25b9f0ffff5a39.png', '2,100,000+个免费和高级矢量图标。', 'https://www.iconfinder.com', 1, 0, '2020-08-01 14:58:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100070, 150725316141101006, 'iconfont', '/profile/site/system/e1f63337915f79f8bcad1952adb9f6e1.png', '阿里巴巴矢量图标库。', 'http://www.iconfont.cn/', 2, 0, '2020-08-01 14:58:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100071, 150725316141101006, 'iconmonstr', '/profile/site/system/afd4885651455f12dcac4f214460dd99.png', '您的下一个项目的免费简单图标。', 'https://iconmonstr.com/', 3, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100072, 150725316141101006, 'FindIcons', '/profile/site/system/0171a46b0f643752aa90aa314a22a546.png', '搜索300,000个免费图标。', 'https://findicons.com/', 4, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100073, 150725316141101006, 'Icon Archive', '/profile/site/system/40c43a8932f24370cf456789b2ab51db.png', '搜索590,912个免费图标。', 'http://www.iconarchive.com/', 5, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100074, 150725316141101006, 'IcoMoonApp', '/profile/site/system/d19c97ead3760f1b70efa4ee9ad6859c.png', '图标字体,SVG,PDF和PNG生成器。', 'https://icomoon.io/app/', 6, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100075, 150725316141101006, 'easyicon', '/profile/site/system/34b4382075e047c6d1456f8fe591a1ef.png', 'PNG、ICO、ICNS格式图标搜索、图标下载服务。', 'http://www.easyicon.net/', 7, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100076, 150725316141101006, 'flaticon', '/profile/site/system/582cf7361a0b4f444628c68b98e5cfc7.png', '634,000+免费矢量图标为SVG,PSD,PNG,EPS格式或图标字体。', 'https://www.flaticon.com/', 8, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100077, 150725316141101006, 'UICloud', '/profile/site/system/f9840e127d500449da1c5c721f3634c3.png', '世界上最大的用户界面设计数据库。', 'http://ui-cloud.com/', 9, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100078, 150725316141101006, 'Material icons', '/profile/site/system/32a037ffbdd2f97f6f6e62e56321c519.png', '可访问900多种材质系统图标,这些图标以各种大小和密度提供,并且可以作为网络字体使用。', 'https://material.io/icons/', 10, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100079, 150725316141101006, 'Font Awesome Icon', '/profile/site/system/88440b8b0d5dc43a3f766670e2d11746.png', '惊人的675个图标的完整集合。', 'https://fontawesome.com/', 11, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100080, 150725316141101006, 'ion icons', '/profile/site/system/6d0fd0bf35549f6d61037bd86e2ca242.png', 'Ionic Framework的高级图标字体。', 'http://ionicons.com/', 12, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100081, 150725316141101006, 'Simpleline Icons', '/profile/site/system/acf446f1af754f863260cc10dd8d546e.png', '简单的线条图标包。', 'http://simplelineicons.com/', 13, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100082, 150725316141101013, 'photoshop', '/profile/site/system/e7117e80fdb340589bc8969900e2af61.png', 'Photoshop不需要解释', 'https://www.adobe.com/cn/products/photoshop.html', 1, 0, '2020-08-01 15:07:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100083, 150725316141101013, 'Affinity Designer', '/profile/site/system/290add1cdb3cdb80e6e30af137d48525.png', '专业创意软件', 'https://affinity.serif.com/', 2, 0, '2020-08-01 15:07:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100084, 150725316141101013, 'Illustrator', '/profile/site/system/6882fdb094820bae95054ea1c38a3baf.png', '矢量图形和插图。', 'https://www.adobe.com/cn/products/illustrator/', 3, 0, '2020-08-01 15:07:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100085, 150725316141101013, 'indesign', '/profile/site/system/4db54894b6751e253212a690dada0df8.png', '页面设计、布局和出版。', 'http://www.adobe.com/cn/products/indesign.html', 4, 0, '2020-08-01 15:07:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100086, 150725316141101013, 'cinema-4d', '/profile/site/system/ac0344f03fc1e59b4144fef92a12e211.png', 'Cinema 4D是所有想要快速,轻松地获得惊人效果的3D艺术家的理想选择。', 'https://www.maxon.net/en/products/cinema-4d/overview/', 5, 0, '2020-08-01 15:07:49', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100087, 150725316141101013, '3ds-max', '/profile/site/system/3aacac5d23583cdc250a970a0e30a9aa.png', '3D建模,动画和渲染软件', 'https://www.autodesk.com/products/3ds-max/overview', 6, 0, '2020-08-01 15:07:49', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100088, 150725316141101013, 'Blender', '/profile/site/system/5d61addac4350caee364f0a3e850a3f7.png', 'Blender是免费的开源3D创建套件。', 'https://www.blender.org/', 7, 0, '2020-08-01 15:07:49', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100089, 150725316141101014, 'Sketch', '/profile/site/system/75cc5b5775361d5f0b471b706a115403.png', '数字设计工具包', 'https://sketchapp.com/', 1, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100090, 150725316141101014, 'Adobe XD', '/profile/site/system/9eda46042e2ad058951fa4e4bb3a9957.png', '引入Adobe XD。 设计。 原型。 经验。', 'http://www.adobe.com/products/xd.html', 2, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100091, 150725316141101014, 'invisionapp', '/profile/site/system/7d5620f1b4fd85c4a7ea4733deed8823.png', '强大的设计原型工具', 'https://www.invisionapp.com/', 3, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100092, 150725316141101014, 'marvelapp', '/profile/site/system/28ec81158c67d9783afccf8fcd1bbee6.png', '简单的设计,原型制作和协作', 'https://marvelapp.com/', 4, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100093, 150725316141101014, 'Muse CC', '/profile/site/system/612cf530fe80b5f28dc826c4384087bf.png', '无需利用编码即可进行网站设计。', 'https://creative.adobe.com/zh-cn/products/download/muse', 5, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100094, 150725316141101014, 'figma', '/profile/site/system/0623aab0bc72437206deca9d4c55df1c.png', '使用Figma一站式设计,制作原型并收集反馈。', 'https://www.figma.com/', 6, 0, '2020-08-01 15:09:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100095, 150725316141101015, 'Adobe After Effects CC', '/profile/site/system/01306292e590f37b934785ed67288f80.png', '电影般的视觉效果和动态图形。', 'https://www.adobe.com/cn/products/aftereffects/', 1, 0, '2020-08-01 15:14:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100096, 150725316141101015, 'principle', '/profile/site/system/485a410f2076ad20856199caa300f548.png', '激发您的想法,设计更好的应用程序', 'http://principleformac.com/', 2, 0, '2020-08-01 15:14:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100097, 150725316141101015, 'flinto', '/profile/site/system/f655d57c7d752c429510e0f649d69666.png', 'Flinto是Mac应用程序,世界各地的顶级设计师都使用它来创建其应用程序设计的交互式动画原型。', 'https://www.flinto.com/', 3, 0, '2020-08-01 15:14:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100098, 150725316141101015, 'framer', '/profile/site/system/e64c3cd0283a3bf6a75c9c4ba821049d.png', '从详细的图标到高保真的交互,一切都设计在一个地方。', 'https://framer.com/', 4, 0, '2020-08-01 15:14:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100099, 150725316141101015, 'ProtoPie', '/profile/site/system/bdbb0e0485d816b88c75c9276d273873.png', '高保真交互原型设计', 'http://www.protopie.cn/', 5, 0, '2020-08-01 15:14:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100100, 150725316141101016, 'khroma', '/profile/site/system/8b158c18b49f0160100086bfcdbe158d.png', 'Khroma是发现,搜索和保存要使用的颜色组合的最快方法。', 'http://khroma.co/generator/', 1, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100101, 150725316141101016, 'uigradients', '/profile/site/system/9842ff5c221d6411444d3c13660ba097.png', '美丽的彩色渐变', 'https://uigradients.com', 2, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100102, 150725316141101016, 'gradients', '/profile/site/system/64d0ac5dc78b65d83ba500df5b1eab30.png', '为设计师和开发人员设计的渐变色', 'http://gradients.io/', 3, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100103, 150725316141101016, 'Coolest', '/profile/site/system/9b77eaad5ef27823b9feb3f765b9d593.png', '最酷的精选渐变色为您的下一个超级⚡惊人的东西', 'https://webkul.github.io/coolhue/', 4, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100104, 150725316141101016, 'webgradients', '/profile/site/system/49bfc25c217107d7209eea098ad0307c.png', 'WebGradients是180个线性渐变的免费集合,您可以将其用作网站任何部分的内容背景。', 'https://webgradients.com/', 5, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100105, 150725316141101016, 'grabient', '/profile/site/system/8ab1a1044ef9bc5c306c60b81d83b0a2.png', '2017 Grabient展开', 'https://www.grabient.com/', 6, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100106, 150725316141101016, 'thedayscolor', '/profile/site/system/6e63366cb896fa19e204cf6b95691062.png', '日常色彩摘要', 'http://www.thedayscolor.com/', 7, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100107, 150725316141101016, 'flatuicolors', '/profile/site/system/0b6e14ae22ff962a96ad66de4fc86aff.png', '从平面UI主题复制粘贴调色板', 'http://flatuicolors.com/', 8, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100108, 150725316141101016, 'coolors', '/profile/site/system/9176968478c5c42ed20bce8b69f25bf6.png', '超快速配色方案生成器!', 'https://coolors.co/', 9, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100109, 150725316141101016, 'Adobe Color CC', '/profile/site/system/ff4d69bedb642bd132297ed22018369b.png', '使用色轮创建配色方案或浏览“颜色”社区中的数千种颜色组合。', 'https://color.adobe.com/zh/create/color-wheel', 10, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100110, 150725316141101016, 'flatuicolorpicker', '/profile/site/system/2faf82318597d846e9522c5f52500031.png', 'UI设计的最佳平面颜色', 'http://www.flatuicolorpicker.com/', 11, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100111, 150725316141101016, 'trianglify', '/profile/site/system/88261a86b35e5b015bbe35ab9141bc8f.png', '三角生成器', 'http://qrohlf.com/trianglify-generator/', 12, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100112, 150725316141101016, 'klart', '/profile/site/system/c51065aaec56c7c65aafd40f4797dba0.png', '每周都会为您的收件箱提供漂亮的颜色和设计', 'https://klart.co/colors/', 13, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100113, 150725316141101016, 'vanschneider', '/profile/site/system/4690e9281c23d5fc9df0e2cfbe018edd.png', '“颜色声明”由Tobias van Schneider于2012年创建,目标是为我的未来项目收集和组合独特的颜色。', 'http://www.vanschneider.com/colors', 14, 0, '2020-08-01 15:16:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100114, 150725316141101017, 'tinypng', '/profile/site/system/9344c4d9769745c1e63d8f1e7b2f3f25.png', '通过质量和文件大小的完美平衡来优化图像。', 'https://tinypng.com/', 1, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100115, 150725316141101017, 'Android 9 patch', '/profile/site/system/dc5b75e3455673384a8f738429789d4b.png', 'Android 9补丁阴影生成器完全可自定义阴影', 'http://inloop.github.io/shadow4android/', 2, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100116, 150725316141101017, 'screen sizes', '/profile/site/system/d79583290bc400c0e8a2629d0e7f9f63.png', '流行设备的视口大小和像素密度', 'http://screensiz.es/', 3, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100117, 150725316141101017, 'svgomg', '/profile/site/system/f573dc81e4689cb9ce482f35a6fb82f1.png', 'SVG在线压缩平台', 'https://jakearchibald.github.io/svgomg/', 4, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100118, 150725316141101017, '稿定抠图', '/profile/site/system/0a6b1b1ea1d5ca5cb49e8cf95470a3b5.png', '免费在线抠图软件,图片快速换背景-抠白底图', 'https://www.gaoding.com', 5, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100119, 150725316141101017, '中文转换英文首字母', '/profile/site/system/0fcf02f7a6dc850af65961ce29e4b4cd.png', '在线中文转换英文首字母', 'http://tool.geshanzsq.com/chinese', 6, 0, '2020-08-01 15:17:33', '2020-08-07 10:54:12', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100120, 150725316141101017, 'php数组转Json', '/profile/site/system/9a1139692d3d565d5bb15c816548f13b.png', '在线php数组转Json', 'http://tool.geshanzsq.com/phpToJson', 7, 0, '2020-08-01 15:17:33', '2020-08-07 10:53:01', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100121, 150725316141101017, '在线工具', '/profile/site/system/a2143416-fe6d-4cd5-8a58-bc9ab3911a6a.jpg', '程序员的工具箱', 'https://tool.lu', 8, 0, '2020-08-01 15:17:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100122, 150725316141101018, 'wappalyzer', '/profile/site/system/60696fcbba523de88eca68121dee7be7.png', '识别网站上的技术', 'https://www.wappalyzer.com/', 1, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100123, 150725316141101018, 'Panda', '/profile/site/system/35e1bbf29c1116cb1dbb703b52ea2ae9.png', '专为提高生产力而打造的智能新闻阅读器。', 'http://usepanda.com/', 2, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100124, 150725316141101018, 'sizzy', '/profile/site/system/5ca0b65bcc3606640ba1b4aadd25c7df.png', '快速开发响应式网站的工具', 'https://sizzy.co/', 3, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100125, 150725316141101018, 'csspeeper', '/profile/site/system/84fedbd61bf8c93726b713bae36a88ae.png', '专为设计师量身定制的智能CSS查看器。', 'https://csspeeper.com/', 4, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100126, 150725316141101018, 'insight', '/profile/site/system/fc5a318293079a2674f1d92f3dce7650.png', '云端上类似IDE的代码搜索和导航', 'http://insight.io/', 5, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100127, 150725316141101018, 'mustsee', '/profile/site/system/709ff744a41559fa06b8e8dc199206a3.png', '在每个打开的标签页中发现世界上最美丽的地方。', 'http://mustsee.earth/', 6, 0, '2020-08-01 15:19:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100128, 150725316141101019, 'Producthunt', '/profile/site/system/a1cc88fa0a3bf74349ba9c08a67abdc7.png', '发现新鲜有趣的产品。', 'https://www.producthunt.com/', 1, 0, '2020-08-01 15:25:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100129, 150725316141101019, 'NEXT', '/profile/site/system/0e2b6c9a5afd4f83d2e22632b08f56ef.png', '不错过任何一个新产品。', 'http://next.36kr.com/posts', 2, 0, '2020-08-01 15:25:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100130, 150725316141101019, '少数派', '/profile/site/system/2d01ac82bb496b607c43e7b2b29cd069.png', '高品质数字消费指南。', 'https://sspai.com/', 3, 0, '2020-08-01 15:25:51', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100131, 150725316141101019, '利器', '/profile/site/system/98e2ee62a90b6243630f4aa479b4b47b.png', '创造者和他们的工具。', 'http://liqi.io/', 4, 0, '2020-08-01 15:25:51', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100132, 150725316141101019, 'Today', '/profile/site/system/1726189292537c3a2733ebc673b7f1d6.png', '为身边的新产品喝彩。', 'http://today.itjuzi.com/', 5, 0, '2020-08-01 15:25:51', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100133, 150725316141101019, '小众软件', '/profile/site/system/76b49053ce87ab3c7419c7cdf6fa4f07.png', '在这里发现更多有趣的应用。', 'https://faxian.appinn.com', 6, 0, '2020-08-01 15:25:51', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100134, 150725316141101020, 'Pttrns', '/profile/site/system/1c759dc53774e5758a31fee0401e213a.png', '查看最佳的设计模式,资源,移动应用程序和灵感集合', 'https://www.pttrns.com/', 1, 0, '2020-08-01 15:26:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100135, 150725316141101020, 'Collect UI', '/profile/site/system/7e802c77c7bb6c85c1e2bb608a4a13cd.png', '从每日ui档案库及其他收集的每日灵感。', 'http://collectui.com/', 2, 0, '2020-08-01 15:26:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100136, 150725316141101020, 'UI uigreat', '/profile/site/system/d140fe4bd548f273ddd00f35e1ad5ff5.png', 'APP界面截图参考。', 'http://ui.uigreat.com/', 3, 0, '2020-08-01 15:26:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100137, 150725316141101020, 'Android Niceties', '/profile/site/system/8b6e0af7df3a5d77a14e41a0f5f36dc5.png', '屏幕快照集合,其中包含一些最漂亮的Android应用程序。', 'http://androidniceties.tumblr.com/', 4, 0, '2020-08-01 15:26:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100138, 150725316141101021, 'Awwwards', '/profile/site/system/bdd6c88417790c97de2c2d0643cc602c.png', '互联网设计、创意和创新奖', 'https://www.awwwards.com/', 1, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100139, 150725316141101021, 'CSS Design Awards', '/profile/site/system/481219fe4285f1f4ec1311acce7deb06.png', '网站奖项与灵感-CSS Gallery', 'https://www.cssdesignawards.com/', 2, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100140, 150725316141101021, 'The FWA', '/profile/site/system/8fe5280ff7dc3012fb88781dd9ff4b93.png', 'FWA-自2000年以来每天都在展示创新', 'https://thefwa.com/', 3, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100141, 150725316141101021, 'Ecommercefolio', '/profile/site/system/950d52c71e28f1c9ed964732d6ed18fd.png', '只有最佳电子商务设计灵感。', 'http://www.ecommercefolio.com/', 4, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100142, 150725316141101021, 'Lapa', '/profile/site/system/1824678ec13d01b76df47fc5975178fa.png', '最佳登陆页面设计灵感来自网络。', 'http://www.lapa.ninja/', 5, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100143, 150725316141101021, 'Reeoo', '/profile/site/system/5205b768b9b640bfada244ce9d15318d.png', '网页设计灵感和网站库。', 'http://reeoo.com/', 6, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100144, 150725316141101021, 'Designmunk', '/profile/site/system/31de409b71235b76d605e98293d68cb3.png', '最佳首页设计灵感。', 'https://designmunk.com/', 7, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100145, 150725316141101021, 'Best Websites Gallery', '/profile/site/system/862823249aa701d8bc8af16ae98f1e3a.png', '网站展示灵感| 最佳网站画廊。', 'https://bestwebsite.gallery/', 8, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100146, 150725316141101021, 'Pages', '/profile/site/system/90fd20bd3e7ae7c7fe37ea689dcca32c.png', '最佳网页的精选目录。', 'http://www.pages.xyz/', 9, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100147, 150725316141101021, 'SiteSee', '/profile/site/system/da24d08a597456be98191b4a08eff4d6.png', '精选的精美,现代网站集的画廊。', 'https://sitesee.co/', 10, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100148, 150725316141101021, 'Site Inspire', '/profile/site/system/c15c9017ad6874faae0df64bd969115b.png', '一个CSS画廊和最佳网页设计灵感的展示。', 'https://www.siteinspire.com/', 11, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100149, 150725316141101021, 'WebInspiration', '/profile/site/system/f8fe63594e2083755086ee294b036108.png', '网页设计欣赏,全球顶级网页设计。', 'http://web.uedna.com/', 12, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100150, 150725316141101021, 'navnav', '/profile/site/system/86b9e596068f2a71d2a2444733a4094e.png', '来自网络的大量CSS,jQuery和JavaScript响应式导航示例,演示和教程。', 'http://navnav.co/', 13, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100151, 150725316141101021, 'Really Good UX', '/profile/site/system/948b0f5b62e59ef0a97edf4b9a51c404.png', '屏幕截图库和非常好的UX示例。 带给你的。', 'https://www.reallygoodux.io/', 14, 0, '2020-08-01 15:27:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100152, 150725316141101022, 'Dribbble', '/profile/site/system/7db1257f40b9b04482744387a00b359d.png', '全球UI设计师作品分享平台。', 'https://dribbble.com/', 1, 0, '2020-08-01 15:38:39', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100153, 150725316141101022, 'Iconsfeed', '/profile/site/system/aee21da67d9771c2ebf3f6779afc9649.png', 'iOS图标库。', 'http://www.iconsfeed.com/', 2, 0, '2020-08-01 15:38:39', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100154, 150725316141101022, 'iOS Icon Gallery', '/profile/site/system/98c9f52ede06a56532d5d16afda9d570.png', '展示来自iOS App Store的精美图标设计。', 'http://iosicongallery.com/', 3, 0, '2020-08-01 15:38:39', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100155, 150725316141101022, 'World Vector Logo', '/profile/site/system/c8da40d11f726d974293efc40c9acfb5.png', '免费下载品牌徽标。', 'https://worldvectorlogo.com/', 4, 0, '2020-08-01 15:38:40', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100156, 150725316141101022, 'Instant Logo Search', '/profile/site/system/907f35950eae72526a314306cc59efa7.png', '立即搜索和下载数千个徽标。', 'http://instantlogosearch.com/', 5, 0, '2020-08-01 15:38:40', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100157, 150725316141101023, 'freepik', '/profile/site/system/6a96564b2d100bad3674db5e56794a97.png', '超过一百万的免费矢量,PSD,照片和免费图标。', 'https://www.freepik.com/', 1, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100158, 150725316141101023, 'wallhalla', '/profile/site/system/9354f99621e8530d0f996fe4b96ad2c3.png', '在一处找到用于台式机和手机的超酷优质壁纸。', 'https://wallhalla.com/', 2, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100159, 150725316141101023, '365PSD', '/profile/site/system/13b10a2f9388e83101d7a35b83ff28bc.png', '免费PSD和图形,插图。', 'https://365psd.com/', 3, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100160, 150725316141101023, 'Medialoot', '/profile/site/system/b117eb768a44d662ded91d1f0a9cb1c2.png', '免费和高级设计资源-Medialoot。', 'https://medialoot.com/', 4, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100161, 150725316141101023, '千图网', '/profile/site/system/9a24027c0e9d498efb4ad88a330882f8.png', '专注免费设计素材下载的网站。', 'http://www.58pic.com/', 5, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100162, 150725316141101023, '千库网', '/profile/site/system/15ffa7b3a5cab15c7d23d402be12cc4c.png', '免费png图片背景素材下载。', 'http://588ku.com/', 6, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100163, 150725316141101023, '我图网', '/profile/site/system/a887a255bbe7fe994e0479ae988372c7.png', '我图网,提供图片素材及模板下载,专注正版设计作品交易。', 'http://www.ooopic.com/', 7, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100164, 150725316141101023, '90设计', '/profile/site/system/c510c1946d6191a98c6fd3b08ca720ec.png', '电商设计(淘宝美工)千图免费淘宝素材库。', 'http://90sheji.com/', 8, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100165, 150725316141101023, '昵图网', '/profile/site/system/d4fba2a16c7a1692ea21f4f0a8ae7672.png', '原创素材共享平台。', 'http://www.nipic.com/', 9, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100166, 150725316141101023, '懒人图库', '/profile/site/system/a7e5f98173ea111df83da146a86436a1.png', '懒人图库专注于提供网页素材下载。', 'http://www.lanrentuku.com/', 10, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100167, 150725316141101023, '素材搜索', '/profile/site/system/cbca7fabfd7c6d1b117547466bc564ad.png', '设计素材搜索聚合。', 'http://so.ui001.com/', 11, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100168, 150725316141101023, 'PS饭团网', '/profile/site/system/7ffad2eac8cbad395d33914344d3aa0a.png', '不一样的设计素材库!让自己的设计与众不同!', 'http://psefan.com/', 12, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100169, 150725316141101023, '素材中国', '/profile/site/system/ced6b2a53069c7d360ba78706244081f.png', '免费素材共享平台。', 'http://www.sccnn.com/', 13, 0, '2020-08-01 15:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100170, 150725316141101024, 'UI中国', '/profile/site/system/9458ececbfeea651b5e871179f245ce5.png', '图形交互与界面设计交流、作品展示、学习平台。', 'http://www.ui.cn/', 1, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100171, 150725316141101024, 'Freebiesbug', '/profile/site/system/4288052485ced84952e206a4acfb92ad.png', '网页设计人员和开发人员的精选资源不断更新。', 'https://freebiesbug.com/', 2, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100172, 150725316141101024, 'Freebie Supply', '/profile/site/system/2ae393ad916a108ba20d21a8b907477e.png', '设计师的免费资源。', 'https://freebiesupply.com/', 3, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100173, 150725316141101024, '云瑞', '/profile/site/system/528f9304b0dab49f5fe2426d4d9d047c.png', '优秀设计资源的分享网站。', 'https://www.yrucd.com/', 4, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100174, 150725316141101024, 'Designmodo', '/profile/site/system/2061e0ccebfbb1a94a28d86237589b23.png', '网页设计博客和商店。', 'https://designmodo.com/', 5, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100175, 150725316141101024, '稀土区', '/profile/site/system/4f5171443ad0ec6b13b7f96b8cead4bd.png', '优质设计开发资源分享。', 'https://xituqu.com/', 6, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100176, 150725316141101024, 'ui8', '/profile/site/system/b815917aad63f449a96900979a16eb4e.png', 'UI套件,线框套件,模板,图标等。', 'https://ui8.net/', 7, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100177, 150725316141101024, 'uplabs', '/profile/site/system/42d3d29c62a19e8d4ca6395586d79ee7.png', '产品设计师和开发人员的日常资源。', 'https://www.uplabs.com/', 8, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100178, 150725316141101024, 'UIkit.me', '/profile/site/system/13b4ac8efdc9f92e52e7f271b8034b24.png', '最便捷新鲜的uikit资源下载网站。', 'http://www.uikit.me/', 9, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100179, 150725316141101024, 'Fribbble', '/profile/site/system/04c1b51de97ceac330358fa7d1685034.png', 'Dribbblers提供了免费的PSD文件和其他免费设计资源。', 'http://www.fribbble.com/', 10, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100180, 150725316141101024, 'PrincipleRepo', '/profile/site/system/e3e93f407dcc94461bea06979e89e4a2.png', '免费的高质量原则资源。', 'http://principlerepo.com/', 11, 0, '2020-08-01 15:39:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100181, 150725316141101025, 'Sketch', '/profile/site/system/ff6a2f8afaeb91004416c96788f9da95.png', '数字设计工具包。', 'https://sketchapp.com/', 1, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100182, 150725316141101025, 'Sketch Measure', '/profile/site/system/69bf814d311d932ea13b746ffc1f9f54.png', '友好的用户界面为您提供了一种更直观的标记方式。', 'http://utom.design/measure/', 2, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100183, 150725316141101025, 'Sketch App Sources', '/profile/site/system/ccf82c5a27a285ba63cf3c4ff8964a25.png', '免费的设计资源和插件-图标,UI套件,线框,iOS,Android草图模板', 'https://www.sketchappsources.com/', 3, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100184, 150725316141101025, 'Sketch.im', '/profile/site/system/6055276a55b62db423c2b060d3f6b044.png', 'Sketch 相关资源汇聚。', 'http://www.sketch.im/', 4, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100185, 150725316141101025, 'Sketch Hunt', '/profile/site/system/c4bf007a61d761db1f895672a2519cd0.png', 'Sketch Hunt是一个独立的博客,为Sketch应用程序的爱好者分享学习,插件和设计工具方面的瑰宝。', 'http://sketchhunt.com/', 5, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100186, 150725316141101025, 'Sketch中文网', '/profile/site/system/a26a90da0d304cd3502cdb53e85995b9.png', '分享最新的Sketch中文手册。', 'http://www.sketchcn.com/', 6, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100187, 150725316141101025, 'Awesome Sketch Plugins', '/profile/site/system/255cf49affef2fbaba8cd15c3e7329b5.png', '真正有用的Sketch插件的集合。', 'https://awesome-sket.ch/', 7, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100188, 150725316141101025, 'Sketchcasts', '/profile/site/system/fa8c8b179ab48ad61e61a18d1720e019.png', '学习素描通过每周的视频教程来训练您的设计技能', 'https://www.sketchcasts.net/', 8, 0, '2020-08-01 15:40:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100189, 150725316141101026, 'Google Font', '/profile/site/system/91c604a4ca98b1bb5719e04c80043419.png', '通过出色的排版,使网络更加美观,快速和开放。', 'https://fonts.google.com/', 1, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100190, 150725316141101026, 'Typekit', '/profile/site/system/7dbc17741d30274995615612dc1d075f.png', '来自世界上最好的铸造厂的高质量字体。', 'https://typekit.com/', 2, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100191, 150725316141101026, '方正字库', '/profile/site/system/8ffeec1d3ad96a39dd4ede9794756b87.png', '方正字库官方网站。', 'http://www.foundertype.com/', 3, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100192, 150725316141101026, '字体传奇网', '/profile/site/system/d5fc1ea541fe215ae449a0ae27a09a76.png', '中国首个字体品牌设计师交流网。', 'http://ziticq.com/', 4, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100193, 150725316141101026, '私藏字体', '/profile/site/system/125e538efd8b3ea68d3655cb81ccc06f.png', '优质字体免费下载站。', 'http://sicangziti.com/', 5, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100194, 150725316141101026, 'Fontsquirrel', '/profile/site/system/94684e5203623eb5540a4b5a0e0b70b0.png', '图形设计师的免费字体。', 'https://www.fontsquirrel.com/', 6, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100195, 150725316141101026, 'Urban Fonts', '/profile/site/system/40139afeda032d1a3cd54459d065b31b.png', '下载免费字体和免费Dingbats。', 'https://www.urbanfonts.com/', 7, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100196, 150725316141101026, 'Lost Type', '/profile/site/system/cfe0904ec3e37914be51687a2b15f5cf.png', '失物招领是一个协作数字类型代工厂。', 'http://www.losttype.com/', 8, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100197, 150725316141101026, 'FONTS2U', '/profile/site/system/19bd844dc123066620d1f6fda7287e48.png', '为Windows和Macintosh下载免费字体。', 'https://fonts2u.com/', 9, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100198, 150725316141101026, 'Fontex', '/profile/site/system/1576a7303fb2fa3839016a599418203b.png', '免费字体下载+高级字体。', 'http://www.fontex.org/', 10, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100199, 150725316141101026, 'FontM', '/profile/site/system/5ee459b3c52027eb8dcd9c8c6e9266a0.png', '免费字体。', 'http://fontm.com/', 11, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100200, 150725316141101026, 'My Fonts', '/profile/site/system/22572b2d9b38ea02f173074d59acf334.png', '用于印刷,产品和屏幕的字体。', 'http://www.myfonts.com/', 12, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100201, 150725316141101026, 'Da Font', '/profile/site/system/d0478f80b89bff215437714e62c6d997.png', '可免费下载的字体的存档。', 'https://www.dafont.com/', 13, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100202, 150725316141101026, 'OnlineWebFonts', '/profile/site/system/bccc59c04f6f283a63430700273ffdee.png', '适用于Windows和Mac的WEB免费字体/免费下载字体。', 'https://www.onlinewebfonts.com/', 14, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100203, 150725316141101026, 'Abstract Fonts', '/profile/site/system/fbedc66f865056e650a036f042625057.png', '抽象字体(13,866个免费字体)。', 'http://www.abstractfonts.com/', 15, 0, '2020-08-01 15:40:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100204, 150725316141101027, 'MockupZone', '/profile/site/system/75e599ff2f061dc25fa272de94045ca9.png', 'Mockup Zone是一个在线商店,您可以在其中找到免费的高级PSD样机文件,以专业的方式展示您的设计。', 'https://mockup.zone/', 1, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100205, 150725316141101027, 'Dunnnk', '/profile/site/system/7949d12743b95779412dd8673c324164.png', '免费生成产品模型。', 'http://dunnnk.com/', 2, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100206, 150725316141101027, 'Graphberry', '/profile/site/system/1216f3642b463e7e9d493e4d00506566.png', '免费设计资源,样机,PSD Web模板,图标。', 'http://www.graphberry.com/', 3, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100207, 150725316141101027, 'Threed', '/profile/site/system/252114418dc086100cd58d10035a9436.png', '直接在浏览器中生成3D模型', 'http://threed.io/', 4, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100208, 150725316141101027, 'Mockup World', '/profile/site/system/c94ee98e4ada29c0916888820da31744.png', '网上最好的免费模型', 'https://free.lstore.graphics/', 5, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100209, 150725316141101027, 'Lstore', '/profile/site/system/965f25d08ae3cd33fab21d764a514967.png', '面向设计师和开发人员的独家令人兴奋的免费赠品。', 'https://free.lstore.graphics/', 6, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100210, 150725316141101027, 'pixeden', '/profile/site/system/f8b5261bc1d5e5189b9c1216a6de8b3b.png', '免费的网络资源和图形设计模板。', 'https://www.pixeden.com/', 7, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100211, 150725316141101027, 'For Graphic TM', '/profile/site/system/20fceec1b9dd6c1183ad73a90becce7f.png', '适用于图形设计师的高质量PSD样机。', 'http://forgraphictm.com/', 8, 0, '2020-08-01 15:41:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100212, 150725316141101028, 'Unsplash', '/profile/site/system/72880b02dbea40fd84472abc05e6d23b.png', '漂亮的免费照片。', 'https://unsplash.com/', 1, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100213, 150725316141101028, 'visualhunt', '/profile/site/system/b2a1a1e4c043858ac2411f02b9236ff3.png', '100%免费的高质量照片。', 'https://visualhunt.com/', 2, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100214, 150725316141101028, 'librestock', '/profile/site/system/94c5305f78dfadb241f9edcf3d9b870d.png', '65,084高品质的照片,随您想要。', 'https://librestock.com/', 3, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100215, 150725316141101028, 'pixabay', '/profile/site/system/310cb7b52774323c7fdffe67aa0f12aa.png', '可在任何地方使用的免费图片和视频。', 'https://pixabay.com/', 4, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100216, 150725316141101028, 'SplitShire', '/profile/site/system/0e9933021af7cc4714e900c247010b30.png', '免费图片和视频供商业使用。', 'https://www.splitshire.com/', 5, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100217, 150725316141101028, 'StockSnap', '/profile/site/system/fabf86558eb3a7c943c124f7f62f3542.png', '美丽的免费图片素材。', 'https://stocksnap.io/', 6, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100218, 150725316141101028, 'albumarium', '/profile/site/system/de8b7f26a21ea0b781f93a3163341731.png', '查找和分享精美图像的最佳场所。', 'http://albumarium.com/', 7, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100219, 150725316141101028, 'myphotopack', '/profile/site/system/80d85ea59d293bd43731a890f63c5dc9.png', '专门为您提供的免费照片包。 每个月。', 'https://myphotopack.com/', 8, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100220, 150725316141101028, 'Notaselfie', '/profile/site/system/eb5f9a9661e582883c9d3128bb9b4482.png', '一路上发生的照片。 您可以随时使用图像。 玩得开心!', 'http://notaselfie.com/', 9, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100221, 150725316141101028, 'papers', '/profile/site/system/3a6396ba24d253502f40432751a11b07.png', '每小时都有墙纸!手工收集', 'http://papers.co/', 10, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100222, 150725316141101028, 'stokpic', '/profile/site/system/9dce238279b24893eaa20a99fba802ea.png', '免费图片供商业使用。', 'http://stokpic.com/', 11, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100223, 150725316141101028, '55mm', '/profile/site/system/dd8adcbc65cc20e8fb6d6335fd57814a.png', '使用我们的免费照片讲述您的故事!', 'https://55mm.co/visuals', 12, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100224, 150725316141101028, 'thestocks', '/profile/site/system/2be533b5b00139b9022f09604f3bd136.png', '使用我们的免费照片讲述您的故事!', 'http://thestocks.im/', 13, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100225, 150725316141101028, 'freenaturestock', '/profile/site/system/85c87259ac26b4f48b084066b9e3ec8e.png', '面向设计师和开发人员的独家令人兴奋的免费赠品。', 'http://freenaturestock.com/', 14, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100226, 150725316141101028, 'negativespace', '/profile/site/system/9b470b26c5e7e6604f3f17d2fe518af7.png', '美丽,高分辨率免费图片素材。', 'https://negativespace.co/', 15, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100227, 150725316141101028, 'gratisography', '/profile/site/system/37a9bff7f4d756e7b227ef295aa5ff82.png', '免费的高分辨率图片,可用于您的个人和商业项目,不受版权限制。', 'https://gratisography.com/', 16, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100228, 150725316141101028, 'imcreator', '/profile/site/system/568ae371ba49ce83463d5833af6a8e88.png', '精选的免费网页设计资源集合,全部用于商业用途。', 'http://imcreator.com/free', 17, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100229, 150725316141101028, 'lifeofpix', '/profile/site/system/94bf5d51c1367552f337610dbc6aa44b.png', '免费高分辨率摄影', 'http://www.lifeofpix.com/', 18, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100230, 150725316141101028, 'skitterphoto', '/profile/site/system/23663c43cb7025f3bf36e9733bea6171.png', '创意专业人士的免费图片素材', 'https://skitterphoto.com/', 19, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100231, 150725316141101028, 'mmtstock', '/profile/site/system/d8d5768d2dc63763480478ae25aa176a.png', '免费商业照片', 'https://mmtstock.com/', 20, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100232, 150725316141101028, 'magdeleine', '/profile/site/system/12ca6edef00d1d897eb28c4a8e2f8915.png', '精选免费照片供您启发', 'https://magdeleine.co/browse/', 21, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100233, 150725316141101028, 'jeshoots', '/profile/site/system/a016e8d2ae3ee88f0ec136440e92fca8.png', '新的免费照片和样机进入您的收件箱!', 'http://jeshoots.com/', 22, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100234, 150725316141101028, 'hdwallpapers', '/profile/site/system/74db036ddf1bbfc49a22a5a6dcd392ab.png', '高清壁纸和桌面背景', 'https://www.hdwallpapers.net', 23, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100235, 150725316141101028, 'publicdomainarchive', '/profile/site/system/3c7427a4bab6bb40c12a77014f809a2a.png', '新的100%免费图片。 每一个 单。 周。', 'http://publicdomainarchive.com/', 24, 0, '2020-08-01 15:42:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100236, 150725316141101029, 'OfficePLUS', '/profile/site/system/4773ef0cfcf8c9fd158fc7db0bc2cf0b.png', 'OfficePLUS,微软Office官方在线模板网站!', 'http://www.officeplus.cn/Template/Home.shtml', 1, 0, '2020-08-01 15:43:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100237, 150725316141101029, '优品PPT', '/profile/site/system/b1d803179735ea628d1d914c63c0b9f7.png', '高质量的模版,而且还有PPT图表,PPT背景图等资源', 'http://www.ypppt.com/', 2, 0, '2020-08-01 15:43:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100239, 150725316141101029, 'PPTMind', '/profile/site/system/857bb0f6927c2a8c246653cb41136ce7.png', '分享高端ppt模板与keynote模板的数字作品交易平台', 'http://www.pptmind.com/', 4, 0, '2020-08-01 15:43:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100240, 150725316141101029, 'tretars', '/profile/site/system/14a77db5ab4af0ba947b1e1707295c5d.png', '网上最好的免费模型', 'http://www.tretars.com/ppt-templates', 5, 0, '2020-08-01 15:43:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100241, 150725316141101029, '5百丁', '/profile/site/system/3f735ae4b6e18cd6cff3965661289aac.png', '中国领先的PPT模板共享平台', 'http://ppt.500d.me/', 6, 0, '2020-08-01 15:43:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100276, 150725316141101004, 'PDF Candy', '/profile/site/system/0b897cff5f1f2d98efd8dc7ea69b38ae.ico', '一个免费在线的PDF编辑网站。包含了几十种PDF小工具,可以Word与PDF互转、Excel表格与PDF互转、图片与PDF互转等各种实用功能。', 'https://pdfcandy.com/cn/', 2, 0, '2020-08-05 13:28:17', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100277, 150725316141101004, 'LightPDF', '/profile/site/system/6281eb27f1a6c6f07d56588e5e4849ae.png', '一个只需要一步,即可解决PDF所有问题的免费PDF工具!', 'https://lightpdf.com/zh/', 3, 0, '2020-08-05 13:30:31', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100278, 150725316141101004, 'SmallPDF', '/profile/site/system/341475474199e2cf28ce10308fcad860.png', '轻松玩转PDF,功能一应俱全、简单好用的线上 PDF 工具', 'https://smallpdf.com/cn', 4, 0, '2020-08-05 13:31:49', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100279, 150725316141101004, 'HiPDF', '/profile/site/system/3cac096ab252280f24a70ca5550a0287.ico', '一站式在线PDF解决方案的网站。', 'https://www.hipdf.cn/', 5, 0, '2020-08-05 13:33:37', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100280, 150725316141101004, 'iLovePDF', '/profile/site/system/cc239ae8c064a5bbb65318fb40e02cdf.png', '完全免费、易于使用、丰富的PDF处理工具,包括:合并、拆分、压缩、转换、旋转和解锁PDF文件,以及给PDF文件添加水印的工具等。仅需几秒钟即可完成。', 'https://www.ilovepdf.com/zh-cn', 6, 0, '2020-08-05 13:35:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100281, 150725316141101007, 'CSDN', '/profile/site/system/0b91790e27fe8cd3941fc6e6ee57ee4a.jpg', '专业开发者社区', 'https://www.csdn.net/', 2, 0, '2020-08-08 15:12:00', '2020-08-08 15:20:24', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100282, 150725316141101007, '博客园', '/profile/site/system/2ec8affefca78704574f1ba17fe070f2.png', '开发者的网上家园', 'https://www.cnblogs.com/', 1, 0, '2020-08-08 15:13:36', '2020-08-08 15:20:20', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100283, 150725316141101007, '思否', '/profile/site/system/570d66cff03484e48b05d6f02db9dfe4.ico', ' 在 SegmentFault,学习技能、解决问题。', 'https://segmentfault.com/', 4, 0, '2020-08-08 15:16:50', '2020-08-08 15:20:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100284, 150725316141101007, '掘金', '/profile/site/system/dcc82ea8e38e1bd994cabb18b8eb4e32.ico', '一个帮助开发者成长的社区。', 'https://juejin.im/', 3, 0, '2020-08-08 15:18:11', '2020-08-08 15:20:35', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100285, 150725316141101031, 'Vue', '/profile/site/system/5ebfa247ff3e3cbcb1ada1c5a9b2506b.png', '渐进式 JavaScript 框架。', 'https://cn.vuejs.org/', 1, 0, '2020-08-08 15:21:55', '2020-08-08 15:23:40', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100286, 150725316141101031, 'React', '/profile/site/system/9e76a67ae80210b18e4db37b45a2574a.ico', '用于构建用户界面的 JavaScript 库。', 'https://react.docschina.org/', 5, 0, '2020-08-08 15:23:35', '2022-06-11 17:30:58', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100287, 150725316141101031, 'Angular', '/profile/site/system/ed0f155ed1b6acc4e6f307543883aa7e.ico', '一套框架,多种平台 移动端 & 桌面端。', 'https://angular.cn/', 6, 0, '2020-08-08 15:25:11', '2022-06-11 17:31:14', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100289, 150725316141101031, 'Element', '/profile/site/system/d636a118f9f69184a730ffa3082fdb80.ico', '一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库', 'https://element.eleme.cn/', 2, 0, '2020-08-08 15:30:27', '2022-06-11 17:30:38', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100290, 150725316141101031, 'vue-element-admin', '/profile/site/system/d91882f77429ded326a30bda549c329d.png', '一个后台前端解决方案,它基于 vue 和 element-ui 实现。', 'https://panjiachen.gitee.io/vue-element-admin-site/zh/', 4, 0, '2020-08-08 15:32:01', '2022-06-11 17:31:05', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100291, 150725316141101007, '知乎', '/profile/site/system/02090c1f2ff7d580395b7dfe44ba066c.ico', '有问题,上知乎。知乎,可信赖的问答社区,以让每个人高效获得可信赖的解答为使命。', 'https://www.zhihu.com', 5, 0, '2020-08-08 15:34:36', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100292, 150725316141101030, 'Spring', '/profile/site/system/39caf5180b7d84ff2f277b25ca10f6ce.png', 'Spring 框架是一个开源的 Java 平台,它为容易而快速的开发出耐用的 Java 应用程序提供了全面的基础设施。', 'https://spring.io/', 1, 0, '2020-08-08 15:37:04', '2020-08-08 15:38:49', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100293, 150725316141101030, 'MyBatis-Plus', '/profile/site/system/4eb015ca9291887d648fc075f76303ac.png', '为简化开发而生。', 'https://mp.baomidou.com/', 2, 0, '2020-08-08 15:40:12', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100294, 150725316141101030, '力扣 LeetCode', '/profile/site/system/3b0dcb135f4c9a960b385170ce5f3946.png', '全球极客挚爱的技术成长平台。海量技术面试题库,拥有算法、数据结构、系统设计等 1000+题目,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。', 'https://leetcode-cn.com/', 3, 0, '2020-08-08 15:44:12', '2021-01-15 10:49:27', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100295, 150725316141101004, 'Convertio 文件转换器', '/profile/site/system/b5d554962ba1cc493607a32f5328787d.png', '超级强大的文件格式转化器,视频、图片、字体、音频通通都可以。', 'https://convertio.co/zh/', 7, 0, '2020-08-09 13:01:13', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100296, 150725316141101007, '菜鸟教程', '/profile/site/system/b66656c08273c4761073eab6ae59b1ca.ico', '学的不仅是技术,更是梦想!', 'https://www.runoob.com/', 6, 0, '2020-08-09 13:08:03', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100297, 150725316141101031, 'Bootstrap', '/profile/site/system/5285612ea8533aa78c30bfa382171077.ico', '简洁、直观、强悍的前端开发框架,让web开发更迅速、简单。', 'https://www.bootcss.com/', 6, 0, '2020-08-09 13:09:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100298, 150725316141101007, 'W3School', '/profile/site/system/4d2b466766140ef66ab6e4e92f73383d.png', '在 W3School,你可以找到你所需要的所有的网站建设教程。', 'https://www.w3school.com.cn/', 7, 0, '2020-08-09 13:14:17', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100299, 150725316141101032, '五分钟学算法', '/profile/site/system/4356bd8feb9ae4b14a75fa81b79a6d2a.png', '一个不错的算法网站!', 'https://www.cxyxiaowu.com/', 6, 0, '2020-08-09 13:15:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100300, 150725316141101001, '凌风云搜索', '/profile/site/system/ed2c1e745ad694bbe206dd93c0ff8ea1.jpg', '专注于互联网免费资源的大数据搜索,网盘搜索,云盘资源等', 'https://www.lingfengyun.com/', 9, 0, '2020-08-09 21:53:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100303, 150725316141101001, '罗马盘', '/profile/site/system/69d01f6bbf50666a7f5bb36c8e59fcbc.ico', '百度网盘搜索引擎 自动更新网络共享资源', 'https://www.luomapan.com/', 11, 0, '2020-08-09 22:03:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100304, 150725316141101001, 'bdyso', '/profile/site/system/b6494b1345e86d25a090af4e96e084b2.ico', '百度网盘资源搜索与分享', 'http://www.bdyso.com/', 12, 0, '2020-08-09 22:05:30', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100306, 150725316141101035, '微信公众号', '/profile/site/system/eb7f53364e44272c8a2ec83d0e83df43.png', '再小的个体,也有自己的品牌。', 'https://mp.weixin.qq.com/', 1, 0, '2020-08-11 17:47:03', '2020-08-11 17:52:22', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100307, 150725316141101035, '头条号', '/profile/site/system/0db580c9e8afe1e543c120a8e026be05.png', '今日头条推出的开放的内容创作与分发平台。', 'https://mp.toutiao.com', 2, 0, '2020-08-11 17:49:28', '2020-08-11 17:51:26', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100308, 150725316141101035, '知乎', '/profile/site/system/02090c1f2ff7d580395b7dfe44ba066c.ico', '有问题,上知乎。知乎,可信赖的问答社区,以让每个人高效获得可信赖的解答为使命。', 'https://www.zhihu.com', 5, 0, '2020-08-11 19:58:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100309, 150725316141101035, 'CSDN', '/profile/site/system/eb7c0916-0c5f-4aad-ba1e-6eb7a076ce41.ico', '专业开发者社区', 'https://www.csdn.net/', 6, 0, '2020-08-08 15:12:00', '2021-01-13 15:37:46', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100310, 150725316141101035, '博客园', '/profile/site/system/2ec8affefca78704574f1ba17fe070f2.png', '开发者的网上家园', 'https://www.cnblogs.com/', 7, 0, '2020-08-08 15:13:36', '2020-08-08 15:20:20', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100311, 150725316141101035, '思否', '/profile/site/system/570d66cff03484e48b05d6f02db9dfe4.ico', ' 在 SegmentFault,学习技能、解决问题。', 'https://segmentfault.com/', 8, 0, '2020-08-08 15:16:50', '2020-08-08 15:20:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100312, 150725316141101035, '掘金', '/profile/site/system/dcc82ea8e38e1bd994cabb18b8eb4e32.ico', '一个帮助开发者成长的社区。', 'https://juejin.im/', 9, 0, '2020-08-08 15:18:11', '2020-08-08 15:20:35', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100313, 150725316141101035, '企鹅号', '/profile/site/system/7c7b65475eddc144e90e6e9e059b75a7.png', '让世界看到你', 'https://om.qq.com/', 4, 0, '2020-08-11 20:03:20', '2020-08-11 20:07:10', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100314, 150725316141101035, '微博号', '/profile/site/system/0457b6128c225591f7b04dd23eaf4445.ico', '为创作者提供更优质的创作环境,帮助原创作者打造专属的个人品牌。', 'https://me.weibo.com/', 4, 0, '2020-08-11 20:05:49', '2020-08-11 20:06:30', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100315, 150725316141101035, '简书', '/profile/site/system/f8e210bc-a44e-49ad-a177-c9a8e2dcc409.ico', '一个优质的创作社区,在这里,你可以任性地创作。', 'https://www.jianshu.com/', 10, 0, '2020-08-11 20:08:35', '2021-01-13 15:37:33', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100316, 150725316141101035, '百家号', '/profile/site/system/ebb9886c7983ded7a1867941643de37f.png', '从这里影响世界。', 'https://baijiahao.baidu.com/', 4, 0, '2020-08-11 20:11:07', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100317, 150725316141101036, 'Unsplash', '/profile/site/system/09b7b39944a6893fbffa2842c0951468.png', '美丽的免费图片图片', 'https://unsplash.com/', 2, 0, '2020-08-11 20:15:40', '2021-04-22 21:36:24', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100318, 150725316141101036, 'Pexels', '/profile/site/system/5116557ff603b6d0cc4ba5270588684e.png', '免费图片', 'https://www.pexels.com/', 2, 0, '2020-08-11 20:17:44', '2020-08-11 20:23:35', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100319, 150725316141101036, 'UnDraw', '/profile/site/system/fb631125f144e2a6fe14120c2f4bd53f.png', '带有开源插图的设计项目,可满足您可以想象和创建的任何想法。', 'https://undraw.co/illustrations', 3, 0, '2020-08-11 20:25:06', '2021-03-27 12:49:55', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100320, 150725316141101036, 'Pixabay', '/profile/site/system/3846a4474d17612128f18f51f3487fd9.png', '我们的才华横溢的社区分享了超过210万张免版税的图片。', 'https://pixabay.com', 4, 0, '2020-08-11 20:28:06', '2021-03-15 23:35:03', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100321, 150725316141101036, 'Iconfinder', '/profile/site/system/e3325f68179436ccfc25b9f0ffff5a39.png', '2,100,000+个免费和高级矢量图标。', 'https://www.iconfinder.com', 5, 0, '2020-08-01 14:58:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100322, 150725316141101036, 'iconfont', '/profile/site/system/e1f63337915f79f8bcad1952adb9f6e1.png', '阿里巴巴矢量图标库。', 'http://www.iconfont.cn/', 6, 0, '2020-08-01 14:58:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100323, 150725316141101036, 'iconmonstr', '/profile/site/system/afd4885651455f12dcac4f214460dd99.png', '您的下一个项目的免费简单图标。', 'https://iconmonstr.com/', 7, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100324, 150725316141101036, 'FindIcons', '/profile/site/system/0171a46b0f643752aa90aa314a22a546.png', '搜索300,000个免费图标。', 'https://findicons.com/', 8, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100325, 150725316141101036, 'Icon Archive', '/profile/site/system/40c43a8932f24370cf456789b2ab51db.png', '搜索590,912个免费图标。', 'http://www.iconarchive.com/', 9, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100326, 150725316141101036, 'IcoMoonApp', '/profile/site/system/d19c97ead3760f1b70efa4ee9ad6859c.png', '图标字体,SVG,PDF, PNG生成器。', 'https://icomoon.io/app/', 10, 0, '2020-08-01 14:58:11', '2020-08-11 20:36:42', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100327, 150725316141101036, 'easyicon', '/profile/site/system/34b4382075e047c6d1456f8fe591a1ef.png', 'PNG、ICO、ICNS格式图标搜索、图标下载服务。', 'http://www.easyicon.net/', 11, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100328, 150725316141101036, 'flaticon', '/profile/site/system/582cf7361a0b4f444628c68b98e5cfc7.png', '634,000+免费矢量图标为SVG,PSD,PNG,EPS格式或图标字体。', 'https://www.flaticon.com/', 12, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100329, 150725316141101036, 'UICloud', '/profile/site/system/f9840e127d500449da1c5c721f3634c3.png', '世界上最大的用户界面设计数据库。', 'http://ui-cloud.com/', 13, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100330, 150725316141101036, 'Font Awesome Icon', '/profile/site/system/88440b8b0d5dc43a3f766670e2d11746.png', '惊人的675个图标的完整集合。', 'https://fontawesome.com/', 14, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100331, 150725316141101036, 'ion icons', '/profile/site/system/6d0fd0bf35549f6d61037bd86e2ca242.png', 'Ionic Framework的高级图标字体。', 'http://ionicons.com/', 15, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100332, 150725316141101036, 'Simpleline Icons', '/profile/site/system/acf446f1af754f863260cc10dd8d546e.png', '简单的线条图标包。', 'http://simplelineicons.com/', 16, 0, '2020-08-01 14:58:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100334, 150725316141101032, 'Java知音', '/profile/site/system/bbe364f9-0c94-4f88-a4ad-2b590064d624.jpeg', '一个专注于Java技术分享的网站', 'https://www.javazhiyin.com/', 7, 0, '2020-08-18 21:50:19', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100335, 150725316141101010, 'MacWk', '/profile/site/system/17a92b31-c9da-4dee-a04c-4ecf9cd92933.jpeg', '无广告,无后门,安全!', 'https://macwk.com/', 3, 0, '2020-08-18 21:54:00', '2020-08-18 21:54:34', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100340, 150725316141101002, '知轩藏书', '/profile/site/system/2e3e22f2-cd93-45b3-8278-604c483ed70e.jpeg', '玄幻小说排行榜精校-校对全本TXT小说下载网', 'http://zxcs.info/', 20, 0, '2020-08-19 00:20:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100341, 150725316141101037, 'WallHaven', '/profile/site/system/ff5238ff-e030-4f55-a6fb-ba49fd772ea8.jpeg', '种类多,壁纸好看!', 'https://wallhaven.cc/', 1, 0, '2020-08-19 19:42:33', '2020-09-20 20:28:40', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100342, 150725316141101037, 'Wallls', '/profile/site/system/3267d11e-db69-4dde-80fb-e3fef5d7ae6f.jpeg', '您从未见过的壁纸。', 'http://wallls.com/', 2, 0, '2020-08-19 19:44:48', '2020-09-20 20:28:47', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100344, 150725316141101037, 'SimpleDesktops', '/profile/site/system/1687352f-29f4-4eea-a61e-a0eeded626f1.jpeg', '简单', 'http://simpledesktops.com/', 4, 0, '2020-08-19 19:52:00', '2020-09-20 20:29:03', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100345, 150725316141101037, '彼岸桌面', '/profile/site/system/bd5b21c3-3bf1-47cc-b25f-36b4aa38180d.jpeg', '美丽精致的壁纸,免费提供风景、日历、美女、动漫、汽车、花卉、节日、动物、游戏、qq、阿狸等唯美、可爱、好看的壁纸,下载您所需要的壁纸', 'http://www.netbian.com/', 1, 0, '2020-08-19 19:57:41', '2020-12-03 13:37:09', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100346, 150725316141101001, '猪猪盘', '/profile/site/system/04e0b7e4-2569-49bf-8629-b7a503dd8fe2.png', '索引1亿+网盘资源', 'http://www.zhuzhupan.com/', 15, 0, '2020-08-19 20:13:29', '2020-09-20 20:25:48', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100348, 150725316141101001, '小白盘', '/profile/site/system/f04b12a5-3a1d-4af2-9672-08a0e5458bf2.jpeg', '网盘搜索', 'https://www.xiaobaipan.com/', 17, 0, '2020-08-19 20:16:51', '2020-08-19 20:18:03', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100352, 150725316141101004, '快用工具', '/profile/site/system/c5a1b819-a2ac-40a5-8aba-4b2204b8e115.jpeg', '提供各种优质、快捷、易用的在线工具,无需下载安装即可使用。', 'https://fastools.cn/', 1, 0, '2020-08-20 10:43:46', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100353, 150725316141101037, '极简壁纸', '/profile/site/system/7dcc6100-d451-4d78-915e-ea68c166d5cd.jpeg', '超高清电脑桌面壁纸美图;每天更新海量 4K 电脑壁纸,9012年最潮的壁纸网站,壁纸包括美女、二次元、自然风景。', 'https://bz.zzzmh.cn/', 1, 0, '2020-08-20 10:50:21', '2020-12-03 13:37:05', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100354, 150725316141101039, '135编辑器', '/profile/site/system/37ddd142-39c9-447c-b116-06f2e25878a0.jpeg', '提供丰富的样式库,支持插入排版、秒刷排版、一键排版等。', 'http://www.135editor.com/', 1, 0, '2020-08-20 11:05:19', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100355, 150725316141101039, '秀米', '/profile/site/system/db7eb18d-abdc-4979-bad3-2df745827332.jpeg', '素材顺应时下的审美,质量高,以布局的概念来进行不同组件的排版。', 'https://xiumi.us', 2, 0, '2020-08-20 11:12:34', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100356, 150725316141101039, '96微信编辑器', '/profile/site/system/849bb7d5-0616-478a-bada-40c3ad70a35f.jpeg', '大量精选素材、可以制作动态二维码、超多色值推荐、表情符号等。', 'https://bj.96weixin.com/', 3, 0, '2020-08-20 11:13:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100357, 150725316141101039, 'i排版', '/profile/site/system/1f8b4cd3-f277-42e8-b84e-2236c1a5aa82.ico', '偏清新文艺风,编辑界面较干净,容易上手,支持各种文本格式样式。', 'http://ipaiban.com/', 4, 0, '2020-08-20 11:18:13', '2021-01-13 15:40:07', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100358, 150725316141101039, '新榜编辑器', '/profile/site/system/61ed7aaf-2edd-4877-9d2a-4635a22b49e1.jpeg', '海量在线图片搜索、一键同步多平台,大量爆文可供参考。', 'https://edit.newrank.cn/', 5, 0, '2020-08-20 11:19:12', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100359, 150725316141101039, 'Markdown Nice', '/profile/site/system/a4db5eb7-7b52-4278-8a03-d147c817e494.jpeg', '一款在线,支持自定义样式的微信 Markdown 排版工具;现支持微信公众号、知乎、开源中国、稀土掘金、博客园和 CSDN 等一系列平台。另外,支持变更不同主题风格、格式化(微信外链转脚注、中英文间带空格)等。', 'https://www.mdnice.com/', 0, 0, '2020-08-20 11:22:19', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100360, 150725316141101039, '壹伴', '/profile/site/system/2632d2f2-c7bc-4278-90c4-ae75221e167a.jpeg', '更好用的微信编辑器,但不止于此。你可以使用壹伴小插件来高效地排版、修图、找素材、回消息和导出数据,50万公众号运营者的共同选择', 'https://yiban.io/invitation?invite_code=YE1H00', 6, 0, '2020-08-22 10:29:29', '2021-02-24 22:32:42', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100361, 150725316141101036, '创客贴', '/profile/site/system/3808ba9d-c655-42c9-b56f-cbdc04169be2.jpeg', '提供了15万+精品设计模板,120万+图片素材,涵盖营销海报、新媒体配图、印刷物料、PPT、简历等办公文档、电商设计、定制设计等百余种设计场景,选择喜爱的模板,AI智能生成设计,设计不求人。', 'https://www.chuangkit.com/', 1, 0, '2020-08-22 10:33:27', '2021-04-22 21:36:17', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100362, 150725316141101036, '懒设计', '/profile/site/system/bb76267f-1f2f-47c5-8c63-b4c136d58386.jpeg', '全球最受欢迎的平面设计工具和在线平面设计软件之一,提供海量海报、邀请函、贺卡、banner、logo、名片等免费设计素材和模板,可在线一键稿定设计印刷', 'https://www.fotor.com.cn/', 1, 0, '2020-08-22 10:39:01', '2021-04-22 21:36:12', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100363, 150725316141101011, '磁力熊', '/profile/site/system/75babf0b-ac99-4b61-8de0-b500f06398ff.jpeg', '1080P高清电影磁力迅雷下载,豆瓣Top250及豆瓣高分电影1080P高清磁力下载。', 'https://www.cilixiong.com/', 7, 0, '2020-08-22 18:25:13', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100366, 150725316141101011, '神马影院', '/profile/site/system/8ecdec9c-7802-4007-a30c-078fa7977a27.jpeg', '资源丰富,播放流畅缓冲快!', 'https://www.shenma4480.com/', 10, 0, '2020-08-22 18:29:46', '2020-08-22 18:37:47', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100367, 150725316141101011, '哔嘀影视', '/profile/site/system/f32be96e-14c9-41cb-9217-ea8a28948c65.jpeg', '在线观看,支持百度云,电驴,磁力链接下载', 'https://bde4.com/', 11, 0, '2020-08-22 18:31:14', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100368, 150725316141101011, 'NO视频', '/profile/site/system/bf08096d-7cb2-45e2-a00c-3efe03f0e84b.jpeg', '欧美、日韩、港台影视', 'https://www.novipnoad.com/', 12, 0, '2020-08-22 18:32:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100371, 150725316141101011, '南柯电影', '/profile/site/system/1687352f-29f4-4eea-a61e-a0eeded626f1.jpeg', '无广告,速度快!', 'https://www.nkdyw.com/', 15, 0, '2020-08-22 18:36:51', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100376, 150725316141101012, 'MyFree MP3', '/profile/site/system/3267d11e-db69-4dde-80fb-e3fef5d7ae6f.jpeg', '支持音乐在线试听、下载,以及无损音质的下载!', 'http://tool.liumingye.cn/music/', 9, 0, '2020-08-22 18:46:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100378, 150725316141101031, 'Ant Design', '/profile/site/system/6df56693-ffd1-4470-b905-0986f1236deb.jpeg', '一套企业级 UI 设计语言和 React 组件库', 'https://ant.design/index-cn', 7, 0, '2020-08-24 21:44:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100379, 150725316141101030, 'knife4j', '/profile/site/system/c74470de-7f78-4894-a475-522fa6774170.jpeg', '为Java MVC框架集成Swagger生成Api文档的增强解决方案 ', 'https://doc.xiaominfo.com/', 4, 0, '2020-08-25 19:39:38', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100380, 150725316141101040, 'GitHub 加速下载', '/profile/site/system/github.png', '一个对于 GitHub.com 的镜像加速器。我们使用开放资源为 GitHub 加速。', 'http://toolwa.com/github/', 1, 0, '2020-08-31 22:52:30', '2020-09-25 08:42:27', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100381, 150725316141101040, '下载', '/profile/site/system/github.png', '不需要购买,直接下载!', 'https://d.serctl.com/', 2, 0, '2020-08-31 23:01:16', '2020-09-25 08:43:52', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100382, 150725316141101040, 'GitHub 文件加速', '/profile/site/system/github.png', '直接走本服务器 CN2 GIA 线路 . 大多数情况下体验更佳!', 'https://g.ioiox.com/', 3, 0, '2020-08-31 23:01:46', '2020-09-25 08:44:40', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100383, 150725316141101040, 'GitHub代下', '/profile/site/system/github.png', '代下服务,永久免费!', 'http://gitd.cc/', 4, 0, '2020-08-31 23:03:00', '2020-09-25 08:45:21', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100384, 150725316141101040, 'GitHub加速链接生成工具', '/profile/site/system/github.png', '利用ucloud提供的GlobalSSH功能,对ssh协议数据进行加速!', 'https://github.zhlh6.cn/', 5, 0, '2020-08-31 23:04:04', '2020-09-25 08:46:18', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100385, 150725316141101017, 'SQL转Java', '/profile/site/system/3804cbf8-bb0e-437f-890e-7db6f6f778e0.jpeg', 'SQL转Java JPA、MYBATIS实现类代码生成平台。', 'https://java.bejson.com/generator/', 9, 0, '2020-09-07 10:12:34', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100386, 150725316141101011, 'M3U8播放器', '/profile/site/system/8b13f949-cc19-4882-aa8c-f236fbc04b84.jpeg', '电影、美剧、韩剧、漫画的直链', 'https://www.m3u8play.com/', 20, 0, '2020-09-08 20:33:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100387, 150725316141101017, '免费在线语音转文字', '/profile/site/system/bb15ab1d-410b-4242-ab81-50c1b6f1a81b.jpeg', '语音转文字,做纪录或者文字稿等', 'https://beecut.cn/speech-to-text-online', 10, 0, '2020-09-09 15:50:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100388, 150725316141101037, 'Wallpaper', '/profile/site/system/f32be96e-14c9-41cb-9217-ea8a28948c65.jpeg', '设计,室内设计,建筑,时尚,艺术', 'https://wall.alphacoders.com/?lang=Chinese', 7, 0, '2020-09-09 23:40:13', '2020-12-11 09:07:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100389, 150725316141101035, '视频号助手', '/profile/site/system/wxshipinghao.ico', '微信视频号助手', 'https://channels.weixin.qq.com/', 11, 0, '2020-09-11 20:52:11', '2020-09-11 20:55:03', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100390, 150725316141101005, 'DeepL翻译', '/profile/site/system/1cba9c99-73ef-422f-87ef-2e541bf82d1b.png', '将一段文字翻译到尽可能的通顺和便于理解,甚至是俚语、方言、名言名句、古诗词等内容都可以几乎没有任何语病的翻译出来。', 'https://www.deepl.com/translator', 5, 0, '2020-09-12 15:58:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100391, 150725316141101002, '搬书匠', '/profile/site/system/a7e8a0e2-ffe5-417c-bddf-43921d07554b.png', '编程书籍的好网站', 'http://www.banshujiang.cn/', 21, 0, '2020-09-13 14:43:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100392, 150725316141101035, '网易见外', '/profile/site/system/c6348b72-41e6-4237-9122-33b4c52cdf3e.png', '由人工智能事业部研发,是一个集视频听翻、直播听翻、语音转写、文档直翻功能为一体的AI智能语音转写听翻平台。', 'https://jianwai.youdao.com/', 10, 0, '2020-09-15 00:24:00', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100394, 150725316141101042, '若依 / RuoYi-Vue', '/profile/site/system/35196237-8319-4204-a844-bc06b4409a39.png', '基于SpringBoot,Spring Security,JWT,Vue & Element 的前后端分离权限管理系统 ', 'https://gitee.com/y_project/RuoYi-Vue', 1, 0, '2020-09-16 14:39:29', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100395, 150725316141101042, '若依 / RuoYi-Cloud', '/profile/site/system/35196237-8319-4204-a844-bc06b4409a39.png', '基于Spring Boot、Spring Cloud & Alibaba、OAuth2的分布式微服务架构权限管理系统 ', 'https://gitee.com/y_project/RuoYi-Cloud', 2, 0, '2020-09-16 14:41:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100396, 150725316141101042, '陌溪 / 蘑菇博客', '/profile/site/system/3247f776-f5a8-452a-998a-ebf411948607.png', '一个基于微服务架构的前后端分离博客系统。', 'https://gitee.com/moxi159753/mogu_blog_v2', 3, 0, '2020-09-16 14:43:45', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100397, 150725316141101042, 'FEBS-Cloud', '/profile/site/system/35fcf5e6-8980-4b4d-9da4-564b3bd3f333.png', '基于Spring Cloud Hoxton.RELEASE、Spring Cloud OAuth2 & Spring Cloud Alibaba & Element 微服务权限系统,开箱即用。', 'https://github.com/febsteam/FEBS-Cloud', 4, 0, '2020-09-16 14:46:37', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100398, 150725316141101042, '慕容若冰 / spring-microservice-exam', '/profile/site/system/15afba18-f1c2-4313-b664-ba8943a333a4.png', '硕果云,基于Spring Cloud搭建的新一代微服务教学管理平台,提供多租户、权限管理、考试、练习等功能,题型支持单选题、多选题、不定项选择题、判断题、简答题,二维码分享,移动端答题等 ', 'https://gitee.com/wells2333/spring-microservice-exam', 5, 0, '2020-09-16 14:48:27', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100399, 150725316141101032, '蘑菇博客', '/profile/site/system/3247f776-f5a8-452a-998a-ebf411948607.png', '专注于技术分享的博客平台', 'http://www.moguit.cn', 8, 0, '2020-09-16 14:54:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100400, 150725316141101035, 'QQ公众平台', '/profile/site/system/7424959f-6ada-48f9-9077-a7e0477e6e3d.png', 'QQ公众平台,为解决个人,企业,组织在QQ平台上的业务服务与用户管理提供实用的服务工具平台。', 'https://mp.qq.com', 14, 0, '2020-09-18 09:52:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100401, 150725316141101035, '抖音短视频', '/profile/site/system/b5541655-6a6f-47b9-8698-9bab021fa846.ico', '抖音短视频,一个旨在帮助大众用户表达自我,记录美好生活的短视频分享平台。为用户创造丰富多样的玩法,让用户在生活中轻松快速产出优质短视频。', 'https://www.douyin.com/', 15, 0, '2020-09-18 09:54:01', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100402, 150725316141101017, 'GitMind', '/profile/site/system/d3799599-6413-4944-a6f4-241e5c54c51c.png', '免费在线思维导图软件,简化逻辑梳理,集思广益,释放创造力在线脑图、思维导图、流程图、工业设计、工程管理,一图涵千面 ', 'https://gitmind.cn/', 11, 0, '2020-09-20 14:33:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100403, 150725316141101004, 'DocSmall', '/profile/site/system/380cb37a-370d-40df-8807-5c318e5310f2.png', '免费在线图片压缩、GIF压缩工具、PDF压缩工具、PDF合并工具、PDF分割工具', 'https://docsmall.com/', 8, 0, '2020-09-20 14:36:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100404, 150725316141101017, 'Dimmy', '/profile/site/system/12d7985a-2fc7-49b7-b6e6-55312ac1c550.png', '手机电脑等设备的展示模型,可以让你的图片放在电脑、手机、ipad等模型中展示,图片档次大大提升。', 'https://dimmy.club/', 12, 0, '2020-09-20 14:38:10', '2020-09-20 14:42:26', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100405, 150725316141101017, 'BrowserFrame', '/profile/site/system/251a15a3-811e-4359-98e2-f03b3319240e.ico', '浏览器展示模型工具', 'http://browserframe.com/', 13, 0, '2020-09-20 14:39:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100406, 150725316141101017, 'Flourish', '/profile/site/system/3416f7ae-1e74-45ef-b03d-4dfa730f1105.png', ' 数据可视化工具,快速地把表格数据转换为各种各样好看的图表,并且还支持动态可视化。', 'https://flourish.studio/', 14, 0, '2020-09-20 14:41:21', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100407, 150725316141101017, 'RemoveBg', '/profile/site/system/b2377b53-291b-4129-bdbe-68cb3a1fa7c3.png', '抠图神器,消除图片中的背景。', 'https://www.remove.bg/zh', 15, 0, '2020-09-20 14:44:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100408, 150725316141101018, 'Crx4Chrome', '/profile/site/system/af48b33f-ab08-4e71-a4de-32af6b930860.ico', ' Chrome浏览器插件站', 'https://www.crx4chrome.com/', 7, 0, '2020-09-20 14:46:03', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100409, 150725316141101043, '易视网', '/profile/site/system/e393d0d3-5a07-4c3a-a648-b5fa63b55fea.ico', '直播网络电视直播在线观看', 'https://www.cietv.com/', 1, 0, '2020-09-20 14:55:21', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100410, 150725316141101043, '好趣网', '/profile/site/system/f6ce09df-432f-4903-b308-99f65ab9504b.png', '2000套高清网络电视直播在线观看', 'http://tv.haoqu99.com/', 2, 0, '2020-09-20 14:56:41', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100411, 150725316141101042, 'EasyCaptcha', '/profile/site/system/c85348a4-7b34-488c-bd95-8b7b106f793d.png', 'Java图形验证码,支持gif、中文、算术等类型,可用于Java Web、JavaSE等项目。', 'https://gitee.com/ele-admin/EasyCaptcha', 6, 0, '2020-09-20 15:59:37', '2022-05-25 23:25:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100412, 150725316141101017, '短视频解析', '/profile/site/system/b0ffc6e6-6b42-4f5a-a221-44d9ff2c3ee7.png', '支持解析快手、抖音、Youtube、Tiktok、火山、今日头条、西瓜视频、皮皮虾、小咖秀、趣多拍、微视、美拍、秒拍、网易云、TikTok、哔哩哔哩、陌陌、映客、迅雷、阳光宽频、全民 K 歌、刷宝、WIDE 短视频、小红书、等平台的视频,而且解析出来的网站视频没有水印。', 'http://www.dspjx.com/', 16, 0, '2020-09-23 23:57:07', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100413, 150725316141101008, '微 PE 工具箱', '/profile/site/system/93975589-a3c2-4540-9893-69a0149d6435.png', '微 PE 工具箱 就是一款常用的 Windows PE 工具包,支持 Windows 10,提供了 32/64 位版本,并且支持 NVME 硬盘。', 'http://www.wepe.com.cn/', 8, 0, '2020-09-23 23:59:35', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100414, 150725316141101017, 'GeoGebra', '/profile/site/system/68292c53-cd3e-4a4a-9a4e-7d67359fb1e6.png', '一款结合几何、代数与微积分的免费动态数学软件,也支持在线直接绘图 /计算。', 'https://www.geogebra.org', 17, 0, '2020-09-24 00:01:36', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100416, 150725316141101017, 'Maven 仓库', '/profile/site/system/4242630d-0216-4950-9646-d3ee647ba8e3.png', 'Jar 下载,Jar 依赖引用', 'https://mvnrepository.com/', 19, 0, '2020-09-24 08:41:01', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100418, 150725316141101004, '萝卜工坊', '/profile/site/system/a970e871-9f79-4caa-a09e-df2fb7c9ddc2.png', '快速转换模拟手写字体文档,让打印出的字看起来像手写的 一个软件在线解决文字抄写烦恼', 'http://www.beautifulcarrot.com/', 9, 0, '2020-09-24 08:52:18', '2020-09-24 08:53:58', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100419, 150725316141101004, '二维码解码器', '/profile/site/system/989df62a-e0e5-468f-8fc7-f4b766d27ddd.png', '在线二维码解析和生成', 'https://jiema.wwei.cn/', 10, 0, '2020-09-24 08:57:01', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100420, 150725316141101004, 'PickFrom', '/profile/site/system/12736188-5677-410f-a628-1bab12ab00d9.ico', '一站式视频剪辑平台,让工作更简单。', 'https://zh.pickfrom.net/', 11, 0, '2020-09-24 08:59:06', '2020-09-24 08:59:32', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100421, 150725316141101004, '转字体', '/profile/site/system/89d9be4b-cb72-45ac-a30d-def2c1e30e1c.ico', '简体字繁体字互转', 'https://www.aies.cn/', 12, 0, '2020-09-24 09:02:38', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100422, 150725316141101040, 'GitHub 文件加速', '/profile/site/system/github.png', '利用 Cloudflare Workers 对 github release 、archive 以及项目文件进行加速,部署无需服务器且自带CDN。', 'https://gh.api.99988866.xyz/', 6, 0, '2020-09-25 08:41:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100427, 150725316141101037, '美桌网', '/profile/site/system/7510faa4-8159-49be-ae55-02629202fbe3.ico', '陪你下载生活的美!', 'http://www.win4000.com/', 8, 0, '2020-09-29 14:43:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100428, 150725316141101037, '回车桌面', '/profile/site/system/d40daccb-e4d7-4f34-a909-0341e49cd238.ico', '动画、漫画、卡通、锁屏图片、高清手机壁纸!', 'https://www.enterdesk.com/', 9, 0, '2020-09-29 14:45:43', '2020-09-29 14:47:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100429, 150725316141101037, '全面屏壁纸', '/profile/site/system/1ab3ecc5-ebc6-474a-814e-fa57b3781edb.ico', '专为全面屏和刘海屏手机适配的2K超高清壁纸网站!', 'http://m.bcoderss.com/', 10, 0, '2020-09-29 14:48:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100430, 150725316141101011, '无限影视网', '/profile/site/system/2c0a0e63-e07a-4344-aa11-e461e9616fee.png', '百万影片任你搜索!', 'https://www.wxtv.net/', 21, 0, '2020-09-30 14:36:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100432, 150725316141101008, '不忘初心', '/profile/site/system/9b57a3c2-adc0-4dc9-a3d4-8d573be1fce0.png', '精简版系统官网。从心出发,专注精简系统!', 'https://www.pc521.net/', 10, 0, '2020-10-09 16:56:49', '2021-01-27 10:09:41', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100433, 150725316141101036, '免费版权图片', '/profile/site/system/19e0d9d2-cf36-4046-a2d3-80a028b789a3.jpg', '一键搜索多家免版权图库,再也不用担心商用图片侵权了 !', 'https://www.logosc.cn/so/', 17, 0, '2020-10-09 17:25:56', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100434, 150725316141101036, 'ColorHub', '/profile/site/system/a51c8e1f-bc7b-4b91-8fcb-9511cc234682.png', '高清无版权图片,个人和商业用途免费!', 'https://colorhub.me/', 18, 0, '2020-10-09 17:28:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100435, 150725316141101036, 'Hippopx', '/profile/site/system/c44b31d2-6a73-4879-84da-6a2e909d8a8f.ico', '基于CC0协议的免版权图库!', 'https://www.hippopx.com/zh/', 19, 0, '2020-10-09 17:30:41', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100436, 150725316141101036, 'FreePik', '/profile/site/system/45c6ebba-1fa4-4728-8210-9f9218ecc6cd.jpg', '查找免费矢量,图库照片,PSD和图标!', 'https://www.freepik.com/', 20, 0, '2020-10-09 17:34:34', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100438, 150725316141101011, '云播TV', '/profile/site/system/e7d75bda-6468-48f9-9dee-84a7b304b420.png', '一个单纯不做作的电影站!', 'https://www.yunbtv.net/', 24, 0, '2020-10-09 23:47:22', '2022-05-07 23:30:12', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100440, 150725316141101011, '音范丝', '/profile/site/system/e8eb094d-efb6-40b9-886e-3ab03871950d.ico', '高清无水印,影音集、精选4K蓝光原盘下载,顶级收藏!', 'http://www.yinfans.me/', 26, 0, '2020-10-12 14:14:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100441, 150725316141101011, '腾讯视频WeTV', '/profile/site/system/fe2b466d9fe6bed552c0adcaac1c2813.ico', '腾讯视频海外版,无广告,而且可以免费观看1080P!', 'https://wetv.vip/zh-cn', 4, 0, '2020-10-12 20:45:11', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100442, 150725316141101017, '千千秀字', '/profile/site/system/fbdf9a0d-88d9-4fcc-88cc-c63a49ea1eab.png', '提供文字翻译、字体转换、字效生成等在线服务的同时,也关注着文字的历史和文字的各行应用。', 'https://www.qqxiuzi.cn/', 20, 0, '2020-10-12 23:10:47', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100443, 150725316141101002, '搜韵', '/profile/site/system/6b06e347-bfe9-4230-92e4-d4caba9b6747.png', '诗词门户网站,可检索,分经史子集和四库之外等,图像清晰,速度快,非常便捷', 'https://sou-yun.cn/', 22, 0, '2020-10-16 19:08:14', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100445, 150725316141101046, '老殁', '/profile/site/system/22a74e7f-c58c-4914-86d6-4f557f572df9.png', '免费推荐优秀软件', 'https://www.mpyit.com', 1, 0, '2020-10-16 21:43:27', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100446, 150725316141101046, '果核剥壳', '/profile/site/system/1796f330-4e4f-49e6-819b-9810fca40735.png', '还原软件的本质,纯净软件分享,守住互联网最后的一片净土', 'https://www.ghpym.com', 5, 0, '2020-10-16 21:49:17', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100447, 150725316141101046, '423Down', '/profile/site/system/e005555a-a43c-423a-b74d-375b3867e442.ico', '有品质的电脑软件、Android软件分享博客', 'https://www.423down.com', 6, 0, '2020-10-16 21:51:13', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100448, 150725316141101046, '心海e站', '/profile/site/system/69c513c7-6150-4f58-bbf6-f866718b9238.jpg', '发布由烈火汉化的一些实用的软件,全部免费,杜绝广告!', 'https://hrtsea.com', 7, 0, '2020-10-16 21:53:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100449, 150725316141101046, '落尘之木', '/profile/site/system/292ba100-2d1a-4f63-acde-9c0f2c02bfe1.png', '分享互联网优秀软件、电脑经验、技术交流、IT类', 'https://www.luochenzhimu.com', 8, 0, '2020-10-16 21:55:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100450, 150725316141101046, '易破解', '/profile/site/system/ef2b424c-cd7a-43fd-95dd-b6093cdf8854.ico', '给你所需要的内容', 'https://www.ypojie.com', 9, 0, '2020-10-16 21:56:42', '2021-01-13 15:34:19', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100451, 150725316141101046, 'QQ前线乐园', '/profile/site/system/1cef9d6a-2f6d-42a3-b133-a59ccea947eb.png', '专注于分享,分享好资源。', 'https://www.yijingying.com', 10, 0, '2020-10-16 21:58:21', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100452, 150725316141101046, '风刑软件站', '/profile/site/system/17597510-396f-41a5-abf2-41c847c0fa62.png', '一个满载优秀、严谨、开放的软件下载平台', 'https://www.wsf1234.com', 11, 0, '2020-10-16 22:01:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100453, 150725316141101046, '软件缘', '/profile/site/system/172e5128-b12a-45b9-8de2-cbf906d53164.png', '软件缘 - 精品绿软,品鉴独特', 'https://www.appcgn.com', 12, 0, '2020-10-16 22:03:19', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100454, 150725316141101010, 'XClient', '/profile/site/system/12f29237-4138-4c75-815e-58e660c4a8c0.ico', '精品MAC应用分享', 'https://xclient.info', 4, 0, '2020-10-16 22:05:32', '2021-01-13 15:35:24', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100455, 150725316141101046, '孤独求软', '/profile/site/system/41f3a0c6-f433-45db-8a55-4c8a00b28e8a.ico', '常用软件一站齐全', 'http://www.dugubest.com', 13, 0, '2020-10-16 22:06:56', '2021-01-13 15:34:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100456, 150725316141101010, '史蒂芬周的博客', '/profile/site/system/8b57d624-b4e1-48e3-8307-0c10b393ccb9.ico', '软硬兼施,娱乐共享。', 'http://www.sdifen.com', 5, 0, '2020-10-16 22:08:45', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100457, 150725316141101010, '苹果软件盒子', '/profile/site/system/2799a66d-646d-445f-87b8-b7335826b812.png', '分享优质 Mac', 'https://www.macappbox.com', 6, 0, '2020-10-16 22:10:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100458, 150725316141101046, 'Extfans 扩展迷', '/profile/site/system/bc0605a7-3a50-4840-b37e-d1ac8386ae84.ico', '好用的浏览器插件推荐', 'https://www.extfans.com', 14, 0, '2020-10-16 22:57:50', '2021-01-13 15:34:45', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100459, 150725316141101047, 'Golink加速器', '/profile/site/system/1432bb7a-5e20-446e-9ba7-72856d445abb.ico', '国内首款免费游戏加速器', 'https://www.golink.com', 1, 0, '2020-10-16 23:01:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100460, 150725316141101047, '流星游戏加速器', '/profile/site/system/c4597214-2353-414c-b9a2-af8d0ce250d2.ico', '真免费,为痛快!', 'https://www.liuxing.com', 2, 0, '2020-10-16 23:02:15', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100461, 150725316141101047, '奇妙网游加速器', '/profile/site/system/f00c3d4a-e411-42d5-9b26-fda14cc9dd68.png', '真正免费,低延时,真专线,真稳定,真好用', 'https://www.qimiao.com', 3, 0, '2020-10-16 23:03:41', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100463, 150725316141101047, '小霸王', '/profile/site/system/65fcca63-5610-4e2d-8ab9-9084c8b68e58.png', '找回童年的快乐 ', 'https://www.yikm.net', 5, 0, '2020-10-16 23:08:38', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100464, 150725316141101047, '侠聚网', '/profile/site/system/6b430ae2-c72b-45ac-829d-ea3ecd5551ee.png', '免费的Android游戏修改神器,内置海量游戏下载', 'http://www.huluxia.com', 6, 0, '2020-10-16 23:09:48', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100465, 150725316141101047, '骑士下载', '/profile/site/system/193635d3-0fff-4886-ac47-e801ec314ed1.png', '好玩的安卓游戏免费下载', 'https://www.vqs.com', 7, 0, '2020-10-16 23:11:23', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100466, 150725316141101047, 'TapTap', '/profile/site/system/6558f840-b408-4ee1-a019-9514d107c7f8.ico', '推荐高质量好玩的手机游戏', 'https://www.taptap.com', 8, 0, '2020-10-16 23:12:31', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100471, 150725316141101011, '思古影视', '/profile/site/system/5c8372f4-bd97-4f95-a927-665675f1b8e1.ico', '高清免费VIP视频在线解析', 'https://www.sigu.cc/', 28, 0, '2020-10-20 21:32:59', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100472, 150725316141101017, '文档免费下载', '/profile/site/system/7c70855c-a7c2-4377-8e4b-8837a688b43b.ico', '从此,下载百度文库文档变得简单', 'https://doc.chaney.top/', 21, 0, '2020-10-25 11:23:39', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100473, 150725316141101009, 'ROM乐园', '/profile/site/system/34cfc67c-7490-4f5f-b7fb-a0b1f3d812a7.jpeg', '专注于打造全网优质特色ROM刷机包下载官方网站', 'http://www.romleyuan.com', 6, 0, '2020-10-27 23:23:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100477, 150725316141101032, '格姗知识圈', '/profile/site/system/logo.jpg', '我的博客网站,专注于技术分享、实用工具与技巧的博客平台!', 'https://geshanzsq.com', 1, 0, '2020-11-29 17:13:06', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100478, 150725316141101037, '人工桌面', '/profile/site/system/3982b997-0e85-4573-bb8c-ccf4db4bf83d.ico', '简洁又可爱的萌妹桌面软件。绝对是美女帅哥、宅男宅女的喜爱。', 'https://lumi.mihoyo.com/#/', 0, 0, '2020-12-03 13:39:48', '2020-12-03 13:39:55', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100479, 150725316141101037, '故宫壁纸', '/profile/site/system/6dd9f9cc-d49e-4b32-abcd-5eba13580739.ico', '将历史的精彩收集到自己的手中', 'https://www.dpm.org.cn/lights/royal.html', 11, 0, '2020-12-11 09:10:22', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100480, 150725316141101037, 'CGWallpapers', '/profile/site/system/0e5e058c-bf93-4c40-b327-b4064a023560.ico', ' 游戏CG壁纸站,超细腻,真假难分', 'https://www.cgwallpapers.com/', 12, 0, '2020-12-11 09:12:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100481, 150725316141101042, '格姗导航 / geshanzsq-nav', '/profile/site/system/logo.jpg', '一个基于 Spring Boot + Vue 前后端分离的导航网站!', 'https://gitee.com/geshanzsq/geshanzsq-nav', 0, 0, '2021-01-05 17:15:46', '2022-11-03 21:45:09', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100483, 150725316141101048, '剪映', '/profile/site/system/3bcc9224-2291-4f5c-8675-e10c1c0f570d.jpeg', '轻而易剪,上演大幕。', 'https://lv.ulikecam.com/', 1, 0, '2021-01-07 20:05:59', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100484, 150725316141101048, 'InShot', '/profile/site/system/9cdf91f4-530d-49b2-bdf1-1d4b4af68c8a.ico', '专业视频剪辑工具,风靡全球。', 'http://inshotapp.com/', 2, 0, '2021-01-07 20:06:02', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100485, 150725316141101048, '来画', '/profile/site/system/544f582c-1fa5-41e4-a5c5-65a1b1d9503d.ico', '像做PPT一样做视频', 'https://www.laihua.com/', 3, 0, '2021-01-07 20:06:05', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100486, 150725316141101048, 'VUE VLOG', '/profile/site/system/d725ef43-e3c5-42a9-9289-b8b6cc91137d.ico', '用 Vlog 记录生活', 'https://vuevideo.net/', 4, 0, '2021-01-07 20:06:07', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100487, 150725316141101048, '字说', '/profile/site/system/410577d5-312c-4674-8bf1-ef5177b194b3.ico', '字说  文字动画视频制作神器', 'https://h5.zishuovideo.com/', 5, 0, '2021-01-07 20:06:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100488, 150725316141101048, '轻剪辑', '/profile/site/system/e394ad53-a0a7-4929-b20c-c0134f4d436d.ico', '在线视频剪辑神器 无需软件下载 1分钟轻松制作精彩视频', 'https://e.chuanying520.com/', 6, 0, '2021-01-07 20:06:12', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100489, 150725316141101048, '万兴喵影', '/profile/site/system/62f04881-b9fc-42fb-bf75-c14eaba90672.png', '风靡全球的国产剪辑神器 用心剪辑美好生活', 'https://miao.wondershare.cn/', 7, 0, '2021-01-07 20:06:14', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100490, 150725316141101048, 'Animaker', '/profile/site/system/24044bfd-1173-49de-aede-11e2d5592a77.jpeg', '超好用的动画短视频工具', 'https://www.animaker.com/', 8, 0, '2021-01-07 20:06:16', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100491, 150725316141101048, '飞推', '/profile/site/system/3a1d5950-9e7a-49ef-a68c-a304f0a450f1.png', '创意视频制作神器 视频制作从未如此简单!', 'https://www.qutui360.com/', 9, 0, '2021-01-07 20:06:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100492, 150725316141101048, 'Premiere', '/profile/site/system/17f4dcb9-4881-4e4b-83d9-9da269d0af2e.ico', '始终更胜一筹的视频编辑', 'https://www.adobe.com/cn/products/premiere.html', 10, 0, '2021-01-07 20:06:20', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100493, 150725316141101048, 'After Effects', '/profile/site/system/17f4dcb9-4881-4e4b-83d9-9da269d0af2e.ico', '制作气势恢宏的大场面', 'https://www.adobe.com/cn/products/aftereffects.html', 11, 0, '2021-01-07 20:06:22', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100494, 150725316141101048, '爱剪辑', '/profile/site/system/910ecf63-8077-427b-987b-98a1f206cc62.ico', '全民流行的视频剪辑软件', 'http://www.ijianji.com/', 12, 0, '2021-01-07 20:06:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100495, 150725316141101048, '快剪辑', '/profile/site/system/929c3691-b128-4561-b836-2664bcee50a3.ico', '一触即发,分享你的创意灵感', 'https://kuai.360.cn/home.html', 13, 0, '2021-01-07 20:06:27', '2021-01-07 20:06:50', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100496, 150725316141101035, '知识星球', '/profile/site/system/b5fa8f88-5312-4fb6-8183-af53a748f0a1.ico', '深度连接铁杆粉丝,运营高品质社群,知识变现的工具。', 'https://www.zsxq.com', 17, 0, '2021-01-11 17:54:25', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100497, 150725316141101049, '公益图床', '/profile/site/system/a9532e0c-b22c-4c15-9441-b3293465a7a8.png', '国内图床,速度飞快,快人一步。', 'https://sbimg.cn', 1, 0, '2021-01-12 16:32:07', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100498, 150725316141101049, 'SM.MS图床', '/profile/site/system/de98806e-8b41-4351-a8c5-9f307a4ad1d3.ico', '免费用户无香港节点,速度较慢', 'https://sm.ms', 2, 0, '2021-01-12 16:40:09', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100499, 150725316141101049, '路过图床', '/profile/site/system/13322f82-052a-496e-8d14-39d678745466.png', '免费图片上传,高速稳定的图片上传和外链服务。', 'https://imgchr.com/', 3, 0, '2021-01-12 16:41:10', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100500, 150725316141101030, '极客时间', '/profile/site/system/5ab40821-6da7-4c81-8c56-62ba2598a9ab.jpg', '轻松学习,高效学习!', 'https://time.geekbang.org', 5, 0, '2021-01-13 11:16:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100501, 150725316141101031, '极客时间', '/profile/site/system/5ab40821-6da7-4c81-8c56-62ba2598a9ab.jpg', '轻松学习,高效学习', 'https://time.geekbang.org', 8, 0, '2021-01-13 11:17:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100502, 150725316141101011, '芒果TV', '/profile/site/system/ef97cc86-01f6-4109-a23c-5613099d0d67.ico', '天生青春', 'https://www.mgtv.com', 6, 0, '2021-01-13 15:25:40', '2021-01-13 15:25:55', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100504, 150725316141101030, '码云 Gitee', '/profile/site/system/ec70a38c-e700-4181-a368-c1b9a12d09b9.ico', '基于 Git 的代码托管和研发协作平台。帮助开发者/团队/企业更好地管理代码,让软件研发更高效', 'https://gitee.com/', 7, 0, '2021-01-15 10:52:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100505, 150725316141101030, 'Github', '/profile/site/system/a81a692b-999c-4018-ba1b-9e0156b30af9.svg', '数以百万计的开发人员和公司在github上构建、发布和维护他们的软件,github是世界上最大、最先进的开发平台。', 'https://github.com', 8, 0, '2021-01-15 10:54:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100506, 150725316141101035, '网易号', '/profile/site/system/5956e442-9f8b-4516-9dcc-19ddcf06f7af.png', '媒体开放平台。', 'http://mp.163.com', 18, 0, '2021-01-18 10:16:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100507, 150725316141101035, '大鱼号', '/profile/site/system/6469fa53-6822-4f50-aca2-a23c7d41acce.ico', '一点接入,多点分发。移动世界,无所不达', 'https://mp.dayu.com', 19, 0, '2021-01-18 10:19:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100508, 150725316141101035, '一点资讯', '/profile/site/system/7bccd2ec-e385-497d-a1f8-655a7a8a0197.ico', '阅不同,更有趣', 'http://www.yidianzixun.com', 20, 0, '2021-01-18 10:20:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100509, 150725316141101035, '搜狐号', '/profile/site/system/b6021b69-2035-4f9c-8e1e-ea54c1d74817.ico', '再小的个体,也能获取影响力', 'https://mp.sohu.com/mpfe/v3/login', 21, 0, '2021-01-18 10:22:30', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100510, 150725316141101050, '印象笔记', '/profile/site/system/4e5ed731-1d90-4586-baff-c3bb89d4be8b.ico', '工作必备效率应用', 'https://www.yinxiang.com/', 1, 0, '2021-01-18 10:28:44', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100511, 150725316141101050, '有道云笔记', '/profile/site/system/43f327f6-631b-4280-a7af-a01ed8c505b6.ico', '5000万用户的选择', 'http://note.youdao.com', 2, 0, '2021-01-18 10:29:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100512, 150725316141101050, 'Tower', '/profile/site/system/136c7f93-cbc7-4daa-9edc-73840b2c2b6e.ico', '提升协作效率,打造高效团队', 'https://tower.im', 3, 0, '2021-01-18 10:29:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100513, 150725316141101050, '为知笔记', '/profile/site/system/09f19706-7536-4cdd-aeaa-97d64c89a9b4.ico', '一键收藏、全端全文检索、多级目录、Markdown', 'http://www.wiz.cn', 4, 0, '2021-01-18 10:31:26', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100514, 150725316141101050, '石墨文档', '/profile/site/system/9412b0ba-72eb-4751-a1ab-1517c9678eb9.ico', '企业在线协同办公系统平台,支持云端多人在线协作编辑文档和表格', 'https://shimo.im', 5, 0, '2021-01-18 10:32:00', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100515, 150725316141101050, '锤子便签', '/profile/site/system/e6cc2bbc-e2fb-4cd5-a3cd-b828715fb834.ico', '可能是史上最漂亮的便签应用,你或许会因它重新喜欢上记录和表达', 'https://www.smartisan.com/apps/#/notes', 6, 0, '2021-01-18 10:32:34', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100516, 150725316141101050, '腾讯文档', '/profile/site/system/d9222fdb-cd48-43bf-bc1e-b40a79bc8eb2.ico', '支持多人在线编辑Word、Excel和PPT文档', 'https://docs.qq.com', 7, 0, '2021-01-18 10:33:28', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100517, 150725316141101050, 'Teambition', '/profile/site/system/cd0cb55f-c569-40cf-831e-a4a3f73c6dff.ico', '一套聪明好用的日常工具,包含项目、待办、网盘、文档、日历等丰富应用,帮助你把想法变成现实,使用起来爱不释手。', 'https://www.teambition.com', 8, 0, '2021-01-18 10:34:08', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100518, 150725316141101050, 'Google Docs', '/profile/site/system/1a7be2d2-a468-4ce1-8cd9-9243f265b598.jpeg', '谷歌在线文档', 'https://docs.google.com', 9, 0, '2021-01-18 10:37:08', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100519, 150725316141101050, 'WPS云文档', '/profile/site/system/28edf917-58d1-4739-922f-27f9f9c889f0.ico', '多人实时协作的在线Office', 'https://www.kdocs.cn', 10, 0, '2021-01-18 10:38:17', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100520, 150725316141101030, 'JustAuth', '/profile/site/system/4473999c-1dee-4b47-bbff-155b1785085e.png', '史上最全的整合第三方登录的开源库', 'https://www.justauth.cn/', 9, 0, '2021-01-18 17:03:08', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100521, 150725316141101029, 'PPT超级市场', '/profile/site/system/334c508a-a599-4a25-8e2b-e037de63dba6.ico', '完全免费的PPT模板下载网站。量都是极高,并且非常精美。', 'http://ppt.sotary.com/web/wxapp/index.html', 7, 0, '2021-01-20 11:02:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100522, 150725316141101046, '原版系统', '/profile/site/system/3d2a5e29-be0a-4cdb-826d-e063e051a79a.ico', '提供可靠的原版软件。十二年的专注和积累,初心未改,打造下一个里程碑。 ', 'https://next.itellyou.cn/', 0, 0, '2021-01-22 11:02:37', '2021-01-22 11:03:29', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100523, 150725316141101012, 'HiFiNi - 音乐磁场', '/profile/site/system/fdd671e9-b241-462f-a259-d8d7d5a2596e.png', '一个由音乐爱好者维护的分享平台', 'https://www.hifini.com/', 11, 0, '2021-01-25 16:01:45', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100524, 150725316141101037, '必应壁纸', '/profile/site/system/ac326879-5ed4-4ef7-9476-00793db5a0a3.png', '超高质量的必应壁纸4K无水印下载', 'https://www.todaybing.com/', 13, 0, '2021-01-29 14:36:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100525, 150725316141101051, '火烧云数据', '/profile/site/system/25f491c8-2164-4d18-aeca-c6aa2ccbc8a7.png', '专业的B站第三方大数据分析平台,助力UP主/MCN 快速涨粉,商业变现;助力品牌方/广告公司洞察竞品投放情报,匹配优质UP主,投放更精准出效', 'http://www.hsydata.com/home/index', 1, 0, '2021-02-01 14:35:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100526, 150725316141101035, 'B站创作中心', '/profile/site/system/179f1fce-c229-465c-83b8-0bb2caa9eb2c.ico', '国内知名的视频弹幕网站,这里有最及时的动漫新番,最棒的ACG氛围,最有创意的Up主。大家可以在这里找到许多欢乐。', 'https://member.bilibili.com/', 16, 0, '2021-02-01 15:03:18', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100527, 150725316141101035, '大风号', '/profile/site/system/839113b2-755e-422c-9130-ae6544bc1cb7.png', '好内容随风直达', 'https://fhh.ifeng.com/', 22, 0, '2021-02-01 15:09:36', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100528, 150725316141101029, '第一PPT', '/profile/site/system/a6c796a7-9341-4103-b033-49e99db328f7.png', 'PPT模版免费下载', 'http://www.1ppt.com/', 8, 0, '2021-02-02 09:12:17', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100529, 150725316141101029, '51PPT', '/profile/site/system/bb66b865-a667-46b1-acf2-8b8c6da6ec87.png', '幻灯片演示模板及素材下载', 'http://www.51pptmoban.com/', 9, 0, '2021-02-02 09:14:05', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100530, 150725316141101029, '叮当设计', '/profile/site/system/3c5526a5-70fc-4f67-9ad5-65e301991399.png', '分享优秀设计资源,全部免费下载', 'https://www.dingdangsheji.com/', 10, 0, '2021-02-02 09:15:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100531, 150725316141101048, 'SubPlayer', '/profile/site/system/6cee691b-9b0d-4a14-b755-ed9540e92bc0.ico', '字幕在线调整,小巧实用性非常强的网站', 'https://subplayer.js.org/', 14, 0, '2021-03-02 15:53:46', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100532, 150725316141101012, '在线音乐播放', '/profile/site/system/87ace2f3-0c6f-455f-97bc-789f0b00f846.png', '可以在线听,可以直接下载。麻雀虽小,五脏俱全。', 'https://www.binye.xyz/Music/', 12, 0, '2021-03-05 17:54:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100534, 150725316141101051, 'Versus', '/profile/site/system/a43adc92-08cd-4b2b-af7e-667e216efa08.png', '万物皆可对比。移动电话、城市、显示卡、大学及及其他', 'https://versus.com/cn', 2, 0, '2021-03-21 19:23:36', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100535, 150725316141101012, '52无损音乐', '/profile/site/system/2cb30771-c5bc-4519-a772-b47abb64c085.png', '无损音乐下载_FLAC_WAV_高品质格式无损音乐免费下载', 'http://www.52flac.com/', 13, 0, '2021-03-23 23:48:01', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100536, 150725316141101012, '炫音音乐论坛', '/profile/site/system/325b7386-aefc-41ee-be4a-63a228de00fc.png', '总有一种声音能打动你', 'https://bbs.musicool.cn/', 14, 0, '2021-03-23 23:49:54', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100538, 150725316141101052, '搜图导航', '/profile/site/system/09fbdff3-6b8e-4c39-ac01-d3356098529b.png', '解决您的搜图需求,包含大量图片网站', 'https://gesdh.cn/share/st', 2, 0, '2021-03-27 00:38:11', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100539, 150725316141101052, '自媒体导航', '/profile/site/system/3a9c73f6-0656-40b8-9789-f5f0f55be1f5.png', '自媒体专业导航,包含运营平台、排版工具、图片素材等', 'https://gesdh.cn/share/S8F3C', 3, 0, '2021-03-27 00:41:37', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100540, 150725316141101052, '视频号导航', '/profile/site/system/12448992-5513-4826-836c-afa86cb16d3e.png', '视频号相关网站,包括玩家必备、数据分析等', 'https://gesdh.cn/share/shipinhao', 4, 0, '2021-03-27 00:44:04', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100541, 150725316141101052, '视频创作导航', '/profile/site/system/dbbe4e57-13aa-4d16-b863-d4c0e74a83c5.png', '好用又专业的视频制作导航网站', 'https://gesdh.cn/share/sp', 5, 0, '2021-03-27 00:45:42', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100542, 150725316141101052, '创业神器导航', '/profile/site/system/801ef7f2-28af-4f99-8f52-db7d138d4235.png', '分享创业资源和互联网工具', 'https://gesdh.cn/share/cysq', 7, 0, '2021-03-27 00:51:44', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100543, 150725316141101052, '排行榜导航', '/profile/site/system/69a024f8-cada-46c4-9150-fecb932115d0.png', '各类榜单排名大全,包括热搜榜、热议榜等', 'https://gesdh.cn/share/phb', 6, 1, '2021-03-27 00:55:01', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100544, 150725316141101052, '运营辅助工具导航', '/profile/site/system/46e442b9-e4cc-43f5-8997-89bccd50b803.png', '分享运营相关网站', 'https://gesdh.cn/share/yyfzgj', 8, 0, '2021-03-27 00:56:26', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100545, 150725316141101052, '程序员导航', '/profile/site/system/f741cece-de4a-4e46-a237-07a0ad90c303.png', '程序员自用网站,包括常用推荐、学习教程等', 'https://gesdh.cn/share/6hMpM', 9, 0, '2021-03-27 00:58:32', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100546, 150725316141101004, 'PDF 派', '/profile/site/system/2ececa01-18ea-45f5-a168-8421def8ff3d.ico', '几十个强大的PDF在线工具,永久免费,没有注册入口,人人都是VIP!', 'https://www.pdfpai.com/', 8, 0, '2021-04-20 11:42:52', '2021-04-20 11:43:17', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100547, 150725316141101029, '微软 PPT', '/profile/site/system/2bd1b9b8-e0be-4107-8fe5-3550a619fe1d.ico', 'Office 模板和主题,使用 Microsoft 模板创建更多内容', 'https://templates.office.com/', 11, 0, '2021-04-20 11:45:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100548, 150725316141101029, 'Slidesgo', '/profile/site/system/24475701-da5f-4aa3-852e-033f55668ed9.png', '免费的谷歌幻灯片和PowerPoint模板,让你的演讲更精彩', 'https://slidesgo.com/', 12, 0, '2021-04-20 11:47:41', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100549, 150725316141101029, 'Hislide', '/profile/site/system/13f71e2b-7687-47ea-861a-ccf4caf2f60b.png', '免费的PowerPoint,谷歌幻灯片,Keynote模板', 'https://hislide.io/', 13, 0, '2021-04-20 11:48:58', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100550, 150725316141101029, 'Rrslide', '/profile/site/system/efad445e-1b5c-4e4c-9afc-0b6b21972b05.png', '下载免费的ppt模板,基调,主题和更多_ RRSlide _最畅销的演示模板市场', 'https://rrslide.com/', 14, 0, '2021-04-20 11:51:32', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100553, 150725316141101036, '图司机', '/profile/site/system/0478f006-ff16-4504-963f-8b28fd24af6d.png', '免费图片在线PS编辑器,10秒搞定平面设计!', 'https://www.tusij.com/', 0, 0, '2021-04-22 21:32:27', '2021-04-22 21:32:35', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100554, 150725316141101050, 'ProcessOn免费在线作图', '/profile/site/system/25fc6979-4a05-49ab-a9dc-3cc0daa76e0c.ico', '在线作图工具的聚合平台, 它可以在线画流程图、思维导图、UI原型图、UML、网络拓扑图、组织结构图等等, 您无需担心下载和更新的问题,不管Mac还是Windows,一个浏览器就可以随时随地的发挥创意,规划工作', 'https://processon.com', 11, 0, '2021-05-13 23:22:40', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100555, 150725316141101042, 'JustAuth', '/profile/site/system/fdf62f71-41e8-4454-8dbd-f1272ed9eac5.png', '小而全而美的第三方登录开源组件。目前已支持Github、Gitee、微博、钉钉、百度、Coding、腾讯云开发者平台、OSChina、支付宝、QQ、微信、淘宝、Google、Facebook、抖音、领英、小米、微软、今日头条、Teambition、StackOverflow、Pinterest、人人、华为、企业微信、酷家乐、Gitlab、美团、饿了么、推特、飞书、京东、阿里云、喜马拉雅、Amazon、Slack和 Line 等第三方平台的授权登录。', 'https://gitee.com/yadong.zhang/JustAuth', 8, 0, '2021-05-31 23:11:03', '2021-05-31 23:11:52', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100556, 150725316141101050, '语雀', '/profile/site/system/6da5aba9-a474-4fb4-82b0-880cfc32237e.png', '专业的云端知识库,个人笔记与知识创作,团队协同与知识沉淀。', 'https://www.yuque.com/', 12, 0, '2021-06-05 10:20:20', '2021-06-12 14:32:16', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100557, 150725316141101048, '爱给网', '/profile/site/system/fec4eb53-e5d2-4cb5-a16e-5ed41e4cc1d4.ico', '音效配乐_3D模型_视频素材_游戏素材。中国最大的数字娱乐免费素材下载网站,免费提供免费的音效配乐|3D模型|视频|游戏素材资源下载。', 'https://www.aigei.com/', 15, 0, '2021-07-25 11:42:08', '2021-07-25 11:44:39', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100558, 150725316141101017, 'IT工具网', '/profile/site/system/a3ccbeef-5ba8-46d3-bf9b-07cc90aa202c.ico', '在线实用工具_代码工具_写作辅助工具', 'https://www.coder.work', 23, 0, '2021-08-02 21:45:14', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100559, 150725316141101037, '电脑壁纸', '/profile/site/system/25fd04c8-3419-4919-ac66-8c6dd822898e.png', '一个自采集壁纸站', 'http://lab.mkblog.cn/wallpaper/', 14, 0, '2021-08-11 22:57:13', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100560, 150725316141101037, '3G壁纸', '/profile/site/system/628bf055-387d-49a5-b403-5292f79354be.png', '电脑壁纸专家', 'https://desk.3gbizhi.com/', 15, 0, '2021-08-11 23:02:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100562, 150725316141101048, '混剪侠 预告片世界', '/profile/site/system/e9b3cfca-739b-427b-b52b-bdb6899b2945.png', '最新电影预告片免费下载', 'https://www.yugaopian.cn/', 16, 0, '2021-09-07 00:05:24', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100563, 150725316141101042, 'vue-admin-beautiful', '/profile/site/system/4864e82c-69e2-4868-8501-0c9a06ff56c6.png', '国内首个基于vue3.0的开源admin项目,同时支持电脑,手机,平板', 'https://gitee.com/chu1204505056/vue-admin-beautiful', 9, 0, '2021-09-27 07:55:13', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100566, 150725316141101001, '奈斯搜索', '/profile/site/system/2c3be62e-9584-4db0-9940-509f13f9d0fc.png', '资源超丰富的阿里云盘资源搜索引擎', 'https://www.niceso.fun/', 21, 0, '2021-12-10 22:10:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100567, 150725316141101004, 'PDF24 Tools', '/profile/site/system/0d8de034-7e9e-4e7b-8f87-1679cc5cdc55.svg', '免费且易于使用的在线PDF工具,不限制文件大小。', 'https://tools.pdf24.org/zh/', 13, 0, '2022-01-16 20:31:31', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100568, 150725316141101011, '视中心影院', '/profile/site/system/84734031-d40d-40d1-b30c-c13fa29a65f1.png', '全新电视剧,全新动漫,全新综艺节目排行榜,免费在线观看全网电影,动作片,喜剧片,爱情片,搞笑片等全新电影,更多电影高清在线观看尽在视中心影院', 'https://www.mhz8.com/', 30, 0, '2022-03-13 15:03:21', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100569, 150725316141101042, 'vue-admin-better', '/profile/site/system/4864e82c-69e2-4868-8501-0c9a06ff56c6.png', '国内首个基于vue3.0的开源admin项目,同时支持电脑,手机,平板', 'https://github.com/chuzhixin/vue-admin-better', 10, 0, '2022-03-14 23:26:42', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100570, 150725316141101031, 'Element Plus', '/profile/site/system/6a17c0cb-36ad-4029-9570-0b272a07055d.svg', '基于 Vue 3,面向设计师和开发者的组件库', 'https://element-plus.gitee.io/zh-CN/', 3, 0, '2022-06-11 17:30:09', '2022-06-11 17:30:44', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100571, 150725316141101042, '格姗知识圈 / geshanzsq-blog', '/profile/site/system/logo.jpg', '一个基于 Spring Boot、Spring Security、Vue3、Element Plus 的前后端分离的博客网站!', 'https://gitee.com/geshanzsq/geshanzsq-blog', 0, 0, '2022-11-03 21:43:34', '2022-11-03 21:44:25', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100572, 150725316141101017, 'Wormhole', '/profile/site/system/4bef67c6-4105-48ea-8974-b5e565cb6179.png', '一个没有任何限制的文件传输网站,打开就可以选择上传需要临时保存的文件或文件夹,一次可以免费上传10GB以内的大小文件。', 'https://wormhole.app', 24, 0, '2023-01-09 20:26:45', '2023-01-09 20:27:23', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100573, 150725316141101048, 'Hotbox', '/profile/site/system/c4fc3995-0b5d-44f2-8220-8e40db0324e7.png', '一个完全免费的视频下载网站,能够下载多个平台的视频文件,并且还支持自定义选择视频清晰度以及单独的音频下载。', 'https://www.hotbox.fun', 17, 0, '2023-01-09 20:29:53', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100574, 150725316141101048, 'DeepL', '/profile/site/system/4117453c-4615-4245-a59f-f9e03b38b1d6.png', '一个非常好用的在线文字、文档翻译网站,下载的文档文献资料都能一键翻译成需要的语种,支持翻译上百种语种', 'https://www.deepl.com/translator', 18, 0, '2023-01-09 20:31:55', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100575, 150725316141101004, '贴图士', '/profile/site/system/3a981b05-bd12-426a-8094-91eeff7e6e49.png', '一个免费的视频格式转换以及图片压缩网站。打开页面会看到多种图片压缩格式、视频转GIF、GIF合并、GIF裁剪等功能。', 'https://www.tutieshi.com/video/', 14, 0, '2023-01-09 20:33:36', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100576, 150725316141101008, 'Latest10', '/profile/site/system/804cc2a0-afcc-4984-b3b4-dfd6154e527b.png', '获取最新的系统镜像', 'https://latest10.win/', 11, 0, '2023-02-18 19:47:07', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100577, 150725316141101008, '极简系统', '/profile/site/system/67a5a719-0b09-4807-9185-535b7b4ce107.ico', '最纯净的系统下载平台', 'https://www.sysmini.com/', 12, 0, '2023-02-18 19:48:03', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100578, 150725316141101008, '微软官方系统', '/profile/site/system/b066263b-a469-4fa1-a1dc-df8f86869eb8.png', '正版官方下载', 'https://www.microsoft.com/zh-cn/software-download/', 13, 1, '2023-02-18 19:49:50', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100579, 150725316141101048, 'VideoFk', '/profile/site/system/7adb50a1-6511-438f-b713-2662bc747155.png', '在线视频下载,下载视频转换为 MP4 最佳网站以从All在线下载视频', 'https://www.videofk.com/', 19, 0, '2023-02-27 23:23:09', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (150725316141100580, 150725316141101052, 'AI 导航', '/profile/site/system/65da39e3-2d3b-4e7c-8590-73ac52b2fbeb.png', '超全的国内外 AI 应用', 'https://gesdh.cn/share/ai', 1, 0, '2023-03-31 00:40:32', '2023-05-19 21:05:00', 1, 1, 1);
INSERT INTO `nav_site` VALUES (150725316141100581, 150725316141101035, '抖音创作服务平台', '/profile/site/system/da278792-b8ec-4073-8cd4-660fc24acb7b.ico', '抖音创作服务平台', 'https://creator.douyin.com/', 23, 0, '2023-04-05 22:21:33', NULL, 1, NULL, 1);
INSERT INTO `nav_site` VALUES (301450632282221536, 150725316141101050, '飞书文档', '/profile/site/system/2023/05/15/8877512b-ad2c-4690-800b-fc5121dda9d6.jpeg', '新一代高效协作工具,融合了在线文档和协同文档的所有功能,不仅能插入在线表格,将数据表转换成看板,还能用思维笔记,将思考路径可视化,更有丰富模板满足多场景创作需求。', 'https://bqfeun1dwu8.feishu.cn', 13, 0, '2023-05-15 22:08:36', NULL, 1, NULL, 1);

-- ----------------------------
-- Table structure for nav_site_config
-- ----------------------------
DROP TABLE IF EXISTS `nav_site_config`;
CREATE TABLE `nav_site_config`  (
  `id` bigint(20) NOT NULL COMMENT '配置 id',
  `about_site_description` varchar(500) NULL DEFAULT '' COMMENT '关于本站描述',
  `about_site_email` varchar(50) NULL DEFAULT '' COMMENT '关于本站邮箱',
  `about_site_content` longtext NULL COMMENT '关于本站内容',
  `about_site_visit_count` int(11) NULL DEFAULT 0 COMMENT '关于本站访问量',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '网站配置' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of nav_site_config
-- ----------------------------
INSERT INTO `nav_site_config` VALUES (152819881111191552, '这个导航网站来源于格姗导航的开源项目。如果你有更好的想法,可以通过左边的邮箱与我联系。如果喜欢本站,可以分享给其他人,或者设置为主页,这是对我最大的支持!\'', '497301391@qq.com', '<p>这是一个导航网站,收入了大部分常用的网站,希望能够解决到你频繁收藏网站的烦恼!</p><p>显然,这是一个开源项目,主要放一些自己经常用到的网站。</p><p>开源项目来源:<a href=\"\\\" target=\"\\\">https://gitee.com/geshanzsq/geshanzsq-nav</a></p>', 10, 43728307660783616, '2023-05-21 16:51:39', 43728307660783616, '2023-05-21 16:58:51');

-- ----------------------------
-- Table structure for sys_api
-- ----------------------------
DROP TABLE IF EXISTS `sys_api`;
CREATE TABLE `sys_api`  (
  `id` bigint(20) NOT NULL COMMENT '接口 id',
  `api_name` varchar(50) NULL DEFAULT '' COMMENT '接口名称',
  `api_url` varchar(255) NULL DEFAULT '' COMMENT '接口地址',
  `api_method` varchar(10) NULL DEFAULT '' COMMENT '接口请求方式(如:get,post)',
  `fk_api_category_id` varchar(25) NULL DEFAULT '' COMMENT '所属分类 id',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  `remark` varchar(500) NULL DEFAULT '' COMMENT '备注',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统接口' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_api
-- ----------------------------
INSERT INTO `sys_api` VALUES (43759552742555648, '分页列表', '/system/user/page', 'GET', '43757041415618560', 1, 1, '', 43728307660783616, '2022-07-24 18:04:50', NULL, NULL);
INSERT INTO `sys_api` VALUES (43759676889759744, '详情', '/system/user/getById/*', 'GET', '43757041415618560', 2, 1, '', 43728307660783616, '2022-07-24 18:05:20', NULL, NULL);
INSERT INTO `sys_api` VALUES (43761152815005696, '新增', '/system/user', 'POST', '43757041415618560', 3, 1, '', 43728307660783616, '2022-07-24 18:11:12', NULL, NULL);
INSERT INTO `sys_api` VALUES (43761187950690304, '修改', '/system/user', 'PUT', '43757041415618560', 4, 1, '', 43728307660783616, '2022-07-24 18:11:20', NULL, NULL);
INSERT INTO `sys_api` VALUES (43761278916755456, '删除', '/system/user/delete/*', 'DELETE', '43757041415618560', 5, 1, '', 43728307660783616, '2022-07-24 18:11:42', NULL, NULL);
INSERT INTO `sys_api` VALUES (43762647782391808, '重置密码', '/system/user/resetPassword', 'PUT', '43757041415618560', 6, 1, '', 43728307660783616, '2022-07-24 18:17:08', NULL, NULL);
INSERT INTO `sys_api` VALUES (43762807694426112, '分页列表', '/system/role/page', 'GET', '43757069869776896', 1, 1, '', 43728307660783616, '2022-07-24 18:17:46', NULL, NULL);
INSERT INTO `sys_api` VALUES (43762858923655168, '详情', '/system/role/getById/*', 'GET', '43757069869776896', 2, 1, '', 43728307660783616, '2022-07-24 18:17:59', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763188797276160, '新增', '/system/role', 'POST', '43757069869776896', 3, 1, '', 43728307660783616, '2022-07-24 18:19:17', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763232950714368, '修改', '/system/role', 'PUT', '43757069869776896', 4, 1, '', 43728307660783616, '2022-07-24 18:19:28', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763311845572608, '删除', '/system/role/delete/*', 'DELETE', '43757069869776896', 5, 1, '', 43728307660783616, '2022-07-24 18:19:47', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763442175180800, '获取最大排序', '/system/role/getMaxSort', 'GET', '43757069869776896', 6, 1, '', 43728307660783616, '2022-07-24 18:20:18', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763523695673344, '已分配用户分页', '/system/role/auth/user/page', 'GET', '43757069869776896', 7, 1, '', 43728307660783616, '2022-07-24 18:20:37', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763593107210240, '未分配用户分页', '/system/role/auth/user/not/page', 'GET', '43757069869776896', 8, 1, '', 43728307660783616, '2022-07-24 18:20:54', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763693447544832, '授权用户', '/system/role/auth/user', 'POST', '43757069869776896', 9, 1, '', 43728307660783616, '2022-07-24 18:21:18', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763818857234432, '取消授权', '/system/role/auth/user/delete', 'DELETE', '43757069869776896', 10, 1, '', 43728307660783616, '2022-07-24 18:21:48', NULL, NULL);
INSERT INTO `sys_api` VALUES (43763961681674240, '列表', '/system/menu/list', 'GET', '43758191430860800', 1, 1, '', 43728307660783616, '2022-07-24 18:22:22', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764022897541120, '树形', '/system/menu/tree', 'GET', '43758191430860800', 2, 1, '', 43728307660783616, '2022-07-24 18:22:36', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764081659740160, '详情', '/system/menu/getById/*', 'GET', '43758191430860800', 3, 1, '', 43728307660783616, '2022-07-24 18:22:50', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764130418524160, '新增', '/system/menu', 'POST', '43758191430860800', 4, 1, '', 43728307660783616, '2022-07-24 18:23:02', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764160827228160, '修改', '/system/menu', 'PUT', '43758191430860800', 5, 1, '', 43728307660783616, '2022-07-24 18:23:09', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764235854938112, '删除', '/system/menu/delete/*', 'DELETE', '43758191430860800', 6, 1, '', 43728307660783616, '2022-07-24 18:23:27', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764326162497536, '获取最大排序', '/system/menu/getMaxSortByParentId', 'GET', '43758191430860800', 7, 1, '', 43728307660783616, '2022-07-24 18:23:48', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764505833897984, '分页列表', '/system/dictionary/page', 'GET', '43758342685851648', 1, 1, '', 43728307660783616, '2022-07-24 18:24:31', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764571281817600, '列表', '/system/dictionary/list', 'GET', '43758342685851648', 2, 1, '', 43728307660783616, '2022-07-24 18:24:47', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764610037186560, '新增', '/system/dictionary', 'POST', '43758342685851648', 3, 1, '', 43728307660783616, '2022-07-24 18:24:56', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764642895364096, '修改', '/system/dictionary', 'PUT', '43758342685851648', 5, 1, '', 43728307660783616, '2022-07-24 18:25:04', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764689900929024, '删除', '/system/dictionary/delete/*', 'DELETE', '43758342685851648', 6, 1, '', 43728307660783616, '2022-07-24 18:25:15', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764765633282048, '获取最大排序', '/system/dictionary/getMaxSort', 'GET', '43758342685851648', 7, 1, '', 43728307660783616, '2022-07-24 18:25:33', NULL, NULL);
INSERT INTO `sys_api` VALUES (43764977332387840, '分页列表', '/system/dictionary/data/page', 'GET', '43758386155618304', 1, 1, '', 43728307660783616, '2022-07-24 18:26:24', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765061612732416, '详情', '/system/dictionary/data/getById/*', 'GET', '43758386155618304', 2, 1, '', 43728307660783616, '2022-07-24 18:26:44', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765127371030528, '新增', '/system/dictionary/data', 'POST', '43758386155618304', 3, 1, '', 43728307660783616, '2022-07-24 18:26:59', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765165673414656, '修改', '/system/dictionary/data', 'PUT', '43758386155618304', 4, 1, '', 43728307660783616, '2022-07-24 18:27:09', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765212116942848, '删除', '/system/dictionary/data/delete/*', 'DELETE', '43758386155618304', 5, 1, '', 43728307660783616, '2022-07-24 18:27:20', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765276512092160, '获取最大排序', '/system/dictionary/data/getMaxSortByDictionaryId', 'GET', '43758386155618304', 6, 1, '', 43728307660783616, '2022-07-24 18:27:35', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765395617742848, '分页列表', '/system/api/category/page', 'GET', '43758515155632128', 1, 1, '', 43728307660783616, '2022-07-24 18:28:03', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765435992113152, '列表', '/system/api/category/list', 'GET', '43758515155632128', 2, 1, '', 43728307660783616, '2022-07-24 18:28:13', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765499997192192, '详情', '/system/api/category/getById/*', 'GET', '43758515155632128', 3, 1, '', 43728307660783616, '2022-07-24 18:28:28', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765537020313600, '新增', '/system/api/category', 'POST', '43758515155632128', 4, 1, '', 43728307660783616, '2022-07-24 18:28:37', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765569287094272, '修改', '/system/api/category', 'PUT', '43758515155632128', 5, 1, '', 43728307660783616, '2022-07-24 18:28:45', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765629844455424, '删除', '/system/api/category/delete/*', 'DELETE', '43758515155632128', 6, 1, '', 43728307660783616, '2022-07-24 18:28:59', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765696206733312, '获取最大排序', '/system/api/category/getMaxSort', 'GET', '43758515155632128', 7, 1, '', 43728307660783616, '2022-07-24 18:29:15', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765773721665536, '分页列表', '/system/api/page', 'GET', '43758723595763712', 1, 1, '', 43728307660783616, '2022-07-24 18:29:34', NULL, NULL);
INSERT INTO `sys_api` VALUES (43765827249373184, '详情', '/system/api/getById/*', 'GET', '43758723595763712', 2, 1, '', 43728307660783616, '2022-07-24 18:29:46', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766245937381376, '新增', '/system/api', 'POST', '43758723595763712', 3, 1, '', 43728307660783616, '2022-07-24 18:31:26', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766278116081664, '修改', '/system/api', 'PUT', '43758723595763712', 4, 1, '', 43728307660783616, '2022-07-24 18:31:34', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766323594919936, '删除', '/system/api/delete/*', 'DELETE', '43758723595763712', 5, 1, '', 43728307660783616, '2022-07-24 18:31:45', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766380444516352, '获取最大排序', '/system/api/getMaxSortByCategoryId', 'GET', '43758723595763712', 6, 1, '', 43728307660783616, '2022-07-24 18:31:58', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766697940746240, '分页列表', '/system/log/login/page', 'GET', '43766546228576256', 1, 1, '', 43728307660783616, '2022-07-24 18:33:14', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766812147449856, '分页列表', '/system/log/operation/page', 'GET', '43766567304953856', 1, 1, '', 43728307660783616, '2022-07-24 18:33:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (43766869047377920, '详情', '/system/log/operation/getById/*', 'GET', '43766567304953856', 2, 1, '', 43728307660783616, '2022-07-24 18:33:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (45287586729558016, '详情', '/system/dictionary/getById/*', 'GET', '43758342685851648', 4, 1, '', 43728307660783616, '2022-07-28 23:16:42', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141509008424960, '分页列表', '/system/param/page', 'GET', '52133147512406016', 1, 1, '', 43728307660783616, '2022-08-16 21:11:44', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141659554578432, '详情', '/system/param/getById/*', 'GET', '52133147512406016', 2, 1, '', 43728307660783616, '2022-08-16 21:12:20', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141709437435904, '新增', '/system/param', 'POST', '52133147512406016', 3, 1, '', 43728307660783616, '2022-08-16 21:12:32', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141758401740800, '修改', '/system/param', 'PUT', '52133147512406016', 4, 1, '', 43728307660783616, '2022-08-16 21:12:44', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141803498897408, '删除', '/system/param/delete/*', 'DELETE', '52133147512406016', 5, 1, '', 43728307660783616, '2022-08-16 21:12:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (52141938496765952, '获取最大排序', '/system/param/getMaxSort', 'GET', '52133147512406016', 6, 1, '', 43728307660783616, '2022-08-16 21:13:27', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151297, '列表', '/nav/category/list', 'GET', '86832919972151296', 1, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151298, '详情', '/nav/category/getById/*', 'GET', '86832919972151296', 2, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151299, '新增', '/nav/category', 'POST', '86832919972151296', 3, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151300, '修改', '/nav/category', 'PUT', '86832919972151296', 4, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151301, '删除', '/nav/category/delete/*', 'DELETE', '86832919972151296', 5, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86832919972151302, '获取最大排序', '/nav/category/getMaxSortByParentId', 'GET', '86832919972151296', 6, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262849, '分页列表', '/nav/site/page', 'GET', '86859268749262848', 1, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262850, '详情', '/nav/site/getById/*', 'GET', '86859268749262848', 2, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262851, '新增', '/nav/site', 'POST', '86859268749262848', 3, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262852, '修改', '/nav/site', 'PUT', '86859268749262848', 4, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262853, '删除', '/nav/site/delete/*', 'DELETE', '86859268749262848', 5, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (86859268749262854, '获取最大排序', '/nav/site/getMaxSort/', 'GET', '86859268749262848', 6, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api` VALUES (92732732718710784, '分页列表', '/nav/comment/page', 'GET', '92732554183966720', 1, 1, '', 43728307660783616, '2022-12-06 21:26:46', NULL, NULL);
INSERT INTO `sys_api` VALUES (92732865405517824, '通过', '/nav/comment/pass/*', 'PUT', '92732554183966720', 2, 1, '', 43728307660783616, '2022-12-06 21:27:18', NULL, NULL);
INSERT INTO `sys_api` VALUES (92732919084220416, '驳回', '/nav/comment/reject', 'PUT', '92732554183966720', 3, 1, '', 43728307660783616, '2022-12-06 21:27:31', NULL, NULL);
INSERT INTO `sys_api` VALUES (92733072901931008, '置顶', '/nav/comment/sticky/*', 'PUT', '92732554183966720', 4, 1, '', 43728307660783616, '2022-12-06 21:28:07', NULL, NULL);
INSERT INTO `sys_api` VALUES (92733166082588672, '取消置顶', '/nav/comment/cancelSticky/*', 'PUT', '92732554183966720', 5, 1, '', 43728307660783616, '2022-12-06 21:28:30', NULL, NULL);
INSERT INTO `sys_api` VALUES (92733276258566144, '删除', '/nav/comment/delete/*', 'DELETE', '92732554183966720', 6, 1, '', 43728307660783616, '2022-12-06 21:28:56', NULL, NULL);
INSERT INTO `sys_api` VALUES (94456256298745856, '获取配置', '/nav/config/getConfig', 'GET', '94456130222161920', 1, 1, '', 43728307660783616, '2022-12-11 15:35:26', NULL, NULL);
INSERT INTO `sys_api` VALUES (94456330005250048, '修改', '/nav/config', 'PUT', '94456130222161920', 2, 1, '', 43728307660783616, '2022-12-11 15:35:44', NULL, NULL);

-- ----------------------------
-- Table structure for sys_api_category
-- ----------------------------
DROP TABLE IF EXISTS `sys_api_category`;
CREATE TABLE `sys_api_category`  (
  `id` bigint(20) NOT NULL COMMENT '接口分类 id',
  `category_name` varchar(50) NULL DEFAULT '' COMMENT '分类名称',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  `remark` varchar(500) NULL DEFAULT '' COMMENT '备注',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统接口分类' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_api_category
-- ----------------------------
INSERT INTO `sys_api_category` VALUES (43757041415618560, '用户管理', 1, 1, '', 43728307660783616, '2022-07-24 17:54:52', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43757069869776896, '角色管理', 2, 1, '', 43728307660783616, '2022-07-24 17:54:58', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43758191430860800, '菜单管理', 3, 1, '', 43728307660783616, '2022-07-24 17:59:26', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43758342685851648, '数据字典', 4, 1, '', 43728307660783616, '2022-07-24 18:00:02', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43758386155618304, '数据字典数据', 5, 1, '', 43728307660783616, '2022-07-24 18:00:12', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43758515155632128, 'API 接口分类', 6, 1, '', 43728307660783616, '2022-07-24 18:00:43', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43758723595763712, 'API 接口', 7, 1, '\n', 43728307660783616, '2022-07-24 18:01:33', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43766546228576256, '登录日志', 9, 1, '', 43728307660783616, '2022-07-24 18:32:38', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (43766567304953856, '操作日志', 10, 1, '', 43728307660783616, '2022-07-24 18:32:43', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (52133147512406016, '参数配置', 8, 1, '', 43728307660783616, '2022-08-16 20:38:31', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (86832919972151296, '导航分类管理', 11, 1, '', 43728307660783616, '2022-11-20 14:43:41', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (86859268749262848, '导航网站管理', 12, 1, '', 43728307660783616, '2022-11-20 16:27:55', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (92732554183966720, '评论管理', 13, 1, '', 43728307660783616, '2022-12-06 21:26:04', NULL, NULL);
INSERT INTO `sys_api_category` VALUES (94456130222161920, '网站配置', 16, 1, '', 43728307660783616, '2022-12-11 15:34:56', NULL, NULL);

-- ----------------------------
-- Table structure for sys_api_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_api_menu`;
CREATE TABLE `sys_api_menu`  (
  `id` bigint(20) NOT NULL COMMENT '接口菜单 id',
  `fk_api_id` bigint(20) NOT NULL COMMENT '接口 id',
  `fk_menu_id` bigint(20) NOT NULL COMMENT '菜单 id',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统接口菜单' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_api_menu
-- ----------------------------
INSERT INTO `sys_api_menu` VALUES (44934431223316480, 43759552742555648, 43738261293629440);
INSERT INTO `sys_api_menu` VALUES (44941778175918080, 43761152815005696, 43779604086784000);
INSERT INTO `sys_api_menu` VALUES (44942911996952576, 43759676889759744, 43779675532558336);
INSERT INTO `sys_api_menu` VALUES (44942911996952577, 43761187950690304, 43779675532558336);
INSERT INTO `sys_api_menu` VALUES (44943459030663168, 43761278916755456, 43779734387032064);
INSERT INTO `sys_api_menu` VALUES (44943477556903936, 43762647782391808, 43779823738290176);
INSERT INTO `sys_api_menu` VALUES (44943667110084608, 43762807694426112, 43738420110950400);
INSERT INTO `sys_api_menu` VALUES (44943839235932160, 43762858923655168, 43780015896133632);
INSERT INTO `sys_api_menu` VALUES (44943839235932161, 43763232950714368, 43780015896133632);
INSERT INTO `sys_api_menu` VALUES (44943888078602240, 43763311845572608, 43780063644090368);
INSERT INTO `sys_api_menu` VALUES (44943942797492224, 43763188797276160, 43779962246791168);
INSERT INTO `sys_api_menu` VALUES (44943942797492225, 43763442175180800, 43779962246791168);
INSERT INTO `sys_api_menu` VALUES (45286549805334528, 43763523695673344, 43780156136882176);
INSERT INTO `sys_api_menu` VALUES (45286549805334529, 43763593107210240, 43780156136882176);
INSERT INTO `sys_api_menu` VALUES (45286549805334530, 43763693447544832, 43780156136882176);
INSERT INTO `sys_api_menu` VALUES (45286600837431296, 43763818857234432, 43780326794723328);
INSERT INTO `sys_api_menu` VALUES (45286731506778112, 43763961681674240, 43738641683447808);
INSERT INTO `sys_api_menu` VALUES (45286823873740800, 43764022897541120, 43780571997929472);
INSERT INTO `sys_api_menu` VALUES (45286823873740801, 43764081659740160, 43780571997929472);
INSERT INTO `sys_api_menu` VALUES (45286823873740802, 43764160827228160, 43780571997929472);
INSERT INTO `sys_api_menu` VALUES (45286823873740803, 43764326162497536, 43780571997929472);
INSERT INTO `sys_api_menu` VALUES (45286924520259584, 43764022897541120, 43780526653308928);
INSERT INTO `sys_api_menu` VALUES (45286924520259585, 43764130418524160, 43780526653308928);
INSERT INTO `sys_api_menu` VALUES (45286924520259586, 43764326162497536, 43780526653308928);
INSERT INTO `sys_api_menu` VALUES (45286959903408128, 43764235854938112, 43780625399808000);
INSERT INTO `sys_api_menu` VALUES (45287084751060992, 43765435992113152, 43780699760623616);
INSERT INTO `sys_api_menu` VALUES (45287084751060993, 43765773721665536, 43780699760623616);
INSERT INTO `sys_api_menu` VALUES (45287155194396672, 43764505833897984, 43738896395141120);
INSERT INTO `sys_api_menu` VALUES (45287205698011136, 43764610037186560, 43780957378969600);
INSERT INTO `sys_api_menu` VALUES (45287205698011137, 43764765633282048, 43780957378969600);
INSERT INTO `sys_api_menu` VALUES (45287965244522496, 43764642895364096, 43781009912627200);
INSERT INTO `sys_api_menu` VALUES (45287965244522497, 43764765633282048, 43781009912627200);
INSERT INTO `sys_api_menu` VALUES (45287965244522498, 45287586729558016, 43781009912627200);
INSERT INTO `sys_api_menu` VALUES (45288010920493056, 43764689900929024, 43781060101668864);
INSERT INTO `sys_api_menu` VALUES (45288359009976320, 43765127371030528, 43781756515516416);
INSERT INTO `sys_api_menu` VALUES (45288359009976321, 43765276512092160, 43781756515516416);
INSERT INTO `sys_api_menu` VALUES (45288394263101440, 43765061612732416, 43781829500600320);
INSERT INTO `sys_api_menu` VALUES (45288394263101441, 43765165673414656, 43781829500600320);
INSERT INTO `sys_api_menu` VALUES (45288394263101442, 43765276512092160, 43781829500600320);
INSERT INTO `sys_api_menu` VALUES (45288418313240576, 43765212116942848, 43781877487632384);
INSERT INTO `sys_api_menu` VALUES (45288563960446976, 43764571281817600, 43781692732735488);
INSERT INTO `sys_api_menu` VALUES (45288563960446977, 43764977332387840, 43781692732735488);
INSERT INTO `sys_api_menu` VALUES (45288684953534464, 43765395617742848, 43739074015526912);
INSERT INTO `sys_api_menu` VALUES (45288725575368704, 43765537020313600, 43820727559782400);
INSERT INTO `sys_api_menu` VALUES (45288725575368705, 43765696206733312, 43820727559782400);
INSERT INTO `sys_api_menu` VALUES (45288799676137472, 43765499997192192, 43820963283861504);
INSERT INTO `sys_api_menu` VALUES (45288799676137473, 43765569287094272, 43820963283861504);
INSERT INTO `sys_api_menu` VALUES (45288799676137474, 43765696206733312, 43820963283861504);
INSERT INTO `sys_api_menu` VALUES (45288869704237056, 43765629844455424, 43821061610930176);
INSERT INTO `sys_api_menu` VALUES (45288915245989888, 43765435992113152, 43821227462098944);
INSERT INTO `sys_api_menu` VALUES (45288915245989889, 43765773721665536, 43821227462098944);
INSERT INTO `sys_api_menu` VALUES (45288959261016064, 43766245937381376, 43821354134274048);
INSERT INTO `sys_api_menu` VALUES (45288959261016065, 43766380444516352, 43821354134274048);
INSERT INTO `sys_api_menu` VALUES (45288998154797056, 43765827249373184, 43821418193879040);
INSERT INTO `sys_api_menu` VALUES (45288998154797057, 43766278116081664, 43821418193879040);
INSERT INTO `sys_api_menu` VALUES (45288998154797058, 43766380444516352, 43821418193879040);
INSERT INTO `sys_api_menu` VALUES (45289037971324928, 43766323594919936, 43821478692519936);
INSERT INTO `sys_api_menu` VALUES (45289082435141632, 43766697940746240, 43746395802304512);
INSERT INTO `sys_api_menu` VALUES (45289104912416768, 43766812147449856, 43746859121901568);
INSERT INTO `sys_api_menu` VALUES (45289104912416769, 43766869047377920, 43746859121901568);
INSERT INTO `sys_api_menu` VALUES (52142019916595200, 52141509008424960, 52073868344426496);
INSERT INTO `sys_api_menu` VALUES (52142059640848384, 52141709437435904, 52132922030817280);
INSERT INTO `sys_api_menu` VALUES (52142059640848385, 52141938496765952, 52132922030817280);
INSERT INTO `sys_api_menu` VALUES (52142106021462016, 52141659554578432, 52133024904511488);
INSERT INTO `sys_api_menu` VALUES (52142106025656320, 52141758401740800, 52133024904511488);
INSERT INTO `sys_api_menu` VALUES (52142106025656321, 52141938496765952, 52133024904511488);
INSERT INTO `sys_api_menu` VALUES (52142131011125248, 52141803498897408, 52133076263763968);
INSERT INTO `sys_api_menu` VALUES (86832919972151307, 86832919972151297, 86832919972151303);
INSERT INTO `sys_api_menu` VALUES (86832919972151308, 86832919972151299, 86832919972151304);
INSERT INTO `sys_api_menu` VALUES (86832919972151309, 86832919972151300, 86832919972151305);
INSERT INTO `sys_api_menu` VALUES (86832919972151310, 86832919972151298, 86832919972151305);
INSERT INTO `sys_api_menu` VALUES (86832919972151311, 86832919972151301, 86832919972151306);
INSERT INTO `sys_api_menu` VALUES (86832919972151312, 86832919972151302, 86832919972151304);
INSERT INTO `sys_api_menu` VALUES (86832919972151313, 86832919972151302, 86832919972151305);
INSERT INTO `sys_api_menu` VALUES (86859268749262859, 86859268749262849, 86859268749262855);
INSERT INTO `sys_api_menu` VALUES (86859268749262860, 86859268749262851, 86859268749262856);
INSERT INTO `sys_api_menu` VALUES (86859268749262861, 86859268749262852, 86859268749262857);
INSERT INTO `sys_api_menu` VALUES (86859268749262862, 86859268749262850, 86859268749262857);
INSERT INTO `sys_api_menu` VALUES (86859268749262863, 86859268749262853, 86859268749262858);
INSERT INTO `sys_api_menu` VALUES (86859268749262864, 86859268749262854, 86859268749262856);
INSERT INTO `sys_api_menu` VALUES (86859268749262865, 86859268749262854, 86859268749262857);
INSERT INTO `sys_api_menu` VALUES (92733359674884096, 92732732718710784, 90179495205535744);
INSERT INTO `sys_api_menu` VALUES (92733462183673856, 92732865405517824, 92733418365779968);
INSERT INTO `sys_api_menu` VALUES (92733623991533568, 92732919084220416, 92733594673348608);
INSERT INTO `sys_api_menu` VALUES (92733755071922176, 92733072901931008, 92733726269636608);
INSERT INTO `sys_api_menu` VALUES (92733896281554944, 92733166082588672, 92733853243801600);
INSERT INTO `sys_api_menu` VALUES (92734000786833408, 92733276258566144, 92733965122666496);
INSERT INTO `sys_api_menu` VALUES (94456518971228160, 94456256298745856, 94456071543848960);
INSERT INTO `sys_api_menu` VALUES (94456548784340992, 94456330005250048, 94456484632461312);

-- ----------------------------
-- Table structure for sys_dictionary
-- ----------------------------
DROP TABLE IF EXISTS `sys_dictionary`;
CREATE TABLE `sys_dictionary`  (
  `id` bigint(20) NOT NULL COMMENT '字典 id',
  `dictionary_name` varchar(50) NULL DEFAULT '' COMMENT '字典名称',
  `dictionary_code` varchar(50) NULL DEFAULT '' COMMENT '字典编码',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  `remark` varchar(500) NULL DEFAULT '' COMMENT '备注',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统字典' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_dictionary
-- ----------------------------
INSERT INTO `sys_dictionary` VALUES (43739630905851904, '通用状态', 'commonStatus', 1, 1, '', 43728307660783616, '2022-07-24 16:45:41', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43739903539806208, '用户类型', 'systemUserType', 2, 1, '', 43728307660783616, '2022-07-24 16:46:46', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43740085404827648, '用户性别', 'systemUserSex', 3, 1, '', 43728307660783616, '2022-07-24 16:47:29', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43740399080046592, '菜单是否缓存', 'systemMenuIsCache', 4, 1, '', 43728307660783616, '2022-07-24 16:48:44', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43740514784116736, '菜单是否外链', 'systemMenuIsFrame', 5, 1, '', 43728307660783616, '2022-07-24 16:49:11', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43740632493064192, '菜单显示状态', 'systemMenuShowStatus', 6, 1, '', 43728307660783616, '2022-07-24 16:49:39', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43741186304770048, '数据字典样式类型', 'dictionaryClassType', 7, 1, '', 43728307660783616, '2022-07-24 16:51:51', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43741186479310919, 'API 请求方式', 'apiRequestMethod', 8, 1, '', 43728307660783616, '2022-07-24 18:07:28', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43747174940409856, '登录日志状态', 'logLoginStatus', 9, 1, '', 43728307660783616, '2022-07-24 17:15:39', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43749175543726080, '操作日志业务类型', 'logOperationBusinessType', 10, 1, '', 43728307660783616, '2022-07-24 17:23:36', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43749667023880192, '操作日志操作类型', 'logOperationType', 11, 1, '', 43728307660783616, '2022-07-24 17:25:33', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (43831966709055488, '操作日志状态', 'logOperationStatus', 12, 1, '', 43728307660783616, '2022-07-24 22:52:35', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (52090055367327744, '系统参数配置类型', 'sysParamType', 13, 1, '', 43728307660783616, '2022-08-16 17:47:17', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (78246041425543168, '通用是否', 'yesNo', 1, 1, '', 43728307660783616, '2022-10-27 22:01:50', NULL, NULL);
INSERT INTO `sys_dictionary` VALUES (102543613031874560, '评论状态', 'navCommentStatus', 14, 1, '', 43728307660783616, '2023-01-02 23:11:43', NULL, NULL);

-- ----------------------------
-- Table structure for sys_dictionary_data
-- ----------------------------
DROP TABLE IF EXISTS `sys_dictionary_data`;
CREATE TABLE `sys_dictionary_data`  (
  `id` bigint(20) NOT NULL COMMENT '字典数据 id',
  `dictionary_label` varchar(50) NULL DEFAULT '' COMMENT '字典标签',
  `dictionary_value` varchar(100) NULL DEFAULT '' COMMENT '字典值',
  `fk_dictionary_id` varchar(25) NULL DEFAULT NULL COMMENT '所属字典 id',
  `class_type` varchar(100) NULL DEFAULT '' COMMENT '样式类型(primary,success等)',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  `remark` varchar(500) NULL DEFAULT '' COMMENT '备注',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统字典数据' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_dictionary_data
-- ----------------------------
INSERT INTO `sys_dictionary_data` VALUES (43739723671273472, '正常', '1', '43739630905851904', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 16:46:03', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43739751852802048, '停用', '2', '43739630905851904', 'danger', 2, 1, '', 43728307660783616, '2022-07-24 16:46:09', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43744355986440192, '后台用户', '1', '43739903539806208', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:04:27', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43744417940504576, '博客用户', '2', '43739903539806208', 'warning', 2, 1, '', 43728307660783616, '2022-07-24 17:04:42', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43744494792736768, '保密', '1', '43740085404827648', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:05:00', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43744558772649984, '男', '2', '43740085404827648', 'success', 2, 1, '', 43728307660783616, '2022-07-24 17:05:16', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43744612069670912, '女', '3', '43740085404827648', 'warning', 3, 1, '', 43728307660783616, '2022-07-24 17:05:28', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745015746265088, '缓存', '1', '43740399080046592', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:07:04', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745054946230272, '不缓存', '2', '43740399080046592', 'success', 2, 1, '', 43728307660783616, '2022-07-24 17:07:14', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745129718087680, '是', '1', '43740514784116736', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:07:32', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745161041149952, '否', '2', '43740514784116736', 'success', 2, 1, '', 43728307660783616, '2022-07-24 17:07:39', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745249540964352, '显示', '1', '43740632493064192', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:08:00', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745280234881024, '隐藏', '2', '43740632493064192', 'success', 2, 1, '', 43728307660783616, '2022-07-24 17:08:08', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745438393696256, '默认(default)', 'default', '43741186304770048', 'default', 1, 1, '', 43728307660783616, '2022-07-24 17:08:45', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745535164678144, '主要(primary)', 'primary', '43741186304770048', 'primary', 2, 1, '', 43728307660783616, '2022-07-24 17:09:08', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745625509986304, '成功(success)', 'success', '43741186304770048', 'success', 3, 1, '', 43728307660783616, '2022-07-24 17:09:30', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745706313252864, '信息(info)', 'info', '43741186304770048', 'info', 4, 1, '', 43728307660783616, '2022-07-24 17:09:49', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745788475473920, '警告(warning)', 'warning', '43741186304770048', 'warning', 5, 1, '', 43728307660783616, '2022-07-24 17:10:09', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43745861963874304, '危险(danger)', 'danger', '43741186304770048', 'danger', 6, 1, '', 43728307660783616, '2022-07-24 17:10:26', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43747219504889856, '成功', '1', '43747174940409856', 'success', 1, 1, '', 43728307660783616, '2022-07-24 17:15:50', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43747249070538752, '失败', '2', '43747174940409856', 'danger', 2, 1, '', 43728307660783616, '2022-07-24 17:15:57', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749310080221184, '其他', '1', '43749175543726080', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 17:24:08', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749355009605632, '新增', '2', '43749175543726080', 'info', 2, 1, '', 43728307660783616, '2022-07-24 17:24:19', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749395618856960, '修改', '3', '43749175543726080', 'warning', 3, 1, '', 43728307660783616, '2022-07-24 17:24:29', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749433191432192, '删除', '4', '43749175543726080', 'danger', 4, 1, '', 43728307660783616, '2022-07-24 17:24:38', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749748162691072, '其他', '1', '43749667023880192', 'default', 1, 1, '', 43728307660783616, '2022-07-24 17:25:53', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749792488095744, '后台用户', '2', '43749667023880192', 'primary', 2, 1, '', 43728307660783616, '2022-07-24 17:26:03', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749847500587008, '手机端用户', '3', '43749667023880192', 'info', 3, 1, '', 43728307660783616, '2022-07-24 17:26:16', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43749905755275264, '博客用户', '4', '43749667023880192', 'warning', 4, 1, '', 43728307660783616, '2022-07-24 17:26:30', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43760754016387072, 'GET', 'GET', '43741186479310919', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 18:09:37', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43760839513079808, 'POST', 'POST', '43741186479310919', 'info', 2, 1, '', 43728307660783616, '2022-07-24 18:09:57', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43760910166130688, 'PUT', 'PUT', '43741186479310919', 'warning', 3, 1, '', 43728307660783616, '2022-07-24 18:10:14', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43760951937204224, 'DELETE', 'DELETE', '43741186479310919', 'danger', 4, 1, '', 43728307660783616, '2022-07-24 18:10:24', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43832012938674176, '成功', '1', '43831966709055488', 'primary', 1, 1, '', 43728307660783616, '2022-07-24 22:52:46', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (43832045444530176, '异常', '2', '43831966709055488', 'danger', 2, 1, '', 43728307660783616, '2022-07-24 22:52:54', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (52090134002139136, '系统内置', '1', '52090055367327744', 'primary', 1, 1, '', 43728307660783616, '2022-08-16 17:47:36', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (67409162056761344, '导航管理', '2', '52090055367327744', 'info', 2, 1, '', 43728307660783616, '2022-09-28 00:19:57', 43728307660783616, '2022-12-10 23:13:20');
INSERT INTO `sys_dictionary_data` VALUES (78246089743925248, '是', '1', '78246041425543168', 'primary', 1, 1, '', 43728307660783616, '2022-10-27 22:02:02', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (78246125886242816, '否', '2', '78246041425543168', 'danger', 2, 1, '', 43728307660783616, '2022-10-27 22:02:10', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (102543668505739264, '待审核', '1', '102543613031874560', 'primary', 1, 1, '', 43728307660783616, '2023-01-02 23:11:56', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (102543729629331456, '已通过', '2', '102543613031874560', 'success', 2, 1, '', 43728307660783616, '2023-01-02 23:12:10', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (102543767784914944, '已驳回', '3', '102543613031874560', 'danger', 3, 1, '', 43728307660783616, '2023-01-02 23:12:19', NULL, NULL);
INSERT INTO `sys_dictionary_data` VALUES (143468816637100032, '主题配置', '3', '52090055367327744', 'warning', 3, 1, '', 43728307660783616, '2023-04-25 21:33:51', 43728307660783616, '2023-04-25 21:34:08');

-- ----------------------------
-- Table structure for sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu`  (
  `id` bigint(20) NOT NULL COMMENT '菜单 id',
  `menu_name` varchar(50) NOT NULL COMMENT '菜单名称',
  `parent_id` bigint(20) NULL DEFAULT 0 COMMENT '父菜单ID',
  `sort` int(11) NULL DEFAULT 0 COMMENT '排序',
  `menu_type` char(1) NULL DEFAULT '' COMMENT '菜单类型(D 目录,M 菜单,B 按钮)',
  `permission_code` varchar(100) NULL DEFAULT '' COMMENT '权限标识',
  `router_url` varchar(200) NULL DEFAULT '' COMMENT '路由地址',
  `component_path` varchar(255) NULL DEFAULT '' COMMENT '组件路径',
  `router_param` varchar(255) NULL DEFAULT '' COMMENT '路由参数',
  `has_frame` tinyint(1) NULL DEFAULT 2 COMMENT '是否为外链(1是,2否)',
  `has_cache` tinyint(1) NULL DEFAULT 1 COMMENT '是否缓存(1缓存,2不缓存)',
  `has_permission` tinyint(1) NULL DEFAULT 1 COMMENT '是否需要权限(1 是,2 否)',
  `menu_icon` varchar(100) NULL DEFAULT '' COMMENT '菜单图标',
  `show_status` tinyint(1) NULL DEFAULT 1 COMMENT '显示状态(1显示,2隐藏)',
  `status` tinyint(1) NULL DEFAULT 1 COMMENT '状态(1 正常,2 停用)',
  `fk_create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建人用户 id',
  `gmt_create` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  `fk_modify_user_id` bigint(20) NULL DEFAULT NULL COMMENT '修改人用户 id',
  `gmt_modify` datetime NULL DEFAULT NULL COMMENT '修改时间',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB COMMENT = '系统菜单' ROW_FORMAT = DYNAMIC;

-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES (43737833021636608, '系统管理', 0, 1, 'D', NULL, 'system', NULL, NULL, 2, 1, 1, 'system', 1, 1, 43728307660783616, '2022-07-24 16:38:32', NULL, NULL);
INSERT INTO `sys_menu` VALUES (43738261293629440, '用户管理', 43737833021636608, 1, 'M', 'system:user:page', 'user', 'system/user/index', NULL, 2, 1, 1, 'user', 1, 1, 43728307660783616, '2022-07-24 16:40:14', NULL, NULL);
INSERT INTO `sys_menu` VALUES (43738420110950400, '角色管理', 43737833021636608, 2, 'M', 'system:role:page', 'role', 'system/role/index', NULL, 2, 1, 1, 'peoples', 1, 1, 43728307660783616, '2022-07-24 16:40:52', NULL, NULL);
INSERT INTO `sys_menu` VALUES (43738641683447808, '菜单管理', 43737833021636608, 3, 'M', 'system:menu:list', 'menu', 'system/menu/index', NULL, 2, 1, 1, 'menu', 1, 1, 43728307660783616, '2022-07-24 16:41:45', NULL, NULL);
INSERT INTO `sys_menu` VALUES (437
Download .txt
gitextract_6bk_xo_u/

├── .gitignore
├── LICENSE
├── README.md
├── docker/
│   ├── mysql/
│   │   ├── conf.d/
│   │   │   └── my.cnf
│   │   ├── docker-compose.yml
│   │   └── geshanzsq_nav.sql
│   ├── nginx/
│   │   ├── conf.d/
│   │   │   └── gesdh.cn.conf
│   │   ├── docker-compose.yml
│   │   └── nginx.conf
│   ├── project/
│   │   ├── backend/
│   │   │   ├── Dockerfile
│   │   │   ├── application-prod.yml
│   │   │   ├── docker-compose.yml
│   │   │   ├── geshanzsq-nav-admin-application.jar
│   │   │   └── start.sh
│   │   └── frontend/
│   │       ├── Dockerfile
│   │       ├── docker-compose.yml
│   │       ├── nginx/
│   │       │   └── nginx.conf
│   │       └── start.sh
│   ├── redis/
│   │   ├── docker-compose.yml
│   │   └── redis.conf
│   └── start.sh
├── geshanzsq-nav-admin/
│   ├── geshanzsq-nav-admin-application/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── geshanzsq/
│   │           │           └── admin/
│   │           │               ├── GeshanzsqNavAdminApplication.java
│   │           │               ├── client/
│   │           │               │   ├── nav/
│   │           │               │   │   ├── constant/
│   │           │               │   │   │   └── NavClientConstant.java
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   ├── ClientNavCommentController.java
│   │           │               │   │   │   └── ClientNavController.java
│   │           │               │   │   ├── dto/
│   │           │               │   │   │   └── ClientNavCommentAddDTO.java
│   │           │               │   │   ├── mapstruct/
│   │           │               │   │   │   └── ClientNavConverter.java
│   │           │               │   │   ├── service/
│   │           │               │   │   │   ├── ClientNavService.java
│   │           │               │   │   │   └── impl/
│   │           │               │   │   │       └── ClientNavServiceImpl.java
│   │           │               │   │   ├── util/
│   │           │               │   │   │   ├── NavClientCategoryUtils.java
│   │           │               │   │   │   └── NavClientUtils.java
│   │           │               │   │   └── vo/
│   │           │               │   │       ├── ClientNavCommentTreeVO.java
│   │           │               │   │       ├── NavCategoryClientVO.java
│   │           │               │   │       ├── NavCategorySiteClientVO.java
│   │           │               │   │       └── NavClientListVO.java
│   │           │               │   └── search/
│   │           │               │       ├── controller/
│   │           │               │       │   └── ClientSearchController.java
│   │           │               │       └── vo/
│   │           │               │           └── NavClientSiteSearchVO.java
│   │           │               ├── core/
│   │           │               │   ├── bing/
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   └── BingController.java
│   │           │               │   │   ├── util/
│   │           │               │   │   │   └── BingUtils.java
│   │           │               │   │   └── vo/
│   │           │               │   │       └── BingImageVO.java
│   │           │               │   ├── captcha/
│   │           │               │   │   ├── constant/
│   │           │               │   │   │   └── CaptchaConstant.java
│   │           │               │   │   ├── controller/
│   │           │               │   │   │   └── CaptchaController.java
│   │           │               │   │   └── vo/
│   │           │               │   │       └── CaptchaImageVO.java
│   │           │               │   ├── config/
│   │           │               │   │   ├── InsertUpdateMyBatisInterceptorConfig.java
│   │           │               │   │   ├── MyBatisPlusConfig.java
│   │           │               │   │   └── XssFilterConfig.java
│   │           │               │   ├── exception/
│   │           │               │   │   └── GlobalExceptionHandler.java
│   │           │               │   └── security/
│   │           │               │       ├── auth/
│   │           │               │       │   ├── controller/
│   │           │               │       │   │   └── AuthController.java
│   │           │               │       │   ├── dto/
│   │           │               │       │   │   └── AuthLoginDTO.java
│   │           │               │       │   ├── filter/
│   │           │               │       │   │   └── TokenAuthenticationFilter.java
│   │           │               │       │   ├── service/
│   │           │               │       │   │   ├── AuthService.java
│   │           │               │       │   │   └── impl/
│   │           │               │       │   │       ├── AuthServiceImpl.java
│   │           │               │       │   │       └── UserDetailsServiceImpl.java
│   │           │               │       │   └── vo/
│   │           │               │       │       └── AuthLoginVO.java
│   │           │               │       └── config/
│   │           │               │           └── SecurityConfig.java
│   │           │               └── nav/
│   │           │                   ├── category/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavCategoryController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── NavCategoryAddDTO.java
│   │           │                   │   │   ├── NavCategoryListDTO.java
│   │           │                   │   │   └── NavCategoryUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavCategoryMapper.java
│   │           │                   │   ├── mapstrcut/
│   │           │                   │   │   └── NavCategoryConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavCategory.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavCategoryService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavCategoryServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── NavCategoryTreeVO.java
│   │           │                   │       └── NavCategoryVO.java
│   │           │                   ├── comment/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── NavCommentConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavCommentController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── NavCommentPageDTO.java
│   │           │                   │   │   └── NavCommentRejectDTO.java
│   │           │                   │   ├── enums/
│   │           │                   │   │   └── NavCommentStatus.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavCommentMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── NavCommentConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavComment.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavCommentService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavCommentServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavCommentVO.java
│   │           │                   ├── config/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavSiteConfigController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   └── NavSiteConfigUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavSiteConfigMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── NavSiteConfigConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavSiteConfig.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavSiteConfigService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavSiteConfigServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── NavSiteConfigAboutVO.java
│   │           │                   │       └── NavSiteConfigVO.java
│   │           │                   ├── index/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavIndexController.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavIndexService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavIndexServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavIndexStatisticsVO.java
│   │           │                   ├── picture/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── NavPictureConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── NavPictureController.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── NavPictureMapper.java
│   │           │                   │   ├── mapstrcut/
│   │           │                   │   │   └── NavPictureConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── NavPicture.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── NavPictureService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── NavPictureServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── NavPictureUploadVO.java
│   │           │                   └── site/
│   │           │                       ├── constant/
│   │           │                       │   └── NavSiteClientConstant.java
│   │           │                       ├── controller/
│   │           │                       │   └── NavSiteController.java
│   │           │                       ├── dto/
│   │           │                       │   ├── NavSiteAddDTO.java
│   │           │                       │   ├── NavSiteListUserImportDTO.java
│   │           │                       │   ├── NavSitePageDTO.java
│   │           │                       │   ├── NavSiteUpdateDTO.java
│   │           │                       │   └── NavSiteUpdateSortDTO.java
│   │           │                       ├── mapper/
│   │           │                       │   └── NavSiteMapper.java
│   │           │                       ├── mapstrcut/
│   │           │                       │   └── NavSiteConverter.java
│   │           │                       ├── po/
│   │           │                       │   └── NavSite.java
│   │           │                       ├── service/
│   │           │                       │   ├── NavSiteService.java
│   │           │                       │   └── impl/
│   │           │                       │       └── NavSiteServiceImpl.java
│   │           │                       └── vo/
│   │           │                           ├── NavSiteClientVO.java
│   │           │                           ├── NavSiteLatestCollectVO.java
│   │           │                           ├── NavSiteMatchVO.java
│   │           │                           └── NavSiteVO.java
│   │           └── resources/
│   │               ├── application-dev.yml
│   │               ├── application-prod.yml
│   │               ├── application.yml
│   │               ├── i18n/
│   │               │   └── message.properties
│   │               ├── logback-spring.xml
│   │               └── mapper/
│   │                   └── nav/
│   │                       ├── category/
│   │                       │   └── NavCategoryMapper.xml
│   │                       ├── config/
│   │                       │   └── NavSiteConfigMapper.xml
│   │                       └── site/
│   │                           └── NavSiteMapper.xml
│   ├── geshanzsq-nav-admin-system/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── com/
│   │           │       └── geshanzsq/
│   │           │           └── admin/
│   │           │               └── system/
│   │           │                   ├── api/
│   │           │                   │   ├── controller/
│   │           │                   │   │   ├── SysApiCategoryController.java
│   │           │                   │   │   └── SysApiController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysApiAddDTO.java
│   │           │                   │   │   ├── SysApiCategoryAddDTO.java
│   │           │                   │   │   ├── SysApiCategoryPageDTO.java
│   │           │                   │   │   ├── SysApiCategoryUpdateDTO.java
│   │           │                   │   │   ├── SysApiPageDTO.java
│   │           │                   │   │   └── SysApiUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysApiCategoryMapper.java
│   │           │                   │   │   ├── SysApiMapper.java
│   │           │                   │   │   └── SysApiMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   ├── SysApiCategoryConverter.java
│   │           │                   │   │   └── SysApiConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysApi.java
│   │           │                   │   │   ├── SysApiCategory.java
│   │           │                   │   │   └── SysApiMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysApiCategoryService.java
│   │           │                   │   │   ├── SysApiMenuService.java
│   │           │                   │   │   ├── SysApiService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysApiCategoryServiceImpl.java
│   │           │                   │   │       ├── SysApiMenuServiceImpl.java
│   │           │                   │   │       └── SysApiServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── SysApiCategoryVO.java
│   │           │                   │       └── SysApiVO.java
│   │           │                   ├── dictionary/
│   │           │                   │   ├── controller/
│   │           │                   │   │   ├── SysDictionaryController.java
│   │           │                   │   │   └── SysDictionaryDataController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysDictionaryAddDTO.java
│   │           │                   │   │   ├── SysDictionaryDataAddDTO.java
│   │           │                   │   │   ├── SysDictionaryDataPageDTO.java
│   │           │                   │   │   ├── SysDictionaryDataUpdateDTO.java
│   │           │                   │   │   ├── SysDictionaryPageDTO.java
│   │           │                   │   │   └── SysDictionaryUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysDictionaryDataMapper.java
│   │           │                   │   │   └── SysDictionaryMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   ├── SysDictionaryConverter.java
│   │           │                   │   │   └── SysDictionaryDataConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysDictionary.java
│   │           │                   │   │   └── SysDictionaryData.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysDictionaryDataService.java
│   │           │                   │   │   ├── SysDictionaryService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysDictionaryDataServiceImpl.java
│   │           │                   │   │       └── SysDictionaryServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── DictionaryDataInfoVO.java
│   │           │                   │       ├── DictionaryInfoVO.java
│   │           │                   │       ├── SysDictionaryDataVO.java
│   │           │                   │       └── SysDictionaryVO.java
│   │           │                   ├── log/
│   │           │                   │   ├── login/
│   │           │                   │   │   ├── controller/
│   │           │                   │   │   │   └── LogLoginController.java
│   │           │                   │   │   ├── dto/
│   │           │                   │   │   │   ├── LogLoginAddDTO.java
│   │           │                   │   │   │   └── LogLoginPageDTO.java
│   │           │                   │   │   ├── enums/
│   │           │                   │   │   │   └── LogLoginStatus.java
│   │           │                   │   │   ├── factory/
│   │           │                   │   │   │   └── LogLoginAsyncFactory.java
│   │           │                   │   │   ├── mapper/
│   │           │                   │   │   │   └── LogLoginMapper.java
│   │           │                   │   │   ├── mapstruct/
│   │           │                   │   │   │   └── LogLoginConverter.java
│   │           │                   │   │   ├── po/
│   │           │                   │   │   │   └── LogLogin.java
│   │           │                   │   │   ├── service/
│   │           │                   │   │   │   ├── LogLoginService.java
│   │           │                   │   │   │   └── impl/
│   │           │                   │   │   │       └── LogLoginServiceImpl.java
│   │           │                   │   │   └── vo/
│   │           │                   │   │       └── LogLoginVO.java
│   │           │                   │   └── operation/
│   │           │                   │       ├── config/
│   │           │                   │       │   └── LogMqConfig.java
│   │           │                   │       ├── controller/
│   │           │                   │       │   └── LogOperationController.java
│   │           │                   │       ├── dto/
│   │           │                   │       │   └── LogOperationPageDTO.java
│   │           │                   │       ├── mapper/
│   │           │                   │       │   └── LogOperationMapper.java
│   │           │                   │       ├── mapstruct/
│   │           │                   │       │   └── LogOperationConverter.java
│   │           │                   │       ├── mq/
│   │           │                   │       │   └── LogOperationMq.java
│   │           │                   │       ├── po/
│   │           │                   │       │   └── LogOperation.java
│   │           │                   │       ├── service/
│   │           │                   │       │   ├── LogOperationService.java
│   │           │                   │       │   └── impl/
│   │           │                   │       │       └── LogOperationServiceImpl.java
│   │           │                   │       └── vo/
│   │           │                   │           └── LogOperationVo.java
│   │           │                   ├── menu/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── MenuConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysMenuController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysMenuAddDTO.java
│   │           │                   │   │   ├── SysMenuAuthApiDTO.java
│   │           │                   │   │   ├── SysMenuListDTO.java
│   │           │                   │   │   └── SysMenuUpdateDTO.java
│   │           │                   │   ├── enums/
│   │           │                   │   │   ├── MenuShowStatus.java
│   │           │                   │   │   ├── MenuStatus.java
│   │           │                   │   │   └── MenuType.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── SysMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysMenuConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── SysMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysMenuService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── SysMenuServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       ├── MetaVO.java
│   │           │                   │       ├── RouterVO.java
│   │           │                   │       ├── SysMenuAuthApiVO.java
│   │           │                   │       └── SysMenuVO.java
│   │           │                   ├── param/
│   │           │                   │   ├── constant/
│   │           │                   │   │   └── SysParamConstant.java
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysParamController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysParamAddDTO.java
│   │           │                   │   │   ├── SysParamPageDTO.java
│   │           │                   │   │   └── SysParamUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   └── SysParamMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysParamConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   └── SysParam.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysParamService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       └── SysParamServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── SysParamVO.java
│   │           │                   ├── role/
│   │           │                   │   ├── controller/
│   │           │                   │   │   └── SysRoleController.java
│   │           │                   │   ├── dto/
│   │           │                   │   │   ├── SysRoleAddDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserDeleteDTO.java
│   │           │                   │   │   ├── SysRoleAuthUserPageDTO.java
│   │           │                   │   │   ├── SysRoleNotAuthUserPageDTO.java
│   │           │                   │   │   ├── SysRolePageDTO.java
│   │           │                   │   │   └── SysRoleUpdateDTO.java
│   │           │                   │   ├── mapper/
│   │           │                   │   │   ├── SysRoleMapper.java
│   │           │                   │   │   └── SysRoleMenuMapper.java
│   │           │                   │   ├── mapstruct/
│   │           │                   │   │   └── SysRoleConverter.java
│   │           │                   │   ├── po/
│   │           │                   │   │   ├── SysRole.java
│   │           │                   │   │   └── SysRoleMenu.java
│   │           │                   │   ├── service/
│   │           │                   │   │   ├── SysRoleMenuService.java
│   │           │                   │   │   ├── SysRoleService.java
│   │           │                   │   │   └── impl/
│   │           │                   │   │       ├── SysRoleMenuServiceImpl.java
│   │           │                   │   │       └── SysRoleServiceImpl.java
│   │           │                   │   └── vo/
│   │           │                   │       └── SysRoleVO.java
│   │           │                   └── user/
│   │           │                       ├── controller/
│   │           │                       │   ├── SysUserController.java
│   │           │                       │   └── SysUserInfoController.java
│   │           │                       ├── dto/
│   │           │                       │   ├── SysUserAddDTO.java
│   │           │                       │   ├── SysUserPageDTO.java
│   │           │                       │   ├── SysUserResetPasswordDTO.java
│   │           │                       │   ├── SysUserResetUserPasswordDTO.java
│   │           │                       │   ├── SysUserUpdateDTO.java
│   │           │                       │   └── SysUserUpdateInfoDTO.java
│   │           │                       ├── enums/
│   │           │                       │   └── UserType.java
│   │           │                       ├── mapper/
│   │           │                       │   ├── SysUserMapper.java
│   │           │                       │   └── SysUserRoleMapper.java
│   │           │                       ├── mapstruct/
│   │           │                       │   └── SysUserConverter.java
│   │           │                       ├── po/
│   │           │                       │   ├── SysUser.java
│   │           │                       │   └── SysUserRole.java
│   │           │                       ├── service/
│   │           │                       │   ├── SysUserInfoService.java
│   │           │                       │   ├── SysUserRoleService.java
│   │           │                       │   ├── SysUserService.java
│   │           │                       │   └── impl/
│   │           │                       │       ├── SysUserInfoServiceImpl.java
│   │           │                       │       ├── SysUserRoleServiceImpl.java
│   │           │                       │       └── SysUserServiceImpl.java
│   │           │                       └── vo/
│   │           │                           └── SysUserVO.java
│   │           └── resources/
│   │               └── mapper/
│   │                   ├── api/
│   │                   │   ├── SysApiCategoryMapper.xml
│   │                   │   └── SysApiMapper.xml
│   │                   ├── dictionary/
│   │                   │   ├── SysDictionaryDataMapper.xml
│   │                   │   └── SysDictionaryMapper.xml
│   │                   ├── log/
│   │                   │   └── LogOperationMapper.xml
│   │                   ├── menu/
│   │                   │   └── SysMenuMapper.xml
│   │                   ├── param/
│   │                   │   └── SysParamMapper.xml
│   │                   ├── role/
│   │                   │   └── SysRoleMapper.xml
│   │                   └── user/
│   │                       └── SysUserRoleMapper.xml
│   └── pom.xml
├── geshanzsq-nav-common/
│   ├── geshanzsq-nav-common-core/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── core/
│   │                               ├── constant/
│   │                               │   ├── CommonConstant.java
│   │                               │   └── HttpStatus.java
│   │                               ├── enums/
│   │                               │   ├── CommonStatus.java
│   │                               │   ├── DelFlag.java
│   │                               │   ├── OpenStatus.java
│   │                               │   └── YesNo.java
│   │                               ├── exception/
│   │                               │   ├── BaseException.java
│   │                               │   ├── ParamException.java
│   │                               │   └── ServiceException.java
│   │                               ├── filter/
│   │                               │   ├── XssFilter.java
│   │                               │   └── XssHttpServletRequestWrapper.java
│   │                               ├── util/
│   │                               │   ├── html/
│   │                               │   │   ├── EscapeUtil.java
│   │                               │   │   └── HTMLFilter.java
│   │                               │   ├── http/
│   │                               │   │   └── HttpUtils.java
│   │                               │   ├── id/
│   │                               │   │   ├── IdUtils.java
│   │                               │   │   └── IdWorker.java
│   │                               │   ├── ip/
│   │                               │   │   ├── AddressUtils.java
│   │                               │   │   └── IpUtils.java
│   │                               │   ├── message/
│   │                               │   │   └── MessageUtils.java
│   │                               │   ├── servlet/
│   │                               │   │   └── ServletUtils.java
│   │                               │   ├── spring/
│   │                               │   │   └── SpringUtils.java
│   │                               │   ├── string/
│   │                               │   │   └── StrUtils.java
│   │                               │   └── thread/
│   │                               │       └── Threads.java
│   │                               └── web/
│   │                                   ├── response/
│   │                                   │   └── ResponseResult.java
│   │                                   └── vo/
│   │                                       └── BaseVO.java
│   ├── geshanzsq-nav-common-framework/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── framework/
│   │                               ├── config/
│   │                               │   ├── ResourceConfig.java
│   │                               │   └── WebConfig.java
│   │                               ├── file/
│   │                               │   ├── exception/
│   │                               │   │   └── FileException.java
│   │                               │   ├── property/
│   │                               │   │   └── FileUploadProperty.java
│   │                               │   ├── service/
│   │                               │   │   ├── FileService.java
│   │                               │   │   └── impl/
│   │                               │   │       └── FileServiceImpl.java
│   │                               │   └── util/
│   │                               │       ├── FileUploadUtils.java
│   │                               │       └── MimeTypeUtils.java
│   │                               ├── manager/
│   │                               │   └── AsyncManager.java
│   │                               ├── mybatis/
│   │                               │   ├── page/
│   │                               │   │   ├── dto/
│   │                               │   │   │   └── PageDTO.java
│   │                               │   │   ├── util/
│   │                               │   │   │   └── PageUtils.java
│   │                               │   │   └── vo/
│   │                               │   │       └── PageVO.java
│   │                               │   ├── plugin/
│   │                               │   │   ├── annotation/
│   │                               │   │   │   └── Query.java
│   │                               │   │   ├── constant/
│   │                               │   │   │   └── FieldConstant.java
│   │                               │   │   ├── enums/
│   │                               │   │   │   └── QueryWay.java
│   │                               │   │   ├── interceptor/
│   │                               │   │   │   └── InsertUpdateMyBatisInterceptor.java
│   │                               │   │   └── query/
│   │                               │   │       ├── LambdaQueryWrapperPlus.java
│   │                               │   │       └── QueryWrapperPlus.java
│   │                               │   ├── property/
│   │                               │   │   └── PageProperty.java
│   │                               │   └── util/
│   │                               │       └── MybatisUtils.java
│   │                               ├── thread/
│   │                               │   ├── config/
│   │                               │   │   └── ThreadPoolConfig.java
│   │                               │   └── property/
│   │                               │       └── ThreadPoolProperty.java
│   │                               └── web/
│   │                                   ├── controller/
│   │                                   │   └── BaseController.java
│   │                                   ├── mapper/
│   │                                   │   └── BaseMapperPlus.java
│   │                                   └── service/
│   │                                       ├── BaseService.java
│   │                                       └── impl/
│   │                                           └── BaseServiceImpl.java
│   ├── geshanzsq-nav-common-log/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── log/
│   │                               ├── annotation/
│   │                               │   └── Log.java
│   │                               ├── aspect/
│   │                               │   └── LogAspect.java
│   │                               ├── constant/
│   │                               │   └── LogConstant.java
│   │                               ├── dto/
│   │                               │   └── LogDTO.java
│   │                               ├── enums/
│   │                               │   ├── BusinessType.java
│   │                               │   ├── LogStatus.java
│   │                               │   └── OperateType.java
│   │                               ├── factory/
│   │                               │   └── LogAsyncFactory.java
│   │                               └── service/
│   │                                   ├── LogMqService.java
│   │                                   └── impl/
│   │                                       └── LogMqServiceImpl.java
│   ├── geshanzsq-nav-common-rate-limiter/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── rate/
│   │                               └── limiter/
│   │                                   ├── annotation/
│   │                                   │   └── RateLimiter.java
│   │                                   ├── aspect/
│   │                                   │   └── RateLimiterAspect.java
│   │                                   ├── constant/
│   │                                   │   └── RateLimitConstant.java
│   │                                   ├── enums/
│   │                                   │   └── RateLimiterType.java
│   │                                   └── exception/
│   │                                       └── RateLimiterException.java
│   ├── geshanzsq-nav-common-redis/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── redis/
│   │                               ├── config/
│   │                               │   ├── FastJson2JsonRedisSerializer.java
│   │                               │   └── RedisConfig.java
│   │                               └── service/
│   │                                   └── RedisService.java
│   ├── geshanzsq-nav-common-security/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── framework/
│   │                           └── security/
│   │                               ├── constant/
│   │                               │   └── SecurityConstant.java
│   │                               ├── domain/
│   │                               │   ├── ApiPermission.java
│   │                               │   └── LoginUserDetail.java
│   │                               ├── handler/
│   │                               │   ├── AccessDeniedExceptionHandler.java
│   │                               │   ├── AuthenticationEntryPointImpl.java
│   │                               │   └── LogoutSuccessHandlerImpl.java
│   │                               ├── property/
│   │                               │   ├── SecurityProperty.java
│   │                               │   └── TokenProperty.java
│   │                               ├── service/
│   │                               │   ├── TokenService.java
│   │                               │   └── impl/
│   │                               │       ├── AuthorizationService.java
│   │                               │       └── TokenServiceImpl.java
│   │                               └── util/
│   │                                   └── SecurityUtils.java
│   ├── geshanzsq-nav-common-swagger/
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           └── java/
│   │               └── com/
│   │                   └── geshanzsq/
│   │                       └── common/
│   │                           └── swagger/
│   │                               ├── config/
│   │                               │   └── SwaggerConfig.java
│   │                               └── property/
│   │                                   └── SwaggerProperty.java
│   └── pom.xml
├── pom.xml
├── sql/
│   └── geshanzsq_nav.sql
└── vue-geshanzsq-nav/
    ├── .browserslistrc
    ├── .editorconfig
    ├── .eslintrc.js
    ├── .gitignore
    ├── .prettierrc
    ├── README.md
    ├── babel.config.js
    ├── jsconfig.json
    ├── lint-staged.config.js
    ├── package.json
    ├── public/
    │   └── index.html
    ├── src/
    │   ├── App.vue
    │   ├── api/
    │   │   ├── auth/
    │   │   │   ├── login.js
    │   │   │   └── user.js
    │   │   ├── client/
    │   │   │   ├── comment.js
    │   │   │   ├── nav.js
    │   │   │   └── search.js
    │   │   ├── common/
    │   │   │   └── bing.js
    │   │   ├── nav/
    │   │   │   ├── category.js
    │   │   │   ├── comment.js
    │   │   │   ├── config.js
    │   │   │   ├── index.js
    │   │   │   ├── picture.js
    │   │   │   └── site.js
    │   │   └── system/
    │   │       ├── api/
    │   │       │   ├── api.js
    │   │       │   └── category.js
    │   │       ├── dictionary/
    │   │       │   ├── data.js
    │   │       │   └── dictionary.js
    │   │       ├── log/
    │   │       │   ├── login.js
    │   │       │   └── operation.js
    │   │       ├── menu.js
    │   │       ├── param.js
    │   │       ├── role.js
    │   │       └── user.js
    │   ├── assets/
    │   │   └── styles/
    │   │       ├── btn.scss
    │   │       ├── element-plus-ui.scss
    │   │       ├── geshanzsq.scss
    │   │       ├── index.scss
    │   │       ├── mixin.scss
    │   │       ├── sidebar.scss
    │   │       ├── themes/
    │   │       │   ├── blue-black.scss
    │   │       │   └── blue-white.scss
    │   │       └── variables.module.scss
    │   ├── components/
    │   │   ├── Breadcrumb/
    │   │   │   └── index.vue
    │   │   ├── DictionaryOption/
    │   │   │   └── index.vue
    │   │   ├── DictionaryRadio/
    │   │   │   └── index.vue
    │   │   ├── DictionaryTag/
    │   │   │   └── index.vue
    │   │   ├── Hamburger/
    │   │   │   └── index.vue
    │   │   ├── HeaderSearch/
    │   │   │   └── index.vue
    │   │   ├── IconSelect/
    │   │   │   ├── index.vue
    │   │   │   └── requireIcons.js
    │   │   ├── Pagination/
    │   │   │   └── index.vue
    │   │   ├── ParentView/
    │   │   │   └── index.vue
    │   │   ├── Screenfull/
    │   │   │   └── index.vue
    │   │   ├── SiteCard/
    │   │   │   └── index.vue
    │   │   ├── SizeSelect/
    │   │   │   └── index.vue
    │   │   ├── SvgIcon/
    │   │   │   ├── index.vue
    │   │   │   └── svgicon.js
    │   │   ├── TopNav/
    │   │   │   └── index.vue
    │   │   ├── WangEditor/
    │   │   │   └── index.vue
    │   │   └── Weather/
    │   │       └── index.vue
    │   ├── config/
    │   │   ├── index.js
    │   │   ├── network.config.js
    │   │   ├── setting.config.js
    │   │   ├── theme.config.js
    │   │   └── vue.cli.config.js
    │   ├── directive/
    │   │   ├── index.js
    │   │   └── permission/
    │   │       ├── hasPermission.js
    │   │       └── hasRole.js
    │   ├── layout/
    │   │   ├── client/
    │   │   │   ├── components/
    │   │   │   │   ├── FooterBottom/
    │   │   │   │   │   └── index.vue
    │   │   │   │   ├── Navbar/
    │   │   │   │   │   └── index.vue
    │   │   │   │   ├── Search/
    │   │   │   │   │   └── index.vue
    │   │   │   │   └── Sidebar/
    │   │   │   │       ├── Link.vue
    │   │   │   │       ├── Logo.vue
    │   │   │   │       ├── SidebarItem.vue
    │   │   │   │       └── index.vue
    │   │   │   └── index.vue
    │   │   ├── components/
    │   │   │   ├── AppMain.vue
    │   │   │   ├── InnerLink/
    │   │   │   │   └── index.vue
    │   │   │   ├── Navbar/
    │   │   │   │   └── index.vue
    │   │   │   ├── Settings/
    │   │   │   │   └── index.vue
    │   │   │   ├── Sidebar/
    │   │   │   │   ├── Link.vue
    │   │   │   │   ├── Logo.vue
    │   │   │   │   ├── SidebarItem.vue
    │   │   │   │   └── index.vue
    │   │   │   ├── TagsView/
    │   │   │   │   ├── ScrollPane.vue
    │   │   │   │   └── index.vue
    │   │   │   └── index.js
    │   │   └── index.vue
    │   ├── main.js
    │   ├── permission.js
    │   ├── plugins/
    │   │   ├── auth.js
    │   │   ├── cache.js
    │   │   ├── index.js
    │   │   ├── modal.js
    │   │   ├── svg-icon.js
    │   │   └── tab.js
    │   ├── router/
    │   │   └── index.js
    │   ├── store/
    │   │   ├── index.js
    │   │   └── modules/
    │   │       ├── app.js
    │   │       ├── dictionary.js
    │   │       ├── permission.js
    │   │       ├── settings.js
    │   │       ├── tagsView.js
    │   │       └── user.js
    │   ├── utils/
    │   │   ├── auth.js
    │   │   ├── download.js
    │   │   ├── dynamicTitle.js
    │   │   ├── geshanzsq.js
    │   │   ├── request.js
    │   │   ├── scroll-to.js
    │   │   └── validate.js
    │   └── views/
    │       ├── client/
    │       │   ├── about/
    │       │   │   ├── components/
    │       │   │   │   ├── Comment.vue
    │       │   │   │   └── SendComment.vue
    │       │   │   └── index.vue
    │       │   ├── index/
    │       │   │   └── index.vue
    │       │   └── search/
    │       │       └── index.vue
    │       ├── error/
    │       │   ├── 403.vue
    │       │   └── 404.vue
    │       ├── index/
    │       │   └── index.vue
    │       ├── login/
    │       │   └── index.vue
    │       ├── nav/
    │       │   ├── category/
    │       │   │   ├── components/
    │       │   │   │   └── CategoryEdit.vue
    │       │   │   └── index.vue
    │       │   ├── comment/
    │       │   │   ├── components/
    │       │   │   │   └── CommentReject.vue
    │       │   │   └── index.vue
    │       │   ├── components/
    │       │   │   └── SitePicture.vue
    │       │   ├── config/
    │       │   │   └── index.vue
    │       │   └── site/
    │       │       ├── components/
    │       │       │   └── SiteEdit.vue
    │       │       └── index.vue
    │       └── system/
    │           ├── api/
    │           │   ├── category.vue
    │           │   ├── components/
    │           │   │   ├── ApiCategoryEdit.vue
    │           │   │   └── ApiEdit.vue
    │           │   └── index.vue
    │           ├── dictionary/
    │           │   ├── components/
    │           │   │   ├── DictionaryDataEdit.vue
    │           │   │   └── DictionaryEdit.vue
    │           │   ├── data.vue
    │           │   └── index.vue
    │           ├── log/
    │           │   ├── login/
    │           │   │   └── index.vue
    │           │   └── operation/
    │           │       ├── components/
    │           │       │   └── LogOperationDetail.vue
    │           │       └── index.vue
    │           ├── menu/
    │           │   ├── components/
    │           │   │   ├── MenuEdit.vue
    │           │   │   └── SelectApi.vue
    │           │   └── index.vue
    │           ├── param/
    │           │   ├── components/
    │           │   │   └── ParamEdit.vue
    │           │   └── index.vue
    │           ├── role/
    │           │   ├── authUser.vue
    │           │   ├── components/
    │           │   │   ├── RoleEdit.vue
    │           │   │   └── SelectAuthUser.vue
    │           │   └── index.vue
    │           └── user/
    │               ├── components/
    │               │   ├── UserEdit.vue
    │               │   └── UserResetPassword.vue
    │               ├── index.vue
    │               └── profile/
    │                   ├── UpdateUserInfo.vue
    │                   ├── UserAvatar.vue
    │                   ├── UserBaseInfo.vue
    │                   └── index.vue
    └── vue.config.js
Download .txt
SYMBOL INDEX (1239 symbols across 354 files)

FILE: docker/mysql/geshanzsq_nav.sql
  type `log_login` (line 24) | CREATE TABLE `log_login`  (
  type `log_operation` (line 46) | CREATE TABLE `log_operation`  (
  type `nav_category` (line 75) | CREATE TABLE `nav_category`  (
  type `nav_comment` (line 150) | CREATE TABLE `nav_comment`  (
  type `nav_picture` (line 174) | CREATE TABLE `nav_picture`  (
  type `nav_site` (line 194) | CREATE TABLE `nav_site`  (
  type `nav_site_config` (line 696) | CREATE TABLE `nav_site_config`  (

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/GeshanzsqNavAdminApplication.java
  class GeshanzsqNavAdminApplication (line 13) | @SpringBootApplication(scanBasePackages = "com.geshanzsq")
    method main (line 17) | public static void main(String[] args) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/constant/NavClientConstant.java
  class NavClientConstant (line 9) | public class NavClientConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/controller/ClientNavCommentController.java
  class ClientNavCommentController (line 23) | @Api(tags = "客户端评论")
    method getOpenStatus (line 31) | @ApiOperation("开启状态")
    method tree (line 37) | @ApiOperation("树形列表")
    method add (line 44) | @ApiOperation("提交评论")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/controller/ClientNavController.java
  class ClientNavController (line 25) | @Api(tags = "客户端导航")
    method categorySiteList (line 33) | @ApiOperation("分类网站列表")
    method categoryList (line 40) | @ApiOperation("分类列表")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/dto/ClientNavCommentAddDTO.java
  class ClientNavCommentAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/mapstruct/ClientNavConverter.java
  type ClientNavConverter (line 16) | @Mapper
    method convertCategory (line 21) | List<NavCategoryClientVO> convertCategory(List<NavCategory> list);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/service/ClientNavService.java
  type ClientNavService (line 14) | public interface ClientNavService {
    method categorySiteList (line 19) | NavClientListVO categorySiteList();
    method categoryList (line 24) | List<NavCategoryClientVO> categoryList();
    method removeCache (line 29) | void removeCache();
    method categorySiteSearchList (line 34) | NavClientListVO categorySiteSearchList(String searchContent);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/service/impl/ClientNavServiceImpl.java
  class ClientNavServiceImpl (line 36) | @Service
    method categorySiteList (line 50) | @Override
    method categoryList (line 73) | @Override
    method removeCache (line 89) | @Override
    method categorySiteSearchList (line 99) | @Override
    method getCategoryParent (line 166) | private void getCategoryParent(Set<Long> categoryIds, List<NavCategory...
    method buildCategoryAndSiteList (line 189) | private NavClientListVO buildCategoryAndSiteList() {
    method setCategoryCache (line 245) | private void setCategoryCache(List<NavCategoryClientVO> list) {
    method setSiteCache (line 253) | private void setSiteCache(List<NavCategorySiteClientVO> list) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/util/NavClientCategoryUtils.java
  class NavClientCategoryUtils (line 16) | public class NavClientCategoryUtils {
    method buildLastLevelCategoryList (line 23) | public static void buildLastLevelCategoryList(List<NavCategoryClientVO...
    method buildTree (line 41) | public static List<NavCategoryClientVO> buildTree(List<NavCategoryClie...
    method recursive (line 60) | private static void recursive(List<NavCategoryClientVO> allList, NavCa...
    method hasChild (line 74) | private static boolean hasChild(List<NavCategoryClientVO> allList, Nav...
    method getChildList (line 81) | private static List<NavCategoryClientVO> getChildList(List<NavCategory...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/util/NavClientUtils.java
  class NavClientUtils (line 14) | public class NavClientUtils {
    method filterCategoryNotSite (line 19) | public static void filterCategoryNotSite(List<NavCategoryClientVO> cat...
    method getCategoryDeep (line 40) | private static int getCategoryDeep(NavCategoryClientVO category, int d...
    method filterNoSite (line 58) | private static void filterNoSite(List<NavCategoryClientVO> categoryLis...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/ClientNavCommentTreeVO.java
  class ClientNavCommentTreeVO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavCategoryClientVO.java
  class NavCategoryClientVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavCategorySiteClientVO.java
  class NavCategorySiteClientVO (line 20) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavClientListVO.java
  class NavClientListVO (line 19) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/search/controller/ClientSearchController.java
  class ClientSearchController (line 23) | @Api(tags = "客户端搜索")
    method siteSearch (line 33) | @ApiOperation("站内网站搜索")
    method categorySiteSearchList (line 40) | @ApiOperation("站内分类网站搜索列表")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/search/vo/NavClientSiteSearchVO.java
  class NavClientSiteSearchVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/controller/BingController.java
  class BingController (line 19) | @RestController
    method getBingImage (line 25) | @ApiOperation("获取 Bing 壁纸")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/util/BingUtils.java
  class BingUtils (line 13) | public class BingUtils {
    method getBingOneImage (line 21) | public static String getBingOneImage() {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/vo/BingImageVO.java
  class BingImageVO (line 15) | @Data
    method BingImageVO (line 24) | public BingImageVO(String imageUrl) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/constant/CaptchaConstant.java
  class CaptchaConstant (line 9) | public class CaptchaConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/controller/CaptchaController.java
  class CaptchaController (line 25) | @RestController
    method getCode (line 32) | @ApiOperation("获取验证码")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/vo/CaptchaImageVO.java
  class CaptchaImageVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/InsertUpdateMyBatisInterceptorConfig.java
  class InsertUpdateMyBatisInterceptorConfig (line 19) | @Intercepts({
    method intercept (line 26) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/MyBatisPlusConfig.java
  class MyBatisPlusConfig (line 16) | @Configuration
    method mybatisPlusInterceptor (line 22) | @Bean

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/XssFilterConfig.java
  class XssFilterConfig (line 22) | @Configuration
    method xssFilterRegistration (line 31) | @SuppressWarnings({"rawtypes", "unchecked"})

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/exception/GlobalExceptionHandler.java
  class GlobalExceptionHandler (line 27) | @RestControllerAdvice
    method methodArgumentNotValidException (line 35) | @ExceptionHandler(MethodArgumentNotValidException.class)
    method handleBindException (line 44) | @ExceptionHandler(BindException.class)
    method paramException (line 53) | @ExceptionHandler(ParamException.class)
    method handleHttpRequestMethodNotSupported (line 61) | @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
    method accessDeniedException (line 71) | @ExceptionHandler(AccessDeniedException.class)
    method serviceException (line 80) | @ExceptionHandler(ServiceException.class)
    method baseException (line 89) | @ExceptionHandler(BaseException.class)
    method rateLimiterException (line 98) | @ExceptionHandler(RateLimiterException.class)
    method handleException (line 106) | @ExceptionHandler(Exception.class)

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/controller/AuthController.java
  class AuthController (line 23) | @RestController
    method login (line 30) | @PostMapping("/login")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/dto/AuthLoginDTO.java
  class AuthLoginDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/filter/TokenAuthenticationFilter.java
  class TokenAuthenticationFilter (line 26) | @Component
    method doFilterInternal (line 34) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/AuthService.java
  type AuthService (line 12) | public interface AuthService {
    method login (line 17) | AuthLoginVO login(AuthLoginDTO authLoginDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/impl/AuthServiceImpl.java
  class AuthServiceImpl (line 30) | @Service
    method login (line 46) | @Override
    method verifyLoginCode (line 96) | private void verifyLoginCode(AuthLoginDTO authLoginDTO) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/impl/UserDetailsServiceImpl.java
  class UserDetailsServiceImpl (line 19) | @Service
    method loadUserByUsername (line 25) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/vo/AuthLoginVO.java
  class AuthLoginVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/config/SecurityConfig.java
  class SecurityConfig (line 28) | @Configuration
    method configure (line 70) | @Override
    method configure (line 115) | @Override
    method authenticationManagerBean (line 123) | @Bean
    method bCryptPasswordEncoder (line 132) | @Bean

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/controller/NavCategoryController.java
  class NavCategoryController (line 30) | @Api(tags = "导航分类")
    method list (line 38) | @ApiOperation("列表")
    method tree (line 46) | @ApiOperation("树形")
    method getById (line 53) | @GetMapping("/getById/{id}")
    method add (line 60) | @PostMapping
    method update (line 70) | @PutMapping
    method delete (line 79) | @DeleteMapping("/delete/{id}")
    method getMaxSortByParentId (line 88) | @GetMapping("/getMaxSortByParentId")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryAddDTO.java
  class NavCategoryAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryListDTO.java
  class NavCategoryListDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryUpdateDTO.java
  class NavCategoryUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/mapper/NavCategoryMapper.java
  type NavCategoryMapper (line 13) | @Mapper
    method selectMaxSortByParentId (line 20) | Integer selectMaxSortByParentId(Long parentId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/mapstrcut/NavCategoryConverter.java
  type NavCategoryConverter (line 21) | @Mapper
    method convert (line 26) | List<NavCategoryVO> convert(List<NavCategory> list);
    method convertTree (line 28) | List<NavCategoryTreeVO> convertTree(List<NavCategory> list);
    method convert (line 30) | NavCategoryVO convert(NavCategory navCategory);
    method convert (line 32) | NavCategory convert(NavCategoryAddDTO addDTO);
    method convert (line 34) | NavCategory convert(NavCategoryUpdateDTO updateDTO);
    method convertClient (line 36) | List<NavCategoryClientVO> convertClient(List<NavCategoryTreeVO> list);
    method convertSiteClient (line 38) | List<NavCategorySiteClientVO> convertSiteClient(List<NavCategoryClient...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/po/NavCategory.java
  class NavCategory (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/service/NavCategoryService.java
  type NavCategoryService (line 16) | public interface NavCategoryService extends BaseService<NavCategory> {
    method getMaxSortByParentId (line 22) | Integer getMaxSortByParentId(Long parentId);
    method tree (line 27) | List<NavCategoryTreeVO> tree();
    method treeByIds (line 32) | List<NavCategoryTreeVO> treeByIds(List<Long> ids);
    method updateById (line 37) | void updateById(NavCategoryUpdateDTO updateDTO);
    method remove (line 42) | void remove(Long id);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/service/impl/NavCategoryServiceImpl.java
  class NavCategoryServiceImpl (line 35) | @Service
    method getMaxSortByParentId (line 50) | @Override
    method tree (line 58) | @Override
    method treeByIds (line 74) | @Override
    method updateById (line 92) | @Override
    method remove (line 106) | @Transactional(rollbackFor = Exception.class)
    method buildTree (line 138) | public List<NavCategoryTreeVO> buildTree(List<NavCategoryTreeVO> allLi...
    method recursive (line 157) | private void recursive(List<NavCategoryTreeVO> allList, NavCategoryTre...
    method hasChild (line 171) | private boolean hasChild(List<NavCategoryTreeVO> allList, NavCategoryT...
    method getChildList (line 178) | private List<NavCategoryTreeVO> getChildList(List<NavCategoryTreeVO> a...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/vo/NavCategoryTreeVO.java
  class NavCategoryTreeVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/vo/NavCategoryVO.java
  class NavCategoryVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/constant/NavCommentConstant.java
  class NavCommentConstant (line 9) | public class NavCommentConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/controller/NavCommentController.java
  class NavCommentController (line 30) | @Api(tags = "评论")
    method page (line 38) | @ApiOperation("分页列表")
    method pass (line 47) | @ApiOperation("通过")
    method reject (line 56) | @ApiOperation("驳回")
    method pass (line 65) | @ApiOperation("置顶")
    method cancelSticky (line 74) | @ApiOperation("取消置顶")
    method delete (line 83) | @DeleteMapping("/delete/{ids}")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/dto/NavCommentPageDTO.java
  class NavCommentPageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/dto/NavCommentRejectDTO.java
  class NavCommentRejectDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/enums/NavCommentStatus.java
  type NavCommentStatus (line 9) | public enum NavCommentStatus {
    method NavCommentStatus (line 30) | NavCommentStatus(Integer code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/mapper/NavCommentMapper.java
  type NavCommentMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/mapstruct/NavCommentConverter.java
  type NavCommentConverter (line 19) | @Mapper
    method convert (line 24) | PageVO<NavCommentVO> convert(PageVO<NavComment> pageVO);
    method convert (line 26) | NavCommentVO convert(NavComment navComment);
    method convertClient (line 28) | List<ClientNavCommentTreeVO> convertClient(List<NavComment> list);
    method convert (line 30) | NavComment convert(ClientNavCommentAddDTO addDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/po/NavComment.java
  class NavComment (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/service/NavCommentService.java
  type NavCommentService (line 20) | public interface NavCommentService extends BaseService<NavComment> {
    method pageList (line 25) | PageVO<NavCommentVO> pageList(NavCommentPageDTO pageDTO);
    method pass (line 30) | void pass(Long[] ids);
    method reject (line 35) | void reject(NavCommentRejectDTO rejectDTO);
    method updateSticky (line 43) | void updateSticky(Long id, Integer hasSticky);
    method getOpenStatus (line 48) | boolean getOpenStatus();
    method getNotLoginOpenStatus (line 53) | boolean getNotLoginOpenStatus();
    method treeClient (line 58) | List<ClientNavCommentTreeVO> treeClient();
    method add (line 63) | void add(ClientNavCommentAddDTO addDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/service/impl/NavCommentServiceImpl.java
  class NavCommentServiceImpl (line 47) | @Service
    method pageList (line 64) | @Override
    method pass (line 91) | @Override
    method reject (line 107) | @Override
    method updateSticky (line 127) | @Override
    method getOpenStatus (line 140) | @Override
    method getNotLoginOpenStatus (line 152) | @Override
    method treeClient (line 164) | @Override
    method add (line 202) | @Override
    method buildTree (line 237) | public List<ClientNavCommentTreeVO> buildTree(List<ClientNavCommentTre...
    method recursive (line 256) | private void recursive(List<ClientNavCommentTreeVO> allList, ClientNav...
    method hasChild (line 270) | private boolean hasChild(List<ClientNavCommentTreeVO> allList, ClientN...
    method getChildList (line 277) | private List<ClientNavCommentTreeVO> getChildList(List<ClientNavCommen...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/vo/NavCommentVO.java
  class NavCommentVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/controller/NavSiteConfigController.java
  class NavSiteConfigController (line 26) | @Api(tags = "网站配置")
    method getConfig (line 34) | @GetMapping("/getConfig")
    method update (line 42) | @PutMapping
    method about (line 51) | @ApiOperation("关于本站")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/dto/NavSiteConfigUpdateDTO.java
  class NavSiteConfigUpdateDTO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/mapper/NavSiteConfigMapper.java
  type NavSiteConfigMapper (line 13) | @Mapper
    method updateVisitCount (line 19) | void updateVisitCount(Long id);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/mapstruct/NavSiteConfigConverter.java
  type NavSiteConfigConverter (line 17) | @Mapper
    method convert (line 22) | PageVO<NavSiteConfigVO> convert(PageVO<NavSiteConfig> pageVO);
    method convert (line 24) | NavSiteConfigVO convert(NavSiteConfig navSiteConfig);
    method convert (line 26) | NavSiteConfig convert(NavSiteConfigUpdateDTO updateDTO);
    method convertAbout (line 28) | NavSiteConfigAboutVO convertAbout(NavSiteConfig navSiteConfig);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/po/NavSiteConfig.java
  class NavSiteConfig (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/service/NavSiteConfigService.java
  type NavSiteConfigService (line 15) | public interface NavSiteConfigService extends BaseService<NavSiteConfig> {
    method getConfig (line 21) | NavSiteConfigVO getConfig();
    method updateById (line 26) | void updateById(NavSiteConfigUpdateDTO updateDTO);
    method about (line 32) | NavSiteConfigAboutVO about();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/service/impl/NavSiteConfigServiceImpl.java
  class NavSiteConfigServiceImpl (line 24) | @Service
    method getConfig (line 36) | @Override
    method updateById (line 47) | @Override
    method about (line 61) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/vo/NavSiteConfigAboutVO.java
  class NavSiteConfigAboutVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/vo/NavSiteConfigVO.java
  class NavSiteConfigVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/controller/NavIndexController.java
  class NavIndexController (line 19) | @RestController
    method getStatistics (line 27) | @ApiOperation("获取统计数")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/service/NavIndexService.java
  type NavIndexService (line 11) | public interface NavIndexService {
    method getStatistics (line 16) | NavIndexStatisticsVO getStatistics();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/service/impl/NavIndexServiceImpl.java
  class NavIndexServiceImpl (line 18) | @Service
    method getStatistics (line 29) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/vo/NavIndexStatisticsVO.java
  class NavIndexStatisticsVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/constant/NavPictureConstant.java
  class NavPictureConstant (line 9) | public class NavPictureConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/controller/NavPictureController.java
  class NavPictureController (line 28) | @Api(tags = "导航图片")
    method upload (line 38) | @ApiOperation("上传")
    method uploadSite (line 46) | @ApiOperation("系统网站上传")
    method uploadAvatar (line 55) | @ApiOperation("用户头像上传")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/mapper/NavPictureMapper.java
  type NavPictureMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/mapstrcut/NavPictureConverter.java
  type NavPictureConverter (line 12) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/po/NavPicture.java
  class NavPicture (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/service/NavPictureService.java
  type NavPictureService (line 13) | public interface NavPictureService extends BaseService<NavPicture> {
    method getUploadFilePath (line 21) | NavPicture getUploadFilePath(String modulePath, MultipartFile file);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/service/impl/NavPictureServiceImpl.java
  class NavPictureServiceImpl (line 24) | @Service
    method getUploadFilePath (line 42) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/vo/NavPictureUploadVO.java
  class NavPictureUploadVO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/constant/NavSiteClientConstant.java
  class NavSiteClientConstant (line 9) | public class NavSiteClientConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/controller/NavSiteController.java
  class NavSiteController (line 27) | @Api(tags = "导航网站")
    method page (line 35) | @ApiOperation("分页列表")
    method getById (line 43) | @GetMapping("/getById/{id}")
    method add (line 50) | @PostMapping
    method update (line 59) | @PutMapping
    method delete (line 68) | @DeleteMapping("/delete/{ids}")
    method getMaxSortByCategoryId (line 77) | @GetMapping("/getMaxSortByCategoryId")
    method updateClickCount (line 85) | @ApiOperation("更新点击量")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteAddDTO.java
  class NavSiteAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteListUserImportDTO.java
  class NavSiteListUserImportDTO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSitePageDTO.java
  class NavSitePageDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteUpdateDTO.java
  class NavSiteUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteUpdateSortDTO.java
  class NavSiteUpdateSortDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/mapper/NavSiteMapper.java
  type NavSiteMapper (line 19) | @Mapper
    method selectMaxSortByCategoryId (line 25) | Integer selectMaxSortByCategoryId(@Param("categoryId") Long categoryId);
    method updateClickCountById (line 30) | void updateClickCountById(@Param("id") Long id);
    method selectListByUserImport (line 35) | List<NavSiteVO> selectListByUserImport(NavSiteListUserImportDTO userIm...
    method selectSiteSearchList (line 40) | List<NavClientSiteSearchVO> selectSiteSearchList(@Param("searchContent...
    method selectClickCount (line 45) | Long selectClickCount();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/mapstrcut/NavSiteConverter.java
  type NavSiteConverter (line 23) | @Mapper
    method convert (line 28) | PageVO<NavSiteVO> convert(PageVO<NavSite> pageVO);
    method convert (line 30) | NavSiteVO convert(NavSite navSite);
    method convert (line 32) | NavSite convert(NavSiteAddDTO addDTO);
    method convert (line 34) | NavSite convert(NavSiteUpdateDTO updateDTO);
    method convertMatch (line 36) | NavSiteMatchVO convertMatch(NavSite navSite);
    method convert (line 38) | List<NavSite> convert(List<NavSiteUpdateSortDTO> list);
    method convertCilent (line 40) | List<NavSiteClientVO> convertCilent(List<NavSite> list);
    method convertCollect (line 42) | List<NavSiteLatestCollectVO> convertCollect(List<NavSite> list);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/po/NavSite.java
  class NavSite (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/service/NavSiteService.java
  type NavSiteService (line 21) | public interface NavSiteService extends BaseService<NavSite> {
    method pageList (line 26) | PageVO<NavSiteVO> pageList(NavSitePageDTO pageDTO);
    method save (line 31) | void save(NavSiteAddDTO addDTO);
    method updateById (line 36) | void updateById(NavSiteUpdateDTO updateDTO);
    method removeByIds (line 41) | void removeByIds(Long[] ids);
    method getMaxSortByCategoryId (line 46) | Integer getMaxSortByCategoryId(Long categoryId);
    method updateClickCountById (line 51) | void updateClickCountById(Long id);
    method siteSearch (line 57) | List<NavClientSiteSearchVO> siteSearch(String searchContent);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/service/impl/NavSiteServiceImpl.java
  class NavSiteServiceImpl (line 41) | @Service
    method pageList (line 56) | @Override
    method save (line 75) | @Override
    method updateById (line 86) | @Override
    method removeByIds (line 97) | @Override
    method getMaxSortByCategoryId (line 107) | @Override
    method updateClickCountById (line 115) | @Override
    method siteSearch (line 123) | @Override
    method buildCategoryName (line 134) | private void buildCategoryName(List<NavSiteVO> list) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteClientVO.java
  class NavSiteClientVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteLatestCollectVO.java
  class NavSiteLatestCollectVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteMatchVO.java
  class NavSiteMatchVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteVO.java
  class NavSiteVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/controller/SysApiCategoryController.java
  class SysApiCategoryController (line 30) | @Api(tags = "系统接口分类")
    method page (line 38) | @ApiOperation("分页列表")
    method list (line 47) | @ApiOperation("列表")
    method getById (line 54) | @GetMapping("/getById/{id}")
    method add (line 61) | @PostMapping()
    method update (line 71) | @PutMapping()
    method delete (line 81) | @DeleteMapping("/delete/{ids}")
    method getMaxSort (line 90) | @GetMapping("/getMaxSort")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/controller/SysApiController.java
  class SysApiController (line 29) | @Api(tags = "系统接口")
    method page (line 37) | @ApiOperation("分页列表")
    method getById (line 46) | @GetMapping("/getById/{id}")
    method add (line 53) | @PostMapping()
    method update (line 63) | @PutMapping()
    method delete (line 73) | @DeleteMapping("/delete/{ids}")
    method getMaxSortByCategoryId (line 82) | @GetMapping("/getMaxSortByCategoryId")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiAddDTO.java
  class SysApiAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryAddDTO.java
  class SysApiCategoryAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryPageDTO.java
  class SysApiCategoryPageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryUpdateDTO.java
  class SysApiCategoryUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiPageDTO.java
  class SysApiPageDTO (line 19) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiUpdateDTO.java
  class SysApiUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiCategoryMapper.java
  type SysApiCategoryMapper (line 13) | @Mapper
    method selectMaxSort (line 19) | Integer selectMaxSort();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiMapper.java
  type SysApiMapper (line 18) | @Mapper
    method getApiByMenuIds (line 27) | List<SysApiVO> getApiByMenuIds(@Param("menuIds") List<Long> menuIds,
    method selectMaxSortByCategoryId (line 34) | Integer selectMaxSortByCategoryId(Long apiCategoryId);
    method selectAuthApiByMenuId (line 41) | List<SysMenuAuthApiVO> selectAuthApiByMenuId(Long menuId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiMenuMapper.java
  type SysApiMenuMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapstruct/SysApiCategoryConverter.java
  type SysApiCategoryConverter (line 19) | @Mapper
    method convert (line 24) | SysApiCategoryVO convert(SysApiCategory sysApiCategory);
    method convertList (line 26) | List<SysApiCategoryVO> convertList(List<SysApiCategory> list);
    method convert (line 28) | PageVO<SysApiCategoryVO> convert(PageVO<SysApiCategory> pageVO);
    method convert (line 30) | SysApiCategory convert(SysApiCategoryAddDTO addDTO);
    method convert (line 32) | SysApiCategory convert(SysApiCategoryUpdateDTO updateDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapstruct/SysApiConverter.java
  type SysApiConverter (line 20) | @Mapper
    method convertList (line 25) | List<ApiPermission> convertList(List<SysApiVO> list);
    method convert (line 27) | PageVO<SysApiVO> convert(PageVO<SysApi> pageVo);
    method convert (line 29) | SysApiVO convert(SysApi sysApi);
    method convert (line 31) | SysApi convert(SysApiAddDTO addDTO);
    method convert (line 33) | SysApi convert(SysApiUpdateDTO updateDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApi.java
  class SysApi (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApiCategory.java
  class SysApiCategory (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApiMenu.java
  class SysApiMenu (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiCategoryService.java
  type SysApiCategoryService (line 15) | public interface SysApiCategoryService extends BaseService<SysApiCategor...
    method listSort (line 20) | List<SysApiCategoryVO> listSort();
    method removeByIds (line 25) | void removeByIds(Long[] ids);
    method getMaxSort (line 30) | Integer getMaxSort();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiMenuService.java
  type SysApiMenuService (line 12) | public interface SysApiMenuService extends BaseService<SysApiMenu> {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiService.java
  type SysApiService (line 16) | public interface SysApiService extends BaseService<SysApi> {
    method getApiByMenuIds (line 23) | List<SysApiVO> getApiByMenuIds(List<Long> menuIds);
    method removeByIds (line 28) | void removeByIds(Long[] ids);
    method getMaxSortByCategoryId (line 34) | Integer getMaxSortByCategoryId(Long apiCategoryId);
    method authApi (line 41) | void authApi(Long menuId, List<Long> apiIds);
    method getAuthApiByMenuId (line 48) | List<SysMenuAuthApiVO> getAuthApiByMenuId(Long menuId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiCategoryServiceImpl.java
  class SysApiCategoryServiceImpl (line 26) | @Service
    method listSort (line 37) | @Override
    method removeByIds (line 47) | @Override
    method getMaxSort (line 65) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiMenuServiceImpl.java
  class SysApiMenuServiceImpl (line 15) | @Service

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiServiceImpl.java
  class SysApiServiceImpl (line 28) | @Service
    method getApiByMenuIds (line 42) | @Override
    method removeByIds (line 53) | @Override
    method getMaxSortByCategoryId (line 72) | @Override
    method authApi (line 82) | @Override
    method getAuthApiByMenuId (line 113) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/vo/SysApiCategoryVO.java
  class SysApiCategoryVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/vo/SysApiVO.java
  class SysApiVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/controller/SysDictionaryController.java
  class SysDictionaryController (line 31) | @Api(tags = "系统字典")
    method page (line 39) | @ApiOperation("分页列表")
    method list (line 48) | @ApiOperation("列表")
    method getById (line 55) | @GetMapping("/getById/{id}")
    method add (line 62) | @PostMapping()
    method update (line 72) | @PutMapping()
    method delete (line 82) | @DeleteMapping("/delete/{ids}")
    method getMaxSort (line 91) | @GetMapping("/getMaxSort")
    method getAllDictionaryInfo (line 99) | @ApiOperation("获取所有字典详细信息")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/controller/SysDictionaryDataController.java
  class SysDictionaryDataController (line 30) | @Api(tags = "系统字典数据")
    method page (line 38) | @ApiOperation("分页列表")
    method getById (line 47) | @GetMapping("/getById/{id}")
    method add (line 54) | @PostMapping()
    method update (line 64) | @PutMapping()
    method delete (line 74) | @DeleteMapping("/delete/{ids}")
    method getMaxSortByDictionaryId (line 83) | @GetMapping("/getMaxSortByDictionaryId")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryAddDTO.java
  class SysDictionaryAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataAddDTO.java
  class SysDictionaryDataAddDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataPageDTO.java
  class SysDictionaryDataPageDTO (line 19) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataUpdateDTO.java
  class SysDictionaryDataUpdateDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryPageDTO.java
  class SysDictionaryPageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryUpdateDTO.java
  class SysDictionaryUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapper/SysDictionaryDataMapper.java
  type SysDictionaryDataMapper (line 13) | @Mapper
    method selectMaxSortByDictionaryId (line 20) | Integer selectMaxSortByDictionaryId(Long dictionaryId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapper/SysDictionaryMapper.java
  type SysDictionaryMapper (line 16) | @Mapper
    method selectMaxSort (line 22) | Integer selectMaxSort();
    method getAllDictionaryInfo (line 28) | List<DictionaryInfoVO> getAllDictionaryInfo(Integer status);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapstruct/SysDictionaryConverter.java
  type SysDictionaryConverter (line 19) | @Mapper
    method convert (line 25) | SysDictionaryVO convert(SysDictionary sysDictionary);
    method convertList (line 27) | List<SysDictionaryVO> convertList(List<SysDictionary> list);
    method convert (line 29) | PageVO<SysDictionaryVO> convert(PageVO<SysDictionary> pageVo);
    method convert (line 31) | SysDictionary convert(SysDictionaryAddDTO addDTO);
    method convert (line 33) | SysDictionary convert(SysDictionaryUpdateDTO updateDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapstruct/SysDictionaryDataConverter.java
  type SysDictionaryDataConverter (line 17) | @Mapper
    method convert (line 22) | SysDictionaryDataVO convert(SysDictionaryData sysDictionaryData);
    method convert (line 24) | PageVO<SysDictionaryDataVO> convert(PageVO<SysDictionaryData> pageVo);
    method convert (line 26) | SysDictionaryData convert(SysDictionaryDataAddDTO addDTO);
    method convert (line 28) | SysDictionaryData convert(SysDictionaryDataUpdateDTO updateDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/po/SysDictionary.java
  class SysDictionary (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/po/SysDictionaryData.java
  class SysDictionaryData (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/SysDictionaryDataService.java
  type SysDictionaryDataService (line 12) | public interface SysDictionaryDataService extends BaseService<SysDiction...
    method getMaxSortByDictionaryId (line 18) | Integer getMaxSortByDictionaryId(Long dictionaryId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/SysDictionaryService.java
  type SysDictionaryService (line 16) | public interface SysDictionaryService extends BaseService<SysDictionary> {
    method listSort (line 21) | List<SysDictionaryVO> listSort();
    method removeByIds (line 26) | void removeByIds(Long[] ids);
    method getMaxSort (line 31) | Integer getMaxSort();
    method getAllDictionaryInfo (line 36) | List<DictionaryInfoVO> getAllDictionaryInfo();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/impl/SysDictionaryDataServiceImpl.java
  class SysDictionaryDataServiceImpl (line 16) | @Service
    method getMaxSortByDictionaryId (line 26) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/impl/SysDictionaryServiceImpl.java
  class SysDictionaryServiceImpl (line 28) | @Service
    method listSort (line 39) | @Override
    method removeByIds (line 49) | @Override
    method getMaxSort (line 69) | @Override
    method getAllDictionaryInfo (line 77) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/DictionaryDataInfoVO.java
  class DictionaryDataInfoVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/DictionaryInfoVO.java
  class DictionaryInfoVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/SysDictionaryDataVO.java
  class SysDictionaryDataVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/SysDictionaryVO.java
  class SysDictionaryVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/controller/LogLoginController.java
  class LogLoginController (line 25) | @Api(tags = "登录日志")
    method page (line 33) | @GetMapping("/page")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/dto/LogLoginAddDTO.java
  class LogLoginAddDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/dto/LogLoginPageDTO.java
  class LogLoginPageDTO (line 20) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/enums/LogLoginStatus.java
  type LogLoginStatus (line 9) | public enum LogLoginStatus {
    method LogLoginStatus (line 25) | LogLoginStatus(Integer code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/factory/LogLoginAsyncFactory.java
  class LogLoginAsyncFactory (line 20) | public class LogLoginAsyncFactory {
    method add (line 28) | public static TimerTask add(String username, Integer status, String hi...
    method add (line 39) | public static TimerTask add(Long userId, String username, Integer stat...

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/mapper/LogLoginMapper.java
  type LogLoginMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/mapstruct/LogLoginConverter.java
  type LogLoginConverter (line 16) | @Mapper
    method convert (line 21) | LogLoginVO convert(LogLogin logLogin);
    method convert (line 23) | PageVO<LogLoginVO> convert(PageVO<LogLogin> pageVo);
    method convert (line 25) | LogLogin convert(LogLoginAddDTO addDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/po/LogLogin.java
  class LogLogin (line 19) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/service/LogLoginService.java
  type LogLoginService (line 12) | public interface LogLoginService extends BaseService<LogLogin> {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/service/impl/LogLoginServiceImpl.java
  class LogLoginServiceImpl (line 16) | @Service

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/vo/LogLoginVO.java
  class LogLoginVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/config/LogMqConfig.java
  class LogMqConfig (line 18) | @Configuration
    method redisMessageListenerContainer (line 24) | @Bean
    method messageListenerAdapter (line 36) | @Bean

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/controller/LogOperationController.java
  class LogOperationController (line 24) | @Api(tags = "操作日志")
    method page (line 32) | @GetMapping("/page")
    method getById (line 40) | @GetMapping("/getById/{id}")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/dto/LogOperationPageDTO.java
  class LogOperationPageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mapper/LogOperationMapper.java
  type LogOperationMapper (line 17) | @Mapper
    method pageList (line 23) | List<LogOperationVo> pageList(LogOperationPageDTO pageDto);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mapstruct/LogOperationConverter.java
  type LogOperationConverter (line 15) | @Mapper
    method convert (line 20) | LogOperationVo convert(LogOperation logOperation);
    method convert (line 22) | LogOperation convert(LogDTO logDto);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mq/LogOperationMq.java
  class LogOperationMq (line 18) | @Component
    method consumeMqLog (line 27) | public void consumeMqLog(String message) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/po/LogOperation.java
  class LogOperation (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/service/LogOperationService.java
  type LogOperationService (line 15) | public interface LogOperationService extends BaseService<LogOperation> {
    method pageList (line 20) | PageVO<LogOperationVo> pageList(LogOperationPageDTO pageDTO);
    method getLogOperationById (line 25) | LogOperationVo getLogOperationById(Long id);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/service/impl/LogOperationServiceImpl.java
  class LogOperationServiceImpl (line 27) | @Service
    method pageList (line 38) | @Override
    method getLogOperationById (line 49) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/vo/LogOperationVo.java
  class LogOperationVo (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/constant/MenuConstant.java
  class MenuConstant (line 9) | public class MenuConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/controller/SysMenuController.java
  class SysMenuController (line 31) | @Api(tags = "系统菜单")
    method list (line 41) | @GetMapping("/list")
    method tree (line 49) | @GetMapping("/tree")
    method getById (line 57) | @GetMapping("/getById/{id}")
    method add (line 64) | @PostMapping()
    method update (line 74) | @PutMapping()
    method getMaxSortByParentId (line 84) | @GetMapping("/getMaxSortByParentId")
    method delete (line 92) | @DeleteMapping("/delete/{id}")
    method getApiByMenuId (line 101) | @GetMapping("/auth/api/list")
    method authApi (line 108) | @PostMapping("/auth/api")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuAddDTO.java
  class SysMenuAddDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuAuthApiDTO.java
  class SysMenuAuthApiDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuListDTO.java
  class SysMenuListDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuUpdateDTO.java
  class SysMenuUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuShowStatus.java
  type MenuShowStatus (line 9) | public enum MenuShowStatus {
    method MenuShowStatus (line 25) | MenuShowStatus(Integer code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuStatus.java
  type MenuStatus (line 9) | public enum MenuStatus {
    method MenuStatus (line 24) | MenuStatus(Integer code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuType.java
  type MenuType (line 9) | public enum MenuType {
    method MenuType (line 28) | MenuType(String code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/mapper/SysMenuMapper.java
  type SysMenuMapper (line 18) | @Mapper
    method getMenuByRoleIds (line 27) | List<SysMenuVO> getMenuByRoleIds(@Param("roleIds") Set<Long> roleIds,
    method getMenuByUserId (line 40) | List<SysMenuVO> getMenuByUserId(@Param("userId") Long userId,
    method selectMaxSortByParentId (line 50) | Integer selectMaxSortByParentId(Long parentId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/mapstruct/SysMenuConverter.java
  type SysMenuConverter (line 18) | @Mapper
    method convert (line 23) | SysMenuVO convert(SysMenu menus);
    method convertList (line 25) | List<SysMenuVO> convertList(List<SysMenu> menus);
    method convert (line 27) | SysMenu convert(SysMenuAddDTO addDto);
    method convert (line 29) | SysMenu convert(SysMenuUpdateDTO updateDto);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/po/SysMenu.java
  class SysMenu (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/service/SysMenuService.java
  type SysMenuService (line 19) | public interface SysMenuService extends BaseService<SysMenu> {
    method getMenuByRoleIds (line 25) | List<SysMenuVO> getMenuByRoleIds(Set<Long> roleIds);
    method getRouters (line 30) | List<RouterVO> getRouters();
    method getMenuList (line 35) | List<SysMenuVO> getMenuList(SysMenuListDTO sysMenuListDTO);
    method getMenuTree (line 40) | List<SysMenuVO> getMenuTree();
    method getMaxSortByParentId (line 46) | Integer getMaxSortByParentId(Long parentId);
    method remove (line 52) | void remove(Long id);
    method authApi (line 57) | void authApi(SysMenuAuthApiDTO authApiDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/service/impl/SysMenuServiceImpl.java
  class SysMenuServiceImpl (line 45) | @Service
    method getMenuByRoleIds (line 59) | @Override
    method getRouters (line 74) | @Override
    method getMenuList (line 111) | @Override
    method getMenuTree (line 121) | @Override
    method getMaxSortByParentId (line 131) | @Override
    method remove (line 140) | @Override
    method authApi (line 166) | @Override
    method buildMenuTree (line 196) | public List<SysMenuVO> buildMenuTree(List<SysMenuVO> allList, Long par...
    method recursiveMenu (line 215) | private void recursiveMenu(List<SysMenuVO> allList, SysMenuVO menu) {
    method hasChild (line 229) | private boolean hasChild(List<SysMenuVO> allList, SysMenuVO menu) {
    method getChildList (line 236) | private List<SysMenuVO> getChildList(List<SysMenuVO> allList, SysMenuV...
    method buildRouters (line 253) | private List<RouterVO> buildRouters(List<SysMenuVO> menus, SysMenuVO p...
    method getRouteName (line 303) | public String getRouteName(SysMenuVO menu, SysMenuVO parentMenu) {
    method isMenuFrame (line 318) | public boolean isMenuFrame(SysMenuVO menu) {
    method getRouterPath (line 328) | public String getRouterPath(SysMenuVO menu) {
    method isInnerLink (line 349) | public boolean isInnerLink(SysMenuVO menu) {
    method innerLinkReplaceEach (line 356) | public String innerLinkReplaceEach(String path) {
    method getComponent (line 367) | public String getComponent(SysMenuVO menu) {
    method isParentView (line 384) | public boolean isParentView(SysMenuVO menu) {
    method isRootMenu (line 393) | private boolean isRootMenu(Long parentId) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/vo/MetaVO.java
  class MetaVO (line 16) | @Data
    method MetaVO (line 34) | public MetaVO() {
    method MetaVO (line 37) | public MetaVO(String title, String icon) {
    method MetaVO (line 42) | public MetaVO(String title, String icon, boolean noCache) {
    method MetaVO (line 48) | public MetaVO(String title, String icon, String link) {
    method MetaVO (line 54) | public MetaVO(String title, String icon, boolean noCache, String link) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/vo/RouterVO.java
  class RouterVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/vo/SysMenuAuthApiVO.java
  class SysMenuAuthApiVO (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/vo/SysMenuVO.java
  class SysMenuVO (line 18) | @ApiModel("系统菜单")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/constant/SysParamConstant.java
  class SysParamConstant (line 9) | public class SysParamConstant {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/controller/SysParamController.java
  class SysParamController (line 30) | @Api(tags = "参数配置")
    method page (line 38) | @ApiOperation("分页列表")
    method getById (line 47) | @GetMapping("/getById/{id}")
    method add (line 54) | @PostMapping()
    method update (line 63) | @PutMapping()
    method delete (line 72) | @DeleteMapping("/delete/{ids}")
    method getMaxSort (line 81) | @GetMapping("/getMaxSort")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/dto/SysParamAddDTO.java
  class SysParamAddDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/dto/SysParamPageDTO.java
  class SysParamPageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/dto/SysParamUpdateDTO.java
  class SysParamUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/mapper/SysParamMapper.java
  type SysParamMapper (line 13) | @Mapper
    method selectMaxSort (line 19) | Integer selectMaxSort();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/mapstruct/SysParamConverter.java
  type SysParamConverter (line 17) | @Mapper
    method convert (line 22) | PageVO<SysParamVO> convert(PageVO<SysParam> pageVO);
    method convert (line 24) | SysParamVO convert(SysParam sysParam);
    method convert (line 26) | SysParam convert(SysParamAddDTO addDTO);
    method convert (line 28) | SysParam convert(SysParamUpdateDTO updateDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/po/SysParam.java
  class SysParam (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/service/SysParamService.java
  type SysParamService (line 14) | public interface SysParamService extends BaseService<SysParam> {
    method save (line 19) | void save(SysParamAddDTO addDTO);
    method updateById (line 24) | void updateById(SysParamUpdateDTO updateDTO);
    method removeByIds (line 29) | void removeByIds(Long[] ids);
    method getMaxSort (line 34) | Integer getMaxSort();
    method getParamValueByKey (line 41) | String getParamValueByKey(String paramKey);
    method removeCache (line 48) | void removeCache(String paramKey);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/service/impl/SysParamServiceImpl.java
  class SysParamServiceImpl (line 27) | @Service
    method save (line 36) | @Override
    method updateById (line 47) | @Override
    method removeByIds (line 63) | @Override
    method getMaxSort (line 82) | @Override
    method getParamValueByKey (line 92) | @Override
    method removeCache (line 116) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/param/vo/SysParamVO.java
  class SysParamVO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/controller/SysRoleController.java
  class SysRoleController (line 28) | @Api(tags = "系统角色")
    method page (line 36) | @ApiOperation("分页列表")
    method getById (line 45) | @GetMapping("/getById/{id}")
    method add (line 53) | @PostMapping()
    method update (line 62) | @PutMapping()
    method delete (line 71) | @DeleteMapping("/delete/{ids}")
    method getMaxSort (line 80) | @GetMapping("/getMaxSort")
    method getUserAuthPage (line 88) | @GetMapping("/auth/user/page")
    method getUserUnAuthPage (line 96) | @GetMapping("/auth/user/not/page")
    method authUser (line 104) | @PostMapping("/auth/user")
    method deleteAuthUser (line 113) | @DeleteMapping("/auth/user/delete")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleAddDTO.java
  class SysRoleAddDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleAuthUserDTO.java
  class SysRoleAuthUserDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleAuthUserDeleteDTO.java
  class SysRoleAuthUserDeleteDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleAuthUserPageDTO.java
  class SysRoleAuthUserPageDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleNotAuthUserPageDTO.java
  class SysRoleNotAuthUserPageDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRolePageDTO.java
  class SysRolePageDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/dto/SysRoleUpdateDTO.java
  class SysRoleUpdateDTO (line 18) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/mapper/SysRoleMapper.java
  type SysRoleMapper (line 17) | @Mapper
    method getRoleByUserIds (line 25) | List<SysRoleVO> getRoleByUserIds(@Param("userIds") List<Long> userId, ...
    method selectMaxSort (line 30) | Integer selectMaxSort();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/mapper/SysRoleMenuMapper.java
  type SysRoleMenuMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/mapstruct/SysRoleConverter.java
  type SysRoleConverter (line 20) | @Mapper
    method convert (line 25) | SysRoleVO convert(SysRole sysRole);
    method convert (line 27) | PageVO<SysRoleVO> convert(PageVO<SysRole> pageVO);
    method convert (line 29) | SysRole convert(SysRoleAddDTO addDTO);
    method convert (line 31) | SysRole convert(SysRoleUpdateDTO updateDTO);
    method convert (line 33) | SysUserPageDTO convert(SysRoleAuthUserPageDTO pageDTO);
    method convert (line 35) | SysUserPageDTO convert(SysRoleNotAuthUserPageDTO pageDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/po/SysRole.java
  class SysRole (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/po/SysRoleMenu.java
  class SysRoleMenu (line 15) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/service/SysRoleMenuService.java
  type SysRoleMenuService (line 14) | public interface SysRoleMenuService extends BaseService<SysRoleMenu> {
    method saveBatch (line 21) | void saveBatch(Long roleId, List<Long> menuIds);
    method getMenuIdsByRoleId (line 28) | List<Long> getMenuIdsByRoleId(Long roleId);
    method deleteByRoleId (line 34) | void deleteByRoleId(Long roleId);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/service/SysRoleService.java
  type SysRoleService (line 18) | public interface SysRoleService extends BaseService<SysRole> {
    method getRoleByUserId (line 24) | List<SysRoleVO> getRoleByUserId(Long userId);
    method getRoleByUserIds (line 30) | List<SysRoleVO> getRoleByUserIds(List<Long> userIds);
    method add (line 35) | void add(SysRoleAddDTO addDTO);
    method update (line 40) | void update(SysRoleUpdateDTO updateDTO);
    method removeByIds (line 45) | void removeByIds(Long[] ids);
    method getMaxSort (line 50) | Integer getMaxSort();
    method getRoleById (line 56) | SysRoleVO getRoleById(Long id);
    method getUserAuthPage (line 61) | PageVO<SysUserVO> getUserAuthPage(SysRoleAuthUserPageDTO pageDTO);
    method getUserUnAuthPage (line 66) | PageVO<SysUserVO> getUserUnAuthPage(SysRoleNotAuthUserPageDTO pageDTO);
    method authUser (line 71) | void authUser(SysRoleAuthUserDTO authUserDTO);
    method removeAuthUser (line 76) | void removeAuthUser(SysRoleAuthUserDeleteDTO deleteDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/service/impl/SysRoleMenuServiceImpl.java
  class SysRoleMenuServiceImpl (line 24) | @Service
    method saveBatch (line 35) | @Override
    method getMenuIdsByRoleId (line 55) | @Override
    method deleteByRoleId (line 72) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/service/impl/SysRoleServiceImpl.java
  class SysRoleServiceImpl (line 38) | @Service
    method getRoleByUserId (line 55) | @Override
    method getRoleByUserIds (line 65) | @Override
    method add (line 76) | @Override
    method update (line 95) | @Override
    method removeByIds (line 124) | @Transactional(rollbackFor = Exception.class)
    method getMaxSort (line 153) | @Override
    method getRoleById (line 162) | @Override
    method getUserAuthPage (line 175) | @Override
    method getUserUnAuthPage (line 193) | @Override
    method authUser (line 206) | @Override
    method removeAuthUser (line 230) | @Override
    method isExistRoleCode (line 242) | private boolean isExistRoleCode(String roleCode, Long roleId) {
    method isSuperAdminRoleByRoleIds (line 259) | private boolean isSuperAdminRoleByRoleIds(List<Long> roleIds) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/role/vo/SysRoleVO.java
  class SysRoleVO (line 17) | @ApiModel("系统角色")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/controller/SysUserController.java
  class SysUserController (line 29) | @Api(tags = "用户管理")
    method page (line 37) | @GetMapping("/page")
    method getById (line 45) | @GetMapping("/getById/{id}")
    method add (line 56) | @PostMapping()
    method update (line 65) | @PutMapping()
    method delete (line 75) | @DeleteMapping("/delete/{ids}")
    method resetPassword (line 84) | @PutMapping("/resetPassword")
    method userUpdateInfo (line 93) | @PutMapping("/userUpdateInfo")
    method resetUserPassword (line 103) | @PutMapping("/resetUserPassword")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/controller/SysUserInfoController.java
  class SysUserInfoController (line 24) | @RestController
    method getUserInfo (line 34) | @ApiOperation("获取用户信息")
    method getRouters (line 41) | @ApiOperation("获取菜单路由")

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserAddDTO.java
  class SysUserAddDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserPageDTO.java
  class SysUserPageDTO (line 21) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserResetPasswordDTO.java
  class SysUserResetPasswordDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserResetUserPasswordDTO.java
  class SysUserResetUserPasswordDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserUpdateDTO.java
  class SysUserUpdateDTO (line 17) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/dto/SysUserUpdateInfoDTO.java
  class SysUserUpdateInfoDTO (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/enums/UserType.java
  type UserType (line 9) | public enum UserType {
    method UserType (line 24) | UserType(Integer code) {

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/mapper/SysUserMapper.java
  type SysUserMapper (line 13) | @Mapper

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/mapper/SysUserRoleMapper.java
  type SysUserRoleMapper (line 16) | @Mapper
    method selectAssociateNotDeleteUserCount (line 25) | Long selectAssociateNotDeleteUserCount(@Param("roleIds") List<Long> ro...
    method selectUserIdByRoleCode (line 33) | List<Long> selectUserIdByRoleCode(@Param("roleCode") String roleCode);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/mapstruct/SysUserConverter.java
  type SysUserConverter (line 23) | @Mapper
    method convertDetail (line 28) | @Mapping(source = "id", target = "userId")
    method convert (line 31) | SysUserVO convert(SysUser sysUser);
    method convertList (line 33) | List<SysUserVO> convertList(List<SysUser> list);
    method convert (line 35) | PageVO<SysUserVO> convert(PageVO<SysUser> pageVo);
    method convert (line 37) | SysUser convert(SysUserAddDTO addDTO);
    method convert (line 39) | SysUser convert(SysUserUpdateDTO updateDTO);
    method convert (line 41) | SysUser convert(SysUserUpdateInfoDTO updateInfoDTO);
    method convert (line 43) | SysUser convert(SysUserResetPasswordDTO sysUserResetPasswordDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/po/SysUser.java
  class SysUser (line 16) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/po/SysUserRole.java
  class SysUserRole (line 14) | @Data

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/SysUserInfoService.java
  type SysUserInfoService (line 11) | public interface SysUserInfoService {
    method getUserInfo (line 16) | SysUserVO getUserInfo();

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/SysUserRoleService.java
  type SysUserRoleService (line 14) | public interface SysUserRoleService extends BaseService<SysUserRole> {
    method getUserIdsByRoleId (line 20) | List<Long> getUserIdsByRoleId(Long roleId);
    method saveBatch (line 27) | void saveBatch(Long roleId, List<Long> userIds);
    method remove (line 34) | void remove(Long roleId, List<Long> userIds);
    method isAssociateUser (line 40) | boolean isAssociateUser(List<Long> roleIds);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/SysUserService.java
  type SysUserService (line 21) | public interface SysUserService extends BaseService<SysUser> {
    method getLoginUserByUsername (line 27) | LoginUserDetail getLoginUserByUsername(String username);
    method setLoginUserPermission (line 33) | void setLoginUserPermission(LoginUserDetail loginUser);
    method getUsernameAndNickNameByUserIds (line 39) | List<SysUserVO> getUsernameAndNickNameByUserIds(List<Long> userIds);
    method pageList (line 44) | PageVO<SysUserVO> pageList(SysUserPageDTO pageDTO);
    method add (line 49) | void add(SysUserAddDTO addDTO);
    method resetPassword (line 54) | void resetPassword(SysUserResetPasswordDTO sysUserResetPasswordDto);
    method filterNotExistUserIds (line 60) | List<Long> filterNotExistUserIds(List<Long> ids);
    method updateAvatarById (line 65) | void updateAvatarById(Long id, String avatar);
    method resetUserPassword (line 70) | void resetUserPassword(SysUserResetUserPasswordDTO passwordDTO);

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/impl/SysUserInfoServiceImpl.java
  class SysUserInfoServiceImpl (line 20) | @Service
    method getUserInfo (line 31) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/impl/SysUserRoleServiceImpl.java
  class SysUserRoleServiceImpl (line 23) | @Service
    method getUserIdsByRoleId (line 33) | @Override
    method saveBatch (line 52) | @Override
    method remove (line 72) | @Override
    method isAssociateUser (line 87) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/service/impl/SysUserServiceImpl.java
  class SysUserServiceImpl (line 48) | @Service
    method getLoginUserByUsername (line 69) | @Override
    method setLoginUserPermission (line 85) | @Override
    method getUsernameAndNickNameByUserIds (line 140) | @Override
    method pageList (line 155) | @Override
    method add (line 189) | @Override
    method resetPassword (line 208) | @Override
    method filterNotExistUserIds (line 219) | @Override
    method updateAvatarById (line 236) | @Override
    method resetUserPassword (line 247) | @Override

FILE: geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/user/vo/SysUserVO.java
  class SysUserVO (line 17) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/constant/CommonConstant.java
  class CommonConstant (line 9) | public class CommonConstant {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/constant/HttpStatus.java
  class HttpStatus (line 9) | public class HttpStatus {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/enums/CommonStatus.java
  type CommonStatus (line 9) | public enum CommonStatus {
    method CommonStatus (line 24) | CommonStatus(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/enums/DelFlag.java
  type DelFlag (line 9) | public enum DelFlag {
    method DelFlag (line 24) | DelFlag(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/enums/OpenStatus.java
  type OpenStatus (line 9) | public enum OpenStatus {
    method OpenStatus (line 23) | OpenStatus(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/enums/YesNo.java
  type YesNo (line 9) | public enum YesNo {
    method YesNo (line 24) | YesNo(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/exception/BaseException.java
  class BaseException (line 12) | @Data
    method BaseException (line 30) | public BaseException(String message) {
    method BaseException (line 35) | public BaseException(int code, String message) {
    method BaseException (line 40) | public BaseException(int code, String message, Throwable e) {
    method BaseException (line 45) | public BaseException(String message, String module) {
    method BaseException (line 50) | public BaseException(int code, String message, String module) {
    method BaseException (line 56) | public BaseException(int code, String message, String module, Throwabl...
    method getMessage (line 62) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/exception/ParamException.java
  class ParamException (line 11) | @Data
    method ParamException (line 19) | public ParamException(String message) {
    method ParamException (line 24) | public ParamException(String message, Throwable e) {
    method getMessage (line 29) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/exception/ServiceException.java
  class ServiceException (line 12) | @Data
    method ServiceException (line 25) | public ServiceException(String message) {
    method ServiceException (line 31) | public ServiceException(int code, String message) {
    method ServiceException (line 37) | public ServiceException(String message, Throwable e) {
    method getMessage (line 43) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/filter/XssFilter.java
  class XssFilter (line 19) | public class XssFilter implements Filter {
    method init (line 26) | @Override
    method doFilter (line 37) | @Override
    method handleExcludeURL (line 50) | private boolean handleExcludeURL(HttpServletRequest request, HttpServl...
    method destroy (line 60) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/filter/XssHttpServletRequestWrapper.java
  class XssHttpServletRequestWrapper (line 22) | public class XssHttpServletRequestWrapper extends HttpServletRequestWrap...
    method XssHttpServletRequestWrapper (line 26) | public XssHttpServletRequestWrapper(HttpServletRequest request) {
    method getParameterValues (line 30) | @Override
    method getInputStream (line 45) | @Override
    method isJsonRequest (line 92) | public boolean isJsonRequest() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/html/EscapeUtil.java
  class EscapeUtil (line 11) | public class EscapeUtil {
    method escape (line 41) | public static String escape(String text) {
    method unescape (line 51) | public static String unescape(String content) {
    method clean (line 61) | public static String clean(String content) {
    method encode (line 71) | private static String encode(String text) {
    method decode (line 104) | public static String decode(String content) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/html/HTMLFilter.java
  class HTMLFilter (line 15) | public class HTMLFilter {
    method HTMLFilter (line 99) | public HTMLFilter() {
    method HTMLFilter (line 137) | @SuppressWarnings("unchecked")
    method reset (line 162) | private void reset() {
    method chr (line 167) | public static String chr(final int decimal) {
    method htmlSpecialChars (line 171) | public static String htmlSpecialChars(final String s) {
    method filter (line 187) | public String filter(final String input) {
    method isAlwaysMakeTags (line 204) | public boolean isAlwaysMakeTags() {
    method isStripComments (line 208) | public boolean isStripComments() {
    method escapeComments (line 212) | private String escapeComments(final String s) {
    method balanceHTML (line 224) | private String balanceHTML(String s) {
    method checkTags (line 252) | private String checkTags(String s) {
    method processRemoveBlanks (line 276) | private String processRemoveBlanks(final String s) {
    method regexReplace (line 292) | private static String regexReplace(final Pattern regex_pattern, final ...
    method processTag (line 297) | private String processTag(final String s) {
    method processParamProtocol (line 385) | private String processParamProtocol(String s) {
    method decodeEntities (line 402) | private String decodeEntities(String s) {
    method validateEntities (line 438) | private String validateEntities(final String s) {
    method encodeQuotes (line 453) | private String encodeQuotes(final String s) {
    method checkEntity (line 471) | private String checkEntity(final String preamble, final String term) {
    method isValidEntity (line 476) | private boolean isValidEntity(final String entity) {
    method inArray (line 480) | private static boolean inArray(final String s, final String[] array) {
    method allowed (line 489) | private boolean allowed(final String name) {
    method allowedAttribute (line 493) | private boolean allowedAttribute(final String name, final String param...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/http/HttpUtils.java
  class HttpUtils (line 20) | public class HttpUtils {
    method sendGet (line 29) | public static String sendGet(String url, String param) {
    method sendGet (line 41) | public static String sendGet(String url, String param, String contentT...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/id/IdUtils.java
  class IdUtils (line 11) | public class IdUtils {
    method simpleUUID (line 16) | public static String simpleUUID() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/id/IdWorker.java
  class IdWorker (line 20) | public class IdWorker {
    method IdWorker (line 93) | public IdWorker() {
    method IdWorker (line 102) | public IdWorker(long workerId, long dataCenterId) {
    method nextId (line 116) | public static synchronized long nextId() {
    method tilNextMillis (line 155) | protected static long tilNextMillis(long lastTimestamp) {
    method timeGen (line 168) | protected static long timeGen() {
    method main (line 172) | public static void main(String[] args) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/ip/AddressUtils.java
  class AddressUtils (line 16) | public class AddressUtils {
    method getRealAddressByIP (line 30) | public static String getRealAddressByIP(String ip) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/ip/IpUtils.java
  class IpUtils (line 15) | public class IpUtils {
    method getIpAddr (line 22) | public static String getIpAddr(HttpServletRequest request) {
    method internalIp (line 50) | public static boolean internalIp(String ip) {
    method internalIp (line 60) | private static boolean internalIp(byte[] addr) {
    method textToNumericFormatV4 (line 97) | public static byte[] textToNumericFormatV4(String text) {
    method getHostIp (line 169) | public static String getHostIp() {
    method getHostName (line 181) | public static String getHostName() {
    method getMultistageReverseProxyIp (line 194) | public static String getMultistageReverseProxyIp(String ip) {
    method isUnknown (line 213) | public static boolean isUnknown(String checkString) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/message/MessageUtils.java
  class MessageUtils (line 13) | public class MessageUtils {
    method message (line 20) | public static String message(String code, Object... args) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/servlet/ServletUtils.java
  class ServletUtils (line 20) | public class ServletUtils {
    method renderString (line 27) | public static void renderString(ResponseResult responseResult, HttpSer...
    method renderString (line 36) | public static void renderString(String str, HttpServletResponse respon...
    method getRequest (line 50) | public static HttpServletRequest getRequest() {
    method getRequestAttributes (line 57) | public static ServletRequestAttributes getRequestAttributes() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/spring/SpringUtils.java
  class SpringUtils (line 16) | @Component
    method postProcessBeanFactory (line 29) | @Override
    method setApplicationContext (line 34) | @Override
    method getBean (line 44) | public static <T> T getBean(Class<T> clazz) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/string/StrUtils.java
  class StrUtils (line 19) | public class StrUtils extends StringUtils {
    method format (line 44) | public static String format(String str, Object... params) {
    method isHttp (line 80) | public static boolean isHttp(String link) {
    method isNullBlank (line 90) | public static boolean isNullBlank(Object value) {
    method isNotNullBlank (line 102) | public static boolean isNotNullBlank(Object value) {
    method replacePre (line 113) | public static String replacePre(String value, String[] matchList) {
    method toCamelCase (line 129) | public static String toCamelCase(String value) {
    method toCamelCase (line 140) | public static String toCamelCase(String value, boolean isFirstUpperCas...
    method isArrayContains (line 171) | public static boolean isArrayContains(String[] array, String value) {
    method endsWithIgnoreCase (line 182) | public static boolean endsWithIgnoreCase(String value, String[] array) {
    method toFirstUpperCase (line 198) | public static String toFirstUpperCase(String value) {
    method getRandom (line 211) | public static String getRandom(String str, int length) {
    method matches (line 229) | public static boolean matches(String str, List<String> strList) {
    method isMatch (line 251) | public static boolean isMatch(String pattern, String url) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/util/thread/Threads.java
  class Threads (line 14) | public class Threads {
    method sleep (line 21) | public static void sleep(long milliseconds) {
    method shutdownAndAwaitTermination (line 36) | public static void shutdownAndAwaitTermination(ExecutorService pool) {
    method printException (line 56) | public static void printException(Runnable r, Throwable t) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/web/response/ResponseResult.java
  class ResponseResult (line 16) | @ApiModel("统一响应")
    method success (line 30) | public static ResponseResult success() {
    method success (line 34) | public static <T> ResponseResult success(T data) {
    method success (line 38) | public static <T> ResponseResult success(String message, T data) {
    method success (line 42) | public static <T> ResponseResult success(int code, String message, T d...
    method fail (line 46) | public static ResponseResult fail(String message) {
    method fail (line 50) | public static ResponseResult fail(int code) {
    method fail (line 54) | public static ResponseResult fail(int code, String message) {
    method fail (line 58) | public static <T> ResponseResult fail(int code, String message, T data) {
    method ResponseResult (line 62) | public ResponseResult(int code, String message, T data) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-core/src/main/java/com/geshanzsq/common/core/web/vo/BaseVO.java
  class BaseVO (line 16) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/config/ResourceConfig.java
  class ResourceConfig (line 15) | @Configuration
    method addResourceHandlers (line 21) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/config/WebConfig.java
  class WebConfig (line 22) | @Configuration
    method mappingJackson2HttpMessageConverter (line 25) | @Bean

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/exception/FileException.java
  class FileException (line 12) | public class FileException extends BaseException {
    method FileException (line 16) | public FileException(String message) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/property/FileUploadProperty.java
  class FileUploadProperty (line 15) | @Data
    method getFileImageBasePath (line 51) | public String getFileImageBasePath() {
    method getFileMaxSize (line 55) | public Long getFileMaxSize() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/service/FileService.java
  type FileService (line 11) | public interface FileService {
    method upload (line 19) | String upload(MultipartFile file, String[] allowExtensions);
    method upload (line 26) | String upload(MultipartFile file);
    method uploadImage (line 33) | String uploadImage(MultipartFile file);
    method uploadPicture (line 42) | String uploadPicture(String moduleName, MultipartFile file);

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/service/impl/FileServiceImpl.java
  class FileServiceImpl (line 31) | @Service
    method upload (line 45) | @Override
    method upload (line 55) | @Override
    method uploadImage (line 65) | @Override
    method upload (line 77) | private String upload(String baseDirectory, MultipartFile file, String...
    method uploadPicture (line 125) | @Override
    method getFileMapPath (line 136) | private String getFileMapPath(String baseDirectory, String filePathNam...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/util/FileUploadUtils.java
  class FileUploadUtils (line 33) | public class FileUploadUtils {
    method isAllowedExtension (line 43) | public static boolean isAllowedExtension(String extension, String[] al...
    method getUploadFilePath (line 57) | public static String getUploadFilePath(String extension) {
    method getAbsoluteFile (line 68) | public static File getAbsoluteFile(String baseDirectory, String filePa...
    method urlToMultipartFile (line 88) | public static MultipartFile urlToMultipartFile(String url) throws Exce...
    method getExtension (line 120) | public static String getExtension(MultipartFile file) {
    method getFileMd5 (line 128) | public static String getFileMd5(MultipartFile file) {
    method getFileNameByUrl (line 146) | private static String getFileNameByUrl(String url) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/file/util/MimeTypeUtils.java
  class MimeTypeUtils (line 9) | public class MimeTypeUtils {
    method getExtension (line 45) | public static String getExtension(String fileContentType) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/manager/AsyncManager.java
  class AsyncManager (line 16) | public class AsyncManager {
    method AsyncManager (line 31) | private AsyncManager() {
    method me (line 36) | public static AsyncManager me() {
    method execute (line 45) | public void execute(TimerTask task) {
    method execute (line 52) | public void execute(Runnable runnable) {
    method shutdown (line 59) | public void shutdown() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/page/dto/PageDTO.java
  class PageDTO (line 16) | @ApiModel("分页对象")

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/page/util/PageUtils.java
  class PageUtils (line 17) | public class PageUtils {
    method startPage (line 22) | public static void startPage(PageDTO pageDTO) {
    method startPage (line 31) | public static void startPage(Long pageNum, Long pageSize) {
    method getPage (line 49) | public static <T> PageVO<T> getPage(List<T> list) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/page/vo/PageVO.java
  class PageVO (line 18) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/plugin/constant/FieldConstant.java
  class FieldConstant (line 9) | public class FieldConstant {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/plugin/enums/QueryWay.java
  type QueryWay (line 9) | public enum QueryWay {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/plugin/interceptor/InsertUpdateMyBatisInterceptor.java
  class InsertUpdateMyBatisInterceptor (line 22) | public class InsertUpdateMyBatisInterceptor {
    method intercept (line 30) | public static Object intercept(Invocation invocation, Long currentUser...
    method setParameter (line 72) | private static void setParameter(SqlCommandType sqlCommandType, Object...
    method setParameterIdValue (line 95) | private static void setParameterIdValue(Object clazz) {
    method setParameterValue (line 128) | private static void setParameterValue(Object clazz, String fieldName, ...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/plugin/query/LambdaQueryWrapperPlus.java
  class LambdaQueryWrapperPlus (line 17) | public class LambdaQueryWrapperPlus<T> extends LambdaQueryWrapper<T> {
    method likeIf (line 22) | public LambdaQueryWrapperPlus<T> likeIf(SFunction<T, ?> column, String...
    method like (line 26) | @Override
    method eqIf (line 34) | public LambdaQueryWrapperPlus<T> eqIf(SFunction<T, ?> column, Object v...
    method eq (line 38) | @Override
    method inIf (line 46) | public LambdaQueryWrapperPlus<T> inIf(SFunction<T, ?> column, Collecti...
    method in (line 50) | @Override
    method notInIf (line 58) | public LambdaQueryWrapperPlus<T> notInIf(SFunction<T, ?> column, Colle...
    method notIn (line 62) | @Override
    method ltIf (line 70) | public LambdaQueryWrapperPlus<T> ltIf(SFunction<T, ?> column, Object v...
    method lt (line 74) | @Override
    method leIf (line 82) | public LambdaQueryWrapperPlus<T> leIf(SFunction<T, ?> column, Object v...
    method le (line 86) | @Override
    method gtIf (line 94) | public LambdaQueryWrapperPlus<T> gtIf(SFunction<T, ?> column, Object v...
    method gt (line 98) | @Override
    method geIf (line 106) | public LambdaQueryWrapperPlus<T> geIf(SFunction<T, ?> column, Object v...
    method ge (line 110) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/plugin/query/QueryWrapperPlus.java
  class QueryWrapperPlus (line 31) | public class QueryWrapperPlus<T> extends QueryWrapper<T> {
    method buildQueryWrapper (line 48) | public <D> QueryWrapperPlus<T> buildQueryWrapper(Class<T> clazz, D d, ...
    method getQueryFieldName (line 112) | private String getQueryFieldName(Query query, Field field) {
    method verifyQueryFieldNameExist (line 119) | private void verifyQueryFieldNameExist(String fieldName, Map<String, S...
    method getFieldValue (line 129) | private <D> Object getFieldValue(Field field, D d) {
    method buildQueryCondition (line 151) | private void buildQueryCondition(QueryWrapperPlus queryWrapper, Query ...
    method buildOrderByCondition (line 232) | private <D> void buildOrderByCondition(QueryWrapperPlus queryWrapper, ...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/property/PageProperty.java
  class PageProperty (line 13) | @Getter
    method setDefaultPageSize (line 27) | @Value("${page.default-page-size}")
    method setMaxPageSize (line 32) | @Value("${page.max-page-size}")

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/mybatis/util/MybatisUtils.java
  class MybatisUtils (line 13) | public class MybatisUtils {
    method buildPage (line 18) | public static <T> Page<T> buildPage(PageDTO pageDTO) {
    method buildPage (line 31) | public static <T> Page<T> buildPage(Long pageNum, Long pageSize) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/thread/config/ThreadPoolConfig.java
  class ThreadPoolConfig (line 21) | @Configuration
    method threadPoolTaskExecutor (line 31) | @Bean(name = "threadPoolTaskExecutor")
    method scheduledExecutorService (line 46) | @Bean(name = "scheduledExecutorService")

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/thread/property/ThreadPoolProperty.java
  class ThreadPoolProperty (line 13) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/web/controller/BaseController.java
  class BaseController (line 9) | public class BaseController {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/web/mapper/BaseMapperPlus.java
  type BaseMapperPlus (line 22) | public interface BaseMapperPlus<T> extends BaseMapper<T> {
    method selectPage (line 27) | default PageVO<T> selectPage(PageDTO pageDTO, @Param("ew") Wrapper<T> ...
    method selectPage (line 41) | default <D> PageVO<T> selectPage(D d, SFunction<T, ?>... selectColumns) {
    method selectList (line 57) | default <D> List<T> selectList(D d, SFunction<T, ?>... selectColumns) {
    method selectOne (line 66) | default <D> T selectOne(D d) {
    method selectCount (line 75) | default <D> Long selectCount(D d) {
    method buildQueryWrapper (line 86) | default <D> QueryWrapperPlus<T> buildQueryWrapper(D d, SFunction<T, ?>...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/web/service/BaseService.java
  type BaseService (line 16) | public interface BaseService<T> extends IService<T> {
    method page (line 24) | <D> PageVO<T> page(D d, SFunction<T, ?>... selectColumns);
    method list (line 32) | default <D> List<T> list(D d, SFunction<T, ?>... selectColumns) {
    method getOne (line 41) | default <D> T getOne(D d) {
    method getOne (line 51) | default <D> T getOne(D d, boolean throwEx) {
    method count (line 60) | default <D> Long count(D d) {
    method buildQueryWrapper (line 71) | default <D> QueryWrapperPlus<T> buildQueryWrapper(D d, SFunction<T, ?>...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-framework/src/main/java/com/geshanzsq/common/framework/web/service/impl/BaseServiceImpl.java
  class BaseServiceImpl (line 16) | public class BaseServiceImpl<M extends BaseMapperPlus<T>, T> extends Ser...
    method page (line 27) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/aspect/LogAspect.java
  class LogAspect (line 36) | @Aspect
    method afterReturning (line 49) | @AfterReturning(pointcut = "@annotation(logAnnotation)", returning = "...
    method afterThrowing (line 61) | @AfterThrowing(pointcut = "@annotation(logAnnotation)", throwing = "ex...
    method dealLog (line 74) | private void dealLog(JoinPoint joinPoint, Log logAnnotation, Exception...
    method dealAnnotationParam (line 130) | private void dealAnnotationParam(JoinPoint joinPoint, Log logAnnotatio...
    method setRequestData (line 151) | private void setRequestData(JoinPoint joinPoint, LogDTO logDTO) {
    method argsArrayToString (line 165) | private String argsArrayToString(Object[] paramsArray) {
    method isFilterObject (line 189) | @SuppressWarnings("rawtypes")

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/constant/LogConstant.java
  class LogConstant (line 9) | public class LogConstant {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/dto/LogDTO.java
  class LogDTO (line 14) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/enums/BusinessType.java
  type BusinessType (line 9) | public enum BusinessType {
    method BusinessType (line 34) | BusinessType(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/enums/LogStatus.java
  type LogStatus (line 9) | public enum LogStatus {
    method LogStatus (line 23) | LogStatus(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/enums/OperateType.java
  type OperateType (line 9) | public enum OperateType {
    method OperateType (line 34) | OperateType(Integer code) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/factory/LogAsyncFactory.java
  class LogAsyncFactory (line 18) | public class LogAsyncFactory {
    method addLog (line 25) | public static TimerTask addLog(LogDTO logDTO) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/service/LogMqService.java
  type LogMqService (line 11) | public interface LogMqService {
    method addLogToMq (line 16) | void addLogToMq(LogDTO logDTO);

FILE: geshanzsq-nav-common/geshanzsq-nav-common-log/src/main/java/com/geshanzsq/common/log/service/impl/LogMqServiceImpl.java
  class LogMqServiceImpl (line 17) | @Service
    method addLogToMq (line 26) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-rate-limiter/src/main/java/com/geshanzsq/common/rate/limiter/aspect/RateLimiterAspect.java
  class RateLimiterAspect (line 24) | @Component
    method doBefore (line 31) | @Before("@annotation(rateLimiter)")
    method getLimitKey (line 44) | private String getLimitKey(JoinPoint joinPoint, RateLimiter rateLimite...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-rate-limiter/src/main/java/com/geshanzsq/common/rate/limiter/constant/RateLimitConstant.java
  class RateLimitConstant (line 9) | public class RateLimitConstant {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-rate-limiter/src/main/java/com/geshanzsq/common/rate/limiter/enums/RateLimiterType.java
  type RateLimiterType (line 9) | public enum RateLimiterType {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-rate-limiter/src/main/java/com/geshanzsq/common/rate/limiter/exception/RateLimiterException.java
  class RateLimiterException (line 9) | public class RateLimiterException extends RuntimeException {
    method RateLimiterException (line 17) | public RateLimiterException(String message) {
    method RateLimiterException (line 22) | public RateLimiterException(String message, Throwable e) {
    method getMessage (line 27) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-redis/src/main/java/com/geshanzsq/common/redis/config/FastJson2JsonRedisSerializer.java
  class FastJson2JsonRedisSerializer (line 21) | public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<...
    method FastJson2JsonRedisSerializer (line 34) | public FastJson2JsonRedisSerializer(Class<T> clazz) {
    method serialize (line 39) | @Override
    method deserialize (line 47) | @Override
    method setObjectMapper (line 56) | public void setObjectMapper(ObjectMapper objectMapper) {
    method getJavaType (line 61) | protected JavaType getJavaType(Class<?> clazz) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-redis/src/main/java/com/geshanzsq/common/redis/config/RedisConfig.java
  class RedisConfig (line 22) | @Configuration
    method redisTemplate (line 29) | @Bean

FILE: geshanzsq-nav-common/geshanzsq-nav-common-redis/src/main/java/com/geshanzsq/common/redis/service/RedisService.java
  class RedisService (line 19) | @Service
    method set (line 46) | public <T> void set(String key, T value) {
    method set (line 58) | public <T> void set(String key, T value, long expire, TimeUnit timeUni...
    method expire (line 67) | public boolean expire(String key, long expire) {
    method expire (line 77) | public boolean expire(String key, long expire, TimeUnit timeUnit) {
    method get (line 85) | public <T> T get(String key) {
    method keys (line 94) | public Collection<String> keys(String pattern) {
    method delete (line 102) | public boolean delete(String key) {
    method delete (line 110) | public long delete(Collection collection) {
    method getExpireTime (line 118) | public Long getExpireTime(String key) {
    method limit (line 129) | public boolean limit(String key, int time, int count) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/constant/SecurityConstant.java
  class SecurityConstant (line 9) | public class SecurityConstant {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/domain/ApiPermission.java
  class ApiPermission (line 11) | @Data

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/domain/LoginUserDetail.java
  class LoginUserDetail (line 15) | @Data
    method getAuthorities (line 68) | @Override
    method getPassword (line 73) | @Override
    method getUsername (line 78) | @Override
    method isAccountNonExpired (line 83) | @Override
    method isAccountNonLocked (line 88) | @Override
    method isCredentialsNonExpired (line 93) | @Override
    method isEnabled (line 98) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/handler/AccessDeniedExceptionHandler.java
  class AccessDeniedExceptionHandler (line 18) | @RestControllerAdvice
    method handleAuthorizationException (line 23) | @ExceptionHandler(AccessDeniedException.class)

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/handler/AuthenticationEntryPointImpl.java
  class AuthenticationEntryPointImpl (line 25) | @Component
    method commence (line 32) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/handler/LogoutSuccessHandlerImpl.java
  class LogoutSuccessHandlerImpl (line 23) | @Component
    method onLogoutSuccess (line 30) | @Override

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/property/SecurityProperty.java
  class SecurityProperty (line 13) | @ConfigurationProperties(prefix = "security")

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/property/TokenProperty.java
  class TokenProperty (line 13) | @Component

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/service/TokenService.java
  type TokenService (line 14) | public interface TokenService {
    method createLoginUser (line 20) | String createLoginUser(LoginUserDetail loginUser);
    method getLoginUser (line 25) | LoginUserDetail getLoginUser();
    method getLoginUser (line 31) | LoginUserDetail getLoginUser(HttpServletRequest request);
    method deleteLoginUser (line 38) | boolean deleteLoginUser(HttpServletRequest request, Long userId);
    method setRefreshPermission (line 46) | void setRefreshPermission(Long userId, String token, boolean hasRefresh);
    method setNeedRefreshPermission (line 52) | void setNeedRefreshPermission(Long userId);
    method setNeedRefreshPermission (line 58) | void setNeedRefreshPermission(List<Long> userIds);
    method hasRefreshPermission (line 65) | boolean hasRefreshPermission(Long userId, String token);
    method setLoginUserCache (line 73) | void setLoginUserCache(String token, LoginUserDetail loginUser, long e...
    method getTokenExpireTime (line 79) | Long getTokenExpireTime(String token);
    method getToken (line 84) | String getToken();

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/service/impl/AuthorizationService.java
  class AuthorizationService (line 21) | @Service("auth")
    method hasUrl (line 29) | public boolean hasUrl() {
    method hasPerm (line 47) | public boolean hasPerm(String permissionCode) {
    method hasRole (line 72) | public boolean hasRole(String roleCode) {
    method verifyUrlPermission (line 92) | private boolean verifyUrlPermission(String requestPath, List<ApiPermis...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/service/impl/TokenServiceImpl.java
  class TokenServiceImpl (line 27) | @Service
    method createLoginUser (line 40) | @Override
    method getLoginUser (line 52) | @Override
    method getLoginUser (line 61) | @Override
    method deleteLoginUser (line 81) | @Override
    method setRefreshPermission (line 99) | @Override
    method setNeedRefreshPermission (line 109) | @Override
    method setNeedRefreshPermission (line 123) | @Override
    method hasRefreshPermission (line 138) | @Override
    method setLoginUserCache (line 151) | @Override
    method getTokenExpireTime (line 167) | @Override
    method getToken (line 176) | @Override
    method getToken (line 185) | public String getToken(HttpServletRequest request) {
    method getTokenKey (line 201) | private String getTokenKey(String token) {
    method getRefreshPermissionKey (line 212) | private String getRefreshPermissionKey(Long userId, String token) {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-security/src/main/java/com/geshanzsq/framework/security/util/SecurityUtils.java
  class SecurityUtils (line 17) | public class SecurityUtils {
    method getUserId (line 22) | public static Long getUserId() {
    method getUsername (line 29) | public static String getUsername() {
    method getLoginUser (line 36) | public static LoginUserDetail getLoginUser() {
    method getAuthentication (line 47) | public static Authentication getAuthentication() {
    method encryptPassword (line 56) | public static String encryptPassword(String password) {
    method matchesPassword (line 68) | public static boolean matchesPassword(String rawPassword, String encod...

FILE: geshanzsq-nav-common/geshanzsq-nav-common-swagger/src/main/java/com/geshanzsq/common/swagger/config/SwaggerConfig.java
  class SwaggerConfig (line 22) | @Configuration
    method defaultApi2 (line 29) | @Bean("defaultApi2")
    method apiInfo (line 48) | private ApiInfo apiInfo() {

FILE: geshanzsq-nav-common/geshanzsq-nav-common-swagger/src/main/java/com/geshanzsq/common/swagger/property/SwaggerProperty.java
  class SwaggerProperty (line 13) | @Configuration

FILE: sql/geshanzsq_nav.sql
  type `log_login` (line 24) | CREATE TABLE `log_login`  (
  type `log_operation` (line 46) | CREATE TABLE `log_operation`  (
  type `nav_category` (line 75) | CREATE TABLE `nav_category`  (
  type `nav_comment` (line 150) | CREATE TABLE `nav_comment`  (
  type `nav_picture` (line 174) | CREATE TABLE `nav_picture`  (
  type `nav_site` (line 194) | CREATE TABLE `nav_site`  (
  type `nav_site_config` (line 696) | CREATE TABLE `nav_site_config`  (

FILE: vue-geshanzsq-nav/src/api/auth/login.js
  function login (line 4) | function login(data) {
  function getCaptchaImage (line 13) | function getCaptchaImage() {
  function logout (line 21) | function logout() {

FILE: vue-geshanzsq-nav/src/api/auth/user.js
  function getUserInfo (line 4) | function getUserInfo() {

FILE: vue-geshanzsq-nav/src/api/client/comment.js
  function getOpenStatus (line 6) | function getOpenStatus() {
  function getTree (line 16) | function getTree() {
  function add (line 26) | function add(data) {

FILE: vue-geshanzsq-nav/src/api/client/nav.js
  function categorySiteList (line 6) | function categorySiteList() {
  function categoryList (line 16) | function categoryList() {

FILE: vue-geshanzsq-nav/src/api/client/search.js
  function siteList (line 3) | function siteList(searchContent) {
  function categorySiteList (line 10) | function categorySiteList(searchContent) {

FILE: vue-geshanzsq-nav/src/api/common/bing.js
  function getBingImage (line 4) | function getBingImage() {

FILE: vue-geshanzsq-nav/src/api/nav/category.js
  function list (line 3) | function list(params) {
  function tree (line 11) | function tree(params) {
  function getById (line 19) | function getById(id) {
  function add (line 26) | function add(data) {
  function update (line 34) | function update(data) {
  function remove (line 42) | function remove(ids) {
  function getMaxSortByParentId (line 49) | function getMaxSortByParentId(parentId) {

FILE: vue-geshanzsq-nav/src/api/nav/comment.js
  function page (line 3) | function page(params) {
  function pass (line 11) | function pass(ids) {
  function reject (line 18) | function reject(data) {
  function sticky (line 26) | function sticky(id) {
  function cancleSticky (line 33) | function cancleSticky(id) {
  function remove (line 40) | function remove(ids) {

FILE: vue-geshanzsq-nav/src/api/nav/config.js
  function getConfig (line 3) | function getConfig() {
  function update (line 10) | function update(data) {
  function getAbout (line 18) | function getAbout() {

FILE: vue-geshanzsq-nav/src/api/nav/index.js
  function getStatistics (line 3) | function getStatistics() {

FILE: vue-geshanzsq-nav/src/api/nav/picture.js
  function uploadSite (line 6) | function uploadSite(data) {
  function uploadAvavar (line 17) | function uploadAvavar(data) {

FILE: vue-geshanzsq-nav/src/api/nav/site.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function getMaxSortByCategoryId (line 41) | function getMaxSortByCategoryId(categoryId) {
  function updateClickCount (line 54) | function updateClickCount(id) {

FILE: vue-geshanzsq-nav/src/api/system/api/api.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function getMaxSortByCategoryId (line 41) | function getMaxSortByCategoryId(apiCategoryId) {

FILE: vue-geshanzsq-nav/src/api/system/api/category.js
  function page (line 3) | function page(params) {
  function list (line 11) | function list() {
  function getById (line 18) | function getById(id) {
  function add (line 25) | function add(data) {
  function update (line 33) | function update(data) {
  function remove (line 41) | function remove(ids) {
  function getMaxSort (line 48) | function getMaxSort() {

FILE: vue-geshanzsq-nav/src/api/system/dictionary/data.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function getMaxSortByDictionaryId (line 41) | function getMaxSortByDictionaryId(dictionaryId) {

FILE: vue-geshanzsq-nav/src/api/system/dictionary/dictionary.js
  function page (line 3) | function page(params) {
  function list (line 11) | function list() {
  function getById (line 18) | function getById(id) {
  function add (line 25) | function add(data) {
  function update (line 33) | function update(data) {
  function remove (line 41) | function remove(ids) {
  function getMaxSort (line 48) | function getMaxSort() {
  function getAllDictionaryInfo (line 55) | function getAllDictionaryInfo() {

FILE: vue-geshanzsq-nav/src/api/system/log/login.js
  function page (line 3) | function page(params) {

FILE: vue-geshanzsq-nav/src/api/system/log/operation.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {

FILE: vue-geshanzsq-nav/src/api/system/menu.js
  function list (line 3) | function list(params) {
  function tree (line 11) | function tree() {
  function getById (line 18) | function getById(id) {
  function getMaxSortByParentId (line 25) | function getMaxSortByParentId(parentId) {
  function add (line 35) | function add(data) {
  function update (line 43) | function update(data) {
  function remove (line 51) | function remove(id) {
  function authApiList (line 58) | function authApiList(params) {
  function authApi (line 66) | function authApi(data) {

FILE: vue-geshanzsq-nav/src/api/system/param.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function getMaxSort (line 41) | function getMaxSort() {

FILE: vue-geshanzsq-nav/src/api/system/role.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function getMaxSort (line 41) | function getMaxSort() {
  function userAuthPage (line 48) | function userAuthPage(params) {
  function userUnAuthPage (line 56) | function userUnAuthPage(params) {
  function authUser (line 64) | function authUser(data) {
  function removeAuthUser (line 72) | function removeAuthUser(data) {

FILE: vue-geshanzsq-nav/src/api/system/user.js
  function page (line 3) | function page(params) {
  function getById (line 11) | function getById(id) {
  function add (line 18) | function add(data) {
  function update (line 26) | function update(data) {
  function remove (line 34) | function remove(ids) {
  function resetPassword (line 41) | function resetPassword(data) {
  function userUpdateInfo (line 49) | function userUpdateInfo(data) {
  function resetUserPassword (line 57) | function resetUserPassword(data) {

FILE: vue-geshanzsq-nav/src/directive/index.js
  function directive (line 4) | function directive(app) {

FILE: vue-geshanzsq-nav/src/directive/permission/hasPermission.js
  method mounted (line 7) | mounted(el, binding, vnode) {

FILE: vue-geshanzsq-nav/src/directive/permission/hasRole.js
  method mounted (line 9) | mounted(el, binding, vnode) {

FILE: vue-geshanzsq-nav/src/plugins/auth.js
  function authPermission (line 5) | function authPermission(permission) {
  function authRole (line 15) | function authRole(role) {
  method hasPermi (line 28) | hasPermi(permission) {
  method hasPermiOr (line 32) | hasPermiOr(permissions) {
  method hasPermiAnd (line 38) | hasPermiAnd(permissions) {
  method hasRole (line 44) | hasRole(role) {
  method hasRoleOr (line 48) | hasRoleOr(roles) {
  method hasRoleAnd (line 54) | hasRoleAnd(roles) {

FILE: vue-geshanzsq-nav/src/plugins/cache.js
  method set (line 2) | set(key, value) {
  method get (line 10) | get(key) {
  method setJSON (line 19) | setJSON(key, jsonValue) {
  method getJSON (line 24) | getJSON(key) {
  method remove (line 30) | remove(key) {
  method set (line 35) | set(key, value) {
  method get (line 43) | get(key) {
  method setJSON (line 52) | setJSON(key, jsonValue) {
  method getJSON (line 57) | getJSON(key) {
  method remove (line 63) | remove(key) {

FILE: vue-geshanzsq-nav/src/plugins/index.js
  function installPlugins (line 4) | function installPlugins(app) {

FILE: vue-geshanzsq-nav/src/plugins/modal.js
  method msg (line 12) | msg(content) {
  method msgError (line 16) | msgError(content) {
  method msgSuccess (line 20) | msgSuccess(content) {
  method msgWarning (line 24) | msgWarning(content) {
  method alert (line 28) | alert(content) {
  method alertError (line 32) | alertError(content) {
  method alertSuccess (line 36) | alertSuccess(content) {
  method alertWarning (line 40) | alertWarning(content) {
  method notify (line 44) | notify(content) {
  method notifyError (line 48) | notifyError(content) {
  method notifySuccess (line 52) | notifySuccess(content) {
  method notifyWarning (line 56) | notifyWarning(content) {
  method confirm (line 60) | confirm(content) {
  method prompt (line 68) | prompt(content) {
  method loading (line 76) | loading(content) {
  method closeLoading (line 84) | closeLoading() {

FILE: vue-geshanzsq-nav/src/plugins/tab.js
  method refreshPage (line 6) | refreshPage(obj) {
  method closeOpenPage (line 26) | closeOpenPage(obj) {
  method closePage (line 33) | closePage(obj) {
  method closeAllPage (line 44) | closeAllPage() {
  method closeLeftPage (line 48) | closeLeftPage(obj) {
  method closeRightPage (line 55) | closeRightPage(obj) {
  method closeOtherPage (line 62) | closeOtherPage(obj) {
  method openPage (line 69) | openPage(url) {
  method updatePage (line 73) | updatePage(obj) {

FILE: vue-geshanzsq-nav/src/store/index.js
  function setupStore (line 17) | function setupStore(app) {

FILE: vue-geshanzsq-nav/src/store/modules/app.js
  method toggleSideBar (line 53) | toggleSideBar({ commit }) {
  method closeSideBar (line 56) | closeSideBar({ commit }, { withoutAnimation }) {
  method toggleDevice (line 59) | toggleDevice({ commit }, device) {
  method setSize (line 62) | setSize({ commit }, size) {
  method toggleSideBarHide (line 65) | toggleSideBarHide({ commit }, status) {

FILE: vue-geshanzsq-nav/src/store/modules/dictionary.js
  method getAllDictionaryInfo (line 18) | async getAllDictionaryInfo({ commit }) {

FILE: vue-geshanzsq-nav/src/store/modules/permission.js
  method generateRoutes (line 42) | async generateRoutes({ commit, state }) {
  function filterAsyncRouter (line 64) | function filterAsyncRouter(asyncRouterMap, lastRouter = false, type = fa...
  function filterChildren (line 91) | function filterChildren(childrenMap, lastRouter = false) {
  function filterDynamicRoutes (line 118) | function filterDynamicRoutes(routes) {

FILE: vue-geshanzsq-nav/src/store/modules/settings.js
  method changeSetting (line 81) | changeSetting({ commit }, data) {
  method setSearchOpen (line 85) | setSearchOpen({ commit }, data) {
  method setShowSiteDescription (line 89) | setShowSiteDescription({ commit }, data) {
  method setShowCount (line 93) | setShowCount({ commit }, data) {

FILE: vue-geshanzsq-nav/src/store/modules/tagsView.js
  method addView (line 109) | addView({ dispatch }, view) {
  method addVisitedView (line 113) | addVisitedView({ commit }, view) {
  method addCachedView (line 116) | addCachedView({ commit }, view) {
  method delView (line 120) | delView({ dispatch, state }, view) {
  method delVisitedView (line 130) | delVisitedView({ commit, state }, view) {
  method delCachedView (line 136) | delCachedView({ commit, state }, view) {
  method delOthersViews (line 143) | delOthersViews({ dispatch, state }, view) {
  method delOthersVisitedViews (line 153) | delOthersVisitedViews({ commit, state }, view) {
  method delOthersCachedViews (line 159) | delOthersCachedViews({ commit, state }, view) {
  method delAllViews (line 166) | delAllViews({ dispatch, state }, view) {
  method delAllVisitedViews (line 176) | delAllVisitedViews({ commit, state }) {
  method delAllCachedViews (line 182) | delAllCachedViews({ commit, state }) {
  method updateVisitedView (line 189) | updateVisitedView({ commit }, view) {
  method delRightTags (line 193) | delRightTags({ commit }, view) {
  method delLeftTags (line 200) | delLeftTags({ commit }, view) {

FILE: vue-geshanzsq-nav/src/store/modules/user.js
  method login (line 50) | login({ commit }, userInfo) {
  method getUserInfo (line 74) | async getUserInfo({ commit }) {
  method logout (line 85) | async logout({ commit }) {
  method setAvatar (line 98) | setAvatar({ commit }, data) {
  method setToken (line 102) | setToken({ commit }, data) {

FILE: vue-geshanzsq-nav/src/utils/auth.js
  function getToken (line 5) | function getToken() {
  function setToken (line 9) | function setToken(token) {
  function removeToken (line 13) | function removeToken() {

FILE: vue-geshanzsq-nav/src/utils/download.js
  function zip (line 3) | function zip(data, zipName) {

FILE: vue-geshanzsq-nav/src/utils/dynamicTitle.js
  function useDynamicTitle (line 7) | function useDynamicTitle(metaTitle) {

FILE: vue-geshanzsq-nav/src/utils/geshanzsq.js
  function parseTime (line 9) | function parseTime(time, cFormat) {
  function formatTime (line 51) | function formatTime(time, option) {
  function resetForm (line 90) | function resetForm(refName) {
  function addDateRange (line 97) | function addDateRange(params, dateRange, propName) {
  function getDictionaryLabel (line 121) | function getDictionaryLabel(dictionaryCode, value) {
  function getDictionaryData (line 134) | function getDictionaryData(dictionaryCode, value) {
  function getDictionary (line 155) | function getDictionary(dictionaryCode) {
  function sprintf (line 169) | function sprintf(str) {
  function parseStrEmpty (line 185) | function parseStrEmpty(str) {
  function mergeRecursive (line 193) | function mergeRecursive(source, target) {
  function handleTree (line 215) | function handleTree(data, id, parentId, children) {
  function tansParams (line 263) | function tansParams(params) {
  function getNormalPath (line 286) | function getNormalPath(p) {
  function blobValidate (line 298) | async function blobValidate(data) {
  function copyText (line 312) | function copyText(text) {
  function getPictureShowUrl (line 325) | function getPictureShowUrl(picturePath, isProjectImage) {
  function getHost (line 337) | function getHost() {
  function openSite (line 344) | function openSite(siteUrl) {

FILE: vue-geshanzsq-nav/src/utils/scroll-to.js
  function move (line 26) | function move(amount) {
  function position (line 32) | function position() {
  function scrollTo (line 45) | function scrollTo(to, duration, callback) {

FILE: vue-geshanzsq-nav/src/utils/validate.js
  function isExternal (line 4) | function isExternal(path) {
  function isArray (line 11) | function isArray(arg) {
  function isHttp (line 21) | function isHttp(url) {

FILE: vue-geshanzsq-nav/vue.config.js
  function resolve (line 2) | function resolve(dir) {
  method chainWebpack (line 62) | chainWebpack(config) {
Condensed preview — 519 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,604K chars).
[
  {
    "path": ".gitignore",
    "chars": 629,
    "preview": "######################################################################\n# Build Tools\n\n.gradle\n/build/\n!gradle/wrapper/gr"
  },
  {
    "path": "LICENSE",
    "chars": 11358,
    "preview": "                                 Apache License\n                           Version 2.0, January 2004\n                   "
  },
  {
    "path": "README.md",
    "chars": 9296,
    "preview": "# 格姗导航网站\n\n一个基于 Spring Boot、MyBatis Plus、Vue3、Element Plus 前后端分离的导航网站系统,在线演示地址:[https://gesdh.cn](https://gesdh.cn)。由于工作和"
  },
  {
    "path": "docker/mysql/conf.d/my.cnf",
    "chars": 969,
    "preview": "###### [client]配置模块 ######\n[client]\ndefault-character-set=utf8mb4\nsocket=/var/lib/mysql/mysql.sock\n\n###### [mysql]配置模块 #"
  },
  {
    "path": "docker/mysql/docker-compose.yml",
    "chars": 809,
    "preview": "version: '3'\nservices:\n  mysql: # 服务名称\n    image: mysql:8.0.18 # 或其它mysql版本\n    container_name: mysql8 # 容器名称\n    enviro"
  },
  {
    "path": "docker/mysql/geshanzsq_nav.sql",
    "chars": 201187,
    "preview": "/*\n Navicat Premium Data Transfer\n\n Source Server         : localhost\n Source Server Type    : MySQL\n Source Server Vers"
  },
  {
    "path": "docker/nginx/conf.d/gesdh.cn.conf",
    "chars": 534,
    "preview": "server {\n    listen       80;\n    server_name  localhost;\n\n    # 前端项目,代理到 docker 容器\n    location / {\n        proxy_pass "
  },
  {
    "path": "docker/nginx/docker-compose.yml",
    "chars": 509,
    "preview": "version: '3'\nservices:\n  nginx:\n    restart: always\n    container_name: nginx\n    image: nginx\n    # 使用宿主机网络\n    # netwo"
  },
  {
    "path": "docker/nginx/nginx.conf",
    "chars": 3086,
    "preview": "\n#user  nobody;\nworker_processes  1;\n\n#error_log  logs/error.log;\n#error_log  logs/error.log  notice;\n#error_log  logs/e"
  },
  {
    "path": "docker/project/backend/Dockerfile",
    "chars": 392,
    "preview": "# AdoptOpenJDK 停止发布 OpenJDK 二进制,而 Eclipse Temurin 是它的延伸,提供更好的稳定性\nFROM eclipse-temurin:8-jre\n\n# 创建一个目录用于存放应用\nRUN mkdir /a"
  },
  {
    "path": "docker/project/backend/application-prod.yml",
    "chars": 1455,
    "preview": "# 数据库配置\nspring:\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://127.0.0.1:3306/gesha"
  },
  {
    "path": "docker/project/backend/docker-compose.yml",
    "chars": 519,
    "preview": "version: '3'\n\nservices:\n  gesdh-cn-backend:\n    container_name: gesdh-cn-backend\n    # 最终生成的镜像名称\n    image: gesdh-cn-bac"
  },
  {
    "path": "docker/project/backend/start.sh",
    "chars": 73,
    "preview": "#!/bin/bash\ndocker-compose up -d --build\ndocker logs -f gesdh-cn-backend\n"
  },
  {
    "path": "docker/project/frontend/Dockerfile",
    "chars": 116,
    "preview": "FROM nginx:alpine\nCOPY dist/ /usr/share/nginx/html/\nCOPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf\nEXPOSE 80"
  },
  {
    "path": "docker/project/frontend/docker-compose.yml",
    "chars": 394,
    "preview": "version: '3'\nservices:\n  gesdh-cn-frontend:\n    container_name: gesdh-cn-frontend\n    # 最终生成的镜像名称\n    image: gesdh-cn-fr"
  },
  {
    "path": "docker/project/frontend/nginx/nginx.conf",
    "chars": 317,
    "preview": "server {\n    listen       80;\n    server_name  localhost;\n\n    location / {\n        root   /usr/share/nginx/html;\n      "
  },
  {
    "path": "docker/project/frontend/start.sh",
    "chars": 74,
    "preview": "#!/bin/bash\ndocker-compose up -d --build\ndocker logs -f gesdh-cn-frontend\n"
  },
  {
    "path": "docker/redis/docker-compose.yml",
    "chars": 311,
    "preview": "version: '3'\nservices:\n  redis:\n    image: redis:latest\n    container_name: redis\n    restart: always\n    ports:\n      -"
  },
  {
    "path": "docker/redis/redis.conf",
    "chars": 1976,
    "preview": "# Redis 服务器的端口号(默认:6379)\nport 6379\n\n# 绑定的 IP 地址,如果设置为 127.0.0.1,则只能本地访问;若设置为 0.0.0.0,则监听所有接口(默认:127.0.0.1)\nbind 0.0.0.0\n"
  },
  {
    "path": "docker/start.sh",
    "chars": 457,
    "preview": "#!/bin/bash\n\n# 进入各目录并启动服务\ncd mysql && docker-compose up -d && cd ..\necho \"MySQL8 启动成功\"\ncd redis && docker-compose up -d "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/pom.xml",
    "chars": 2480,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/GeshanzsqNavAdminApplication.java",
    "chars": 592,
    "preview": "package com.geshanzsq.admin;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.boot.SpringApp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/constant/NavClientConstant.java",
    "chars": 585,
    "preview": "package com.geshanzsq.admin.client.nav.constant;\n\n/**\n * 导航客户端常量\n *\n * @author geshanzsq\n * @date 2023/1/7\n */\npublic cl"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/controller/ClientNavCommentController.java",
    "chars": 1640,
    "preview": "package com.geshanzsq.admin.client.nav.controller;\n\nimport com.geshanzsq.admin.client.nav.dto.ClientNavCommentAddDTO;\nim"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/controller/ClientNavController.java",
    "chars": 1562,
    "preview": "package com.geshanzsq.admin.client.nav.controller;\n\nimport com.geshanzsq.admin.client.nav.service.ClientNavService;\nimpo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/dto/ClientNavCommentAddDTO.java",
    "chars": 801,
    "preview": "package com.geshanzsq.admin.client.nav.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/mapstruct/ClientNavConverter.java",
    "chars": 525,
    "preview": "package com.geshanzsq.admin.client.nav.mapstruct;\n\nimport com.geshanzsq.admin.client.nav.vo.NavCategoryClientVO;\nimport "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/service/ClientNavService.java",
    "chars": 591,
    "preview": "package com.geshanzsq.admin.client.nav.service;\n\nimport com.geshanzsq.admin.client.nav.vo.NavCategoryClientVO;\nimport co"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/service/impl/ClientNavServiceImpl.java",
    "chars": 10260,
    "preview": "package com.geshanzsq.admin.client.nav.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryW"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/util/NavClientCategoryUtils.java",
    "chars": 2808,
    "preview": "package com.geshanzsq.admin.client.nav.util;\n\nimport com.geshanzsq.admin.client.nav.vo.NavCategoryClientVO;\nimport org.s"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/util/NavClientUtils.java",
    "chars": 2267,
    "preview": "package com.geshanzsq.admin.client.nav.util;\n\nimport com.geshanzsq.admin.client.nav.vo.NavCategoryClientVO;\nimport com.g"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/ClientNavCommentTreeVO.java",
    "chars": 1003,
    "preview": "package com.geshanzsq.admin.client.nav.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMod"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavCategoryClientVO.java",
    "chars": 732,
    "preview": "package com.geshanzsq.admin.client.nav.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMod"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavCategorySiteClientVO.java",
    "chars": 799,
    "preview": "package com.geshanzsq.admin.client.nav.vo;\n\nimport com.geshanzsq.admin.nav.site.vo.NavSiteClientVO;\nimport io.swagger.an"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/nav/vo/NavClientListVO.java",
    "chars": 697,
    "preview": "package com.geshanzsq.admin.client.nav.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMod"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/search/controller/ClientSearchController.java",
    "chars": 1598,
    "preview": "package com.geshanzsq.admin.client.search.controller;\n\nimport com.geshanzsq.admin.client.nav.service.ClientNavService;\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/client/search/vo/NavClientSiteSearchVO.java",
    "chars": 691,
    "preview": "package com.geshanzsq.admin.client.search.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.Api"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/controller/BingController.java",
    "chars": 1045,
    "preview": "package com.geshanzsq.admin.core.bing.controller;\n\nimport com.geshanzsq.admin.core.bing.util.BingUtils;\nimport com.gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/util/BingUtils.java",
    "chars": 760,
    "preview": "package com.geshanzsq.admin.core.bing.util;\n\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.JSONObject;\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/bing/vo/BingImageVO.java",
    "chars": 527,
    "preview": "package com.geshanzsq.admin.core.bing.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/constant/CaptchaConstant.java",
    "chars": 343,
    "preview": "package com.geshanzsq.admin.core.captcha.constant;\n\n/**\n * 验证码常量\n *\n * @author geshanzsq\n * @date 2022/6/12\n */\npublic c"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/controller/CaptchaController.java",
    "chars": 1831,
    "preview": "package com.geshanzsq.admin.core.captcha.controller;\n\nimport com.geshanzsq.admin.core.captcha.constant.CaptchaConstant;\n"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/captcha/vo/CaptchaImageVO.java",
    "chars": 493,
    "preview": "package com.geshanzsq.admin.core.captcha.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/InsertUpdateMyBatisInterceptorConfig.java",
    "chars": 1184,
    "preview": "package com.geshanzsq.admin.core.config;\n\nimport com.geshanzsq.common.framework.mybatis.plugin.interceptor.InsertUpdateM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/MyBatisPlusConfig.java",
    "chars": 800,
    "preview": "package com.geshanzsq.admin.core.config;\n\nimport com.baomidou.mybatisplus.annotation.DbType;\nimport com.baomidou.mybatis"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/config/XssFilterConfig.java",
    "chars": 1802,
    "preview": "package com.geshanzsq.admin.core.config;\n\nimport com.geshanzsq.common.core.filter.XssFilter;\nimport com.geshanzsq.common"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/exception/GlobalExceptionHandler.java",
    "chars": 3778,
    "preview": "package com.geshanzsq.admin.core.exception;\n\nimport com.geshanzsq.common.core.constant.HttpStatus;\nimport com.geshanzsq."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/controller/AuthController.java",
    "chars": 1217,
    "preview": "package com.geshanzsq.admin.core.security.auth.controller;\n\nimport com.geshanzsq.admin.core.security.auth.dto.AuthLoginD"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/dto/AuthLoginDTO.java",
    "chars": 904,
    "preview": "package com.geshanzsq.admin.core.security.auth.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotatio"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/filter/TokenAuthenticationFilter.java",
    "chars": 2567,
    "preview": "package com.geshanzsq.admin.core.security.auth.filter;\n\nimport com.geshanzsq.admin.system.user.service.SysUserService;\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/AuthService.java",
    "chars": 352,
    "preview": "package com.geshanzsq.admin.core.security.auth.service;\n\nimport com.geshanzsq.admin.core.security.auth.dto.AuthLoginDTO;"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/impl/AuthServiceImpl.java",
    "chars": 4873,
    "preview": "package com.geshanzsq.admin.core.security.auth.service.impl;\n\nimport com.geshanzsq.admin.core.captcha.constant.CaptchaCo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/service/impl/UserDetailsServiceImpl.java",
    "chars": 1243,
    "preview": "package com.geshanzsq.admin.core.security.auth.service.impl;\n\nimport com.geshanzsq.admin.system.user.service.SysUserServ"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/auth/vo/AuthLoginVO.java",
    "chars": 431,
    "preview": "package com.geshanzsq.admin.core.security.auth.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/core/security/config/SecurityConfig.java",
    "chars": 4611,
    "preview": "package com.geshanzsq.admin.core.security.config;\n\nimport com.geshanzsq.admin.core.security.auth.filter.TokenAuthenticat"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/controller/NavCategoryController.java",
    "chars": 3538,
    "preview": "package com.geshanzsq.admin.nav.category.controller;\n\nimport com.geshanzsq.admin.nav.category.dto.NavCategoryAddDTO;\nimp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryAddDTO.java",
    "chars": 1038,
    "preview": "package com.geshanzsq.admin.nav.category.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.Api"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryListDTO.java",
    "chars": 935,
    "preview": "package com.geshanzsq.admin.nav.category.dto;\n\nimport com.geshanzsq.common.framework.mybatis.plugin.annotation.Query;\nim"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/dto/NavCategoryUpdateDTO.java",
    "chars": 1155,
    "preview": "package com.geshanzsq.admin.nav.category.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.Api"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/mapper/NavCategoryMapper.java",
    "chars": 474,
    "preview": "package com.geshanzsq.admin.nav.category.mapper;\n\nimport com.geshanzsq.admin.nav.category.po.NavCategory;\nimport com.ges"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/mapstrcut/NavCategoryConverter.java",
    "chars": 1225,
    "preview": "package com.geshanzsq.admin.nav.category.mapstruct;\n\nimport com.geshanzsq.admin.client.nav.vo.NavCategoryClientVO;\nimpor"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/po/NavCategory.java",
    "chars": 1070,
    "preview": "package com.geshanzsq.admin.nav.category.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/service/NavCategoryService.java",
    "chars": 846,
    "preview": "package com.geshanzsq.admin.nav.category.service;\n\nimport com.geshanzsq.admin.nav.category.dto.NavCategoryUpdateDTO;\nimp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/service/impl/NavCategoryServiceImpl.java",
    "chars": 6359,
    "preview": "package com.geshanzsq.admin.nav.category.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQuer"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/vo/NavCategoryTreeVO.java",
    "chars": 781,
    "preview": "package com.geshanzsq.admin.nav.category.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/category/vo/NavCategoryVO.java",
    "chars": 804,
    "preview": "package com.geshanzsq.admin.nav.category.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotati"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/constant/NavCommentConstant.java",
    "chars": 375,
    "preview": "package com.geshanzsq.admin.nav.comment.constant;\n\n/**\n * 评论常量\n *\n * @author geshanzsq\n * @date 2023/4/15\n */\npublic cla"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/controller/NavCommentController.java",
    "chars": 3223,
    "preview": "package com.geshanzsq.admin.nav.comment.controller;\n\nimport com.geshanzsq.admin.nav.comment.dto.NavCommentPageDTO;\nimpor"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/dto/NavCommentPageDTO.java",
    "chars": 854,
    "preview": "package com.geshanzsq.admin.nav.comment.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimport com"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/dto/NavCommentRejectDTO.java",
    "chars": 616,
    "preview": "package com.geshanzsq.admin.nav.comment.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/enums/NavCommentStatus.java",
    "chars": 375,
    "preview": "package com.geshanzsq.admin.nav.comment.enums;\n\n/**\n * 评论状态\n *\n * @author geshanzsq\n * @date 2022/11/30\n */\npublic enum "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/mapper/NavCommentMapper.java",
    "chars": 354,
    "preview": "package com.geshanzsq.admin.nav.comment.mapper;\n\nimport com.geshanzsq.admin.nav.comment.po.NavComment;\nimport com.geshan"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/mapstruct/NavCommentConverter.java",
    "chars": 880,
    "preview": "package com.geshanzsq.admin.nav.comment.mapstruct;\n\nimport com.geshanzsq.admin.client.nav.dto.ClientNavCommentAddDTO;\nim"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/po/NavComment.java",
    "chars": 1189,
    "preview": "package com.geshanzsq.admin.nav.comment.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/service/NavCommentService.java",
    "chars": 1341,
    "preview": "package com.geshanzsq.admin.nav.comment.service;\n\nimport com.geshanzsq.admin.client.nav.dto.ClientNavCommentAddDTO;\nimpo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/service/impl/NavCommentServiceImpl.java",
    "chars": 10685,
    "preview": "package com.geshanzsq.admin.nav.comment.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQuery"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/comment/vo/NavCommentVO.java",
    "chars": 986,
    "preview": "package com.geshanzsq.admin.nav.comment.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotatio"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/controller/NavSiteConfigController.java",
    "chars": 2030,
    "preview": "package com.geshanzsq.admin.nav.config.controller;\n\nimport com.geshanzsq.admin.nav.config.dto.NavSiteConfigUpdateDTO;\nim"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/dto/NavSiteConfigUpdateDTO.java",
    "chars": 663,
    "preview": "package com.geshanzsq.admin.nav.config.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/mapper/NavSiteConfigMapper.java",
    "chars": 427,
    "preview": "package com.geshanzsq.admin.nav.config.mapper;\n\nimport com.geshanzsq.admin.nav.config.po.NavSiteConfig;\nimport com.gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/mapstruct/NavSiteConfigConverter.java",
    "chars": 886,
    "preview": "package com.geshanzsq.admin.nav.config.mapstruct;\n\nimport com.geshanzsq.admin.nav.config.dto.NavSiteConfigUpdateDTO;\nimp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/po/NavSiteConfig.java",
    "chars": 1050,
    "preview": "package com.geshanzsq.admin.nav.config.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.m"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/service/NavSiteConfigService.java",
    "chars": 703,
    "preview": "package com.geshanzsq.admin.nav.config.service;\n\nimport com.geshanzsq.admin.nav.config.dto.NavSiteConfigUpdateDTO;\nimpor"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/service/impl/NavSiteConfigServiceImpl.java",
    "chars": 3152,
    "preview": "package com.geshanzsq.admin.nav.config.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryW"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/vo/NavSiteConfigAboutVO.java",
    "chars": 715,
    "preview": "package com.geshanzsq.admin.nav.config.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMod"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/config/vo/NavSiteConfigVO.java",
    "chars": 781,
    "preview": "package com.geshanzsq.admin.nav.config.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/controller/NavIndexController.java",
    "chars": 1053,
    "preview": "package com.geshanzsq.admin.nav.index.controller;\n\nimport com.geshanzsq.admin.nav.index.service.NavIndexService;\nimport "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/service/NavIndexService.java",
    "chars": 278,
    "preview": "package com.geshanzsq.admin.nav.index.service;\n\nimport com.geshanzsq.admin.nav.index.vo.NavIndexStatisticsVO;\n\n/**\n * 后台"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/service/impl/NavIndexServiceImpl.java",
    "chars": 1319,
    "preview": "package com.geshanzsq.admin.nav.index.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWr"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/index/vo/NavIndexStatisticsVO.java",
    "chars": 566,
    "preview": "package com.geshanzsq.admin.nav.index.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/constant/NavPictureConstant.java",
    "chars": 435,
    "preview": "package com.geshanzsq.admin.nav.picture.constant;\n\n/**\n * 导航图片\n *\n * @author geshanzsq\n * @date 2022/12/11\n */\npublic cl"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/controller/NavPictureController.java",
    "chars": 2939,
    "preview": "package com.geshanzsq.admin.nav.picture.controller;\n\nimport com.geshanzsq.admin.nav.picture.constant.NavPictureConstant;"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/mapper/NavPictureMapper.java",
    "chars": 356,
    "preview": "package com.geshanzsq.admin.nav.picture.mapper;\n\nimport com.geshanzsq.admin.nav.picture.po.NavPicture;\nimport com.geshan"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/mapstrcut/NavPictureConverter.java",
    "chars": 315,
    "preview": "package com.geshanzsq.admin.nav.picture.mapstrcut;\n\nimport org.mapstruct.Mapper;\nimport org.mapstruct.factory.Mappers;\n\n"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/po/NavPicture.java",
    "chars": 963,
    "preview": "package com.geshanzsq.admin.nav.picture.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/service/NavPictureService.java",
    "chars": 521,
    "preview": "package com.geshanzsq.admin.nav.picture.service;\n\nimport com.geshanzsq.admin.nav.picture.po.NavPicture;\nimport com.gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/service/impl/NavPictureServiceImpl.java",
    "chars": 2203,
    "preview": "package com.geshanzsq.admin.nav.picture.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQuery"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/picture/vo/NavPictureUploadVO.java",
    "chars": 608,
    "preview": "package com.geshanzsq.admin.nav.picture.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/constant/NavSiteClientConstant.java",
    "chars": 252,
    "preview": "package com.geshanzsq.admin.nav.site.constant;\n\n/**\n * 导航网站常量\n *\n * @author geshanzsq\n * @date 2023/1/7\n */\npublic class"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/controller/NavSiteController.java",
    "chars": 3165,
    "preview": "package com.geshanzsq.admin.nav.site.controller;\n\nimport com.geshanzsq.admin.nav.site.dto.NavSiteAddDTO;\nimport com.gesh"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteAddDTO.java",
    "chars": 1398,
    "preview": "package com.geshanzsq.admin.nav.site.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteListUserImportDTO.java",
    "chars": 603,
    "preview": "package com.geshanzsq.admin.nav.site.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSitePageDTO.java",
    "chars": 757,
    "preview": "package com.geshanzsq.admin.nav.site.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimport com.ge"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteUpdateDTO.java",
    "chars": 1453,
    "preview": "package com.geshanzsq.admin.nav.site.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/dto/NavSiteUpdateSortDTO.java",
    "chars": 655,
    "preview": "package com.geshanzsq.admin.nav.site.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMode"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/mapper/NavSiteMapper.java",
    "chars": 1117,
    "preview": "package com.geshanzsq.admin.nav.site.mapper;\n\nimport com.geshanzsq.admin.client.search.vo.NavClientSiteSearchVO;\nimport "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/mapstrcut/NavSiteConverter.java",
    "chars": 1271,
    "preview": "package com.geshanzsq.admin.nav.site.mapstruct;\n\nimport com.geshanzsq.admin.nav.site.dto.NavSiteAddDTO;\nimport com.gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/po/NavSite.java",
    "chars": 1271,
    "preview": "package com.geshanzsq.admin.nav.site.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.myb"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/service/NavSiteService.java",
    "chars": 1209,
    "preview": "package com.geshanzsq.admin.nav.site.service;\n\nimport com.geshanzsq.admin.client.search.vo.NavClientSiteSearchVO;\nimport"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/service/impl/NavSiteServiceImpl.java",
    "chars": 5209,
    "preview": "package com.geshanzsq.admin.nav.site.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWra"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteClientVO.java",
    "chars": 744,
    "preview": "package com.geshanzsq.admin.nav.site.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModel"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteLatestCollectVO.java",
    "chars": 765,
    "preview": "package com.geshanzsq.admin.nav.site.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModel"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteMatchVO.java",
    "chars": 568,
    "preview": "package com.geshanzsq.admin.nav.site.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiModel"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/java/com/geshanzsq/admin/nav/site/vo/NavSiteVO.java",
    "chars": 1044,
    "preview": "package com.geshanzsq.admin.nav.site.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotations."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/application-dev.yml",
    "chars": 1451,
    "preview": "# 数据库配置\nspring:\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://localhost:3306/gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/application-prod.yml",
    "chars": 1415,
    "preview": "# 数据库配置\nspring:\n  datasource:\n    driver-class-name: com.mysql.cj.jdbc.Driver\n    url: jdbc:mysql://127.0.0.1:3306/gesha"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/application.yml",
    "chars": 1794,
    "preview": "# 服务配置\nserver:\n  # 端口\n  port: 8083\n  servlet:\n    # 应用访问路径\n    context-path: /geshanzsq-nav-api\n  tomcat:\n    # tomcat u"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/i18n/message.properties",
    "chars": 1871,
    "preview": "# 操作\noperate.success=操作成功\noperate.fail=操作失败\n\n# 系统异常\nsystem.exception=系统错误,请联系管理员\nbad.request.method=请求接口方式不支持\n\n# 安全框架\nse"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/logback-spring.xml",
    "chars": 2188,
    "preview": "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n<configuration>\n\n    <!-- 日志依赖的渲染类 -->\n    <conversionRule conversionWord=\"clr\" c"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/mapper/nav/category/NavCategoryMapper.xml",
    "chars": 1144,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/mapper/nav/config/NavSiteConfigMapper.xml",
    "chars": 410,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-application/src/main/resources/mapper/nav/site/NavSiteMapper.xml",
    "chars": 3718,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE mapper PUBLIC \"-//mybatis.org//DTD Mapper 3.0//EN\" \"http://mybatis.org"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/pom.xml",
    "chars": 1032,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<project xmlns=\"http://maven.apache.org/POM/4.0.0\"\n         xmlns:xsi=\"http://www"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/controller/SysApiCategoryController.java",
    "chars": 3733,
    "preview": "package com.geshanzsq.admin.system.api.controller;\n\nimport com.geshanzsq.admin.system.api.dto.SysApiCategoryAddDTO;\nimpo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/controller/SysApiController.java",
    "chars": 3284,
    "preview": "package com.geshanzsq.admin.system.api.controller;\n\nimport com.geshanzsq.admin.system.api.dto.SysApiAddDTO;\nimport com.g"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiAddDTO.java",
    "chars": 1261,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryAddDTO.java",
    "chars": 903,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryPageDTO.java",
    "chars": 769,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimport com."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiCategoryUpdateDTO.java",
    "chars": 1029,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiPageDTO.java",
    "chars": 1078,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimport com."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/dto/SysApiUpdateDTO.java",
    "chars": 1379,
    "preview": "package com.geshanzsq.admin.system.api.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiMo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiCategoryMapper.java",
    "chars": 426,
    "preview": "package com.geshanzsq.admin.system.api.mapper;\n\nimport com.geshanzsq.admin.system.api.po.SysApiCategory;\nimport com.gesh"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiMapper.java",
    "chars": 1034,
    "preview": "package com.geshanzsq.admin.system.api.mapper;\n\nimport com.geshanzsq.admin.system.api.po.SysApi;\nimport com.geshanzsq.ad"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapper/SysApiMenuMapper.java",
    "chars": 352,
    "preview": "package com.geshanzsq.admin.system.api.mapper;\n\nimport com.geshanzsq.admin.system.api.po.SysApiMenu;\nimport com.geshanzs"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapstruct/SysApiCategoryConverter.java",
    "chars": 981,
    "preview": "package com.geshanzsq.admin.system.api.mapstruct;\n\nimport com.geshanzsq.admin.system.api.dto.SysApiCategoryAddDTO;\nimpor"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/mapstruct/SysApiConverter.java",
    "chars": 903,
    "preview": "package com.geshanzsq.admin.system.api.mapstruct;\n\nimport com.geshanzsq.admin.system.api.dto.SysApiAddDTO;\nimport com.ge"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApi.java",
    "chars": 1235,
    "preview": "package com.geshanzsq.admin.system.api.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.m"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApiCategory.java",
    "chars": 1017,
    "preview": "package com.geshanzsq.admin.system.api.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.m"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/po/SysApiMenu.java",
    "chars": 606,
    "preview": "package com.geshanzsq.admin.system.api.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.m"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiCategoryService.java",
    "chars": 579,
    "preview": "package com.geshanzsq.admin.system.api.service;\n\nimport com.geshanzsq.admin.system.api.po.SysApiCategory;\nimport com.ges"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiMenuService.java",
    "chars": 297,
    "preview": "package com.geshanzsq.admin.system.api.service;\n\nimport com.geshanzsq.admin.system.api.po.SysApiMenu;\nimport com.geshanz"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/SysApiService.java",
    "chars": 1015,
    "preview": "package com.geshanzsq.admin.system.api.service;\n\nimport com.geshanzsq.admin.system.api.po.SysApi;\nimport com.geshanzsq.a"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiCategoryServiceImpl.java",
    "chars": 2275,
    "preview": "package com.geshanzsq.admin.system.api.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryW"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiMenuServiceImpl.java",
    "chars": 545,
    "preview": "package com.geshanzsq.admin.system.api.service.impl;\n\nimport com.geshanzsq.admin.system.api.mapper.SysApiMenuMapper;\nimp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/service/impl/SysApiServiceImpl.java",
    "chars": 3415,
    "preview": "package com.geshanzsq.admin.system.api.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryW"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/vo/SysApiCategoryVO.java",
    "chars": 740,
    "preview": "package com.geshanzsq.admin.system.api.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/api/vo/SysApiVO.java",
    "chars": 916,
    "preview": "package com.geshanzsq.admin.system.api.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/controller/SysDictionaryController.java",
    "chars": 4049,
    "preview": "package com.geshanzsq.admin.system.dictionary.controller;\n\nimport com.geshanzsq.admin.system.dictionary.dto.SysDictionar"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/controller/SysDictionaryDataController.java",
    "chars": 3757,
    "preview": "package com.geshanzsq.admin.system.dictionary.controller;\n\nimport com.geshanzsq.admin.system.dictionary.dto.SysDictionar"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryAddDTO.java",
    "chars": 1029,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataAddDTO.java",
    "chars": 1305,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.an"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataPageDTO.java",
    "chars": 946,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimpo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryDataUpdateDTO.java",
    "chars": 1427,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.an"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryPageDTO.java",
    "chars": 861,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimpo"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/dto/SysDictionaryUpdateDTO.java",
    "chars": 1147,
    "preview": "package com.geshanzsq.admin.system.dictionary.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotation"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapper/SysDictionaryDataMapper.java",
    "chars": 512,
    "preview": "package com.geshanzsq.admin.system.dictionary.mapper;\n\nimport com.geshanzsq.admin.system.dictionary.po.SysDictionaryData"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapper/SysDictionaryMapper.java",
    "chars": 648,
    "preview": "package com.geshanzsq.admin.system.dictionary.mapper;\n\nimport com.geshanzsq.admin.system.dictionary.po.SysDictionary;\nim"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapstruct/SysDictionaryConverter.java",
    "chars": 997,
    "preview": "package com.geshanzsq.admin.system.dictionary.mapstruct;\n\nimport com.geshanzsq.admin.system.dictionary.dto.SysDictionary"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/mapstruct/SysDictionaryDataConverter.java",
    "chars": 972,
    "preview": "package com.geshanzsq.admin.system.dictionary.mapstruct;\n\nimport com.geshanzsq.admin.system.dictionary.dto.SysDictionary"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/po/SysDictionary.java",
    "chars": 1087,
    "preview": "package com.geshanzsq.admin.system.dictionary.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.bao"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/po/SysDictionaryData.java",
    "chars": 1273,
    "preview": "package com.geshanzsq.admin.system.dictionary.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.bao"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/SysDictionaryDataService.java",
    "chars": 453,
    "preview": "package com.geshanzsq.admin.system.dictionary.service;\n\nimport com.geshanzsq.admin.system.dictionary.po.SysDictionaryDat"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/SysDictionaryService.java",
    "chars": 743,
    "preview": "package com.geshanzsq.admin.system.dictionary.service;\n\nimport com.geshanzsq.admin.system.dictionary.po.SysDictionary;\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/impl/SysDictionaryDataServiceImpl.java",
    "chars": 993,
    "preview": "package com.geshanzsq.admin.system.dictionary.service.impl;\n\nimport com.geshanzsq.admin.system.dictionary.mapper.SysDict"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/service/impl/SysDictionaryServiceImpl.java",
    "chars": 2702,
    "preview": "package com.geshanzsq.admin.system.dictionary.service.impl;\n\nimport com.baomidou.mybatisplus.core.conditions.query.Lambd"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/DictionaryDataInfoVO.java",
    "chars": 660,
    "preview": "package com.geshanzsq.admin.system.dictionary.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/DictionaryInfoVO.java",
    "chars": 684,
    "preview": "package com.geshanzsq.admin.system.dictionary.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/SysDictionaryDataVO.java",
    "chars": 965,
    "preview": "package com.geshanzsq.admin.system.dictionary.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.ann"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/dictionary/vo/SysDictionaryVO.java",
    "chars": 807,
    "preview": "package com.geshanzsq.admin.system.dictionary.vo;\n\nimport com.geshanzsq.common.core.web.vo.BaseVO;\nimport io.swagger.ann"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/controller/LogLoginController.java",
    "chars": 1541,
    "preview": "package com.geshanzsq.admin.system.log.login.controller;\n\nimport com.geshanzsq.admin.system.log.login.dto.LogLoginPageDT"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/dto/LogLoginAddDTO.java",
    "chars": 921,
    "preview": "package com.geshanzsq.admin.system.log.login.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/dto/LogLoginPageDTO.java",
    "chars": 1289,
    "preview": "package com.geshanzsq.admin.system.log.login.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\nimpor"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/enums/LogLoginStatus.java",
    "chars": 333,
    "preview": "package com.geshanzsq.admin.system.log.login.enums;\n\n/**\n * 登录日志状态\n *\n * @author geshanzsq\n * @date 2022/7/3\n */\npublic "
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/factory/LogLoginAsyncFactory.java",
    "chars": 2289,
    "preview": "package com.geshanzsq.admin.system.log.login.factory;\n\nimport com.geshanzsq.admin.system.log.login.po.LogLogin;\nimport c"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/mapper/LogLoginMapper.java",
    "chars": 358,
    "preview": "package com.geshanzsq.admin.system.log.login.mapper;\n\nimport com.geshanzsq.admin.system.log.login.po.LogLogin;\nimport co"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/mapstruct/LogLoginConverter.java",
    "chars": 703,
    "preview": "package com.geshanzsq.admin.system.log.login.mapstruct;\n\nimport com.geshanzsq.admin.system.log.login.dto.LogLoginAddDTO;"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/po/LogLogin.java",
    "chars": 1183,
    "preview": "package com.geshanzsq.admin.system.log.login.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baom"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/service/LogLoginService.java",
    "chars": 302,
    "preview": "package com.geshanzsq.admin.system.log.login.service;\n\nimport com.geshanzsq.admin.system.log.login.po.LogLogin;\nimport c"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/service/impl/LogLoginServiceImpl.java",
    "chars": 677,
    "preview": "package com.geshanzsq.admin.system.log.login.service.impl;\n\nimport com.geshanzsq.admin.system.log.login.mapper.LogLoginM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/login/vo/LogLoginVO.java",
    "chars": 908,
    "preview": "package com.geshanzsq.admin.system.log.login.vo;\n\nimport io.swagger.annotations.ApiModelProperty;\nimport lombok.Data;\n\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/config/LogMqConfig.java",
    "chars": 1503,
    "preview": "package com.geshanzsq.admin.system.log.operation.config;\n\nimport com.geshanzsq.admin.system.log.operation.mq.LogOperatio"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/controller/LogOperationController.java",
    "chars": 1816,
    "preview": "package com.geshanzsq.admin.system.log.operation.controller;\n\nimport com.geshanzsq.admin.system.log.operation.dto.LogOpe"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/dto/LogOperationPageDTO.java",
    "chars": 1237,
    "preview": "package com.geshanzsq.admin.system.log.operation.dto;\n\nimport com.geshanzsq.common.framework.mybatis.page.dto.PageDTO;\ni"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mapper/LogOperationMapper.java",
    "chars": 634,
    "preview": "package com.geshanzsq.admin.system.log.operation.mapper;\n\nimport com.geshanzsq.admin.system.log.operation.dto.LogOperati"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mapstruct/LogOperationConverter.java",
    "chars": 601,
    "preview": "package com.geshanzsq.admin.system.log.operation.mapstruct;\n\nimport com.geshanzsq.admin.system.log.operation.po.LogOpera"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/mq/LogOperationMq.java",
    "chars": 1036,
    "preview": "package com.geshanzsq.admin.system.log.operation.mq;\n\nimport com.alibaba.fastjson.JSONObject;\nimport com.geshanzsq.admin"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/po/LogOperation.java",
    "chars": 1540,
    "preview": "package com.geshanzsq.admin.system.log.operation.po;\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com."
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/service/LogOperationService.java",
    "chars": 696,
    "preview": "package com.geshanzsq.admin.system.log.operation.service;\n\nimport com.geshanzsq.admin.system.log.operation.dto.LogOperat"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/service/impl/LogOperationServiceImpl.java",
    "chars": 2432,
    "preview": "package com.geshanzsq.admin.system.log.operation.service.impl;\n\nimport com.geshanzsq.admin.system.log.operation.dto.LogO"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/log/operation/vo/LogOperationVo.java",
    "chars": 1656,
    "preview": "package com.geshanzsq.admin.system.log.operation.vo;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotati"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/constant/MenuConstant.java",
    "chars": 422,
    "preview": "package com.geshanzsq.admin.system.menu.constant;\n\n/**\n * 菜单常量\n *\n * @author geshanzsq\n * @date 2022/6/12\n */\npublic cla"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/controller/SysMenuController.java",
    "chars": 4220,
    "preview": "package com.geshanzsq.admin.system.menu.controller;\n\nimport com.geshanzsq.admin.system.api.service.SysApiService;\nimport"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuAddDTO.java",
    "chars": 1569,
    "preview": "package com.geshanzsq.admin.system.menu.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuAuthApiDTO.java",
    "chars": 634,
    "preview": "package com.geshanzsq.admin.system.menu.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuListDTO.java",
    "chars": 913,
    "preview": "package com.geshanzsq.admin.system.menu.dto;\n\nimport com.geshanzsq.common.framework.mybatis.plugin.annotation.Query;\nimp"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/dto/SysMenuUpdateDTO.java",
    "chars": 1684,
    "preview": "package com.geshanzsq.admin.system.menu.dto;\n\nimport io.swagger.annotations.ApiModel;\nimport io.swagger.annotations.ApiM"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuShowStatus.java",
    "chars": 326,
    "preview": "package com.geshanzsq.admin.system.menu.enums;\n\n/**\n * 显示状态\n *\n * @author geshanzsq\n * @date 2022/6/12\n */\npublic enum M"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuStatus.java",
    "chars": 320,
    "preview": "package com.geshanzsq.admin.system.menu.enums;\n\n/**\n * 菜单状态\n *\n * @author geshanzsq\n * @date 2022/3/26\n */\npublic enum M"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/enums/MenuType.java",
    "chars": 361,
    "preview": "package com.geshanzsq.admin.system.menu.enums;\n\n/**\n * 菜单类型\n *\n * @author geshanzsq\n * @date 2022/3/26\n */\npublic enum M"
  },
  {
    "path": "geshanzsq-nav-admin/geshanzsq-nav-admin-system/src/main/java/com/geshanzsq/admin/system/menu/mapper/SysMenuMapper.java",
    "chars": 1558,
    "preview": "package com.geshanzsq.admin.system.menu.mapper;\n\nimport com.geshanzsq.admin.system.menu.po.SysMenu;\nimport com.geshanzsq"
  }
]

// ... and 319 more files (download for full content)

About this extraction

This page contains the full source code of the geshanzsq/geshanzsq-nav GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 519 files (58.4 MB), approximately 449.0k tokens, and a symbol index with 1239 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!