Full Code of fl1906/music-city for AI

master 5df22da88efb cached
1013 files
14.9 MB
1.2M tokens
4063 symbols
1 requests
Download .txt
Showing preview only (5,139K chars total). Download the full file or copy to clipboard to get everything.
Repository: fl1906/music-city
Branch: master
Commit: 5df22da88efb
Files: 1013
Total size: 14.9 MB

Directory structure:
gitextract_aag72qvb/

├── .editorconfig
├── .gitee/
│   ├── ISSUE_TEMPLATE.zh-CN.md
│   └── PULL_REQUEST_TEMPLATE.zh-CN.md
├── .gitignore
├── .run/
│   ├── ruoyi-monitor-admin.run.xml
│   ├── ruoyi-server.run.xml
│   └── ruoyi-xxl-job-admin.run.xml
├── .vscode/
│   └── settings.json
├── LICENSE
├── PaiZhiCheng/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   ├── Main.java
│           │   └── top/
│           │       └── flya/
│           │           └── system/
│           │               ├── common/
│           │               │   ├── BatchUtils.java
│           │               │   └── CheckUtils.java
│           │               ├── config/
│           │               │   ├── ClientCache.java
│           │               │   ├── DbTemplate.java
│           │               │   ├── Event.java
│           │               │   ├── ServerConfig.java
│           │               │   ├── ServerRunner.java
│           │               │   └── WsConfig.java
│           │               ├── controller/
│           │               │   ├── GaoDeMapController.java
│           │               │   ├── PzcActivityConnArtistController.java
│           │               │   ├── PzcActivityConnIntroController.java
│           │               │   ├── PzcActivityConnTagController.java
│           │               │   ├── PzcActivityController.java
│           │               │   ├── PzcActivityGroupApplyController.java
│           │               │   ├── PzcActivityGroupController.java
│           │               │   ├── PzcArtistController.java
│           │               │   ├── PzcIntroController.java
│           │               │   ├── PzcOfficialController.java
│           │               │   ├── PzcOrderController.java
│           │               │   ├── PzcOrganizerController.java
│           │               │   ├── PzcOrganizerTicketController.java
│           │               │   ├── PzcRegionController.java
│           │               │   ├── PzcTagController.java
│           │               │   ├── PzcUserCollectController.java
│           │               │   ├── PzcUserController.java
│           │               │   ├── PzcUserHistoryController.java
│           │               │   ├── PzcUserPhotoController.java
│           │               │   ├── PzcUserTalkController.java
│           │               │   ├── PzcViewPagerController.java
│           │               │   └── WxUserController.java
│           │               ├── domain/
│           │               │   ├── PzcActivity.java
│           │               │   ├── PzcActivityConnArtist.java
│           │               │   ├── PzcActivityConnIntro.java
│           │               │   ├── PzcActivityConnTag.java
│           │               │   ├── PzcActivityGroup.java
│           │               │   ├── PzcActivityGroupApply.java
│           │               │   ├── PzcArtist.java
│           │               │   ├── PzcIntro.java
│           │               │   ├── PzcOfficial.java
│           │               │   ├── PzcOrder.java
│           │               │   ├── PzcOrganizer.java
│           │               │   ├── PzcOrganizerTicket.java
│           │               │   ├── PzcRegion.java
│           │               │   ├── PzcTag.java
│           │               │   ├── PzcUser.java
│           │               │   ├── PzcUserCollect.java
│           │               │   ├── PzcUserHistory.java
│           │               │   ├── PzcUserPhoto.java
│           │               │   ├── PzcUserTalk.java
│           │               │   ├── PzcViewPager.java
│           │               │   ├── bo/
│           │               │   │   ├── PayOrderBo.java
│           │               │   │   ├── PzcActivityBo.java
│           │               │   │   ├── PzcActivityConnArtistBo.java
│           │               │   │   ├── PzcActivityConnIntroBo.java
│           │               │   │   ├── PzcActivityConnTagBo.java
│           │               │   │   ├── PzcActivityGroupApplyBo.java
│           │               │   │   ├── PzcActivityGroupBo.java
│           │               │   │   ├── PzcArtistBo.java
│           │               │   │   ├── PzcIntroBo.java
│           │               │   │   ├── PzcOfficialBo.java
│           │               │   │   ├── PzcOrderBo.java
│           │               │   │   ├── PzcOrganizerBo.java
│           │               │   │   ├── PzcOrganizerTicketBo.java
│           │               │   │   ├── PzcRegionBo.java
│           │               │   │   ├── PzcTagBo.java
│           │               │   │   ├── PzcUserBo.java
│           │               │   │   ├── PzcUserCollectBo.java
│           │               │   │   ├── PzcUserHistoryBo.java
│           │               │   │   ├── PzcUserPhotoBo.java
│           │               │   │   ├── PzcUserTalkBo.java
│           │               │   │   ├── PzcViewPagerBo.java
│           │               │   │   ├── RefurbishBo.java
│           │               │   │   ├── Resource.java
│           │               │   │   ├── SuccessCallBackObjBo.java
│           │               │   │   ├── UpdateMoneyBo.java
│           │               │   │   └── WxzApplyBo.java
│           │               │   └── vo/
│           │               │       ├── PzcActivityConnArtistVo.java
│           │               │       ├── PzcActivityConnIntroVo.java
│           │               │       ├── PzcActivityConnTagVo.java
│           │               │       ├── PzcActivityGroupApplyVo.java
│           │               │       ├── PzcActivityGroupVo.java
│           │               │       ├── PzcActivityVo.java
│           │               │       ├── PzcArtistVo.java
│           │               │       ├── PzcIntroVo.java
│           │               │       ├── PzcOfficialVo.java
│           │               │       ├── PzcOrderVo.java
│           │               │       ├── PzcOrganizerTicketVo.java
│           │               │       ├── PzcOrganizerVo.java
│           │               │       ├── PzcRegionVo.java
│           │               │       ├── PzcTagVo.java
│           │               │       ├── PzcUserCollectVo.java
│           │               │       ├── PzcUserHistoryVo.java
│           │               │       ├── PzcUserPhotoVo.java
│           │               │       ├── PzcUserTalkVo.java
│           │               │       ├── PzcUserVo.java
│           │               │       ├── PzcViewPagerVo.java
│           │               │       └── RefurbishVO.java
│           │               ├── entity/
│           │               │   ├── Activity.java
│           │               │   ├── ActivityConnArtist.java
│           │               │   ├── ActivityConnIntro.java
│           │               │   ├── ActivityConnTag.java
│           │               │   ├── Artist.java
│           │               │   ├── Event.java
│           │               │   ├── FLBaseEntity.java
│           │               │   ├── Intro.java
│           │               │   ├── Organizer.java
│           │               │   ├── OrganizerTicket.java
│           │               │   ├── Price.java
│           │               │   ├── Region.java
│           │               │   ├── Tag.java
│           │               │   └── ViewPager.java
│           │               ├── handel/
│           │               │   ├── MessageEventHandler.java
│           │               │   └── WxPayInitHandel.java
│           │               ├── mapper/
│           │               │   ├── PzcActivityConnArtistMapper.java
│           │               │   ├── PzcActivityConnIntroMapper.java
│           │               │   ├── PzcActivityConnTagMapper.java
│           │               │   ├── PzcActivityGroupApplyMapper.java
│           │               │   ├── PzcActivityGroupMapper.java
│           │               │   ├── PzcActivityMapper.java
│           │               │   ├── PzcArtistMapper.java
│           │               │   ├── PzcIntroMapper.java
│           │               │   ├── PzcOfficialMapper.java
│           │               │   ├── PzcOrderMapper.java
│           │               │   ├── PzcOrganizerMapper.java
│           │               │   ├── PzcOrganizerTicketMapper.java
│           │               │   ├── PzcRegionMapper.java
│           │               │   ├── PzcTagMapper.java
│           │               │   ├── PzcUserCollectMapper.java
│           │               │   ├── PzcUserHistoryMapper.java
│           │               │   ├── PzcUserMapper.java
│           │               │   ├── PzcUserPhotoMapper.java
│           │               │   ├── PzcUserTalkMapper.java
│           │               │   ├── PzcViewPagerMapper.java
│           │               │   └── RegionTreeMapper.java
│           │               ├── service/
│           │               │   ├── IPzcActivityConnArtistService.java
│           │               │   ├── IPzcActivityConnIntroService.java
│           │               │   ├── IPzcActivityConnTagService.java
│           │               │   ├── IPzcActivityGroupApplyService.java
│           │               │   ├── IPzcActivityGroupService.java
│           │               │   ├── IPzcActivityService.java
│           │               │   ├── IPzcArtistService.java
│           │               │   ├── IPzcIntroService.java
│           │               │   ├── IPzcOfficialService.java
│           │               │   ├── IPzcOrderService.java
│           │               │   ├── IPzcOrganizerService.java
│           │               │   ├── IPzcOrganizerTicketService.java
│           │               │   ├── IPzcRegionService.java
│           │               │   ├── IPzcTagService.java
│           │               │   ├── IPzcUserCollectService.java
│           │               │   ├── IPzcUserHistoryService.java
│           │               │   ├── IPzcUserPhotoService.java
│           │               │   ├── IPzcUserService.java
│           │               │   ├── IPzcUserTalkService.java
│           │               │   ├── IPzcViewPagerService.java
│           │               │   └── impl/
│           │               │       ├── PzcActivityConnArtistServiceImpl.java
│           │               │       ├── PzcActivityConnIntroServiceImpl.java
│           │               │       ├── PzcActivityConnTagServiceImpl.java
│           │               │       ├── PzcActivityGroupApplyServiceImpl.java
│           │               │       ├── PzcActivityGroupServiceImpl.java
│           │               │       ├── PzcActivityServiceImpl.java
│           │               │       ├── PzcArtistServiceImpl.java
│           │               │       ├── PzcIntroServiceImpl.java
│           │               │       ├── PzcOfficialServiceImpl.java
│           │               │       ├── PzcOrderServiceImpl.java
│           │               │       ├── PzcOrganizerServiceImpl.java
│           │               │       ├── PzcOrganizerTicketServiceImpl.java
│           │               │       ├── PzcRegionServiceImpl.java
│           │               │       ├── PzcTagServiceImpl.java
│           │               │       ├── PzcUserCollectServiceImpl.java
│           │               │       ├── PzcUserHistoryServiceImpl.java
│           │               │       ├── PzcUserPhotoServiceImpl.java
│           │               │       ├── PzcUserServiceImpl.java
│           │               │       ├── PzcUserTalkServiceImpl.java
│           │               │       └── PzcViewPagerServiceImpl.java
│           │               ├── utils/
│           │               │   ├── ActivityUtils.java
│           │               │   ├── CreateSign.java
│           │               │   ├── MyPrivateKey.java
│           │               │   ├── WxUtils.java
│           │               │   ├── gaode/
│           │               │   │   ├── GaoDeEnum.java
│           │               │   │   └── GaoDeMapUtil.java
│           │               │   ├── map/
│           │               │   │   ├── City.java
│           │               │   │   ├── CitySql.java
│           │               │   │   ├── Maps.java
│           │               │   │   └── city.json
│           │               │   └── sensitivewordsfiliter/
│           │               │       ├── BaseSearch.java
│           │               │       ├── TrieNode.java
│           │               │       ├── TrieNode2.java
│           │               │       ├── WordsSearch.java
│           │               │       ├── WordsSearchResult.java
│           │               │       └── WorldsFilterUtils.java
│           │               └── xxlJob/
│           │                   ├── ScheduledExecutorUtils.java
│           │                   ├── WxHandler.java
│           │                   └── diy/
│           │                       ├── JobLoginService.java
│           │                       ├── TestController.java
│           │                       ├── XxlJobGroup.java
│           │                       └── XxlJobInfo.java
│           └── resources/
│               ├── apiclient_key.pem
│               ├── mapper/
│               │   └── system/
│               │       ├── PzcActivityConnArtistMapper.xml
│               │       ├── PzcActivityConnIntroMapper.xml
│               │       ├── PzcActivityConnTagMapper.xml
│               │       ├── PzcActivityGroupApplyMapper.xml
│               │       ├── PzcActivityGroupMapper.xml
│               │       ├── PzcActivityMapper.xml
│               │       ├── PzcArtistMapper.xml
│               │       ├── PzcIntroMapper.xml
│               │       ├── PzcOfficialMapper.xml
│               │       ├── PzcOrderMapper.xml
│               │       ├── PzcOrganizerMapper.xml
│               │       ├── PzcOrganizerTicketMapper.xml
│               │       ├── PzcRegionMapper.xml
│               │       ├── PzcTagMapper.xml
│               │       ├── PzcUserCollectMapper.xml
│               │       ├── PzcUserHistoryMapper.xml
│               │       ├── PzcUserMapper.xml
│               │       ├── PzcUserPhotoMapper.xml
│               │       ├── PzcUserTalkMapper.xml
│               │       └── PzcViewPagerMapper.xml
│               ├── static/
│               │   ├── bootstrap.css
│               │   ├── index.html
│               │   ├── index2.html
│               │   └── js/
│               │       └── socket.io/
│               │           └── socket.io.js
│               └── wordsfilter/
│                   ├── sensi_words.txt
│                   └── sensi_words2.txt
├── README.md
├── pom.xml
├── ruoyi-admin/
│   ├── Dockerfile
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           ├── RuoYiApplication.java
│           │           ├── RuoYiServletInitializer.java
│           │           └── web/
│           │               └── controller/
│           │                   ├── common/
│           │                   │   └── CaptchaController.java
│           │                   ├── monitor/
│           │                   │   ├── CacheController.java
│           │                   │   ├── SysLogininforController.java
│           │                   │   ├── SysOperlogController.java
│           │                   │   └── SysUserOnlineController.java
│           │                   └── system/
│           │                       ├── SysConfigController.java
│           │                       ├── SysDeptController.java
│           │                       ├── SysDictDataController.java
│           │                       ├── SysDictTypeController.java
│           │                       ├── SysIndexController.java
│           │                       ├── SysLoginController.java
│           │                       ├── SysMenuController.java
│           │                       ├── SysNoticeController.java
│           │                       ├── SysOssConfigController.java
│           │                       ├── SysOssController.java
│           │                       ├── SysPostController.java
│           │                       ├── SysProfileController.java
│           │                       ├── SysRegisterController.java
│           │                       ├── SysRoleController.java
│           │                       └── SysUserController.java
│           └── resources/
│               ├── Dockerfile
│               ├── apiclient_key.pem
│               ├── application-dev.yml
│               ├── application.yml
│               ├── banner.txt
│               ├── i18n/
│               │   ├── messages.properties
│               │   ├── messages_en_US.properties
│               │   └── messages_zh_CN.properties
│               ├── ip2region.xdb
│               ├── logback-plus.xml
│               └── spy.properties
├── ruoyi-common/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── common/
│                           ├── annotation/
│                           │   ├── CellMerge.java
│                           │   ├── DataColumn.java
│                           │   ├── DataPermission.java
│                           │   ├── DictDataMapper.java
│                           │   ├── EncryptField.java
│                           │   ├── ExcelDictFormat.java
│                           │   ├── ExcelEnumFormat.java
│                           │   ├── Log.java
│                           │   ├── RateLimiter.java
│                           │   ├── RepeatSubmit.java
│                           │   ├── Sensitive.java
│                           │   ├── Translation.java
│                           │   └── TranslationType.java
│                           ├── captcha/
│                           │   └── UnsignedMathGenerator.java
│                           ├── config/
│                           │   └── RuoYiConfig.java
│                           ├── constant/
│                           │   ├── CacheConstants.java
│                           │   ├── CacheNames.java
│                           │   ├── Constants.java
│                           │   ├── GenConstants.java
│                           │   ├── HttpStatus.java
│                           │   ├── TransConstant.java
│                           │   └── UserConstants.java
│                           ├── convert/
│                           │   ├── ExcelBigNumberConvert.java
│                           │   ├── ExcelDictConvert.java
│                           │   └── ExcelEnumConvert.java
│                           ├── core/
│                           │   ├── controller/
│                           │   │   └── BaseController.java
│                           │   ├── domain/
│                           │   │   ├── BaseEntity.java
│                           │   │   ├── PageQuery.java
│                           │   │   ├── R.java
│                           │   │   ├── TreeEntity.java
│                           │   │   ├── dto/
│                           │   │   │   ├── RoleDTO.java
│                           │   │   │   └── UserOnlineDTO.java
│                           │   │   ├── entity/
│                           │   │   │   ├── SysDept.java
│                           │   │   │   ├── SysDictData.java
│                           │   │   │   ├── SysDictType.java
│                           │   │   │   ├── SysMenu.java
│                           │   │   │   ├── SysRole.java
│                           │   │   │   └── SysUser.java
│                           │   │   ├── event/
│                           │   │   │   ├── LogininforEvent.java
│                           │   │   │   └── OperLogEvent.java
│                           │   │   └── model/
│                           │   │       ├── EmailLoginBody.java
│                           │   │       ├── LoginBody.java
│                           │   │       ├── LoginUser.java
│                           │   │       ├── RegisterBody.java
│                           │   │       ├── SmsLoginBody.java
│                           │   │       └── XcxLoginUser.java
│                           │   ├── mapper/
│                           │   │   └── BaseMapperPlus.java
│                           │   ├── page/
│                           │   │   └── TableDataInfo.java
│                           │   ├── service/
│                           │   │   ├── ConfigService.java
│                           │   │   ├── DeptService.java
│                           │   │   ├── DictService.java
│                           │   │   ├── OssService.java
│                           │   │   ├── SensitiveService.java
│                           │   │   └── UserService.java
│                           │   └── validate/
│                           │       ├── AddGroup.java
│                           │       ├── EditGroup.java
│                           │       └── QueryGroup.java
│                           ├── encrypt/
│                           │   ├── EncryptContext.java
│                           │   ├── IEncryptor.java
│                           │   └── encryptor/
│                           │       ├── AbstractEncryptor.java
│                           │       ├── AesEncryptor.java
│                           │       ├── Base64Encryptor.java
│                           │       ├── RsaEncryptor.java
│                           │       ├── Sm2Encryptor.java
│                           │       └── Sm4Encryptor.java
│                           ├── enums/
│                           │   ├── AlgorithmType.java
│                           │   ├── BusinessStatus.java
│                           │   ├── BusinessType.java
│                           │   ├── CaptchaCategory.java
│                           │   ├── CaptchaType.java
│                           │   ├── DataBaseType.java
│                           │   ├── DataScopeType.java
│                           │   ├── DeviceType.java
│                           │   ├── EncodeType.java
│                           │   ├── HttpMethod.java
│                           │   ├── LimitType.java
│                           │   ├── LoginType.java
│                           │   ├── OperatorType.java
│                           │   ├── SensitiveStrategy.java
│                           │   ├── UserStatus.java
│                           │   └── UserType.java
│                           ├── excel/
│                           │   ├── CellMergeStrategy.java
│                           │   ├── DefaultExcelListener.java
│                           │   ├── DefaultExcelResult.java
│                           │   ├── ExcelListener.java
│                           │   └── ExcelResult.java
│                           ├── exception/
│                           │   ├── DemoModeException.java
│                           │   ├── GlobalException.java
│                           │   ├── ServiceException.java
│                           │   ├── UtilException.java
│                           │   ├── base/
│                           │   │   └── BaseException.java
│                           │   ├── file/
│                           │   │   ├── FileException.java
│                           │   │   ├── FileNameLengthLimitExceededException.java
│                           │   │   └── FileSizeLimitExceededException.java
│                           │   └── user/
│                           │       ├── CaptchaException.java
│                           │       ├── CaptchaExpireException.java
│                           │       ├── UserException.java
│                           │       ├── UserPasswordNotMatchException.java
│                           │       └── UserPasswordRetryLimitExceedException.java
│                           ├── filter/
│                           │   ├── RepeatableFilter.java
│                           │   ├── RepeatedlyRequestWrapper.java
│                           │   ├── XssFilter.java
│                           │   └── XssHttpServletRequestWrapper.java
│                           ├── helper/
│                           │   ├── DataBaseHelper.java
│                           │   ├── DataPermissionHelper.java
│                           │   └── LoginHelper.java
│                           ├── jackson/
│                           │   ├── DictDataJsonSerializer.java
│                           │   └── SensitiveJsonSerializer.java
│                           ├── translation/
│                           │   ├── TranslationInterface.java
│                           │   ├── handler/
│                           │   │   ├── TranslationBeanSerializerModifier.java
│                           │   │   └── TranslationHandler.java
│                           │   └── impl/
│                           │       ├── DeptNameTranslationImpl.java
│                           │       ├── DictTypeTranslationImpl.java
│                           │       ├── OssUrlTranslationImpl.java
│                           │       └── UserNameTranslationImpl.java
│                           ├── utils/
│                           │   ├── BeanCopyUtils.java
│                           │   ├── DateUtils.java
│                           │   ├── EncryptUtils.java
│                           │   ├── JsonUtils.java
│                           │   ├── MessageUtils.java
│                           │   ├── ServletUtils.java
│                           │   ├── StreamUtils.java
│                           │   ├── StringUtils.java
│                           │   ├── Threads.java
│                           │   ├── TreeBuildUtils.java
│                           │   ├── ValidatorUtils.java
│                           │   ├── email/
│                           │   │   └── MailUtils.java
│                           │   ├── file/
│                           │   │   ├── FileUtils.java
│                           │   │   └── MimeTypeUtils.java
│                           │   ├── ip/
│                           │   │   ├── AddressUtils.java
│                           │   │   └── RegionUtils.java
│                           │   ├── poi/
│                           │   │   └── ExcelUtil.java
│                           │   ├── redis/
│                           │   │   ├── CacheUtils.java
│                           │   │   ├── QueueUtils.java
│                           │   │   └── RedisUtils.java
│                           │   ├── reflect/
│                           │   │   └── ReflectUtils.java
│                           │   ├── spring/
│                           │   │   └── SpringUtils.java
│                           │   └── sql/
│                           │       └── SqlUtil.java
│                           └── xss/
│                               ├── Xss.java
│                               └── XssValidator.java
├── ruoyi-extend/
│   ├── pom.xml
│   ├── ruoyi-monitor-admin/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── top/
│   │           │       └── flya/
│   │           │           └── monitor/
│   │           │               └── admin/
│   │           │                   ├── MonitorAdminApplication.java
│   │           │                   ├── config/
│   │           │                   │   ├── AdminServerConfig.java
│   │           │                   │   └── SecurityConfig.java
│   │           │                   └── notifier/
│   │           │                       └── CustomNotifier.java
│   │           └── resources/
│   │               ├── application.yml
│   │               ├── banner.txt
│   │               └── logback-plus.xml
│   └── ruoyi-xxl-job-admin/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               ├── java/
│               │   └── com/
│               │       └── xxl/
│               │           └── job/
│               │               └── admin/
│               │                   ├── XxlJobAdminApplication.java
│               │                   ├── controller/
│               │                   │   ├── IndexController.java
│               │                   │   ├── JobApiController.java
│               │                   │   ├── JobCodeController.java
│               │                   │   ├── JobGroupController.java
│               │                   │   ├── JobInfoController.java
│               │                   │   ├── JobLogController.java
│               │                   │   ├── UserController.java
│               │                   │   ├── annotation/
│               │                   │   │   └── PermissionLimit.java
│               │                   │   ├── interceptor/
│               │                   │   │   ├── CookieInterceptor.java
│               │                   │   │   ├── PermissionInterceptor.java
│               │                   │   │   └── WebMvcConfig.java
│               │                   │   └── resolver/
│               │                   │       └── WebExceptionResolver.java
│               │                   ├── core/
│               │                   │   ├── alarm/
│               │                   │   │   ├── JobAlarm.java
│               │                   │   │   ├── JobAlarmer.java
│               │                   │   │   └── impl/
│               │                   │   │       └── EmailJobAlarm.java
│               │                   │   ├── complete/
│               │                   │   │   └── XxlJobCompleter.java
│               │                   │   ├── conf/
│               │                   │   │   └── XxlJobAdminConfig.java
│               │                   │   ├── cron/
│               │                   │   │   └── CronExpression.java
│               │                   │   ├── exception/
│               │                   │   │   └── XxlJobException.java
│               │                   │   ├── model/
│               │                   │   │   ├── XxlJobGroup.java
│               │                   │   │   ├── XxlJobInfo.java
│               │                   │   │   ├── XxlJobLog.java
│               │                   │   │   ├── XxlJobLogGlue.java
│               │                   │   │   ├── XxlJobLogReport.java
│               │                   │   │   ├── XxlJobRegistry.java
│               │                   │   │   └── XxlJobUser.java
│               │                   │   ├── old/
│               │                   │   │   ├── RemoteHttpJobBean.java
│               │                   │   │   ├── XxlJobDynamicScheduler.java
│               │                   │   │   └── XxlJobThreadPool.java
│               │                   │   ├── route/
│               │                   │   │   ├── ExecutorRouteStrategyEnum.java
│               │                   │   │   ├── ExecutorRouter.java
│               │                   │   │   └── strategy/
│               │                   │   │       ├── ExecutorRouteBusyover.java
│               │                   │   │       ├── ExecutorRouteConsistentHash.java
│               │                   │   │       ├── ExecutorRouteFailover.java
│               │                   │   │       ├── ExecutorRouteFirst.java
│               │                   │   │       ├── ExecutorRouteLFU.java
│               │                   │   │       ├── ExecutorRouteLRU.java
│               │                   │   │       ├── ExecutorRouteLast.java
│               │                   │   │       ├── ExecutorRouteRandom.java
│               │                   │   │       └── ExecutorRouteRound.java
│               │                   │   ├── scheduler/
│               │                   │   │   ├── MisfireStrategyEnum.java
│               │                   │   │   ├── ScheduleTypeEnum.java
│               │                   │   │   └── XxlJobScheduler.java
│               │                   │   ├── thread/
│               │                   │   │   ├── JobCompleteHelper.java
│               │                   │   │   ├── JobFailMonitorHelper.java
│               │                   │   │   ├── JobLogReportHelper.java
│               │                   │   │   ├── JobRegistryHelper.java
│               │                   │   │   ├── JobScheduleHelper.java
│               │                   │   │   └── JobTriggerPoolHelper.java
│               │                   │   ├── trigger/
│               │                   │   │   ├── TriggerTypeEnum.java
│               │                   │   │   └── XxlJobTrigger.java
│               │                   │   └── util/
│               │                   │       ├── CookieUtil.java
│               │                   │       ├── FtlUtil.java
│               │                   │       ├── I18nUtil.java
│               │                   │       ├── JacksonUtil.java
│               │                   │       └── LocalCacheUtil.java
│               │                   ├── dao/
│               │                   │   ├── XxlJobGroupDao.java
│               │                   │   ├── XxlJobInfoDao.java
│               │                   │   ├── XxlJobLogDao.java
│               │                   │   ├── XxlJobLogGlueDao.java
│               │                   │   ├── XxlJobLogReportDao.java
│               │                   │   ├── XxlJobRegistryDao.java
│               │                   │   └── XxlJobUserDao.java
│               │                   └── service/
│               │                       ├── LoginService.java
│               │                       ├── XxlJobService.java
│               │                       └── impl/
│               │                           ├── AdminBizImpl.java
│               │                           └── XxlJobServiceImpl.java
│               └── resources/
│                   ├── application-dev.yml
│                   ├── application-prod.yml
│                   ├── application.yml
│                   ├── banner.txt
│                   ├── i18n/
│                   │   ├── message_en.properties
│                   │   ├── message_zh_CN.properties
│                   │   └── message_zh_TC.properties
│                   ├── logback-plus.xml
│                   ├── mybatis-mapper/
│                   │   ├── XxlJobGroupMapper.xml
│                   │   ├── XxlJobInfoMapper.xml
│                   │   ├── XxlJobLogGlueMapper.xml
│                   │   ├── XxlJobLogMapper.xml
│                   │   ├── XxlJobLogReportMapper.xml
│                   │   ├── XxlJobRegistryMapper.xml
│                   │   └── XxlJobUserMapper.xml
│                   ├── static/
│                   │   ├── adminlte/
│                   │   │   ├── bower_components/
│                   │   │   │   ├── PACE/
│                   │   │   │   │   └── themes/
│                   │   │   │   │       └── blue/
│                   │   │   │   │           └── pace-theme-flash.css
│                   │   │   │   ├── bootstrap-daterangepicker/
│                   │   │   │   │   ├── daterangepicker.css
│                   │   │   │   │   └── daterangepicker.js
│                   │   │   │   ├── fastclick/
│                   │   │   │   │   └── fastclick.js
│                   │   │   │   └── font-awesome/
│                   │   │   │       └── fonts/
│                   │   │   │           └── FontAwesome.otf
│                   │   │   └── plugins/
│                   │   │       └── iCheck/
│                   │   │           └── square/
│                   │   │               └── blue.css
│                   │   ├── js/
│                   │   │   ├── common.1.js
│                   │   │   ├── index.js
│                   │   │   ├── jobcode.index.1.js
│                   │   │   ├── jobgroup.index.1.js
│                   │   │   ├── jobinfo.index.1.js
│                   │   │   ├── joblog.detail.1.js
│                   │   │   ├── joblog.index.1.js
│                   │   │   ├── login.1.js
│                   │   │   └── user.index.1.js
│                   │   └── plugins/
│                   │       ├── codemirror/
│                   │       │   ├── addon/
│                   │       │   │   └── hint/
│                   │       │   │       ├── anyword-hint.js
│                   │       │   │       ├── show-hint.css
│                   │       │   │       └── show-hint.js
│                   │       │   ├── lib/
│                   │       │   │   ├── codemirror.css
│                   │       │   │   └── codemirror.js
│                   │       │   └── mode/
│                   │       │       ├── clike/
│                   │       │       │   └── clike.js
│                   │       │       ├── javascript/
│                   │       │       │   └── javascript.js
│                   │       │       ├── php/
│                   │       │       │   └── php.js
│                   │       │       ├── powershell/
│                   │       │       │   └── powershell.js
│                   │       │       ├── python/
│                   │       │       │   └── python.js
│                   │       │       └── shell/
│                   │       │           └── shell.js
│                   │       ├── cronGen/
│                   │       │   ├── cronGen.js
│                   │       │   └── cronGen_en.js
│                   │       ├── jquery/
│                   │       │   └── jquery.cookie.js
│                   │       └── layer/
│                   │           ├── layer.js
│                   │           └── theme/
│                   │               └── default/
│                   │                   └── layer.css
│                   └── templates/
│                       ├── common/
│                       │   ├── common.exception.ftl
│                       │   └── common.macro.ftl
│                       ├── help.ftl
│                       ├── index.ftl
│                       ├── jobcode/
│                       │   └── jobcode.index.ftl
│                       ├── jobgroup/
│                       │   └── jobgroup.index.ftl
│                       ├── jobinfo/
│                       │   └── jobinfo.index.ftl
│                       ├── joblog/
│                       │   ├── joblog.detail.ftl
│                       │   └── joblog.index.ftl
│                       ├── login.ftl
│                       └── user/
│                           └── user.index.ftl
├── ruoyi-framework/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── framework/
│                           ├── aspectj/
│                           │   ├── LogAspect.java
│                           │   ├── RateLimiterAspect.java
│                           │   └── RepeatSubmitAspect.java
│                           ├── config/
│                           │   ├── ApplicationConfig.java
│                           │   ├── AsyncConfig.java
│                           │   ├── CaptchaConfig.java
│                           │   ├── EncryptorConfig.java
│                           │   ├── FilterConfig.java
│                           │   ├── I18nConfig.java
│                           │   ├── JacksonConfig.java
│                           │   ├── MailConfig.java
│                           │   ├── MybatisPlusConfig.java
│                           │   ├── RedisConfig.java
│                           │   ├── ResourcesConfig.java
│                           │   ├── SaTokenConfig.java
│                           │   ├── SwaggerConfig.java
│                           │   ├── ThreadPoolConfig.java
│                           │   ├── TranslationConfig.java
│                           │   ├── UndertowConfig.java
│                           │   ├── ValidatorConfig.java
│                           │   └── properties/
│                           │       ├── CaptchaProperties.java
│                           │       ├── EncryptorProperties.java
│                           │       ├── MailProperties.java
│                           │       ├── RedissonProperties.java
│                           │       ├── SecurityProperties.java
│                           │       ├── SwaggerProperties.java
│                           │       ├── ThreadPoolProperties.java
│                           │       └── XssProperties.java
│                           ├── encrypt/
│                           │   ├── MybatisDecryptInterceptor.java
│                           │   └── MybatisEncryptInterceptor.java
│                           ├── handler/
│                           │   ├── AllUrlHandler.java
│                           │   ├── CreateAndUpdateMetaObjectHandler.java
│                           │   ├── KeyPrefixHandler.java
│                           │   ├── OpenApiHandler.java
│                           │   └── PlusDataPermissionHandler.java
│                           ├── interceptor/
│                           │   ├── PlusDataPermissionInterceptor.java
│                           │   └── PlusWebInvokeTimeInterceptor.java
│                           ├── jackson/
│                           │   └── BigNumberSerializer.java
│                           ├── listener/
│                           │   └── UserActionListener.java
│                           ├── manager/
│                           │   ├── EncryptorManager.java
│                           │   ├── PlusSpringCacheManager.java
│                           │   └── ShutdownManager.java
│                           ├── satoken/
│                           │   ├── dao/
│                           │   │   └── PlusSaTokenDao.java
│                           │   └── service/
│                           │       └── SaPermissionImpl.java
│                           └── web/
│                               └── exception/
│                                   └── GlobalExceptionHandler.java
├── ruoyi-generator/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           └── generator/
│           │               ├── config/
│           │               │   └── GenConfig.java
│           │               ├── controller/
│           │               │   └── GenController.java
│           │               ├── domain/
│           │               │   ├── GenTable.java
│           │               │   └── GenTableColumn.java
│           │               ├── mapper/
│           │               │   ├── GenTableColumnMapper.java
│           │               │   └── GenTableMapper.java
│           │               ├── service/
│           │               │   ├── GenTableServiceImpl.java
│           │               │   └── IGenTableService.java
│           │               └── util/
│           │                   ├── GenUtils.java
│           │                   ├── VelocityInitializer.java
│           │                   └── VelocityUtils.java
│           └── resources/
│               ├── generator.yml
│               ├── mapper/
│               │   ├── generator/
│               │   │   ├── GenTableColumnMapper.xml
│               │   │   └── GenTableMapper.xml
│               │   └── package-info.md
│               └── vm/
│                   ├── java/
│                   │   ├── bo.java.vm
│                   │   ├── controller.java.vm
│                   │   ├── domain.java.vm
│                   │   ├── mapper.java.vm
│                   │   ├── service.java.vm
│                   │   ├── serviceImpl.java.vm
│                   │   ├── sub-domain.java.vm
│                   │   └── vo.java.vm
│                   ├── js/
│                   │   └── api.js.vm
│                   ├── sql/
│                   │   ├── oracle/
│                   │   │   └── sql.vm
│                   │   ├── postgres/
│                   │   │   └── sql.vm
│                   │   ├── sql.vm
│                   │   └── sqlserver/
│                   │       └── sql.vm
│                   ├── vue/
│                   │   ├── index-tree.vue.vm
│                   │   ├── index.vue.vm
│                   │   └── v3/
│                   │       ├── index-tree.vue.vm
│                   │       ├── index.vue.vm
│                   │       └── readme.txt
│                   └── xml/
│                       └── mapper.xml.vm
├── ruoyi-job/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── job/
│                           ├── config/
│                           │   ├── XxlJobConfig.java
│                           │   └── properties/
│                           │       └── XxlJobProperties.java
│                           └── service/
│                               └── SampleService.java
├── ruoyi-oss/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── oss/
│                           ├── constant/
│                           │   └── OssConstant.java
│                           ├── core/
│                           │   └── OssClient.java
│                           ├── entity/
│                           │   └── UploadResult.java
│                           ├── enumd/
│                           │   ├── AccessPolicyType.java
│                           │   └── PolicyType.java
│                           ├── exception/
│                           │   └── OssException.java
│                           ├── factory/
│                           │   └── OssFactory.java
│                           └── properties/
│                               └── OssProperties.java
├── ruoyi-sms/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── sms/
│                           ├── config/
│                           │   ├── SmsConfig.java
│                           │   └── properties/
│                           │       └── SmsProperties.java
│                           ├── core/
│                           │   ├── AliyunSmsTemplate.java
│                           │   ├── SmsTemplate.java
│                           │   └── TencentSmsTemplate.java
│                           ├── entity/
│                           │   └── SmsResult.java
│                           └── exception/
│                               └── SmsException.java
├── ruoyi-system/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           └── system/
│           │               ├── domain/
│           │               │   ├── SysCache.java
│           │               │   ├── SysConfig.java
│           │               │   ├── SysLogininfor.java
│           │               │   ├── SysNotice.java
│           │               │   ├── SysOperLog.java
│           │               │   ├── SysOss.java
│           │               │   ├── SysOssConfig.java
│           │               │   ├── SysPost.java
│           │               │   ├── SysRoleDept.java
│           │               │   ├── SysRoleMenu.java
│           │               │   ├── SysUserOnline.java
│           │               │   ├── SysUserPost.java
│           │               │   ├── SysUserRole.java
│           │               │   ├── bo/
│           │               │   │   ├── SysOssBo.java
│           │               │   │   └── SysOssConfigBo.java
│           │               │   └── vo/
│           │               │       ├── MetaVo.java
│           │               │       ├── RouterVo.java
│           │               │       ├── SysOssConfigVo.java
│           │               │       ├── SysOssVo.java
│           │               │       ├── SysUserExportVo.java
│           │               │       └── SysUserImportVo.java
│           │               ├── listener/
│           │               │   └── SysUserImportListener.java
│           │               ├── mapper/
│           │               │   ├── SysConfigMapper.java
│           │               │   ├── SysDeptMapper.java
│           │               │   ├── SysDictDataMapper.java
│           │               │   ├── SysDictTypeMapper.java
│           │               │   ├── SysLogininforMapper.java
│           │               │   ├── SysMenuMapper.java
│           │               │   ├── SysNoticeMapper.java
│           │               │   ├── SysOperLogMapper.java
│           │               │   ├── SysOssConfigMapper.java
│           │               │   ├── SysOssMapper.java
│           │               │   ├── SysPostMapper.java
│           │               │   ├── SysRoleDeptMapper.java
│           │               │   ├── SysRoleMapper.java
│           │               │   ├── SysRoleMenuMapper.java
│           │               │   ├── SysUserMapper.java
│           │               │   ├── SysUserPostMapper.java
│           │               │   └── SysUserRoleMapper.java
│           │               ├── runner/
│           │               │   └── SystemApplicationRunner.java
│           │               └── service/
│           │                   ├── ISysConfigService.java
│           │                   ├── ISysDataScopeService.java
│           │                   ├── ISysDeptService.java
│           │                   ├── ISysDictDataService.java
│           │                   ├── ISysDictTypeService.java
│           │                   ├── ISysLogininforService.java
│           │                   ├── ISysMenuService.java
│           │                   ├── ISysNoticeService.java
│           │                   ├── ISysOperLogService.java
│           │                   ├── ISysOssConfigService.java
│           │                   ├── ISysOssService.java
│           │                   ├── ISysPostService.java
│           │                   ├── ISysRoleService.java
│           │                   ├── ISysUserService.java
│           │                   ├── SysLoginService.java
│           │                   ├── SysPermissionService.java
│           │                   ├── SysRegisterService.java
│           │                   └── impl/
│           │                       ├── SysConfigServiceImpl.java
│           │                       ├── SysDataScopeServiceImpl.java
│           │                       ├── SysDeptServiceImpl.java
│           │                       ├── SysDictDataServiceImpl.java
│           │                       ├── SysDictTypeServiceImpl.java
│           │                       ├── SysLogininforServiceImpl.java
│           │                       ├── SysMenuServiceImpl.java
│           │                       ├── SysNoticeServiceImpl.java
│           │                       ├── SysOperLogServiceImpl.java
│           │                       ├── SysOssConfigServiceImpl.java
│           │                       ├── SysOssServiceImpl.java
│           │                       ├── SysPostServiceImpl.java
│           │                       ├── SysRoleServiceImpl.java
│           │                       ├── SysSensitiveServiceImpl.java
│           │                       └── SysUserServiceImpl.java
│           └── resources/
│               └── mapper/
│                   ├── package-info.md
│                   └── system/
│                       ├── SysConfigMapper.xml
│                       ├── SysDeptMapper.xml
│                       ├── SysDictDataMapper.xml
│                       ├── SysDictTypeMapper.xml
│                       ├── SysLogininforMapper.xml
│                       ├── SysMenuMapper.xml
│                       ├── SysNoticeMapper.xml
│                       ├── SysOperLogMapper.xml
│                       ├── SysOssConfigMapper.xml
│                       ├── SysOssMapper.xml
│                       ├── SysPostMapper.xml
│                       ├── SysRoleDeptMapper.xml
│                       ├── SysRoleMapper.xml
│                       ├── SysRoleMenuMapper.xml
│                       ├── SysUserMapper.xml
│                       ├── SysUserPostMapper.xml
│                       └── SysUserRoleMapper.xml
├── ruoyi-ui/
│   ├── .editorconfig
│   ├── .eslintignore
│   ├── .eslintrc.js
│   ├── .gitignore
│   ├── Dockerfile
│   ├── README.md
│   ├── babel.config.js
│   ├── bin/
│   │   ├── build.bat
│   │   ├── package.bat
│   │   └── run-web.bat
│   ├── build/
│   │   └── index.js
│   ├── nginx.conf
│   ├── package.json
│   ├── public/
│   │   ├── html/
│   │   │   └── ie.html
│   │   ├── index.html
│   │   └── robots.txt
│   ├── src/
│   │   ├── App.vue
│   │   ├── api/
│   │   │   ├── demo/
│   │   │   │   ├── demo.js
│   │   │   │   └── tree.js
│   │   │   ├── login.js
│   │   │   ├── menu.js
│   │   │   ├── monitor/
│   │   │   │   ├── cache.js
│   │   │   │   ├── logininfor.js
│   │   │   │   ├── online.js
│   │   │   │   └── operlog.js
│   │   │   ├── system/
│   │   │   │   ├── activity.js
│   │   │   │   ├── activityConnArtist.js
│   │   │   │   ├── activityConnIntro.js
│   │   │   │   ├── activityConnTag.js
│   │   │   │   ├── activityGroup.js
│   │   │   │   ├── activityGroupApply.js
│   │   │   │   ├── artist.js
│   │   │   │   ├── config.js
│   │   │   │   ├── dept.js
│   │   │   │   ├── dict/
│   │   │   │   │   ├── data.js
│   │   │   │   │   └── type.js
│   │   │   │   ├── intro.js
│   │   │   │   ├── menu.js
│   │   │   │   ├── notice.js
│   │   │   │   ├── official.js
│   │   │   │   ├── organizer.js
│   │   │   │   ├── organizerTicket.js
│   │   │   │   ├── oss.js
│   │   │   │   ├── ossConfig.js
│   │   │   │   ├── post.js
│   │   │   │   ├── pzc_order.js
│   │   │   │   ├── pzc_user.js
│   │   │   │   ├── region.js
│   │   │   │   ├── role.js
│   │   │   │   ├── tag.js
│   │   │   │   ├── user.js
│   │   │   │   ├── userCollect.js
│   │   │   │   ├── userHistory.js
│   │   │   │   ├── userPhoto.js
│   │   │   │   ├── userTalk.js
│   │   │   │   └── viewPager.js
│   │   │   └── tool/
│   │   │       └── gen.js
│   │   ├── assets/
│   │   │   ├── icons/
│   │   │   │   ├── index.js
│   │   │   │   └── svgo.yml
│   │   │   └── styles/
│   │   │       ├── btn.scss
│   │   │       ├── element-ui.scss
│   │   │       ├── element-variables.scss
│   │   │       ├── index.scss
│   │   │       ├── mixin.scss
│   │   │       ├── ruoyi.scss
│   │   │       ├── sidebar.scss
│   │   │       ├── transition.scss
│   │   │       └── variables.scss
│   │   ├── components/
│   │   │   ├── Breadcrumb/
│   │   │   │   └── index.vue
│   │   │   ├── Crontab/
│   │   │   │   ├── day.vue
│   │   │   │   ├── hour.vue
│   │   │   │   ├── index.vue
│   │   │   │   ├── min.vue
│   │   │   │   ├── month.vue
│   │   │   │   ├── result.vue
│   │   │   │   ├── second.vue
│   │   │   │   ├── week.vue
│   │   │   │   └── year.vue
│   │   │   ├── DictData/
│   │   │   │   └── index.js
│   │   │   ├── DictTag/
│   │   │   │   └── index.vue
│   │   │   ├── Editor/
│   │   │   │   └── index.vue
│   │   │   ├── FileUpload/
│   │   │   │   └── index.vue
│   │   │   ├── Hamburger/
│   │   │   │   └── index.vue
│   │   │   ├── HeaderSearch/
│   │   │   │   └── index.vue
│   │   │   ├── IconSelect/
│   │   │   │   ├── index.vue
│   │   │   │   └── requireIcons.js
│   │   │   ├── ImagePreview/
│   │   │   │   └── index.vue
│   │   │   ├── ImageUpload/
│   │   │   │   └── index.vue
│   │   │   ├── Pagination/
│   │   │   │   └── index.vue
│   │   │   ├── PanThumb/
│   │   │   │   └── index.vue
│   │   │   ├── ParentView/
│   │   │   │   └── index.vue
│   │   │   ├── RightPanel/
│   │   │   │   └── index.vue
│   │   │   ├── RightToolbar/
│   │   │   │   └── index.vue
│   │   │   ├── RuoYi/
│   │   │   │   ├── Doc/
│   │   │   │   │   └── index.vue
│   │   │   │   └── Git/
│   │   │   │       └── index.vue
│   │   │   ├── Screenfull/
│   │   │   │   └── index.vue
│   │   │   ├── SizeSelect/
│   │   │   │   └── index.vue
│   │   │   ├── SvgIcon/
│   │   │   │   └── index.vue
│   │   │   ├── ThemePicker/
│   │   │   │   └── index.vue
│   │   │   ├── TopNav/
│   │   │   │   └── index.vue
│   │   │   └── iFrame/
│   │   │       └── index.vue
│   │   ├── directive/
│   │   │   ├── dialog/
│   │   │   │   ├── drag.js
│   │   │   │   ├── dragHeight.js
│   │   │   │   └── dragWidth.js
│   │   │   ├── index.js
│   │   │   ├── module/
│   │   │   │   └── clipboard.js
│   │   │   └── permission/
│   │   │       ├── hasPermi.js
│   │   │       └── hasRole.js
│   │   ├── layout/
│   │   │   ├── components/
│   │   │   │   ├── AppMain.vue
│   │   │   │   ├── IframeToggle/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── InnerLink/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── Navbar.vue
│   │   │   │   ├── Settings/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── Sidebar/
│   │   │   │   │   ├── FixiOSBug.js
│   │   │   │   │   ├── Item.vue
│   │   │   │   │   ├── Link.vue
│   │   │   │   │   ├── Logo.vue
│   │   │   │   │   ├── SidebarItem.vue
│   │   │   │   │   └── index.vue
│   │   │   │   ├── TagsView/
│   │   │   │   │   ├── ScrollPane.vue
│   │   │   │   │   └── index.vue
│   │   │   │   └── index.js
│   │   │   ├── index.vue
│   │   │   └── mixin/
│   │   │       └── ResizeHandler.js
│   │   ├── main.js
│   │   ├── permission.js
│   │   ├── plugins/
│   │   │   ├── auth.js
│   │   │   ├── cache.js
│   │   │   ├── download.js
│   │   │   ├── index.js
│   │   │   ├── modal.js
│   │   │   └── tab.js
│   │   ├── router/
│   │   │   └── index.js
│   │   ├── settings.js
│   │   ├── store/
│   │   │   ├── getters.js
│   │   │   ├── index.js
│   │   │   └── modules/
│   │   │       ├── app.js
│   │   │       ├── dict.js
│   │   │       ├── permission.js
│   │   │       ├── settings.js
│   │   │       ├── tagsView.js
│   │   │       └── user.js
│   │   ├── utils/
│   │   │   ├── auth.js
│   │   │   ├── dict/
│   │   │   │   ├── Dict.js
│   │   │   │   ├── DictConverter.js
│   │   │   │   ├── DictData.js
│   │   │   │   ├── DictMeta.js
│   │   │   │   ├── DictOptions.js
│   │   │   │   └── index.js
│   │   │   ├── errorCode.js
│   │   │   ├── generator/
│   │   │   │   ├── config.js
│   │   │   │   ├── css.js
│   │   │   │   ├── drawingDefault.js
│   │   │   │   ├── html.js
│   │   │   │   ├── icon.json
│   │   │   │   ├── js.js
│   │   │   │   └── render.js
│   │   │   ├── index.js
│   │   │   ├── jsencrypt.js
│   │   │   ├── permission.js
│   │   │   ├── request.js
│   │   │   ├── ruoyi.js
│   │   │   ├── scroll-to.js
│   │   │   └── validate.js
│   │   └── views/
│   │       ├── components/
│   │       │   └── icons/
│   │       │       ├── element-icons.js
│   │       │       ├── index.vue
│   │       │       └── svg-icons.js
│   │       ├── dashboard/
│   │       │   ├── BarChart.vue
│   │       │   ├── LineChart.vue
│   │       │   ├── PanelGroup.vue
│   │       │   ├── PieChart.vue
│   │       │   ├── RaddarChart.vue
│   │       │   └── mixins/
│   │       │       └── resize.js
│   │       ├── demo/
│   │       │   ├── demo/
│   │       │   │   └── index.vue
│   │       │   └── tree/
│   │       │       └── index.vue
│   │       ├── error/
│   │       │   ├── 401.vue
│   │       │   └── 404.vue
│   │       ├── index.vue
│   │       ├── index_v1.vue
│   │       ├── login.vue
│   │       ├── monitor/
│   │       │   ├── admin/
│   │       │   │   └── index.vue
│   │       │   ├── cache/
│   │       │   │   ├── index.vue
│   │       │   │   └── list.vue
│   │       │   ├── logininfor/
│   │       │   │   └── index.vue
│   │       │   ├── online/
│   │       │   │   └── index.vue
│   │       │   ├── operlog/
│   │       │   │   └── index.vue
│   │       │   └── xxljob/
│   │       │       └── index.vue
│   │       ├── redirect.vue
│   │       ├── register.vue
│   │       ├── system/
│   │       │   ├── activity/
│   │       │   │   ├── add/
│   │       │   │   │   └── index.vue
│   │       │   │   └── index.vue
│   │       │   ├── activityConnArtist/
│   │       │   │   └── index.vue
│   │       │   ├── activityConnIntro/
│   │       │   │   └── index.vue
│   │       │   ├── activityConnTag/
│   │       │   │   └── index.vue
│   │       │   ├── activityGroup/
│   │       │   │   └── index.vue
│   │       │   ├── activityGroupApply/
│   │       │   │   └── index.vue
│   │       │   ├── artist/
│   │       │   │   └── index.vue
│   │       │   ├── config/
│   │       │   │   └── index.vue
│   │       │   ├── dept/
│   │       │   │   └── index.vue
│   │       │   ├── dict/
│   │       │   │   ├── data.vue
│   │       │   │   └── index.vue
│   │       │   ├── intro/
│   │       │   │   └── index.vue
│   │       │   ├── menu/
│   │       │   │   └── index.vue
│   │       │   ├── notice/
│   │       │   │   └── index.vue
│   │       │   ├── official/
│   │       │   │   └── index.vue
│   │       │   ├── organizer/
│   │       │   │   └── index.vue
│   │       │   ├── organizerTicket/
│   │       │   │   └── index.vue
│   │       │   ├── oss/
│   │       │   │   ├── config.vue
│   │       │   │   └── index.vue
│   │       │   ├── post/
│   │       │   │   └── index.vue
│   │       │   ├── pzc_order/
│   │       │   │   └── index.vue
│   │       │   ├── pzc_user/
│   │       │   │   ├── index.vue
│   │       │   │   └── todoList/
│   │       │   │       └── index.vue
│   │       │   ├── region/
│   │       │   │   └── index.vue
│   │       │   ├── role/
│   │       │   │   ├── authUser.vue
│   │       │   │   ├── index.vue
│   │       │   │   └── selectUser.vue
│   │       │   ├── tag/
│   │       │   │   └── index.vue
│   │       │   ├── user/
│   │       │   │   ├── authRole.vue
│   │       │   │   ├── index.vue
│   │       │   │   └── profile/
│   │       │   │       ├── index.vue
│   │       │   │       ├── resetPwd.vue
│   │       │   │       ├── userAvatar.vue
│   │       │   │       └── userInfo.vue
│   │       │   ├── userCollect/
│   │       │   │   └── index.vue
│   │       │   ├── userHistory/
│   │       │   │   └── index.vue
│   │       │   ├── userPhoto/
│   │       │   │   └── index.vue
│   │       │   ├── userTalk/
│   │       │   │   └── index.vue
│   │       │   └── viewPager/
│   │       │       └── index.vue
│   │       └── tool/
│   │           ├── build/
│   │           │   ├── CodeTypeDialog.vue
│   │           │   ├── DraggableItem.vue
│   │           │   ├── IconsDialog.vue
│   │           │   ├── RightPanel.vue
│   │           │   ├── TreeNodeDialog.vue
│   │           │   └── index.vue
│   │           └── gen/
│   │               ├── basicInfoForm.vue
│   │               ├── editTable.vue
│   │               ├── genInfoForm.vue
│   │               ├── importTable.vue
│   │               └── index.vue
│   └── vue.config.js
└── script/
    ├── bin/
    │   ├── ry.bat
    │   └── ry.sh
    ├── docker/
    │   ├── database.yml
    │   ├── docker-compose.yml
    │   ├── nginx/
    │   │   └── conf/
    │   │       └── nginx.conf
    │   └── redis/
    │       ├── conf/
    │       │   └── redis.conf
    │       └── data/
    │           └── README.md
    └── sql/
        ├── oracle/
        │   ├── oracle_ry_vue_4.X.sql
        │   └── oracle_test.sql
        ├── postgres/
        │   ├── postgres_ry_vue_4.X.sql
        │   └── postgres_test.sql
        ├── ry_vue_4.X.sql
        ├── sqlserver/
        │   ├── sqlserver_ry_vue_4.X.sql
        │   └── sqlserver_test.sql
        ├── tables_xxl_job.sql
        ├── test.sql
        └── update/
            ├── oracle/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── postgres/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── sqlserver/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── update-3.X-4.0.sql
            ├── update-4.0-4.1.sql
            ├── update-4.1-4.2.sql
            ├── update-4.2-4.3.sql
            └── update-4.3-4.4.sql

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

================================================
FILE: .editorconfig
================================================
# http://editorconfig.org
root = true

# 空格替代Tab缩进在各种编辑工具下效果一致
[*]
indent_style = space
indent_size = 4
charset = utf-8
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

[*.{json,yml,yaml}]
indent_size = 2

[*.md]
insert_final_newline = false
trim_trailing_whitespace = false


================================================
FILE: .gitee/ISSUE_TEMPLATE.zh-CN.md
================================================
### 使用版本(未按照模板填写直接删除)

- jdk版本(带上尾号): 例如 1.8.0_202
- 框架版本(项目启动时输出的版本号): 例如 4.4.0
- 其他依赖版本(你觉得有必要的):

### 问题前提

> 功能不好用 不会用 是否已经看过项目文档
> 项目运行报错 是否已经拿着报错信息去百度 常见报错百度百度足以
> 是否搜索过其他issue 一些已经解决的问题 会在issue内留下解决方法
> 无法线上解决或者与框架无关的问题的欢迎加VIP群跟作者一对一谈

### 异常模块

> 此报错都涉及到那些系统模块

例如 ruoyi-system ruoyi-auth 等等

### 问题描述

> 越详细越容易直击问题所在

已知: XXX功能不好用 或 XXX数据不正常 等等

### 希望结果

> 想知道你觉得怎么样是正常或者合理的

希望功能可以有XXX结果 或者 XXX现象

### 重现步骤

> 作者并不知道这个问题是如何出现的

- 1
- 2
- 3

### 相关代码与报错信息(请勿发混乱格式)

> 代码可按照如下形式提供或者截图均可 越详细越好
> 大多数问题都是 代码编写错误问题 逻辑问题 或者用法错误等问题

```java
public class XXX {

}
```

================================================
FILE: .gitee/PULL_REQUEST_TEMPLATE.zh-CN.md
================================================
### 更改目的 解决了什么问题(请提交到dev分支)


### 改动逻辑 这么写的思路(让作者更好的理解你的意图)


### 测试 都做了哪些测试(未经过测试不采纳)

================================================
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

### JRebel ###
rebel.xml

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

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

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


================================================
FILE: .run/ruoyi-monitor-admin.run.xml
================================================
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="ruoyi-monitor-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
    <deployment type="dockerfile">
      <settings>
        <option name="imageTag" value="ruoyi/ruoyi-monitor-admin:4.7.0" />
        <option name="buildOnly" value="true" />
        <option name="sourceFilePath" value="ruoyi-extend/ruoyi-monitor-admin/Dockerfile" />
      </settings>
    </deployment>
    <method v="2" />
  </configuration>
</component>


================================================
FILE: .run/ruoyi-server.run.xml
================================================
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="ruoyi-server" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
    <deployment type="dockerfile">
      <settings>
        <option name="imageTag" value="ruoyi/ruoyi-server:4.7.0" />
        <option name="buildOnly" value="true" />
        <option name="sourceFilePath" value="ruoyi-admin/Dockerfile" />
      </settings>
    </deployment>
    <method v="2" />
  </configuration>
</component>


================================================
FILE: .run/ruoyi-xxl-job-admin.run.xml
================================================
<component name="ProjectRunConfigurationManager">
  <configuration default="false" name="ruoyi-xxl-job-admin" type="docker-deploy" factoryName="dockerfile" server-name="Docker">
    <deployment type="dockerfile">
      <settings>
        <option name="imageTag" value="ruoyi/ruoyi-xxl-job-admin:4.7.0" />
        <option name="buildOnly" value="true" />
        <option name="sourceFilePath" value="ruoyi-extend/ruoyi-xxl-job-admin/Dockerfile" />
      </settings>
    </deployment>
    <method v="2" />
  </configuration>
</component>


================================================
FILE: .vscode/settings.json
================================================
{
    "java.compile.nullAnalysis.mode": "automatic"
}


================================================
FILE: LICENSE
================================================
                    GNU GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.

                            Preamble

  The GNU General Public License is a free, copyleft license for
software and other kinds of works.

  The licenses for most software and other practical works are designed
to take away your freedom to share and change the works.  By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users.  We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors.  You can apply it to
your programs, too.

  When we speak of free software, we are referring to freedom, not
price.  Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

  To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights.  Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

  For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received.  You must make sure that they, too, receive
or can get the source code.  And you must show them these terms so they
know their rights.

  Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.

  For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software.  For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.

  Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so.  This is fundamentally incompatible with the aim of
protecting users' freedom to change the software.  The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable.  Therefore, we
have designed this version of the GPL to prohibit the practice for those
products.  If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.

  Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary.  To prevent this, the GPL assures that
patents cannot be used to render the program non-free.

  The precise terms and conditions for copying, distribution and
modification follow.

                       TERMS AND CONDITIONS

  0. Definitions.

  "This License" refers to version 3 of the GNU General Public License.

  "Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.

  "The Program" refers to any copyrightable work licensed under this
License.  Each licensee is addressed as "you".  "Licensees" and
"recipients" may be individuals or organizations.

  To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy.  The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.

  A "covered work" means either the unmodified Program or a work based
on the Program.

  To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy.  Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.

  To "convey" a work means any kind of propagation that enables other
parties to make or receive copies.  Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.

  An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License.  If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.

  1. Source Code.

  The "source code" for a work means the preferred form of the work
for making modifications to it.  "Object code" means any non-source
form of a work.

  A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.

  The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form.  A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.

  The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities.  However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work.  For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.

  The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.

  The Corresponding Source for a work in source code form is that
same work.

  2. Basic Permissions.

  All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met.  This License explicitly affirms your unlimited
permission to run the unmodified Program.  The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work.  This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.

  You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force.  You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright.  Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.

  Conveying under any other circumstances is permitted solely under
the conditions stated below.  Sublicensing is not allowed; section 10
makes it unnecessary.

  3. Protecting Users' Legal Rights From Anti-Circumvention Law.

  No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.

  When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.

  4. Conveying Verbatim Copies.

  You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.

  You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.

  5. Conveying Modified Source Versions.

  You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:

    a) The work must carry prominent notices stating that you modified
    it, and giving a relevant date.

    b) The work must carry prominent notices stating that it is
    released under this License and any conditions added under section
    7.  This requirement modifies the requirement in section 4 to
    "keep intact all notices".

    c) You must license the entire work, as a whole, under this
    License to anyone who comes into possession of a copy.  This
    License will therefore apply, along with any applicable section 7
    additional terms, to the whole of the work, and all its parts,
    regardless of how they are packaged.  This License gives no
    permission to license the work in any other way, but it does not
    invalidate such permission if you have separately received it.

    d) If the work has interactive user interfaces, each must display
    Appropriate Legal Notices; however, if the Program has interactive
    interfaces that do not display Appropriate Legal Notices, your
    work need not make them do so.

  A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit.  Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.

  6. Conveying Non-Source Forms.

  You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:

    a) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by the
    Corresponding Source fixed on a durable physical medium
    customarily used for software interchange.

    b) Convey the object code in, or embodied in, a physical product
    (including a physical distribution medium), accompanied by a
    written offer, valid for at least three years and valid for as
    long as you offer spare parts or customer support for that product
    model, to give anyone who possesses the object code either (1) a
    copy of the Corresponding Source for all the software in the
    product that is covered by this License, on a durable physical
    medium customarily used for software interchange, for a price no
    more than your reasonable cost of physically performing this
    conveying of source, or (2) access to copy the
    Corresponding Source from a network server at no charge.

    c) Convey individual copies of the object code with a copy of the
    written offer to provide the Corresponding Source.  This
    alternative is allowed only occasionally and noncommercially, and
    only if you received the object code with such an offer, in accord
    with subsection 6b.

    d) Convey the object code by offering access from a designated
    place (gratis or for a charge), and offer equivalent access to the
    Corresponding Source in the same way through the same place at no
    further charge.  You need not require recipients to copy the
    Corresponding Source along with the object code.  If the place to
    copy the object code is a network server, the Corresponding Source
    may be on a different server (operated by you or a third party)
    that supports equivalent copying facilities, provided you maintain
    clear directions next to the object code saying where to find the
    Corresponding Source.  Regardless of what server hosts the
    Corresponding Source, you remain obligated to ensure that it is
    available for as long as needed to satisfy these requirements.

    e) Convey the object code using peer-to-peer transmission, provided
    you inform other peers where the object code and Corresponding
    Source of the work are being offered to the general public at no
    charge under subsection 6d.

  A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.

  A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling.  In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage.  For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product.  A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.

  "Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source.  The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.

  If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information.  But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).

  The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed.  Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.

  Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.

  7. Additional Terms.

  "Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law.  If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.

  When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it.  (Additional permissions may be written to require their own
removal in certain cases when you modify the work.)  You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.

  Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:

    a) Disclaiming warranty or limiting liability differently from the
    terms of sections 15 and 16 of this License; or

    b) Requiring preservation of specified reasonable legal notices or
    author attributions in that material or in the Appropriate Legal
    Notices displayed by works containing it; or

    c) Prohibiting misrepresentation of the origin of that material, or
    requiring that modified versions of such material be marked in
    reasonable ways as different from the original version; or

    d) Limiting the use for publicity purposes of names of licensors or
    authors of the material; or

    e) Declining to grant rights under trademark law for use of some
    trade names, trademarks, or service marks; or

    f) Requiring indemnification of licensors and authors of that
    material by anyone who conveys the material (or modified versions of
    it) with contractual assumptions of liability to the recipient, for
    any liability that these contractual assumptions directly impose on
    those licensors and authors.

  All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10.  If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term.  If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.

  If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.

  Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.

  8. Termination.

  You may not propagate or modify a covered work except as expressly
provided under this License.  Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).

  However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.

  Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.

  Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License.  If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.

  9. Acceptance Not Required for Having Copies.

  You are not required to accept this License in order to receive or
run a copy of the Program.  Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance.  However,
nothing other than this License grants you permission to propagate or
modify any covered work.  These actions infringe copyright if you do
not accept this License.  Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.

  10. Automatic Licensing of Downstream Recipients.

  Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License.  You are not responsible
for enforcing compliance by third parties with this License.

  An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations.  If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.

  You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License.  For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.

  11. Patents.

  A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based.  The
work thus licensed is called the contributor's "contributor version".

  A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version.  For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.

  Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.

  In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement).  To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.

  If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients.  "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.

  If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.

  A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License.  You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.

  Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.

  12. No Surrender of Others' Freedom.

  If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License.  If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all.  For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.

  13. Use with the GNU Affero General Public License.

  Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work.  The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.

  14. Revised Versions of this License.

  The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time.  Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.

  Each version is given a distinguishing version number.  If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation.  If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.

  If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.

  Later license versions may give you additional or different
permissions.  However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.

  15. Disclaimer of Warranty.

  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  16. Limitation of Liability.

  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.

  17. Interpretation of Sections 15 and 16.

  If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.

                     END OF TERMS AND CONDITIONS

            How to Apply These Terms to Your New Programs

  If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

  To do so, attach the following notices to the program.  It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Also add information on how to contact you by electronic and paper mail.

  If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

    <program>  Copyright (C) <year>  <name of author>
    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
    This is free software, and you are welcome to redistribute it
    under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License.  Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".

  You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

  The GNU General Public License does not permit incorporating your program
into proprietary programs.  If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library.  If this is what you want to do, use the GNU Lesser General
Public License instead of this License.  But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.


================================================
FILE: PaiZhiCheng/pom.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>ruoyi-vue-plus</artifactId>
        <groupId>com.ruoyi</groupId>
        <version>4.7.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>pai-zhi-cheng</artifactId>


    <dependencies>

        <dependency> <!-- 表达式计算 -->
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-jexl3</artifactId>
            <version>3.2.1</version>
        </dependency>

        <dependency> <!-- 表达式计算 选项2 -->

            <groupId>com.github.ismail-mekni</groupId>
            <artifactId>mxreflection</artifactId>
            <version>1.0.1</version>

        </dependency>

        <dependency>
            <groupId>com.corundumstudio.socketio</groupId>
            <artifactId>netty-socketio</artifactId>
            <version>1.7.16</version>
        </dependency>

        <!-- 通用工具-->
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-common</artifactId>
        </dependency>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-system</artifactId>
        </dependency>


        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>2.0.10</version>
        </dependency>
        <dependency>
            <groupId>io.undertow</groupId>
            <artifactId>undertow-core</artifactId>
        </dependency>

        <!-- xxl-job-core -->
        <dependency>
            <groupId>com.xuxueli</groupId>
            <artifactId>xxl-job-core</artifactId>
        </dependency>


        <dependency>
            <groupId>com.github.wechatpay-apiv3</groupId>
            <artifactId>wechatpay-apache-httpclient</artifactId>
            <version>0.4.7</version>
        </dependency>



        <dependency>
            <groupId>com.squareup.okhttp3</groupId>
            <artifactId>okhttp</artifactId>
            <version>4.4.1</version>
        </dependency>




    </dependencies>

</project>


================================================
FILE: PaiZhiCheng/src/main/java/Main.java
================================================
import lombok.SneakyThrows;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.Semaphore;

import static org.apache.xmlbeans.impl.schema.StscState.start;

public class Main {


    public static final int max = 100;

    public static int count = 0;

    public static Semaphore semaphoreA =new Semaphore(1);
    public static Semaphore semaphoreB =new Semaphore(0);
    @SneakyThrows
    public static void main(String[] args) throws InterruptedException {


        CompletableFuture.runAsync(()->{
            for (int i = 0; i < max/2; i++) {
                try {
                    semaphoreB.acquire();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("B");
                count++;
                semaphoreA.release();
            }
        });


        CompletableFuture.runAsync(()->{
            for (int i = 0; i < max/2; i++) {
                try {
                    semaphoreA.acquire();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                System.out.println("A");
                count++;
                semaphoreB.release();
            }
        });


        Thread.sleep(1000);

        System.out.println("count = " + count);
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/common/BatchUtils.java
================================================
package top.flya.system.common;


import cn.hutool.json.JSONUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import top.flya.system.domain.vo.*;
import top.flya.system.service.ISysOssService;

import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;

@Component
@Slf4j
public class BatchUtils {
    @Resource
    private ISysOssService iSysOssService;



    // 假设这里有一个方法可以批量查询新的 imageUrl
    public  Map<Long, String> getNewImageUrls(List<String> imageUrls) {
//        List<Long> ossIds = imageUrls.stream().map(Long::parseLong).collect(Collectors.toList());

        List<Long> ossIds = imageUrls.stream()
            .map(url -> {
                try {
                    return Long.parseLong(url);
                } catch (NumberFormatException e) {
                    // Handle the exception, e.g. logging or skipping the invalid value
                    // You can also return a default value in case of invalid format
                    return null;
                }
            })
            .filter(Objects::nonNull)
            .collect(Collectors.toList());
        return iSysOssService.listByIds(ossIds).stream().collect(Collectors.toMap(SysOssVo::getOssId, SysOssVo::getUrl));
    }

    public List<PzcArtistVo> transformToPzcArtistVo(List<PzcArtistVo> artistList) {
        log.info("transform artistList start: {}", artistList);
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = artistList.stream()
            .map(PzcArtistVo::getImageUrl)
            .collect(Collectors.toList());

        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);

        // 使用 Stream API 进行处理
        return artistList.stream()
            // 对列表中的每个元素进行处理
            .map(artist -> {
                // 从 Map 中获取新的 imageUrl
                String newImageUrl = artist.getImageUrl().contains("http")?artist.getImageUrl():newImageUrls.get(Long.parseLong(artist.getImageUrl()));
                // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                return new PzcArtistVo(
                    artist.getArtistId(),
                    artist.getName(),
                    newImageUrl,
                    artist.getDescription()
                );
            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());
    }

    public  List<PzcOrganizerVo> transformToPzcOrganizerVo(List<PzcOrganizerVo> organizerList) {
        log.info("transform organizerList start: {}", organizerList);
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = organizerList.stream()
            .map(PzcOrganizerVo::getLogo)
            .collect(Collectors.toList());

        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);

        // 使用 Stream API 进行处理
        return organizerList.stream()
            // 对列表中的每个元素进行处理
            .map(organizer -> {
                if(organizer.getLogo()==null){
                    return organizer;
                }
                // 从 Map 中获取新的 imageUrl
                String newImageUrl = organizer.getLogo().contains("http")?organizer.getLogo():newImageUrls.get(Long.parseLong(organizer.getLogo()));
                // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                return new PzcOrganizerVo(
                    organizer.getOrganizerId(),
                    organizer.getPhone(),
                    organizer.getName(),
                    newImageUrl,
                    organizer.getContent(),
                    organizer.getCreateTime(),
                    organizer.getUpdateTime()
                );
            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());
    }

    public  List<PzcTagVo> transformToPzcTagVo(List<PzcTagVo> tagList) {
        log.info("transform tagList start: {}", tagList);
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = tagList.stream()
            .map(PzcTagVo::getImageUrl)
            .collect(Collectors.toList());

        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);

        // 使用 Stream API 进行处理
        return tagList.stream()
            // 对列表中的每个元素进行处理
            .map(tag -> {
                // 从 Map 中获取新的 imageUrl
                String newImageUrl = tag.getImageUrl().contains("http")?tag.getImageUrl():newImageUrls.get(Long.parseLong(tag.getImageUrl()));
                // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                return new PzcTagVo(
                    tag.getTagId(),
                    tag.getName(),
                    newImageUrl,
                    tag.getCreateTime(),
                    tag.getUpdateTime()
                );
            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());
    }

    public List<PzcIntroVo> transformToPzcIntroVo(List<PzcIntroVo> introList){
        log.info("transform introList start: {}", JSONUtil.toJsonPrettyStr(introList));
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = introList.stream()
            .map(PzcIntroVo::getImageFullUrl)
            .collect(Collectors.toList());
        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);
        // 使用 Stream API 进行处理
        return introList.stream()
            // 对列表中的每个元素进行处理
            .map(intro -> {
                // 从 Map 中获取新的 imageUrl
                String newImageUrl = intro.getImageFullUrl().contains("http")?intro.getImageFullUrl():newImageUrls.get(Long.parseLong(intro.getImageFullUrl()));
                // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                return new PzcIntroVo(
                    intro.getIntroId(),
                    intro.getTitle(),
                    intro.getContent(),
                    intro.getType(),
                    newImageUrl,
                    intro.getCreateTime(),
                    intro.getUpdateTime()

                );
            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());

    }

    public List<PzcUserVo> transformToPzcUserVo(List<PzcUserVo> userList){
        log.info("transform userList start: {}", JSONUtil.toJsonPrettyStr(userList));
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = userList.stream()
            .filter(user -> user.getAvatar() != null&&!user.getAvatar().contains("http"))
            .map(PzcUserVo::getAvatar)
            .collect(Collectors.toList());
        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);
        // 使用 Stream API 进行处理
        return userList.stream()
            // 对列表中的每个元素进行处理
            .map(user -> {
                // 从 Map 中获取新的 imageUrl
                if(user.getAvatar()!=null&&!user.getAvatar().contains("http")) //如果是http开头的就不用转换了
                {
                    String newImageUrl = newImageUrls.get(Long.parseLong(user.getAvatar()));
                    // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                    return new PzcUserVo(
                        user.getUserId(),
                        user.getOpenid(),
                        user.getMoney(),
                        user.getUserLevel(),
                        user.getIntegration(),
                        user.getIntegrationNow(),
                        user.getRealname(),
                        user.getNickname(),
                        user.getSex(),
                        user.getPhone(),
                        newImageUrl,
                        user.getAddress(),
                        user.getIntro(),
                        user.getAge(),
                        user.getConstellation(),
                        user.getMbti(),
                        user.getHobby(),
                        user.getSchool(),
                        user.getOccupation(),
                        user.getCreateTime(),
                        user.getUpdateTime(),
                        user.getMusicStyle(),
                        user.getState(),
                        user.getExemptCancel()
                    );
                }
                return user;

            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());

    }

    public List<PzcViewPagerVo> transformToPzcViewPagerVo(List<PzcViewPagerVo> viewPagerList)
    {
//        log.info("transform viewPagerList start: {}", JSONUtil.toJsonPrettyStr(viewPagerList));
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = viewPagerList.stream()
            .map(PzcViewPagerVo::getImageUrl)
            .collect(Collectors.toList());
        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);
        // 使用 Stream API 进行处理
        return viewPagerList.stream()
            // 对列表中的每个元素进行处理
            .map(viewPager -> {
                // 从 Map 中获取新的 imageUrl
                String newImageUrl = viewPager.getImageUrl().contains("http")?viewPager.getImageUrl():newImageUrls.get(Long.parseLong(viewPager.getImageUrl()));
                // 创建一个新的 PzcArtistVo 对象,使用查询到的新 imageUrl
                return new PzcViewPagerVo(
                    viewPager.getViewPagerId(),
                    viewPager.getName(),
                    newImageUrl,
                    viewPager.getLinkUrl(),
                    viewPager.getState(),
                    viewPager.getActivityId()
                );
            })
            // 将处理后的元素收集到一个新的 List 中
            .collect(Collectors.toList());

    }


    public List<PzcActivityVo> transformToPzcActivityVo(List<PzcActivityVo> records) {
        log.info("transform activityList start: {}", JSONUtil.toJsonPrettyStr(records));
        // 获取所有旧的 imageUrl
        List<String> oldImageUrls = records.stream()
            .map(PzcActivityVo::getCoverImage)
            .collect(Collectors.toList());

        List<String> innerImageUrls = records.stream()
            .map(PzcActivityVo::getInnerImage)
            .collect(Collectors.toList());

        List<String> shareImageUrls = records.stream()
            .filter(activity -> activity.getShareImage() != null)
            .map(PzcActivityVo::getShareImage)
            .collect(Collectors.toList());
        // 批量查询新的 imageUrl
        Map<Long, String> newImageUrls = getNewImageUrls(oldImageUrls);
        Map<Long, String> newInnerImageUrls = getNewImageUrls(innerImageUrls);
        Map<Long, String> newShareImageUrls = getNewImageUrls(shareImageUrls);
        // 使用 Stream API 进行处理
        return records.stream()
            .map(
                r->{
                    String newImageUrl = r.getCoverImage().contains("http")?r.getCoverImage():newImageUrls.get(Long.parseLong(r.getCoverImage()));
                    String innerImage = r.getInnerImage().contains("http")?r.getInnerImage():newInnerImageUrls.get(Long.parseLong(r.getInnerImage()));
                    String shareImage = r.getShareImage()==null?null:r.getShareImage().contains("http")?r.getShareImage():newShareImageUrls.get(Long.parseLong(r.getShareImage()));
                    return  new PzcActivityVo(
                        r.getActivityId(),
                        r.getAddress(),
                        r.getRegionId(),
                        r.getTitle(),
                        r.getStartTime(),
                        r.getEndDate(),
                        innerImage,
                        r.getShowTime(),
                        newImageUrl,
                        r.getCreateTime(),
                        r.getUpdateTime(),
                        r.getState(),
                        r.getOrganizerId(),
                        r.getClassify(),
                        r.getRegion(),
                        null,
                        null,
                        null,
                        null,
                        null,
                        shareImage
                    );
                }
            ).collect(Collectors.toList());
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/common/CheckUtils.java
================================================
package top.flya.system.common;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
import top.flya.common.core.domain.R;
import top.flya.common.utils.StringUtils;
import top.flya.system.domain.PzcActivity;
import top.flya.system.mapper.PzcActivityMapper;

import javax.annotation.Resource;

@Slf4j
@Component
public class CheckUtils {
    @Resource
    private PzcActivityMapper pzcActivityMapper;

    /**
     * 0 是创建活动 1是修改活动
     * @param activity
     * @param type
     * @return
     */
    public R<Void> checkCreateActivity(PzcActivity activity, Integer type) {

        log.info("checkActivity check init");
        if(type==1)
        {

            if(activity.getActivityId()==null)
            {
                return R.fail("活动id不能为空");
            }
            PzcActivity checkActivity = pzcActivityMapper.selectById(activity.getActivityId());
            if(checkActivity==null)
            {
                return R.fail("活动不存在");
            }

        }
        if(StringUtils.isEmpty(activity.getTitle()))
        {
            return R.fail("活动标题不能为空");
        }
        if(StringUtils.isEmpty(activity.getStartTime()))
        {
            return R.fail("活动开始时间不能为空");
        }
        if(StringUtils.isEmpty(activity.getEndDate()))
        {
            return R.fail("活动结束时间不能为空");
        }
        if(StringUtils.isEmpty(activity.getCoverImage()))
        {
            return R.fail("活动封面不能为空");
        }


        return R.ok();
    }

}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ClientCache.java
================================================
package top.flya.system.config;

import com.corundumstudio.socketio.SocketIOClient;
import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;

/**
 * @author litong
 * @date 2019/11/6 16:01
 */
@Component
public class ClientCache {

    /**
     * 本地缓存
     */
    public static Map<String, HashMap<UUID, SocketIOClient>> concurrentHashMap = new ConcurrentHashMap<>();


    public Map<String, HashMap<UUID, SocketIOClient>> getConcurrentHashMap()
    {
        return concurrentHashMap;
    }


    /**
     * 存入本地缓存
     *
     * @param userId         用户ID
     * @param sessionId      页面sessionID
     * @param socketIOClient 页面对应的通道连接信息
     */
    public void saveClient(String userId, UUID sessionId, SocketIOClient socketIOClient) {
        HashMap<UUID, SocketIOClient> sessionIdClientCache = concurrentHashMap.get(userId);
        if (sessionIdClientCache == null) {
            sessionIdClientCache = new HashMap<>();
        }
        sessionIdClientCache.put(sessionId, socketIOClient);
        concurrentHashMap.put(userId, sessionIdClientCache);
    }

    /**
     * 根据用户ID获取所有通道信息
     *
     * @param userId
     * @return
     */
    public HashMap<UUID, SocketIOClient> getUserClient(String userId) {
        return concurrentHashMap.get(userId);
    }

    /**
     * 根据用户ID及页面sessionID删除页面链接信息
     *
     * @param userId
     * @param sessionId
     */
    public void deleteSessionClient(String userId, UUID sessionId) {
        concurrentHashMap.remove(userId);
//        concurrentHashMap.get(userId).remove(sessionId);
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/DbTemplate.java
================================================
package top.flya.system.config;

import cn.hutool.core.collection.CollUtil;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Optional;
import java.util.UUID;
import java.util.concurrent.ConcurrentHashMap;

/**
 * <p>
 * 模拟数据库
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-12-18 19:12
 */
@Component
public class DbTemplate {
    /**
     * 模拟数据库存储 user_id <-> session_id 的关系
     */
    public static final ConcurrentHashMap<String, UUID> DB = new ConcurrentHashMap<>();

    /**
     * 获取所有SessionId
     *
     * @return SessionId列表
     */
    public List<UUID> findAll() {
        return CollUtil.newArrayList(DB.values());
    }

    /**
     * 根据UserId查询SessionId
     *
     * @param userId 用户id
     * @return SessionId
     */
    public Optional<UUID> findByUserId(String userId) {
        return Optional.ofNullable(DB.get(userId));
    }

    /**
     * 保存/更新 user_id <-> session_id 的关系
     *
     * @param userId    用户id
     * @param sessionId SessionId
     */
    public void save(String userId, UUID sessionId) {
        DB.put(userId, sessionId);
    }

    /**
     * 删除 user_id <-> session_id 的关系
     *
     * @param userId 用户id
     */
    public void deleteByUserId(String userId) {
        DB.remove(userId);
    }

}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/Event.java
================================================
package top.flya.system.config;

/**
 * <p>
 * 事件常量
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-12-18 19:36
 */
public interface Event {
    /**
     * 聊天事件
     */
    String CHAT = "chat";

    /**
     * 官方消息事件
     */
    String OFFICIAL = "official";


}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ServerConfig.java
================================================
package top.flya.system.config;

import com.corundumstudio.socketio.SocketConfig;
import com.corundumstudio.socketio.SocketIOServer;
import com.corundumstudio.socketio.Transport;
import com.corundumstudio.socketio.annotation.SpringAnnotationScanner;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import top.flya.common.utils.JsonUtils;

/**
 * <p>
 * websocket服务器配置
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-12-18 16:42
 */
@Configuration
@Slf4j
public class ServerConfig {

    @Bean
    public SocketIOServer server(WsConfig wsConfig) {
        log.info("init wsConfig: {}", JsonUtils.toJsonString(wsConfig));
        com.corundumstudio.socketio.Configuration config = new com.corundumstudio.socketio.Configuration();
        config.setHostname(wsConfig.getHost());
        config.setPort(wsConfig.getPort());
        config.setTransports(Transport.WEBSOCKET,Transport.POLLING); //test
        SocketConfig socketConfig = config.getSocketConfig();
        socketConfig.setReuseAddress(true); //地址复用


        //这个listener可以用来进行身份验证
//        config.setAuthorizationListener(data -> {
//            // http://localhost:8081?token=xxxxxxx
//            // 例如果使用上面的链接进行connect,可以使用如下代码获取用户密码信息,本文不做身份验证
//            String token = data.getSingleUrlParam("token");
//            // 校验token的合法性,实际业务需要校验token是否过期等等,参考 spring-boot-demo-rbac-security 里的 JwtUtil
//            // 如果认证不通过会返回一个 Socket.EVENT_CONNECT_ERROR 事件
//            return StrUtil.isNotBlank(token);
//        });

        return new SocketIOServer(config);
    }

    /**
     * Spring 扫描自定义注解
     */
    @Bean
    public SpringAnnotationScanner springAnnotationScanner(SocketIOServer server) {
        return new SpringAnnotationScanner(server);
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ServerRunner.java
================================================
package top.flya.system.config;

import com.corundumstudio.socketio.SocketIOServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;

/**
 * <p>
 * websocket服务器启动
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-12-18 17:07
 */
@Component
@Slf4j
public class ServerRunner implements CommandLineRunner {
    @Autowired
    private SocketIOServer server;

    @Override
    public void run(String... args) {
        server.start();
        log.info("websocket 服务器启动成功");
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/config/WsConfig.java
================================================
package top.flya.system.config;

import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.stereotype.Component;

import javax.validation.Valid;

/**
 * <p>
 * WebSocket配置类
 * </p>
 *
 * @author yangkai.shen
 * @date Created in 2018-12-18 16:41
 */

@Data
@Component
public class WsConfig {
    /**
     * 端口号
     */
    @Value("${wx.server.port}")
    private Integer port ;

    /**
     * host
     */
    @Value("${wx.server.host}")
    private String host ;
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/GaoDeMapController.java
================================================
package top.flya.system.controller;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.*;
import top.flya.common.core.domain.R;
import top.flya.system.utils.gaode.GaoDeMapUtil;

import javax.annotation.Resource;


/**
 * @Description: 地图控制层
 * @Author: isymikasan
 * @Date: 2022-01-26 09:36:55
 */
@RestController

@RequestMapping("/point")
public class GaoDeMapController {

    @Resource
    private GaoDeMapUtil gaoDeMapUtil;

    public static final Logger log = LoggerFactory.getLogger(GaoDeMapController.class);


    @GetMapping("/getAddress")
    public R getAddress(@RequestParam("longitude") String longitude, @RequestParam("latitude") String latitude) {
        try {
            return gaoDeMapUtil.getAddress(longitude, latitude);
        } catch (Exception e) {
            return R.fail(e.toString());
        }

    }

    @GetMapping("/getLonLat")
    public R getLonLat(@RequestParam("address") String address) {
        return gaoDeMapUtil.getLonLat(address);
    }

    @GetMapping("/getDistance")
    public R getDistance(@RequestParam("start") String startLonLat,@RequestParam("end") String endLonLat) {
        return gaoDeMapUtil.getDistance(startLonLat, endLonLat);
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnArtistController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcActivityConnArtistVo;
import top.flya.system.domain.bo.PzcActivityConnArtistBo;
import top.flya.system.service.IPzcActivityConnArtistService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 活动关联艺人
 *
 * @author ruoyi
 * @date 2023-06-02
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/activityConnArtist")
public class PzcActivityConnArtistController extends BaseController {

    private final IPzcActivityConnArtistService iPzcActivityConnArtistService;

    /**
     * 查询活动关联艺人列表
     */
    @SaCheckPermission("system:activityConnArtist:list")
    @GetMapping("/list")
    public TableDataInfo<PzcActivityConnArtistVo> list(PzcActivityConnArtistBo bo, PageQuery pageQuery) {
        return iPzcActivityConnArtistService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动关联艺人列表
     */
    @SaCheckPermission("system:activityConnArtist:export")
    @Log(title = "活动关联艺人", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityConnArtistBo bo, HttpServletResponse response) {
        List<PzcActivityConnArtistVo> list = iPzcActivityConnArtistService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动关联艺人", PzcActivityConnArtistVo.class, response);
    }

    /**
     * 获取活动关联艺人详细信息
     *
     * @param activityConnArtistId 主键
     */
    @SaCheckPermission("system:activityConnArtist:query")
    @GetMapping("/{activityConnArtistId}")
    public R<PzcActivityConnArtistVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Integer activityConnArtistId) {
        return R.ok(iPzcActivityConnArtistService.queryById(activityConnArtistId));
    }

    /**
     * 新增活动关联艺人
     */
    @SaCheckPermission("system:activityConnArtist:add")
    @Log(title = "活动关联艺人", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityConnArtistBo bo) {
        return toAjax(iPzcActivityConnArtistService.insertByBo(bo));
    }

    /**
     * 修改活动关联艺人
     */
    @SaCheckPermission("system:activityConnArtist:edit")
    @Log(title = "活动关联艺人", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityConnArtistBo bo) {
        return toAjax(iPzcActivityConnArtistService.updateByBo(bo));
    }

    /**
     * 删除活动关联艺人
     *
     * @param activityConnArtistIds 主键串
     */
    @SaCheckPermission("system:activityConnArtist:remove")
    @Log(title = "活动关联艺人", businessType = BusinessType.DELETE)
    @DeleteMapping("/{activityConnArtistIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Integer[] activityConnArtistIds) {
        return toAjax(iPzcActivityConnArtistService.deleteWithValidByIds(Arrays.asList(activityConnArtistIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnIntroController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcActivityConnIntroVo;
import top.flya.system.domain.bo.PzcActivityConnIntroBo;
import top.flya.system.service.IPzcActivityConnIntroService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 活动介绍与活动关联
 *
 * @author ruoyi
 * @date 2023-06-02
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/activityConnIntro")
public class PzcActivityConnIntroController extends BaseController {

    private final IPzcActivityConnIntroService iPzcActivityConnIntroService;

    /**
     * 查询活动介绍与活动关联列表
     */
    @SaCheckPermission("system:activityConnIntro:list")
    @GetMapping("/list")
    public TableDataInfo<PzcActivityConnIntroVo> list(PzcActivityConnIntroBo bo, PageQuery pageQuery) {
        return iPzcActivityConnIntroService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动介绍与活动关联列表
     */
    @SaCheckPermission("system:activityConnIntro:export")
    @Log(title = "活动介绍与活动关联", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityConnIntroBo bo, HttpServletResponse response) {
        List<PzcActivityConnIntroVo> list = iPzcActivityConnIntroService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动介绍与活动关联", PzcActivityConnIntroVo.class, response);
    }

    /**
     * 获取活动介绍与活动关联详细信息
     *
     * @param activityConnIntroId 主键
     */
    @SaCheckPermission("system:activityConnIntro:query")
    @GetMapping("/{activityConnIntroId}")
    public R<PzcActivityConnIntroVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Integer activityConnIntroId) {
        return R.ok(iPzcActivityConnIntroService.queryById(activityConnIntroId));
    }

    /**
     * 新增活动介绍与活动关联
     */
    @SaCheckPermission("system:activityConnIntro:add")
    @Log(title = "活动介绍与活动关联", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityConnIntroBo bo) {
        return toAjax(iPzcActivityConnIntroService.insertByBo(bo));
    }

    /**
     * 修改活动介绍与活动关联
     */
    @SaCheckPermission("system:activityConnIntro:edit")
    @Log(title = "活动介绍与活动关联", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityConnIntroBo bo) {
        return toAjax(iPzcActivityConnIntroService.updateByBo(bo));
    }

    /**
     * 删除活动介绍与活动关联
     *
     * @param activityConnIntroIds 主键串
     */
    @SaCheckPermission("system:activityConnIntro:remove")
    @Log(title = "活动介绍与活动关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{activityConnIntroIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Integer[] activityConnIntroIds) {
        return toAjax(iPzcActivityConnIntroService.deleteWithValidByIds(Arrays.asList(activityConnIntroIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnTagController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcActivityConnTagVo;
import top.flya.system.domain.bo.PzcActivityConnTagBo;
import top.flya.system.service.IPzcActivityConnTagService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 活动标签与活动关联
 *
 * @author ruoyi
 * @date 2023-06-03
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/activityConnTag")
public class PzcActivityConnTagController extends BaseController {

    private final IPzcActivityConnTagService iPzcActivityConnTagService;

    /**
     * 查询活动标签与活动关联列表
     */
    @SaCheckPermission("system:activityConnTag:list")
    @GetMapping("/list")
    public TableDataInfo<PzcActivityConnTagVo> list(PzcActivityConnTagBo bo, PageQuery pageQuery) {
        return iPzcActivityConnTagService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动标签与活动关联列表
     */
    @SaCheckPermission("system:activityConnTag:export")
    @Log(title = "活动标签与活动关联", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityConnTagBo bo, HttpServletResponse response) {
        List<PzcActivityConnTagVo> list = iPzcActivityConnTagService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动标签与活动关联", PzcActivityConnTagVo.class, response);
    }

    /**
     * 获取活动标签与活动关联详细信息
     *
     * @param activityConnTagId 主键
     */
    @SaCheckPermission("system:activityConnTag:query")
    @GetMapping("/{activityConnTagId}")
    public R<PzcActivityConnTagVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Integer activityConnTagId) {
        return R.ok(iPzcActivityConnTagService.queryById(activityConnTagId));
    }

    /**
     * 新增活动标签与活动关联
     */
    @SaCheckPermission("system:activityConnTag:add")
    @Log(title = "活动标签与活动关联", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityConnTagBo bo) {
        return toAjax(iPzcActivityConnTagService.insertByBo(bo));
    }

    /**
     * 修改活动标签与活动关联
     */
    @SaCheckPermission("system:activityConnTag:edit")
    @Log(title = "活动标签与活动关联", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityConnTagBo bo) {
        return toAjax(iPzcActivityConnTagService.updateByBo(bo));
    }

    /**
     * 删除活动标签与活动关联
     *
     * @param activityConnTagIds 主键串
     */
    @SaCheckPermission("system:activityConnTag:remove")
    @Log(title = "活动标签与活动关联", businessType = BusinessType.DELETE)
    @DeleteMapping("/{activityConnTagIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Integer[] activityConnTagIds) {
        return toAjax(iPzcActivityConnTagService.deleteWithValidByIds(Arrays.asList(activityConnTagIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcActivityBo;
import top.flya.system.domain.vo.PzcActivityVo;
import top.flya.system.service.IPzcActivityService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 活动
 *
 * @author ruoyi
 * @date 2023-06-02
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/activity")
@Slf4j
public class PzcActivityController extends BaseController {

    private final IPzcActivityService iPzcActivityService;

    /**
     * 新增活动
     */
    @SaCheckPermission("system:activity:add")
    @Log(title = "活动", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityBo bo) {
        return toAjax(iPzcActivityService.insertByBo(bo));
    }

    /**
     * 修改活动
     */
    @SaCheckPermission("system:activity:edit")
    @Log(title = "活动", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityBo bo) {
        return toAjax(iPzcActivityService.updateByBo(bo));
    }




    /**
     * 查询活动列表
     */
    @SaCheckPermission("system:activity:list")
    @GetMapping("/list")
    public TableDataInfo<PzcActivityVo> list(PzcActivityBo bo, PageQuery pageQuery) {
        return iPzcActivityService.queryPageList(bo, pageQuery);
    }


    /**
     * 查询活动列表 小程序端
     */
    @GetMapping("/listWx")
    public TableDataInfo<PzcActivityVo> Wx(PzcActivityBo bo, PageQuery pageQuery) {
        pageQuery.setIsAsc("desc");
        pageQuery.setOrderByColumn("start_time");
        return iPzcActivityService.queryPageListWx(bo, pageQuery);
    }

    /**
     * 导出活动列表
     */
    @SaCheckPermission("system:activity:export")
    @Log(title = "活动", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityBo bo, HttpServletResponse response) {
        List<PzcActivityVo> list = iPzcActivityService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动", PzcActivityVo.class, response);
    }

    /**
     * 获取活动详细信息
     *
     * @param activityId 主键
     */
    @GetMapping("/{activityId}")
    public R<PzcActivityVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Integer activityId) {
        return R.ok(iPzcActivityService.queryById(activityId));
    }





    /**
     * 删除活动
     *
     * @param activityIds 主键串
     */
    @SaCheckPermission("system:activity:remove")
    @Log(title = "活动", businessType = BusinessType.DELETE)
    @DeleteMapping("/{activityIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Integer[] activityIds) {
        return toAjax(iPzcActivityService.deleteWithValidByIds(Arrays.asList(activityIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupApplyController.java
================================================
package top.flya.system.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.JsonUtils;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.PzcActivityGroup;
import top.flya.system.domain.PzcActivityGroupApply;
import top.flya.system.domain.PzcUser;
import top.flya.system.domain.bo.PzcActivityGroupApplyBo;
import top.flya.system.domain.bo.WxzApplyBo;
import top.flya.system.domain.vo.PzcActivityGroupApplyVo;
import top.flya.system.mapper.PzcActivityGroupApplyMapper;
import top.flya.system.mapper.PzcActivityGroupMapper;
import top.flya.system.mapper.PzcUserMapper;
import top.flya.system.service.IPzcActivityGroupApplyService;
import top.flya.system.utils.ActivityUtils;
import top.flya.system.utils.WxUtils;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;

/**
 * 活动组队申请列表
 *
 * @author ruoyi
 * @date 2023-07-10
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/activityGroupApply")
@Slf4j
public class PzcActivityGroupApplyController extends BaseController {

    private final IPzcActivityGroupApplyService iPzcActivityGroupApplyService;

    private final ActivityUtils activityUtils;

    private final PzcActivityGroupApplyMapper pzcActivityGroupApplyMapper;

    private final PzcUserMapper pzcUserMapper;

    private final PzcActivityGroupMapper pzcActivityGroupMapper;


    private final StringRedisTemplate stringRedisTemplate;

    private final WxUtils wxUtils;

    private final ExecutorService newSingleThreadExecutor = new ThreadPoolExecutor(10, 20, 200L,
        TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(100));


    @PostMapping("/wxzApply")
    @Transactional
    public R wxzApply(@RequestParam("applyId") Integer applyId, @RequestParam("wxz") Integer wxz) {  //wxz 0 未选择 1 选择
        log.info("applyId:{},wxz:{}", applyId, wxz);
        if (wxz != 0 && wxz != 1) {
            return R.fail("参数错误");
        }
        PzcActivityGroupApply pzcActivityGroupApply = pzcActivityGroupApplyMapper.selectById(applyId);
        if (pzcActivityGroupApply == null) {
            return R.fail("申请不存在");
        }

        if (pzcActivityGroupApply.getApplyStatus() != 2 && pzcActivityGroupApply.getApplyStatus() != 9 && pzcActivityGroupApply.getApplyStatus() != 10 && pzcActivityGroupApply.getApplyStatus() != 11 && pzcActivityGroupApply.getApplyStatus() != 12) {
            return R.fail("当前状态为【" + wxUtils.applyStatus(pzcActivityGroupApply.getApplyStatus()) + "】,不能进行此操作");
        }
        //这里取消redis缓存
        Long userId = LoginHelper.getUserId();
        String result = stringRedisTemplate.opsForValue().get("officialMessage:" + userId);
        log.info("result:{}", result);
        if (result != null) {
            WxzApplyBo wxzApplyBo = JsonUtils.parseObject(result, WxzApplyBo.class);
            if (wxzApplyBo == null) {
                return R.fail("转换JSON异常");
            }
            if (!wxzApplyBo.getApplyId().equals(applyId)) {
                return R.fail("申请方请求不存在");
            }
            stringRedisTemplate.delete("officialMessage:" + userId);
        } else {
            return R.fail("申请方请求不存在");
        }

        if(wxz==0)
        {
            return R.ok();
        }

        pzcActivityGroupApply.setWxz(wxz);
        pzcActivityGroupApply.setApplyStatus(3); //直接是组队结束状态
        pzcActivityGroupApplyMapper.updateById(pzcActivityGroupApply);

        //退还双方保证金

        newSingleThreadExecutor.execute(() -> {
            // 更新 组队状态为已结束
            PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupApply.getGroupId());

            PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId());
            PzcUser groupUser = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
            applyUser.setMoney(applyUser.getMoney().add(pzcActivityGroupApply.getMoney().subtract(new BigDecimal("10"))));
            groupUser.setMoney(groupUser.getMoney().add(pzcActivityGroup.getMoney().subtract(new BigDecimal("10")))); //退还发起人的保证金
            //无限制确认到达加3分
            applyUser.setIntegration(applyUser.getIntegration() + 3);
            applyUser.setIntegrationNow(applyUser.getIntegrationNow() + 3);
            groupUser.setIntegration(groupUser.getIntegration() + 3);
            groupUser.setIntegrationNow(groupUser.getIntegrationNow() + 3);
            pzcUserMapper.updateById(applyUser);
            pzcUserMapper.updateById(groupUser);
            //更新余额变动
            wxUtils.insertUserHistory(applyUser.getUserId(), pzcActivityGroup.getActivityId(),2L, "组队结束,退还保证金 并收取活动费用 10派币", pzcActivityGroupApply.getMoney().subtract(new BigDecimal("10")));
            wxUtils.insertUserHistory(groupUser.getUserId(), pzcActivityGroup.getActivityId(),2L, "组队结束,退还保证金 并收取活动费用 10派币", pzcActivityGroupApply.getMoney().subtract(new BigDecimal("10")));



            pzcActivityGroup.setStatus(1); //已结束
            pzcActivityGroupMapper.updateById(pzcActivityGroup);
        });


        return R.ok();
    }

    @GetMapping("/myHistory") //我的历史活动
    public R<List<PzcActivityGroupApply>> myHistory() {
        //我申请 并处于进行中的活动
        Long userId = LoginHelper.getUserId();
        List<PzcActivityGroupApply> step1 = pzcActivityGroupApplyMapper.selectList(
            new QueryWrapper<PzcActivityGroupApply>()
                .eq("user_id", userId).in("apply_status", 3,13,14,15));
        step1.forEach(
            p -> {
                PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(p.getGroupId());
                PzcUser my = pzcUserMapper.selectById(p.getUserId());
                PzcUser other = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                p.setOtherMoney(pzcActivityGroup.getMoney());
                p.setOtherName(other.getNickname());
                p.setOtherAvatar(other.getAvatar());
                p.setOtherUserId(String.valueOf(other.getUserId()));
                p.setOtherLevel(Math.toIntExact(other.getUserLevel()));
                p.setMyAvatar(my.getAvatar());
                p.setTitle(pzcActivityGroup.getTitle());
            }
        );
        List<PzcActivityGroupApply> result = new java.util.ArrayList<>();

        //申请我的 并处于进行中的活动
        //1 找出所有我创建的组
        List<PzcActivityGroup> pzcActivityGroups = pzcActivityGroupMapper.selectList(new QueryWrapper<PzcActivityGroup>().eq("user_id", userId));
        List<Long> groupIds = pzcActivityGroups.stream().map(PzcActivityGroup::getGroupId).collect(java.util.stream.Collectors.toList());
        if (groupIds.size() != 0) {
            List<PzcActivityGroupApply> step2 = pzcActivityGroupApplyMapper.selectList(new QueryWrapper<>(new PzcActivityGroupApply()).in("group_id", groupIds).in("apply_status", 3,14,13,15));
            step2.forEach(
                p -> {
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(p.getGroupId());
                    PzcUser other = pzcUserMapper.selectById(p.getUserId());
                    PzcUser my = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                    p.setOtherMoney(pzcActivityGroup.getMoney());
                    p.setOtherName(other.getNickname());
                    p.setOtherAvatar(other.getAvatar());
                    p.setOtherUserId(String.valueOf(other.getUserId()));
                    p.setOtherLevel(Math.toIntExact(other.getUserLevel()));
                    p.setMyAvatar(my.getAvatar());
                    p.setTitle(pzcActivityGroup.getTitle());
                }
            );
            result.addAll(step2);
        }
        result.addAll(step1);

        //按照更新时间倒序排列
        List<PzcActivityGroupApply> collect = result.stream().sorted((o1, o2) -> o2.getUpdateTime().compareTo(o1.getUpdateTime())).collect(Collectors.toList());

        return R.ok(collect);
    }

    /**
     * -1 已取消
     * 0 位于申请列表中
     * 1 申请通过待确认时
     * 2 确认通过进行中
     * 3 组队结束
     * 9发起方已确认
     * 10申请方已确认
     * 11 发起方已打卡
     * 12 申请方已打卡
     * 13 发起方已评价
     * 14 申请方已评价
     * 15 双方已评价
     *
     * @return
     */
    @GetMapping("/myTrips") //我的行程
    public R<List<PzcActivityGroupApply>> myTrips() {
        //我申请 并处于进行中的活动
        Long userId = LoginHelper.getUserId();
        List<PzcActivityGroupApply> step1 = pzcActivityGroupApplyMapper.selectList(
            new QueryWrapper<PzcActivityGroupApply>()
                .eq("user_id", userId).in("apply_status", 1, 2, 3, 9, 10, 11, 12, 14)); //, 14 我评价过了就从行程中移除
        step1.forEach(
            p -> {
                PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(p.getGroupId());
                PzcUser my = pzcUserMapper.selectById(p.getUserId());
                PzcUser other = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                p.setOtherMoney(pzcActivityGroup.getMoney());
                p.setOtherName(other.getNickname());
                p.setOtherAvatar(other.getAvatar());
                p.setOtherUserId(String.valueOf(other.getUserId()));
                p.setOtherLevel(Math.toIntExact(other.getUserLevel()));
                p.setMyAvatar(my.getAvatar());
                p.setTitle(pzcActivityGroup.getTitle());
            }
        );
        List<PzcActivityGroupApply> result = new java.util.ArrayList<>();

        //申请我的 并处于进行中的活动
        //1 找出所有我创建的组
        List<PzcActivityGroup> pzcActivityGroups = pzcActivityGroupMapper.selectList(new QueryWrapper<PzcActivityGroup>().eq("user_id", userId));
        List<Long> groupIds = pzcActivityGroups.stream().map(PzcActivityGroup::getGroupId).collect(java.util.stream.Collectors.toList());
        if (groupIds.size() != 0) {
            List<PzcActivityGroupApply> step2 = pzcActivityGroupApplyMapper.selectList(new QueryWrapper<>(new PzcActivityGroupApply()).in("group_id", groupIds).in("apply_status", 1, 2, 3, 9, 10, 11, 12,  13));//13, 评价了就移除
            step2.forEach(
                p -> {
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(p.getGroupId());
                    PzcUser other = pzcUserMapper.selectById(p.getUserId());
                    PzcUser my = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                    p.setOtherMoney(pzcActivityGroup.getMoney());
                    p.setOtherName(other.getNickname());
                    p.setOtherAvatar(other.getAvatar());
                    p.setOtherUserId(String.valueOf(other.getUserId()));
                    p.setOtherLevel(Math.toIntExact(other.getUserLevel()));
                    p.setMyAvatar(my.getAvatar());
                    p.setTitle(pzcActivityGroup.getTitle());
                }
            );
            result.addAll(step2);
        }
        result.addAll(step1);

        //按照更新时间倒序排列
        List<PzcActivityGroupApply> collect = result.stream().sorted((o1, o2) -> o2.getUpdateTime().compareTo(o1.getUpdateTime())).collect(Collectors.toList());

        return R.ok(collect);
    }

    /**
     * 查询活动组队申请列表列表
     */
    @GetMapping("/list")
    public TableDataInfo<PzcActivityGroupApplyVo> list(PzcActivityGroupApplyBo bo, PageQuery pageQuery) {
        bo.setUserId(LoginHelper.getUserId());
        return iPzcActivityGroupApplyService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动组队申请列表列表
     */
    @Log(title = "活动组队申请列表", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityGroupApplyBo bo, HttpServletResponse response) {
        List<PzcActivityGroupApplyVo> list = iPzcActivityGroupApplyService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动组队申请列表", PzcActivityGroupApplyVo.class, response);
    }

    /**
     * 获取活动组队申请列表详细信息
     *
     * @param applyId 主键
     */
    @GetMapping("/{applyId}")
    public R<PzcActivityGroupApplyVo> getInfo(@NotNull(message = "主键不能为空")
                                              @PathVariable Long applyId) {
        return R.ok(iPzcActivityGroupApplyService.queryById(applyId));
    }

    /**
     * 申请参与组队
     * <p>
     * 1 做校验
     * 1.1 活动是否存在 1.2 活动是否已经开始 1.3 活动是否已经结束 1.4 活动是否已经满员
     * 2 组是否还存在
     * <p>
     * <p>
     * ====================
     * 用户申请活动的时候 判断 是否足够缴纳保证金
     */
    @Log(title = "活动组队申请列表", businessType = BusinessType.INSERT) //
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityGroupApplyBo bo) {
        log.info("申请参与组队:{}", JsonUtils.toJsonString(bo));
        if(bo.getMoney().compareTo(new BigDecimal(100))<0)
        {
            return R.fail("申请失败,最低保障金为99派币~");
        }
        if (!activityUtils.allCheck(Math.toIntExact(bo.getActivityId()), bo.getGroupId())) {
            return R.fail("申请失败,活动不存在或者已经结束或者组不存在");
        }
        bo.setUserId(LoginHelper.getUserId());
        if (iPzcActivityGroupApplyService.queryByUserIdAndGroupId(bo.getUserId(), bo.getGroupId()) != null) {
            return R.fail("申请失败,您已经申请过了");
        }

        //======================================================
        PzcUser applyUser = pzcUserMapper.selectById(bo.getUserId()); //我有2个币  申请需要 两个币  我则需要 根据当前他的余额来判断
        log.info("申请参与组队 我目前的余额是: {} 申请需要的余额是:{}", applyUser.getMoney(), bo.getMoney());
        if (applyUser.getMoney().compareTo(bo.getMoney()) < 0 || applyUser.getMoney().compareTo(new BigDecimal(100)) < 0) //100块钱 也没有就需要充值了
        {
            return R.fail("申请失败,最低保障金为99派币~");
        }

        return toAjax(iPzcActivityGroupApplyService.insertByBo(bo));
    }

    /**
     * 修改活动组队申请列表
     */
    @Log(title = "活动组队申请列表", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityGroupApplyBo bo) {
        bo.setUserId(LoginHelper.getUserId());
        if (!activityUtils.allCheck(Math.toIntExact(bo.getActivityId()), bo.getGroupId())) {
            return R.fail("修改失败,活动不存在或者已经结束或者组不存在");
        }
        if (!iPzcActivityGroupApplyService.queryByUserIdAndActivityId(bo.getUserId(), bo.getActivityId())) {
            return R.fail("修改失败,您还没有申请过该活动组");
        }
        return toAjax(iPzcActivityGroupApplyService.updateByBo(bo));
    }

    /**
     * 取消活动组队申请列表
     *
     * @param applyIds 主键串
     */
    @Log(title = "活动组队申请列表", businessType = BusinessType.DELETE)
    @DeleteMapping("/{applyIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] applyIds) {
        return toAjax(iPzcActivityGroupApplyService.deleteWithValidByIds(Arrays.asList(applyIds), true));
    }


}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import cn.hutool.core.map.MapBuilder;
import cn.hutool.json.JSONUtil;
import com.alibaba.excel.util.DateUtils;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.JsonUtils;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.*;
import top.flya.system.domain.bo.PzcActivityGroupBo;
import top.flya.system.domain.bo.RefurbishBo;
import top.flya.system.domain.vo.PzcActivityGroupApplyVo;
import top.flya.system.domain.vo.PzcActivityGroupVo;
import top.flya.system.domain.vo.RefurbishVO;
import top.flya.system.mapper.*;
import top.flya.system.service.IPzcActivityGroupApplyService;
import top.flya.system.service.IPzcActivityGroupService;
import top.flya.system.utils.WxUtils;
import top.flya.system.utils.gaode.GaoDeMapUtil;
import top.flya.system.xxlJob.ScheduledExecutorUtils;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

import static top.flya.system.config.ClientCache.concurrentHashMap;

/**
 * 活动组队
 *
 * @author ruoyi
 * @date 2023-07-10
 */
@Validated
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/system/activityGroup")
public class PzcActivityGroupController extends BaseController {

    private final IPzcActivityGroupService iPzcActivityGroupService;

    private final IPzcActivityGroupApplyService iPzcActivityGroupApplyService;

    private final PzcUserMapper pzcUserMapper;

    private final PzcActivityMapper pzcActivityMapper;

    private final PzcUserPhotoMapper pzcUserPhotoMapper;

    private final WxUtils wxUtils;

    private final PzcActivityGroupMapper pzcActivityGroupMapper;

    private final PzcActivityGroupApplyMapper pzcActivityGroupApplyMapper;

    private final PzcOfficialMapper pzcOfficialMapper;

    private final PzcUserTalkMapper pzcUserTalkMapper;

    private final GaoDeMapUtil gaoDeMapUtil;
    private final ExecutorService newSingleThreadExecutor = new ThreadPoolExecutor(10, 20, 200L,
        TimeUnit.MILLISECONDS, new LinkedBlockingQueue<Runnable>(100),
        Executors.defaultThreadFactory(),
        new ThreadPoolExecutor.CallerRunsPolicy() //指定拒绝策略 防止任务不执行
    );

    @PostMapping("/cancelIssueGroup") //取消组队的发布
    public R cancelIssueGroup(@RequestParam("groupId") Long groupId) {
        log.info("取消组队的发布: {}", groupId);
        Long userId = LoginHelper.getUserId();
        //首先看看组队是否是我发布的 并且是否有人申请 如果有人申请则不能取消
        PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(groupId);
        if (pzcActivityGroup == null || !pzcActivityGroup.getUserId().equals(userId)) {
            return R.fail("组队不存在~");
        }
        // 查询申请列表 如果有人申请则不能取消
        QueryWrapper<PzcActivityGroupApply> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("group_id", groupId);
        List<PzcActivityGroupApply> pzcActivityGroupApplies = pzcActivityGroupApplyMapper.selectList(queryWrapper);
        List<Long> delApplyIds = new ArrayList<>();
        pzcActivityGroupApplies.forEach(
            pzcActivityGroupApply -> {
                if (pzcActivityGroupApply.getApplyStatus() != -1 && pzcActivityGroupApply.getApplyStatus() != 0 && pzcActivityGroupApply.getApplyStatus() != 15) {
                    throw new RuntimeException("有组队正在进行中,不能取消");
                }
                if (pzcActivityGroupApply.getApplyStatus() == 0) {
                    delApplyIds.add(pzcActivityGroupApply.getActivityId());
                    //异步给对方发消息 通知对方已拒绝 修改为异步请求
                    newSingleThreadExecutor.execute(() -> {

                        wxUtils.insertPzcOfficialMsg(userId, pzcActivityGroupApply.getUserId(),
                            "来自您的申请组队【" + pzcActivityGroup.getTitle() + "】信息:",
                            "您的申请组队【" + pzcActivityGroup.getTitle() + "】已被发布者取消",
                            pzcActivityGroup.getGroupId(), pzcActivityGroup.getActivityId());
                    });

                }

            }
        );
        //删除申请
        if (delApplyIds.size() > 0) {
            pzcActivityGroupApplyMapper.deleteBatchIds(delApplyIds);
        }
        //删除组队
        pzcActivityGroupMapper.deleteById(groupId);
        return R.ok();
    }


    @PostMapping("/refurbish") //刷新
    public R refurbish(@RequestBody RefurbishBo refurbishBo) throws Exception {
        log.info("刷新: {}", JsonUtils.toJsonString(refurbishBo));
        //首先查询这个组队是否是我发起的
        PzcActivityGroupApply pzcActivityGroupApply = pzcActivityGroupApplyMapper.selectById(refurbishBo.getApplyId());
        if (pzcActivityGroupApply == null) {
            return R.fail("申请不存在");
        }

        PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupApply.getGroupId());
        Pattern pattern = Pattern.compile("【(.*?)】(.*?)");
        Matcher matcher = pattern.matcher(pzcActivityGroup.getAddress());

        String end = "";
        if (matcher.find()) {
            end = matcher.group(1);
        } else {
            return R.fail("地址解析失败,请联系管理员");
        }

        String[] startJwd = refurbishBo.getAddress().split(",");
        Long data = gaoDeMapUtil.getDistance(refurbishBo.getAddress(), end).getData();
        refurbishBo.setAddress(gaoDeMapUtil.getAddress(startJwd[0], startJwd[1]).getData().toString());
        log.info("调用高德API获取到的用户目前地址为: {}", refurbishBo.getAddress());
        log.info("调用高德API获取到的用户距离目标地址距离为: {}", data);
        if (refurbishBo.getRole() == 0) //申请方
        {
            //判断申请方现在是否可以打卡
            pzcActivityGroupApply.setApplyAddress(refurbishBo.getAddress());
            pzcActivityGroupApplyMapper.updateById(pzcActivityGroupApply);
            RefurbishVO refurbishVO = new RefurbishVO();
            refurbishVO.setApplyAddress(refurbishBo.getAddress());
            refurbishVO.setApplyId(refurbishBo.getApplyId());
            refurbishVO.setStartAddress(pzcActivityGroupApply.getStartAddress());
            refurbishVO.setDistance(data);
            log.info("刷新返回的信息为: {}", JSONUtil.toJsonPrettyStr(refurbishVO));

            return R.ok(refurbishVO);

        } else {
            pzcActivityGroupApply.setStartAddress(refurbishBo.getAddress());
            pzcActivityGroupApplyMapper.updateById(pzcActivityGroupApply);
            RefurbishVO refurbishVO = new RefurbishVO();
            refurbishVO.setApplyAddress(pzcActivityGroupApply.getApplyAddress());
            refurbishVO.setApplyId(refurbishBo.getApplyId());
            refurbishVO.setStartAddress(refurbishBo.getAddress());
            refurbishVO.setDistance(data);
            log.info("刷新返回的信息为: {}", JSONUtil.toJsonPrettyStr(refurbishVO));

            return R.ok(refurbishVO);
        }
    }


    @PostMapping("/cancel") //取消 双方都可以取消
    @Transactional
    @RepeatSubmit()
    public R cancel(@RequestParam("applyId") Integer applyId) {

        //首先查询这个组队是否是我发起的
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryById(applyId.longValue());
        if (pzcActivityGroupApplyVo == null) {
            return R.fail("申请不存在");
        }
        Long userId = LoginHelper.getUserId();
        Long groupId = pzcActivityGroupApplyVo.getGroupId();
        PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
        if (pzcActivityGroupVo == null) {
            return R.fail("组队不存在");
        }


        PzcUser otherUser = null;
        if (pzcActivityGroupVo.getUserId().equals(userId)) //我是发起人 取消
        {
            otherUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());

        } else { //我是申请人
            otherUser = pzcUserMapper.selectById(pzcActivityGroupMapper.selectById(groupId).getUserId());
        }
        // 给对方发官方消息 通知对方已取消
        wxUtils.insertPzcOfficialMsg(userId, otherUser.getUserId(),
            "来自" + otherUser.getNickname() + "与您的组队信息:",
            "在【" + pzcActivityGroupVo.getTitle() + "】组队中途,对方已经取消本次组队。您可以再次同意或者申请其他用户",
            groupId, pzcActivityGroupVo.getActivityId());

        Integer applyStatus = pzcActivityGroupApplyVo.getApplyStatus();
        if (applyStatus != 0 && applyStatus != 1 && applyStatus != 9 && applyStatus != 10) {
            return R.fail("该订单位于【" + wxUtils.applyStatus(applyStatus) + "】状态,不可取消");
        }

        //查询用户是否有免责取消次数
        PzcUser pzcUser = pzcUserMapper.selectById(LoginHelper.getUserId());
        if (pzcUser.getExemptCancel() > 0) {
            pzcUser.setExemptCancel(pzcUser.getExemptCancel() - 1);
        } else {
            pzcUser.setMoney(pzcUser.getMoney().subtract(new BigDecimal("10"))); //扣除10派币
            wxUtils.insertUserHistory(pzcUser.getUserId(), pzcActivityGroupVo.getActivityId(), 4L, "取消组队扣除10派币", new BigDecimal("10").negate());
        }
        pzcUserMapper.updateById(pzcUser);
        //修改状态为 已取消

        newSingleThreadExecutor.execute(() -> {
            // 更新 组队状态为已结束
            PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupVo.getGroupId());
            pzcActivityGroup.setStatus(1); //已结束
            pzcActivityGroupMapper.updateById(pzcActivityGroup);
        });
        return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), -1));
    }


    @PostMapping("/cancelByGroupIn") //活动过程中取消组队 扣除保证金 + 20派币 退还对方派币 + 对方的保证金 通知对方
    @Transactional
    @RepeatSubmit()
    public R cancelByGroupIn(@RequestParam("applyId") Integer applyId) {
        Long userId = LoginHelper.getUserId();
        PzcUser my = pzcUserMapper.selectById(userId);
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryById(applyId.longValue());
        if (pzcActivityGroupApplyVo == null) {
            return R.fail("申请不存在");
        }

        PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupApplyVo.getGroupId());
        if (pzcActivityGroupApplyVo.getUserId().equals(userId)) //我是申请方
        {
            //把钱都返还给发起方
            BigDecimal money = pzcActivityGroupApplyVo.getMoney();
            money = money.subtract(new BigDecimal("20"));
            PzcUser startUser = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
            startUser.setMoney(startUser.getMoney().add(money).add(pzcActivityGroup.getMoney())); //全额返回给发起方的保证金 + 对方扣除 0.2保证金 后的派币
            pzcUserMapper.updateById(startUser);


            BigDecimal finalMoney = money;
            newSingleThreadExecutor.execute(() -> {

                //官方推送消息
                wxUtils.insertPzcOfficialMsg(userId, startUser.getUserId(),
                    "来自" + my.getNickname() + "与您的组队信息:",
                    "很遗憾地通知您:您在【" + pzcActivityGroup.getTitle() + "】组队活动中,申请方已经取消本次组队活动。对方的违约金 【" + finalMoney + "派币】已纳入您的账户。您可以再次同意或者申请其他用户。",
                    pzcActivityGroup.getGroupId(), pzcActivityGroup.getActivityId());

                //历史记录
                wxUtils.insertUserHistory(userId, pzcActivityGroup.getActivityId(), 4L, "在【" + pzcActivityGroup.getTitle() + "】活动中途取消组队,扣除违约金 【" + pzcActivityGroup.getMoney() + "】派币", pzcActivityGroup.getMoney().negate());
                wxUtils.insertUserHistory(startUser.getUserId(), pzcActivityGroup.getActivityId(), 2L, "在【" + pzcActivityGroup.getTitle() + "】活动中途取消组队,违约金所得 【" + pzcActivityGroup.getMoney().subtract(new BigDecimal("20")) + "】派币", pzcActivityGroup.getMoney().subtract(new BigDecimal("20")));

            });


        } else {
            //我是发起方
            PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
            applyUser.setMoney(applyUser.getMoney().
                add(pzcActivityGroup.getMoney().subtract(new BigDecimal("20")))
                .add(pzcActivityGroupApplyVo.getMoney())); //全额返回给申请方的保证金
            pzcUserMapper.updateById(applyUser);


            newSingleThreadExecutor.execute(() -> {
                //官方推送消息
                wxUtils.insertPzcOfficialMsg(userId, applyUser.getUserId(),
                    "来自" + my.getNickname() + "与您的组队信息:",
                    "很遗憾地通知您:您在在【" + pzcActivityGroup.getTitle() + "】组队活动中,发起方已经取消本次组队活动。对方的违约金 【" + pzcActivityGroup.getMoney().subtract(new BigDecimal("20")) + "派币】已纳入您的账户。您可以再次同意或者申请其他用户。",
                    pzcActivityGroup.getGroupId(), pzcActivityGroup.getActivityId());

                //历史记录
                wxUtils.insertUserHistory(userId, pzcActivityGroup.getActivityId(), 4L, "在【" + pzcActivityGroup.getTitle() + "】活动中途取消组队,违约金 【" + pzcActivityGroup.getMoney() + "】派币", pzcActivityGroup.getMoney().negate());
                wxUtils.insertUserHistory(applyUser.getUserId(), pzcActivityGroup.getActivityId(), 2L, "在【" + pzcActivityGroup.getTitle() + "】活动中途取消组队,违约金所得 【" + pzcActivityGroup.getMoney().subtract(new BigDecimal("20")) + "】派币", pzcActivityGroup.getMoney().subtract(new BigDecimal("20")));

            });

        }

        newSingleThreadExecutor.execute(() -> {
            // 更新 组队状态为已结束
            pzcActivityGroup.setStatus(1); //已结束
            pzcActivityGroupMapper.updateById(pzcActivityGroup);
        });

        return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), -1));//修改状态为 已取消
    }

    /**
     * 我创建的活动的申请列表
     * 思路整理
     * 首先查出所有 GroupId
     * 然后查出groupId 对应的申请列表
     *
     * @return
     */
    @GetMapping("/applyList")
    public R<List<PzcActivityGroupApplyVo>> applyList() {
        PzcActivityGroupBo bo = new PzcActivityGroupBo();
        bo.setUserId(LoginHelper.getUserId());
        List<PzcActivityGroupVo> pzcActivityGroupVos = iPzcActivityGroupService.queryList(bo);
        List<Long> groupIds = pzcActivityGroupVos.stream().map(PzcActivityGroupVo::getGroupId).collect(Collectors.toList());
        if (groupIds.size() == 0) {
            return R.ok();
        }

        List<PzcActivityGroupApplyVo> pzcActivityGroupApplyVos = iPzcActivityGroupApplyService.queryListByGroupIds(groupIds);
        pzcActivityGroupApplyVos.forEach(
            s -> {
                PzcUser pzcUser = pzcUserMapper.selectById(s.getUserId());
                s.setNickName(pzcUser.getNickname());
                s.setAvatar(pzcUser.getAvatar());
                Integer region = pzcActivityGroupVos.stream().filter(s1 -> s1.getGroupId().equals(s.getGroupId())).findFirst().get().getRegion();

                String title = "";
                PzcActivity pzcActivity = pzcActivityMapper.selectById(s.getActivityId());
                if (s.getActivityId() == 0) {
                    PzcRegion pzcRegion = pzcRegionMapper.selectById(region);
                    if (pzcRegion != null) {
                        title = "【" + pzcRegion.getName() + "】";
                    }
                    log.info("申请活动列表 title:{}", title);

                } else {
                    if (pzcActivity != null) {
                        title = pzcActivity.getTitle();
                    } else {
                        title = "【活动已结束】";
                    }

                }

                s.setActivityTitle(title);
                s.setGroupTitle(pzcActivityGroupVos.stream().filter(s1 -> s1.getGroupId().equals(s.getGroupId())).findFirst().get().getTitle());
            }
        );
        List<PzcActivityGroupApplyVo> result = pzcActivityGroupApplyVos.stream().filter(s -> s.getApplyStatus() == 0).collect(Collectors.toList());//过滤掉已取消的
        return R.ok(result);
    }

    @GetMapping("/userInfo") //查看申请人或者发起人信息
    public R userInfo(@RequestParam("userId") Long userId, @RequestParam("groupId") Long groupId) {
        //首先查询该用户是否申请了我的组 申请了 才有资格去查看  这个不应该是申请的 人才能看   双方都能互相看
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryByUserIdAndGroupId(userId, groupId);
        if (pzcActivityGroupApplyVo == null) {
            PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
            if (!userId.equals(pzcActivityGroupVo.getUserId())) {
                return R.fail("无权查看该用户信息");
            }
            pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryByUserIdAndGroupId(LoginHelper.getUserId(), groupId);

        }
        PzcUser pzcUser = pzcUserMapper.selectById(userId);
        pzcUser.setMoney(null);
        pzcUser.setUserPhoto(pzcUserPhotoMapper.selectList(new QueryWrapper<>(new PzcUserPhoto()).eq("user_id", userId)));

        PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(groupId);
        pzcActivityGroup.setAddress(pzcActivityGroup.getAddress().substring(pzcActivityGroup.getAddress().indexOf("】") + 1));

        pzcActivityGroupApplyVo.setActivityTitle(pzcActivityGroup.getActivityName());
        pzcUser.setPzcActivityGroupApplyVo(pzcActivityGroupApplyVo);
        pzcUser.setPzcActivityGroup(pzcActivityGroup);
        pzcUser.setLiveStatus(concurrentHashMap.get(userId) != null);
        pzcUser.setNotReadCount(pzcUserTalkMapper.selectNotReadCount(userId, LoginHelper.getUserId(), LoginHelper.getUserId()));
        pzcUser.setExemptCancel(pzcUserMapper.selectById(LoginHelper.getUserId()).getExemptCancel()); //获取我的免责取消次数
        return R.ok(pzcUser);
    }

    /**
     * 13 发起方已评价
     * 14 申请方已评价
     * 15 双方已评价
     *
     * @param applyId
     * @return
     */

    @PostMapping("/pj") //双方评价 (可选)
    @Transactional
    public R pj(@RequestParam("applyId") Integer applyId, @RequestParam("score") Integer score) {
        wxUtils.checkApplyScore(score);
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = wxUtils.checkApplyPj(applyId.longValue());
        //首先获取我的UserId
        Long userId = LoginHelper.getUserId();
        Long groupId = pzcActivityGroupApplyVo.getGroupId();
        Integer applyStatus = pzcActivityGroupApplyVo.getApplyStatus();
        if (pzcActivityGroupApplyVo.getUserId().equals(userId)) {
            //获取对方 userId 并且修改对方积分
            Long otherUserId = pzcActivityGroupMapper.selectById(groupId).getUserId();
            PzcUser otherUser = pzcUserMapper.selectById(otherUserId);
            if (applyStatus == 13) {
                return R.fail("您已经评价过了 不可重复操作");
            }
            otherUser.setIntegration(otherUser.getIntegration() + score);
            otherUser.setIntegrationNow(otherUser.getIntegrationNow() + score);
            wxUtils.updateUserMsg(otherUser);

            pzcUserMapper.updateById(otherUser);

            if (applyStatus == 14) //发起方评价了
            {
                return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 15)); //双方都已评价
            }
            return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 13));//申请方评价
        }
        //判断当前 用户是否为组队发起人 如果不是 直接报错
        PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
        if (pzcActivityGroupVo == null) {
            return R.fail("组队不存在");
        }
        if (!pzcActivityGroupVo.getUserId().equals(userId)) {
            return R.fail("你不是组队发起人");
        }
        if (applyStatus == 14) {
            return R.fail("您已经评价过了 不可重复操作");
        }

        // ============================================================================================
        Long otherUserId = pzcActivityGroupApplyVo.getUserId();
        PzcUser otherUser = pzcUserMapper.selectById(otherUserId);
        otherUser.setIntegration(otherUser.getIntegration() + score);
        otherUser.setIntegrationNow(otherUser.getIntegrationNow() + score);
        wxUtils.updateUserMsg(otherUser);
        pzcUserMapper.updateById(otherUser);


        //看看申请方是否评价了
        if (applyStatus == 13) //申请方评价了
        {
            return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 15)); //双方都已评价
        }

        return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 14));//发起方评价

    }


    /**
     * 双方都到达了目的地 开始扣手续费
     *
     * @param applyId
     * @return
     */
    @PostMapping("/confirmReach") //确认到达目的地
    @Transactional
    public R confirmReach(@RequestParam("applyId") Integer applyId) {
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = wxUtils.checkApplyConfirm(applyId.longValue());
        Long userId = LoginHelper.getUserId();
        PzcUser my = pzcUserMapper.selectById(userId);
        Long groupId = pzcActivityGroupApplyVo.getGroupId();
        Integer applyStatus = pzcActivityGroupApplyVo.getApplyStatus();
        if (applyStatus != 2 && applyStatus != 11 && applyStatus != 12) {
            return R.fail("该订单目前状态为【" + wxUtils.applyStatus(applyStatus) + "】不可确认");
        }

        //获取发起方的保证金
        PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
        if (pzcActivityGroupVo == null) {
            return R.fail("组队不存在");
        }
        PzcActivity pzcActivity = pzcActivityMapper.selectById(pzcActivityGroupVo.getActivityId());
        if (pzcActivityGroupApplyVo.getUserId().equals(userId)) { //我是申请方
            if (applyStatus == 11) //发起方确认了
            {

                BigDecimal money = pzcActivityGroupVo.getMoney();
                money = money.subtract(new BigDecimal("10"));
                //将保证金还给发起方
                PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());
                pzcUser.setMoney(pzcUser.getMoney().add(money));
                pzcUserMapper.updateById(pzcUser);
                //========================================================================
                //获取申请方的保证金
                PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
                BigDecimal applyMoney = pzcActivityGroupApplyVo.getMoney();
                applyMoney = applyMoney.subtract(new BigDecimal("10"));
                //将保证金还给申请方
                applyUser.setMoney(applyUser.getMoney().add(applyMoney));
                pzcUserMapper.updateById(applyUser);


                BigDecimal finalMoney = money;
                BigDecimal finalApplyMoney = applyMoney;
                newSingleThreadExecutor.execute(() -> {
                    wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 2L, "组队完成退还保证金 【" + finalMoney + "】 派币", finalMoney);
                    wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupVo.getActivityId(), 2L, "组队完成退还保证金 【" + finalApplyMoney + "】 派币", finalMoney);

                    wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 1L, JsonUtils.toJsonString(pzcActivity), null);
                    wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupVo.getActivityId(), 1L, JsonUtils.toJsonString(pzcActivity), null);


                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupApplyVo.getGroupId());
                    // 更新 组队状态为已结束
                    pzcActivityGroup.setStatus(1); //已结束
                    pzcActivityGroupMapper.updateById(pzcActivityGroup);


                    //更新双方积分
                    PzcUser pzcUser1 = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                    PzcUser pzcUser2 = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
                    pzcUser1.setIntegration(pzcUser1.getIntegration() + 3);
                    pzcUser1.setIntegrationNow(pzcUser1.getIntegrationNow() + 3);
                    pzcUser2.setIntegration(pzcUser2.getIntegration() + 3);
                    pzcUser2.setIntegrationNow(pzcUser2.getIntegrationNow() + 3);
                    wxUtils.updateUserMsg(pzcUser1);
                    wxUtils.updateUserMsg(pzcUser2);
                });


                return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 3)); //双方都已确认
            }
            if (applyStatus == 12) {
                return R.fail("您已经确认过了 不可重复操作");
            }
            //申请方确认了 给发起方推送微信消息
            PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());
            Map<String, Map> dataMap = new HashMap<>();
            dataMap.put("thing4", MapBuilder.create().put("value", my.getNickname()).build());
            dataMap.put("thing5", MapBuilder.create().put("value", "对方已到达,您需在活动时间内到达").build());
            dataMap.put("time6", MapBuilder.create().put("value", DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")).build());
            log.info("发起方确认到达目的地,给申请方推送微信消息:{}", JsonUtils.toJsonString(dataMap));

            newSingleThreadExecutor.execute(() -> {
                wxUtils.sendArriveMsg(pzcUser.getOpenid(), dataMap);
            });

            return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 12));//申请方确认
        }
        //判断当前 用户是否为组队发起人 如果不是 直接报错

        if (!pzcActivityGroupVo.getUserId().equals(userId)) {
            return R.fail("你不是组队发起人");
        }
        //看看申请方是否确认了
        if (applyStatus == 12) //我是发起方
        {
            //获取发起方的保证金
            BigDecimal money = pzcActivityGroupVo.getMoney();
            money = money.subtract(new BigDecimal("10"));
            //将保证金还给发起方
            PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());
            pzcUser.setMoney(pzcUser.getMoney().add(money));
            pzcUserMapper.updateById(pzcUser);
            //========================================================================
            //获取申请方的保证金
            PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
            BigDecimal applyMoney = pzcActivityGroupApplyVo.getMoney();
            applyMoney = applyMoney.subtract(new BigDecimal("10"));
            //将保证金还给申请方
            applyUser.setMoney(applyUser.getMoney().add(applyMoney));
            pzcUserMapper.updateById(applyUser);


            BigDecimal finalMoney = money;
            BigDecimal finalApplyMoney = applyMoney;
            newSingleThreadExecutor.execute(() -> {

                wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 2L, "组队完成退还保证金 " + finalMoney + " 派币", finalMoney);
                wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupVo.getActivityId(), 2L, "组队完成退还保证金 " + finalApplyMoney + " 派币", finalMoney);

                wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 1L, JsonUtils.toJsonString(pzcActivity), null);
                wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupVo.getActivityId(), 1L, JsonUtils.toJsonString(pzcActivity), null);


                PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupApplyVo.getGroupId());
                // 更新 组队状态为已结束
                pzcActivityGroup.setStatus(1); //已结束
                pzcActivityGroupMapper.updateById(pzcActivityGroup);

                //更新双方积分
                PzcUser pzcUser1 = pzcUserMapper.selectById(pzcActivityGroup.getUserId());
                PzcUser pzcUser2 = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
                pzcUser1.setIntegration(pzcUser1.getIntegration() + 3);
                pzcUser1.setIntegrationNow(pzcUser1.getIntegrationNow() + 3);
                pzcUser2.setIntegration(pzcUser2.getIntegration() + 3);
                pzcUser2.setIntegrationNow(pzcUser2.getIntegrationNow() + 3);
                wxUtils.updateUserMsg(pzcUser1);
                wxUtils.updateUserMsg(pzcUser2);
            });
            return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 3)); //双方都已确认
        }
        if (applyStatus == 11) {
            return R.fail("您已经确认过了 不可重复操作");
        }
        //发起方确认了 给申请方推送微信消息
        PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
        Map<String, Map<Object, Object>> dataMap = new HashMap<>();
        dataMap.put("thing4", MapBuilder.create().put("value", my.getNickname()).build());
        dataMap.put("thing5", MapBuilder.create().put("value", "对方已到达,您需在活动时间内到达").build()); //对方已到达约定的见面地点,您需在【"+pzcActivityGroupVo.getActivityTime()+"】前到达目的地,否则,按照违约处理。或您也可以与对方沟通,申请无限制确认到达,以保证组队的正常。
        dataMap.put("time6", MapBuilder.create().put("value", DateUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss")).build());
        log.info("申请方确认到达目的地,给发起方推送微信消息:{}", JsonUtils.toJsonString(dataMap));
        newSingleThreadExecutor.execute(() -> {
            wxUtils.sendArriveMsg(pzcUser.getOpenid(), dataMap);
        });

        return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 11));//发起方确认
    }


    @GetMapping("/applyRole")
    public R applyRole(@RequestParam("applyId") Integer applyId) {
        Long userId = LoginHelper.getUserId();
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryById(applyId.longValue());
        if (pzcActivityGroupApplyVo.getUserId().equals(userId)) {
            return R.ok(0); //我是申请方
        } else {
            return R.ok(1); //我是发起方
        }
    }


    @PostMapping("/confirm") //确认申请 (这里判断 保证金 是否足够缴纳 保证 新人卡 bug)
    @Transactional
    public R confirm(@RequestParam("applyId") Integer applyId) {
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = wxUtils.checkApplyConfirm(applyId.longValue());
        Long userId = LoginHelper.getUserId();
        Long groupId = pzcActivityGroupApplyVo.getGroupId();
        Integer applyStatus = pzcActivityGroupApplyVo.getApplyStatus();

        if (applyStatus == 2) {
            return R.fail("该订单进行中,不可确认");
        }
        PzcActivityGroupVo group = iPzcActivityGroupService.queryById(groupId);
        //获取双方保证金
        BigDecimal applyMoney = pzcActivityGroupApplyVo.getMoney();
        BigDecimal startMoney = group.getMoney();
        //获取双方
        PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApplyVo.getUserId());
        PzcUser startUser = pzcUserMapper.selectById(group.getUserId());

        //如果可以确认 判断 是那一方确认的
        if (pzcActivityGroupApplyVo.getUserId().equals(userId)) {// 自己是申请方 申请方还得等发起方最后确认时间地点
            if (applyStatus == 10) {
                return R.fail("您已经确认过了 不可重复操作");
            }

            //如果是自己确认的 则修改状态为 已确认
            if (applyStatus == 9) //发起方确认了
            {
                log.info("申请方的余额与保证金 {}----{}", applyUser.getMoney(), applyMoney);
                // 如果有一方保证金不足以缴纳 则报错
                if (applyUser.getMoney().compareTo(applyMoney) < 0) {
                    return R.fail("您的保证金不足以缴纳");
                }


                //双方都已确认 开始 扣除保证金
                //获取申请方保证金
                applyUser.setMoney(applyUser.getMoney().subtract(applyMoney));
                pzcUserMapper.updateById(applyUser);
                //获取发起方保证金
                startUser.setMoney(startUser.getMoney().subtract(startMoney));
                pzcUserMapper.updateById(startUser);

                //存入历史记录
                wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupApplyVo.getActivityId(), 3L, "组队开始扣除保证金 【" + applyMoney + "】 派币", applyMoney.negate());
                wxUtils.insertUserHistory(group.getUserId(), pzcActivityGroupApplyVo.getActivityId(), 3L, "组队开始扣除保证金 【" + startMoney + "】 派币", startMoney.negate());

                return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 2)); //双方都已确认
            } else {
                return R.fail("发起方还未确认最后时间地点,请继续保持沟通哦");
            }

        } else { //自己是发起方
            //判断当前 用户是否为组队发起人 如果不是 直接报错‘
            PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
            if (pzcActivityGroupVo == null) {
                return R.fail("组队不存在");
            }
            if (!pzcActivityGroupVo.getUserId().equals(userId)) {
                return R.fail("你不是组队发起人");
            }
            if (applyStatus == 9) {
                return R.fail("您已经确认过了 不可重复操作");
            }

            //看看申请方是否确认了
            if (applyStatus == 10) //申请方确认了
            {

                log.info("发起方的余额与保证金 {}----{}", startUser.getMoney(), startMoney);
                if (startUser.getMoney().compareTo(startMoney) < 0) {
                    return R.fail("您的的保证金不足以缴纳");
                }

                //双方都已确认 开始 扣除保证金
                //获取申请方保证金
                applyUser.setMoney(applyUser.getMoney().subtract(applyMoney));
                pzcUserMapper.updateById(applyUser);
                //获取发起方保证金
                startUser.setMoney(startUser.getMoney().subtract(startMoney));
                pzcUserMapper.updateById(startUser);

                newSingleThreadExecutor.execute(() -> {
                    //存入历史记录
                    wxUtils.insertUserHistory(pzcActivityGroupApplyVo.getUserId(), pzcActivityGroupApplyVo.getActivityId(), 3L, "组队开始扣除保证金 【" + applyMoney + "】 派币", applyMoney.negate());
                    wxUtils.insertUserHistory(group.getUserId(), pzcActivityGroupApplyVo.getActivityId(), 3L, "组队开始扣除保证金 【" + startMoney + "】 派币", startMoney.negate());

                });

                return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 2)); //双方都已确认
            }
            return R.ok(iPzcActivityGroupApplyService.updateStatus(applyId.longValue(), 9));//发起方确认
        }
    }


    /**
     * 同意用户申请 进入下一阶段
     * 同意用户申请时 先判断对方是否  处于组队进程
     * <p>
     * <p>
     * -1 已取消 0 位于申请列表中 1 申请通过待确认时
     * 2 确认通过进行中 3 组队结束  9发起方已确认
     * 10申请方已确认 11 发起方已打卡 12 申请方已打卡
     * 13 申请方已评价 14 发起方已评价 15 双方已评价
     *
     * @return
     */
    @PostMapping("/apply")
    public R apply(@RequestParam("applyId") Long applyId) {
        //首先查询这个组队是否是我发起的
        PzcActivityGroupApplyVo pzcActivityGroupApplyVo = iPzcActivityGroupApplyService.queryById(applyId);
        if (pzcActivityGroupApplyVo == null) {
            return R.fail("申请不存在");
        }
        Long userId = LoginHelper.getUserId();
        PzcUser my = pzcUserMapper.selectById(userId);

        Long groupId = pzcActivityGroupApplyVo.getGroupId();
        PzcActivityGroupVo pzcActivityGroupVo = iPzcActivityGroupService.queryById(groupId);
        if (pzcActivityGroupVo == null) {
            return R.fail("组队不存在");
        }
        if (!pzcActivityGroupVo.getUserId().equals(userId)) {
            return R.fail("你不是组队发起人");
        }

        //判断对方是否 处于 组队进程 如果是 则不可同意
        Long applyUserId = pzcActivityGroupApplyVo.getUserId();
        //获取活动Id
        Long activityId = pzcActivityGroupVo.getActivityId();
        //获取活动组队列表 除了自己这个队伍外
        List<PzcActivityGroup> groups = pzcActivityGroupMapper.selectList(new QueryWrapper<PzcActivityGroup>().eq("activity_id", activityId));
        List<Long> groupIds = groups.stream().filter(s -> !s.getGroupId().equals(groupId)).map(PzcActivityGroup::getGroupId).collect(Collectors.toList());
        if (groupIds.size() != 0) {
            //然后获取当前对方申请了几个队伍 判断每个队伍的进程 如果有 进程处于 组队状态中 则不可以同意
            List<PzcActivityGroupApply> applies = pzcActivityGroupApplyMapper.selectList(new QueryWrapper<PzcActivityGroupApply>().in("group_id", groupIds).eq("user_id", applyUserId));
            applies.forEach(
                a -> {
                    if (a.getApplyStatus() != 3 && a.getApplyStatus() != 13 && a.getApplyStatus() != 14 && a.getApplyStatus() != 15 && a.getApplyStatus() != -1) {
                        log.info("对方当前进程为 {} 详细信息为 {}", a.getApplyStatus(), JsonUtils.toJsonString(a));
                        throw new RuntimeException("该用户已经处于组队进程中 等待对方结束活动再试哦");
                    }
                }
            );
        }

        //判断一下 我是否在当前活动下 有未完成的组队 如果有就不能 同意其他的申请
        List<PzcActivityGroupApply> applies = pzcActivityGroupApplyMapper.selectList(new QueryWrapper<PzcActivityGroupApply>().eq("group_id", groupId).
            eq("activity_id", activityId).notIn("apply_status",-1,0,3,13,14,15));

        log.info("当前申请人的申请列表为:{}",JSONUtil.toJsonPrettyStr(applies));
        if(applies.size()>1)
        {
            return R.fail("您当前有未完成的组队,无法同意其他申请");
        }

        //修改状态为 已同意
        Integer integer = iPzcActivityGroupApplyService.updateStatus(applyId, 1);
        if (integer == null || integer != 1) {
            return R.fail("修改状态失败");
        }

        //给对方发消息 已经同意了对方的申请 请尽快确认
        PzcUser otherUser = pzcUserMapper.selectById(applyUserId);
        wxUtils.insertPzcOfficialMsg(my.getUserId(), otherUser.getUserId(),"来自" + my.getNickname() + "与您的组队信息:","您的组队申请已经被对方同意,请尽快确认~",groupId,activityId);

        try {
            // 创建一个任务逻辑,接受参数并在任务执行时使用
            ScheduledExecutorUtils.RunnableWithParams task = (params) -> {
                System.out.println("Task executed at: " + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
                if (params.length > 0) {
                    System.out.println("Parameter received: " + params[0]);
                }
                // 在这里添加你的任务逻辑
                PzcActivityGroupApply pzcActivityGroupApply = pzcActivityGroupApplyMapper.selectById((Serializable) params[1]);
                log.info("定时任务执行中,当前申请信息为:{}", JsonUtils.toJsonString(pzcActivityGroupApply));

                if (pzcActivityGroupApply.getApplyStatus() == 1) {
                    //如果对方还未确认 则修改状态为 已取消
                    iPzcActivityGroupApplyService.updateStatus((Long) params[1], -1);
                    //发起方扣除10派币或者免责取消的一次机会
                    PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());
                    if (pzcUser.getExemptCancel() == 0) {
                        pzcUser.setMoney(pzcUser.getMoney().subtract(new BigDecimal("10")));
                        pzcUserMapper.updateById(pzcUser);
                        wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 3L, "组队取消扣除保证金 【10】 派币", new BigDecimal("10").negate());
                    } else {
                        pzcUser.setExemptCancel(pzcUser.getExemptCancel() - 1);
                        pzcUserMapper.updateById(pzcUser);
                    }
                    //修改组队状态为已完成
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupVo.getGroupId());
                    pzcActivityGroup.setStatus(1); //已结束
                    pzcActivityGroupMapper.updateById(pzcActivityGroup);


                    //给对方发消息 对方未确认 申请已取消
                    PzcOfficial pzcOfficial1 = new PzcOfficial();
                    pzcOfficial1.setIsRead(0L);
                    PzcUser otherUser1 = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId());
                    pzcOfficial1.setToUserId(otherUser1.getUserId());
                    pzcOfficial1.setTitle("派之城官方提醒您:");
                    pzcOfficial1.setContent("您好,由于对方未确认地址,您的组队已取消。平台已对对方进行相应惩罚。");
                    pzcOfficial1.setGroupId(groupId);
                    pzcOfficial1.setActivityId(activityId);
                    pzcOfficialMapper.insert(pzcOfficial1);

                    PzcOfficial pzcOfficial2 = new PzcOfficial();
                    pzcOfficial2.setIsRead(0L);
                    pzcOfficial2.setToUserId(pzcActivityGroupVo.getUserId());
                    pzcOfficial2.setTitle("派之城官方提醒您:");
                    pzcOfficial2.setContent("您好,由于您未进行确认地址,您的组队已取消,平台扣除您一次免责取消机会或10派币。(具体根据您免责机会次数确定)");
                    pzcOfficial2.setGroupId(groupId);
                    pzcOfficial2.setActivityId(activityId);
                    pzcOfficialMapper.insert(pzcOfficial2);
                }
                if (pzcActivityGroupApply.getApplyStatus() == 9) { //发起方确认了地址 而申请方未确认
                    //如果对方还未确认 则修改状态为 已取消
                    iPzcActivityGroupApplyService.updateStatus((Long) params[1], -1);
                    //申请方扣除10派币或者免责取消的一次机会
                    PzcUser pzcUser = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId());
                    if (pzcUser.getExemptCancel() == 0) {
                        pzcUser.setMoney(pzcUser.getMoney().subtract(new BigDecimal("10")));
                        pzcUserMapper.updateById(pzcUser);
                        wxUtils.insertUserHistory(pzcActivityGroupApply.getUserId(), pzcActivityGroupApply.getActivityId(), 3L, "组队取消扣除保证金 【10】 派币", new BigDecimal("10").negate());
                    } else {
                        pzcUser.setExemptCancel(pzcUser.getExemptCancel() - 1);
                        pzcUserMapper.updateById(pzcUser);
                    }
                    //修改组队状态为已完成
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupVo.getGroupId());
                    pzcActivityGroup.setStatus(1); //已结束
                    pzcActivityGroupMapper.updateById(pzcActivityGroup);

                    //给对方发消息 对方未确认 申请已取消
                    PzcOfficial pzcOfficial1 = new PzcOfficial();
                    pzcOfficial1.setIsRead(0L);
                    PzcUser otherUser1 = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId()); //申请方
                    pzcOfficial1.setToUserId(otherUser1.getUserId());
                    pzcOfficial1.setTitle("派之城官方提醒您:");
                    pzcOfficial1.setContent("您好,由于您未进行确认地址,您的组队已取消,平台扣除您一次免责取消机会或10派币。(具体根据您免责机会次数确定)");
                    pzcOfficial1.setGroupId(groupId);
                    pzcOfficial1.setActivityId(activityId);
                    pzcOfficialMapper.insert(pzcOfficial1);

                    PzcOfficial pzcOfficial2 = new PzcOfficial();
                    pzcOfficial2.setIsRead(0L);
                    pzcOfficial2.setToUserId(pzcActivityGroupVo.getUserId()); //发起方
                    pzcOfficial2.setTitle("派之城官方提醒您:");
                    pzcOfficial2.setContent("您好,由于对方未确认地址,您的组队已取消。平台已对对方进行相应惩罚。");
                    pzcOfficial2.setGroupId(groupId);
                    pzcOfficial2.setActivityId(activityId);
                    pzcOfficialMapper.insert(pzcOfficial2);
                }
                if (pzcActivityGroupApply.getApplyStatus() == 10) { //申请方确认了地址
                    //如果对方还未确认 则修改状态为 已取消
                    iPzcActivityGroupApplyService.updateStatus((Long) params[1], -1);
                    //修改组队状态为已完成
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupVo.getGroupId());
                    pzcActivityGroup.setStatus(1); //已结束
                    pzcActivityGroupMapper.updateById(pzcActivityGroup);

                    //双方均扣除10派币
                    PzcUser startUser = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());

                    startUser.setMoney(startUser.getMoney().subtract(new BigDecimal("10")));
                    pzcUserMapper.updateById(startUser);
                    wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 3L, "组队取消扣除保证金 【10】 派币", new BigDecimal("10").negate());

                    PzcUser applyUser = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId());
                    applyUser.setMoney(applyUser.getMoney().subtract(new BigDecimal("10")));
                    pzcUserMapper.updateById(applyUser);
                    wxUtils.insertUserHistory(pzcActivityGroupApply.getUserId(), pzcActivityGroupApply.getActivityId(), 3L, "组队取消扣除保证金 【10】 派币", new BigDecimal("10").negate());
                }


                if (pzcActivityGroupApply.getApplyStatus() == 11 || pzcActivityGroupApply.getApplyStatus() == 12) {
                    //如果对方还未确认 则修改状态为 已取消
                    iPzcActivityGroupApplyService.updateStatus((Long) params[1], -1);
                    //修改组队状态为已完成
                    PzcActivityGroup pzcActivityGroup = pzcActivityGroupMapper.selectById(pzcActivityGroupVo.getGroupId());
                    pzcActivityGroup.setStatus(1); //已结束
                    pzcActivityGroupMapper.updateById(pzcActivityGroup);
                    if (pzcActivityGroupApply.getApplyStatus() == 11) //发起方打卡了 申请方 全责
                    {
                        BigDecimal money = pzcActivityGroupApply.getMoney();

                        PzcOfficial pzcOfficial1 = new PzcOfficial();
                        pzcOfficial1.setIsRead(0L);
                        pzcOfficial1.setFromUserId(null);
                        pzcOfficial1.setToUserId(pzcActivityGroupApply.getUserId());
                        pzcOfficial1.setTitle("派之城提醒您:");
                        pzcOfficial1.setContent("您好,由于您在活动结束前未进行到约定地方打卡签到,平台已对您进行违约处理,已扣除您全部保障金。");
                        pzcOfficial1.setGroupId(groupId);
                        pzcOfficial1.setActivityId(activityId);
                        pzcOfficialMapper.insert(pzcOfficial1);

                        PzcUser pzcUser1 = pzcUserMapper.selectById(pzcActivityGroupVo.getUserId());
                        pzcUser1.setMoney(pzcUser1.getMoney().add(pzcActivityGroup.getMoney()).add(money.subtract(new BigDecimal("20"))));
                        pzcUserMapper.updateById(pzcUser1); //发起方获得申请方 扣除20派币 后的保证金

                        PzcOfficial pzcOfficial2 = new PzcOfficial();
                        pzcOfficial2.setIsRead(0L);
                        pzcOfficial2.setFromUserId(null);
                        pzcOfficial2.setToUserId(pzcActivityGroupVo.getUserId());
                        pzcOfficial2.setTitle("派之城提醒您:");
                        pzcOfficial2.setContent("您好,您在【" + pzcActivityGroupVo.getTitle() + "】组队活动中,由于对方未在活动结束前进行签到打卡,平台已对对方进行违约处理。对方的违约金【" + money.subtract(new BigDecimal("20")) + "】派币已纳入您的账户。您可以再次同意或申请其他用户。");
                        pzcOfficial2.setGroupId(groupId);
                        pzcOfficial2.setActivityId(activityId);
                        pzcOfficialMapper.insert(pzcOfficial2);

                        wxUtils.insertUserHistory(pzcActivityGroupApply.getUserId(), pzcActivityGroupApply.getActivityId(), 3L, "活动时间到 自动取消组队 扣除保证金 【" + money + "】 派币", money.negate());


                    }
                    if (pzcActivityGroupApply.getApplyStatus() == 12) //申请方打卡了 发起方 全责
                    {

                        BigDecimal money = pzcActivityGroupVo.getMoney();


                        PzcOfficial pzcOfficial1 = new PzcOfficial();
                        pzcOfficial1.setIsRead(0L);
                        pzcOfficial1.setFromUserId(null);
                        pzcOfficial1.setToUserId(pzcActivityGroupVo.getUserId());
                        pzcOfficial1.setTitle("派之城提醒您:");
                        pzcOfficial1.setContent("您好,由于您在活动结束前未进行到约定地方打卡签到,平台已对您进行违约处理,已扣除您全部保障金。");
                        pzcOfficial1.setGroupId(groupId);
                        pzcOfficial1.setActivityId(activityId);
                        pzcOfficialMapper.insert(pzcOfficial1);


                        PzcUser pzcUser1 = pzcUserMapper.selectById(pzcActivityGroupApply.getUserId());
                        pzcUser1.setMoney(pzcUser1.getMoney().add(pzcActivityGroupApply.getMoney()).add(money.subtract(new BigDecimal("20"))));
                        pzcUserMapper.updateById(pzcUser1); //申请方获得发起方 扣除20派币 后的保证金

                        PzcOfficial pzcOfficial2 = new PzcOfficial();
                        pzcOfficial2.setIsRead(0L);
                        pzcOfficial2.setFromUserId(null);
                        pzcOfficial2.setToUserId(pzcActivityGroupApply.getUserId());
                        pzcOfficial2.setTitle("派之城提醒您:");
                        pzcOfficial2.setContent("您好,您在【" + pzcActivityGroupVo.getTitle() + "】组队活动中,由于对方未在活动结束前进行签到打卡,平台已对对方进行违约处理。对方的违约金【" + money.subtract(new BigDecimal("20")) + "】派币已纳入您的账户。您可以再次同意或申请其他用户。");
                        pzcOfficial2.setGroupId(groupId);
                        pzcOfficial2.setActivityId(activityId);
                        pzcOfficialMapper.insert(pzcOfficial2);


                        wxUtils.insertUserHistory(pzcActivityGroupVo.getUserId(), pzcActivityGroupVo.getActivityId(), 3L, "活动时间到 自动取消组队 扣除保证金 【" + money + "】 派币", money.negate());

                    }

                }
            };
            ScheduledExecutorUtils.scheduleTask(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(pzcActivityGroupVo.getActivityTime()), task, groupId, applyId);
        } catch (ParseException e) {
            log.info("创建定时任务失败,活动信息为 {}", JsonUtils.toJsonString(pzcActivityGroupVo));
        }

        return R.ok();
    }


    /**
     * 查询活动组队列表
     */
    @GetMapping("/list")
    public TableDataInfo<PzcActivityGroupVo> list(PzcActivityGroupBo bo, PageQuery pageQuery) {
        log.info("组队大厅 查询条件是: {}", JsonUtils.toJsonString(bo));
        return iPzcActivityGroupService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动组队列表
     */
    @SaCheckPermission("system:activityGroup:export")
    @Log(title = "活动组队", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcActivityGroupBo bo, HttpServletResponse response) {
        List<PzcActivityGroupVo> list = iPzcActivityGroupService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动组队", PzcActivityGroupVo.class, response);
    }

    /**
     * 获取活动组队详细信息
     *
     * @param groupId 主键
     */
    @GetMapping("/{groupId}")
    public R<PzcActivityGroupVo> getInfo(@NotNull(message = "主键不能为空")
                                         @PathVariable Long groupId) {
        return R.ok(iPzcActivityGroupService.queryById(groupId));
    }


    @Autowired
    private PzcRegionMapper pzcRegionMapper;

    /**
     * 发起活动组队
     */
    @Log(title = "活动组队", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcActivityGroupBo bo) {
        Long userId = LoginHelper.getUserId();
        bo.setUserId(userId);

        wxUtils.checkMgc(bo.getTitle());//校验敏感词
        //校验活动是否存在
        if (!iPzcActivityGroupService.checkActivity(bo.getActivityId()) && bo.getActivityId() != 0) { //如果不是城市活动 并且活动id不为0 则校验活动是否存在
            return R.fail("活动不存在");
        }
        PzcRegion pzcRegion = pzcRegionMapper.selectById(bo.getRegion());
        //校验城市是否存在 只对派对生效
        if (pzcRegion == null && pzcActivityMapper.selectById(bo.getActivityId()).getClassify() != 0) {
            log.info("传入的城市Id is {} ", bo.getRegion());
            return R.fail("当前城市不存在");
        }
        if(bo.getMoney().compareTo(new BigDecimal(99))<0)
        {
            return R.fail("派币保证金至少为99");
        }

        //检验自己是否已经在此城市里发起过组队
        if (bo.getActivityId() == 0) {
            //如果是城市活动 则校验是否已经发起过组队
            List<PzcActivityGroup> groups = pzcActivityGroupMapper.selectList(new QueryWrapper<PzcActivityGroup>().
                eq("user_id", userId).eq("activity_id", 0).eq("region", bo.getRegion()).eq("status", 0));
            if (groups.size() != 0) {
                log.info("用户id为:{} 在城市id为:{} 发起过组队 {}", userId, bo.getRegion(), JsonUtils.toJsonString(groups));
                return R.fail("您已经在此城市发起过组队了");
            }
            bo.setActivityName("【" + pzcRegion.getName() + "】");
        } else {
            //如果是活动 则校验是否已经发起过组队 //并且状态不为已结束
            List<PzcActivityGroup> groups = pzcActivityGroupMapper.selectList(new QueryWrapper<PzcActivityGroup>().eq("user_id", userId).eq("activity_id", bo.getActivityId()).eq("status", 0));
            if (groups.size() != 0) {
                log.info("用户id为:{} 在活动id为:{} 发起过组队 {}", userId, bo.getActivityId(), JsonUtils.toJsonString(groups));
                return R.fail("您已经在此活动发起过组队了");
            }
            bo.setActivityName(pzcActivityMapper.selectById(bo.getActivityId()).getTitle());
        }

        // 校验保证金
        PzcUser pzcUser = pzcUserMapper.selectById(userId);
        if (pzcUser.getMoney().compareTo(bo.getMoney()) < 0 || bo.getMoney().compareTo(new BigDecimal(99)) < 0) {
            return R.fail("保证金不足 至少拥有99个派币");
        }


        return toAjax(iPzcActivityGroupService.insertByBo(bo));
    }

    /**
     * 修改活动组队
     */
    @Log(title = "活动组队", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcActivityGroupBo bo) {
        bo.setUserId(LoginHelper.getUserId());
        if(bo.getMoney().compareTo(new BigDecimal(99))<0)
        {
            return R.fail("保证金至少为99派币");
        }
        //判断是否在组队进程中 判断组队状态
        //获取我的申请列表
        List<PzcActivityGroupApply> applies = pzcActivityGroupApplyMapper.selectList(new QueryWrapper<PzcActivityGroupApply>().eq("group_id", bo.getGroupId()));
        //判断是否有正在进行中的订单
        applies.forEach(
            a -> {
                if (a.getApplyStatus() != -1 && a.getApplyStatus() != 0 && a.getApplyStatus() != 1) {
                    throw new RuntimeException("当前活动处于" + wxUtils.applyStatus(a.getApplyStatus()) + " 无法修改");
                }
            }
        );

        return toAjax(iPzcActivityGroupService.updateByBo(bo));
    }

    /**
     * 删除活动组队
     *
     * @param groupIds 主键串
     */
    @SaCheckPermission("system:activityGroup:remove")
    @Log(title = "活动组队", businessType = BusinessType.DELETE)
    @DeleteMapping("/{groupIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] groupIds) {
        return toAjax(iPzcActivityGroupService.deleteWithValidByIds(Arrays.asList(groupIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcArtistController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcArtistVo;
import top.flya.system.domain.bo.PzcArtistBo;
import top.flya.system.service.IPzcArtistService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 艺人
 *
 * @author flya
 * @date 2023-06-01
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/artist")
public class PzcArtistController extends BaseController {

    private final IPzcArtistService iPzcArtistService;

    /**
     * 查询艺人列表
     */
    @SaCheckPermission("system:artist:list")
    @GetMapping("/list")
    public TableDataInfo<PzcArtistVo> list(PzcArtistBo bo, PageQuery pageQuery) {
        return iPzcArtistService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出艺人列表
     */
    @SaCheckPermission("system:artist:export")
    @Log(title = "艺人", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcArtistBo bo, HttpServletResponse response) {
        List<PzcArtistVo> list = iPzcArtistService.queryList(bo);
        ExcelUtil.exportExcel(list, "艺人", PzcArtistVo.class, response);
    }

    /**
     * 获取艺人详细信息
     *
     * @param artistId 主键
     */
    @SaCheckPermission("system:artist:query")
    @GetMapping("/{artistId}")
    public R<PzcArtistVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long artistId) {
        return R.ok(iPzcArtistService.queryById(artistId));
    }

    /**
     * 新增艺人
     */
    @SaCheckPermission("system:artist:add")
    @Log(title = "艺人", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcArtistBo bo) {
        return toAjax(iPzcArtistService.insertByBo(bo));
    }

    /**
     * 修改艺人
     */
    @SaCheckPermission("system:artist:edit")
    @Log(title = "艺人", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcArtistBo bo) {
        return toAjax(iPzcArtistService.updateByBo(bo));
    }

    /**
     * 删除艺人
     *
     * @param artistIds 主键串
     */
    @SaCheckPermission("system:artist:remove")
    @Log(title = "艺人", businessType = BusinessType.DELETE)
    @DeleteMapping("/{artistIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] artistIds) {
        return toAjax(iPzcArtistService.deleteWithValidByIds(Arrays.asList(artistIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcIntroController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.JsonUtils;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcIntroBo;
import top.flya.system.domain.vo.PzcIntroVo;
import top.flya.system.service.IPzcIntroService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 活动介绍
 *
 * @author ruoyi
 * @date 2023-08-04
 */
@Validated
@RequiredArgsConstructor
@RestController
@Slf4j
@RequestMapping("/system/intro")
public class PzcIntroController extends BaseController {

    private final IPzcIntroService iPzcIntroService;

    /**
     * 查询活动介绍列表
     */
    @SaCheckPermission("system:intro:list")
    @GetMapping("/list")
    public TableDataInfo<PzcIntroVo> list(PzcIntroBo bo, PageQuery pageQuery) {
        return iPzcIntroService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动介绍列表
     */
    @SaCheckPermission("system:intro:export")
    @Log(title = "活动介绍", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcIntroBo bo, HttpServletResponse response) {
        List<PzcIntroVo> list = iPzcIntroService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动介绍", PzcIntroVo.class, response);
    }

    /**
     * 获取活动介绍详细信息
     *
     * @param introId 主键
     */
    @SaCheckPermission("system:intro:query")
    @GetMapping("/{introId}")
    public R<PzcIntroVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long introId) {
        return R.ok(iPzcIntroService.queryById(introId));
    }

    /**
     * 新增活动介绍
     */
    @SaCheckPermission("system:intro:add")
    @Log(title = "活动介绍", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcIntroBo bo) {
        return toAjax(iPzcIntroService.insertByBo(bo));
    }

    /**
     * 修改活动介绍
     */
    @SaCheckPermission("system:intro:edit")
    @Log(title = "活动介绍", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcIntroBo bo) {
        log.info("bo:{}", JsonUtils.toJsonString(bo));
        return toAjax(iPzcIntroService.updateByBo(bo));
    }

    /**
     * 删除活动介绍
     *
     * @param introIds 主键串
     */
    @SaCheckPermission("system:intro:remove")
    @Log(title = "活动介绍", businessType = BusinessType.DELETE)
    @DeleteMapping("/{introIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] introIds) {
        return toAjax(iPzcIntroService.deleteWithValidByIds(Arrays.asList(introIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOfficialController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcOfficialBo;
import top.flya.system.domain.vo.PzcOfficialVo;
import top.flya.system.service.IPzcOfficialService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 官方消息
 *
 * @author ruoyi
 * @date 2023-07-27
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/official")
public class PzcOfficialController extends BaseController {

    private final IPzcOfficialService iPzcOfficialService;

    /**
     * 查询官方 未读消息列表
     */
    @GetMapping("/list")
    public TableDataInfo<PzcOfficialVo> list(PzcOfficialBo bo, PageQuery pageQuery) {
        bo.setToUserId(LoginHelper.getUserId());
        pageQuery.setOrderByColumn("create_time");
        pageQuery.setIsAsc("desc");
        return iPzcOfficialService.queryPageList(bo, pageQuery);
    }


    /**
     * 已读消息
     * 如果officialId为空,则表示全部已读
     * @param officialId
     * @return
     */
    @PostMapping("/read")
    public R read(@RequestParam(value = "officialId",required = false) Integer officialId) {
        return R.ok(iPzcOfficialService.read(officialId));
    }



    /**
     * 导出官方消息列表
     */
    @SaCheckPermission("system:official:export")
    @Log(title = "官方消息", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcOfficialBo bo, HttpServletResponse response) {
        List<PzcOfficialVo> list = iPzcOfficialService.queryList(bo);
        ExcelUtil.exportExcel(list, "官方消息", PzcOfficialVo.class, response);
    }

    /**
     * 获取官方消息详细信息
     *
     * @param officialId 主键
     */
    @SaCheckPermission("system:official:query")
    @GetMapping("/{officialId}")
    public R<PzcOfficialVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long officialId) {
        return R.ok(iPzcOfficialService.queryById(officialId));
    }

    /**
     * 新增官方消息
     */
    @SaCheckPermission("system:official:add")
    @Log(title = "官方消息", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcOfficialBo bo) {
        return toAjax(iPzcOfficialService.insertByBo(bo));
    }

    /**
     * 修改官方消息
     */
    @SaCheckPermission("system:official:edit")
    @Log(title = "官方消息", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcOfficialBo bo) {
        return toAjax(iPzcOfficialService.updateByBo(bo));
    }

    /**
     * 删除官方消息
     *
     * @param officialIds 主键串
     */
    @SaCheckPermission("system:official:remove")
    @Log(title = "官方消息", businessType = BusinessType.DELETE)
    @DeleteMapping("/{officialIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] officialIds) {
        return toAjax(iPzcOfficialService.deleteWithValidByIds(Arrays.asList(officialIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrderController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcOrderVo;
import top.flya.system.domain.bo.PzcOrderBo;
import top.flya.system.service.IPzcOrderService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 订单
 *
 * @author ruoyi
 * @date 2023-07-09
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/pzc_order")
public class PzcOrderController extends BaseController {

    private final IPzcOrderService iPzcOrderService;

    /**
     * 查询订单列表
     */
    @SaCheckPermission("system:pzc_order:list")
    @GetMapping("/list")
    public TableDataInfo<PzcOrderVo> list(PzcOrderBo bo, PageQuery pageQuery) {
        return iPzcOrderService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出订单列表
     */
    @SaCheckPermission("system:pzc_order:export")
    @Log(title = "订单", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcOrderBo bo, HttpServletResponse response) {
        List<PzcOrderVo> list = iPzcOrderService.queryList(bo);
        ExcelUtil.exportExcel(list, "订单", PzcOrderVo.class, response);
    }

    /**
     * 获取订单详细信息
     *
     * @param orderId 主键
     */
    @SaCheckPermission("system:pzc_order:query")
    @GetMapping("/{orderId}")
    public R<PzcOrderVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long orderId) {
        return R.ok(iPzcOrderService.queryById(orderId));
    }

    /**
     * 新增订单
     */
    @SaCheckPermission("system:pzc_order:add")
    @Log(title = "订单", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcOrderBo bo) {
        return toAjax(iPzcOrderService.insertByBo(bo));
    }

    /**
     * 修改订单
     */
    @SaCheckPermission("system:pzc_order:edit")
    @Log(title = "订单", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcOrderBo bo) {
        return toAjax(iPzcOrderService.updateByBo(bo));
    }

    /**
     * 删除订单
     *
     * @param orderIds 主键串
     */
    @SaCheckPermission("system:pzc_order:remove")
    @Log(title = "订单", businessType = BusinessType.DELETE)
    @DeleteMapping("/{orderIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] orderIds) {
        return toAjax(iPzcOrderService.deleteWithValidByIds(Arrays.asList(orderIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcOrganizerVo;
import top.flya.system.domain.bo.PzcOrganizerBo;
import top.flya.system.service.IPzcOrganizerService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 活动主办方
 *
 * @author ruoyi
 * @date 2023-06-02
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/organizer")
public class PzcOrganizerController extends BaseController {

    private final IPzcOrganizerService iPzcOrganizerService;

    /**
     * 查询活动主办方列表
     */
    @SaCheckPermission("system:organizer:list")
    @GetMapping("/list")
    public TableDataInfo<PzcOrganizerVo> list(PzcOrganizerBo bo, PageQuery pageQuery) {
        return iPzcOrganizerService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动主办方列表
     */
    @SaCheckPermission("system:organizer:export")
    @Log(title = "活动主办方", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcOrganizerBo bo, HttpServletResponse response) {
        List<PzcOrganizerVo> list = iPzcOrganizerService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动主办方", PzcOrganizerVo.class, response);
    }

    /**
     * 获取活动主办方详细信息
     *
     * @param organizerId 主键
     */
    @SaCheckPermission("system:organizer:query")
    @GetMapping("/{organizerId}")
    public R<PzcOrganizerVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long organizerId) {
        return R.ok(iPzcOrganizerService.queryById(organizerId));
    }

    /**
     * 新增活动主办方
     */
    @SaCheckPermission("system:organizer:add")
    @Log(title = "活动主办方", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcOrganizerBo bo) {
        return toAjax(iPzcOrganizerService.insertByBo(bo));
    }

    /**
     * 修改活动主办方
     */
    @SaCheckPermission("system:organizer:edit")
    @Log(title = "活动主办方", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcOrganizerBo bo) {
        return toAjax(iPzcOrganizerService.updateByBo(bo));
    }

    /**
     * 删除活动主办方
     *
     * @param organizerIds 主键串
     */
    @SaCheckPermission("system:organizer:remove")
    @Log(title = "活动主办方", businessType = BusinessType.DELETE)
    @DeleteMapping("/{organizerIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] organizerIds) {
        return toAjax(iPzcOrganizerService.deleteWithValidByIds(Arrays.asList(organizerIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerTicketController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcOrganizerTicketVo;
import top.flya.system.domain.bo.PzcOrganizerTicketBo;
import top.flya.system.service.IPzcOrganizerTicketService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 主办方票务
 *
 * @author ruoyi
 * @date 2023-07-22
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/organizerTicket")
public class PzcOrganizerTicketController extends BaseController {

    private final IPzcOrganizerTicketService iPzcOrganizerTicketService;

    /**
     * 查询主办方票务列表
     */
    @SaCheckPermission("system:organizerTicket:list")
    @GetMapping("/list")
    public TableDataInfo<PzcOrganizerTicketVo> list(PzcOrganizerTicketBo bo, PageQuery pageQuery) {
        return iPzcOrganizerTicketService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出主办方票务列表
     */
    @SaCheckPermission("system:organizerTicket:export")
    @Log(title = "主办方票务", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcOrganizerTicketBo bo, HttpServletResponse response) {
        List<PzcOrganizerTicketVo> list = iPzcOrganizerTicketService.queryList(bo);
        ExcelUtil.exportExcel(list, "主办方票务", PzcOrganizerTicketVo.class, response);
    }

    /**
     * 获取主办方票务详细信息
     *
     * @param organizerTicketId 主键
     */
    @SaCheckPermission("system:organizerTicket:query")
    @GetMapping("/{organizerTicketId}")
    public R<PzcOrganizerTicketVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long organizerTicketId) {
        return R.ok(iPzcOrganizerTicketService.queryById(organizerTicketId));
    }

    /**
     * 新增主办方票务
     */
    @SaCheckPermission("system:organizerTicket:add")
    @Log(title = "主办方票务", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcOrganizerTicketBo bo) {
        return toAjax(iPzcOrganizerTicketService.insertByBo(bo));
    }

    /**
     * 修改主办方票务
     */
    @SaCheckPermission("system:organizerTicket:edit")
    @Log(title = "主办方票务", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcOrganizerTicketBo bo) {
        return toAjax(iPzcOrganizerTicketService.updateByBo(bo));
    }

    /**
     * 删除主办方票务
     *
     * @param organizerTicketIds 主键串
     */
    @SaCheckPermission("system:organizerTicket:remove")
    @Log(title = "主办方票务", businessType = BusinessType.DELETE)
    @DeleteMapping("/{organizerTicketIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] organizerTicketIds) {
        return toAjax(iPzcOrganizerTicketService.deleteWithValidByIds(Arrays.asList(organizerTicketIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcRegionController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcRegionBo;
import top.flya.system.domain.vo.PzcRegionVo;
import top.flya.system.mapper.RegionTreeMapper;
import top.flya.system.service.IPzcRegionService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 地区
 *
 * @author ruoyi
 * @date 2023-07-22
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/region")
public class PzcRegionController extends BaseController {

    private final IPzcRegionService iPzcRegionService;

    private final RegionTreeMapper regionTreeMapper;

//    /**
//     * 查询地区列表
//     */
//    @SaCheckPermission("system:region:list")
//    @GetMapping("/list")
//    public TableDataInfo<PzcRegionVo> list(PzcRegionBo bo, PageQuery pageQuery) {
//        return iPzcRegionService.queryPageList(bo, pageQuery);
//    }


    @GetMapping("/list")
    public R list(@RequestParam(required = false) String regionName) {
        PzcRegionBo bo = new PzcRegionBo();
        bo.setName(regionName);
        List<PzcRegionVo> pzcRegionVos = iPzcRegionService.queryList(bo);
        //根据 pzcRegionVos 生成树形结构 base 字段相同的为同一级
        return R.ok(regionTreeMapper.buildTree(pzcRegionVos));
    }

    /**
     * 导出地区列表
     */
    @SaCheckPermission("system:region:export")
    @Log(title = "地区", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcRegionBo bo, HttpServletResponse response) {
        List<PzcRegionVo> list = iPzcRegionService.queryList(bo);
        ExcelUtil.exportExcel(list, "地区", PzcRegionVo.class, response);
    }

    /**
     * 获取地区详细信息
     *
     * @param regionId 主键
     */
    @SaCheckPermission("system:region:query")
    @GetMapping("/{regionId}")
    public R<PzcRegionVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long regionId) {
        return R.ok(iPzcRegionService.queryById(regionId));
    }

    /**
     * 新增地区
     */
    @SaCheckPermission("system:region:add")
    @Log(title = "地区", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcRegionBo bo) {
        return toAjax(iPzcRegionService.insertByBo(bo));
    }

    /**
     * 修改地区
     */
    @SaCheckPermission("system:region:edit")
    @Log(title = "地区", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcRegionBo bo) {
        return toAjax(iPzcRegionService.updateByBo(bo));
    }

    /**
     * 删除地区
     *
     * @param regionIds 主键串
     */
    @SaCheckPermission("system:region:remove")
    @Log(title = "地区", businessType = BusinessType.DELETE)
    @DeleteMapping("/{regionIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] regionIds) {
        return toAjax(iPzcRegionService.deleteWithValidByIds(Arrays.asList(regionIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcTagController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcTagVo;
import top.flya.system.domain.bo.PzcTagBo;
import top.flya.system.service.IPzcTagService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 活动标签
 *
 * @author ruoyi
 * @date 2023-06-02
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/tag")
public class PzcTagController extends BaseController {

    private final IPzcTagService iPzcTagService;

    /**
     * 查询活动标签列表
     */
    @SaCheckPermission("system:tag:list")
    @GetMapping("/list")
    public TableDataInfo<PzcTagVo> list(PzcTagBo bo, PageQuery pageQuery) {
        return iPzcTagService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出活动标签列表
     */
    @SaCheckPermission("system:tag:export")
    @Log(title = "活动标签", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcTagBo bo, HttpServletResponse response) {
        List<PzcTagVo> list = iPzcTagService.queryList(bo);
        ExcelUtil.exportExcel(list, "活动标签", PzcTagVo.class, response);
    }

    /**
     * 获取活动标签详细信息
     *
     * @param tagId 主键
     */
    @SaCheckPermission("system:tag:query")
    @GetMapping("/{tagId}")
    public R<PzcTagVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long tagId) {
        return R.ok(iPzcTagService.queryById(tagId));
    }

    /**
     * 新增活动标签
     */
    @SaCheckPermission("system:tag:add")
    @Log(title = "活动标签", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcTagBo bo) {
        return toAjax(iPzcTagService.insertByBo(bo));
    }

    /**
     * 修改活动标签
     */
    @SaCheckPermission("system:tag:edit")
    @Log(title = "活动标签", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcTagBo bo) {
        return toAjax(iPzcTagService.updateByBo(bo));
    }

    /**
     * 删除活动标签
     *
     * @param tagIds 主键串
     */
    @SaCheckPermission("system:tag:remove")
    @Log(title = "活动标签", businessType = BusinessType.DELETE)
    @DeleteMapping("/{tagIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] tagIds) {
        return toAjax(iPzcTagService.deleteWithValidByIds(Arrays.asList(tagIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserCollectController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.JsonUtils;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.common.BatchUtils;
import top.flya.system.domain.PzcActivity;
import top.flya.system.domain.bo.PzcUserCollectBo;
import top.flya.system.domain.vo.PzcUserCollectVo;
import top.flya.system.mapper.PzcActivityMapper;
import top.flya.system.service.IPzcUserCollectService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotNull;
import java.util.*;

/**
 * 用户收藏活动
 *
 * @author ruoyi
 * @date 2023-07-08
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/userCollect")
@Slf4j
public class PzcUserCollectController extends BaseController {

    private final IPzcUserCollectService iPzcUserCollectService;

    private final PzcActivityMapper pzcActivityMapper;


    private final StringRedisTemplate stringRedisTemplate;

    private final BatchUtils batchUtils;

    /**
     * 查询用户收藏活动列表
     */
    @GetMapping("/list")
    public R<List<PzcActivity>> list(PzcUserCollectBo bo, PageQuery pageQuery) {
        Set<String> members = stringRedisTemplate.opsForSet().members("collect:" + getUserId());
        if(members==null||members.isEmpty())
        {
            return R.ok();
        }
        List<String> collect = new ArrayList<>(members);
        List<PzcActivity> pzcActivities = pzcActivityMapper.selectActivityByActivityIds(collect, bo.getType());
        log.info("用户收藏活动列表 {}", JsonUtils.toJsonString(pzcActivities));
        pzcActivities.stream().forEach(
                pzcActivity -> {
                    pzcActivity.setCoverImage(pzcActivity.getCoverImage().contains("http")?pzcActivity.getCoverImage():
                        (batchUtils.getNewImageUrls(Collections.singletonList(pzcActivity.getCoverImage())).get(Long.parseLong((pzcActivity.getCoverImage())))));
                }
        );
        return R.ok(pzcActivities);
    }

    /**
     * 导出用户收藏活动列表
     */
    @SaCheckPermission("system:userCollect:export")
    @Log(title = "用户收藏活动", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcUserCollectBo bo, HttpServletResponse response) {
        List<PzcUserCollectVo> list = iPzcUserCollectService.queryList(bo);
        ExcelUtil.exportExcel(list, "用户收藏活动", PzcUserCollectVo.class, response);
    }

    /**
     * 获取用户收藏活动详细信息
     *
     * @param collectId 主键
     */
    @GetMapping("/{collectId}")
    public R<PzcUserCollectVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long collectId) {
        return R.ok(iPzcUserCollectService.queryById(collectId));
    }

    @GetMapping("/status")
    public R<Boolean> status(@RequestParam("activityId") Long activityId) {
        return R.ok(Boolean.TRUE.equals(stringRedisTemplate.opsForSet().isMember("collect:" + getUserId(), activityId.toString())));
    }
    /**
     * 新增用户收藏活动 这里改为存入Redis 加快响应速度
     */
    @Log(title = "用户收藏/取消活动", businessType = BusinessType.INSERT)
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcUserCollectBo bo) {
        log.info("用户收藏/取消活动 {}", JsonUtils.toJsonString(bo));
        if(Boolean.TRUE.equals(stringRedisTemplate.opsForSet().isMember("collect:" + getUserId(), bo.getActivityId().toString())))
        {
            //取消收藏活动
            stringRedisTemplate.opsForSet().remove("collect:" + getUserId(),bo.getActivityId().toString());
        }else {
            stringRedisTemplate.opsForSet().add("collect:" + getUserId(),bo.getActivityId().toString());
        }
        return R.ok("1");
    }

}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcUserBo;
import top.flya.system.domain.bo.UpdateMoneyBo;
import top.flya.system.domain.vo.PzcUserVo;
import top.flya.system.service.IPzcUserService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 用户
 *
 * @author ruoyi
 * @date 2023-07-09
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/pzc_user")
public class PzcUserController extends BaseController {

    private final IPzcUserService iPzcUserService;




    /**
     * 查询用户列表
     */
    @SaCheckPermission("system:pzc_user:list")
    @GetMapping("/list")
    public TableDataInfo<PzcUserVo> list(PzcUserBo bo, PageQuery pageQuery) {
        return iPzcUserService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出用户列表
     */
    @SaCheckPermission("system:pzc_user:export")
    @Log(title = "用户", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcUserBo bo, HttpServletResponse response) {
        List<PzcUserVo> list = iPzcUserService.queryList(bo);
        ExcelUtil.exportExcel(list, "用户", PzcUserVo.class, response);
    }

    /**
     * 获取用户详细信息
     *
     * @param userId 主键
     */
    @SaCheckPermission("system:pzc_user:query")
    @GetMapping("/{userId}")
    public R<PzcUserVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long userId) {
        return R.ok(iPzcUserService.queryById(userId));
    }

    /**
     * 新增用户
     */
    @SaCheckPermission("system:pzc_user:add")
    @Log(title = "用户", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcUserBo bo) {
        return toAjax(iPzcUserService.insertByBo(bo));
    }


    @PostMapping("/updateMoney")
    public R<Void> updateMoney(@Validated(AddGroup.class) @RequestBody UpdateMoneyBo bo) {
        return toAjax(iPzcUserService.updateMoney(bo));
    }

    /**
     * 修改用户
     */
    @SaCheckPermission("system:pzc_user:edit")
    @Log(title = "用户", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcUserBo bo) {
        return toAjax(iPzcUserService.updateByBo(bo));
    }

    /**
     * 删除用户
     *
     * @param userIds 主键串
     */
    @SaCheckPermission("system:pzc_user:remove")
    @Log(title = "用户", businessType = BusinessType.DELETE)
    @DeleteMapping("/{userIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] userIds) {
        return toAjax(iPzcUserService.deleteWithValidByIds(Arrays.asList(userIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserHistoryController.java
================================================
package top.flya.system.controller;

import cn.dev33.satoken.annotation.SaCheckPermission;
import lombok.RequiredArgsConstructor;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.annotation.Log;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.bo.PzcUserHistoryBo;
import top.flya.system.domain.vo.PzcUserHistoryVo;
import top.flya.system.service.IPzcUserHistoryService;

import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Arrays;
import java.util.List;

/**
 * 用户操作历史记录
 *
 * @author ruoyi
 * @date 2023-07-06
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/userHistory")
public class PzcUserHistoryController extends BaseController {

    private final IPzcUserHistoryService iPzcUserHistoryService;

    /**
     * 查询用户操作历史记录列表
     */
    @GetMapping("/list")
    public TableDataInfo<PzcUserHistoryVo> list(PzcUserHistoryBo bo, PageQuery pageQuery) {
        bo.setUserId(LoginHelper.getUserId());
        pageQuery.setOrderByColumn("create_time");
        pageQuery.setIsAsc("desc");
        return iPzcUserHistoryService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出用户操作历史记录列表
     */
    @SaCheckPermission("system:userHistory:export")
    @Log(title = "用户操作历史记录", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcUserHistoryBo bo, HttpServletResponse response) {
        List<PzcUserHistoryVo> list = iPzcUserHistoryService.queryList(bo);
        ExcelUtil.exportExcel(list, "用户操作历史记录", PzcUserHistoryVo.class, response);
    }

    /**
     * 获取用户操作历史记录详细信息
     *
     * @param historyId 主键
     */
    @SaCheckPermission("system:userHistory:query")
    @GetMapping("/{historyId}")
    public R<PzcUserHistoryVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long historyId) {
        return R.ok(iPzcUserHistoryService.queryById(historyId));
    }

    /**
     * 新增用户操作历史记录
     */
    @SaCheckPermission("system:userHistory:add")
    @Log(title = "用户操作历史记录", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcUserHistoryBo bo) {
        return toAjax(iPzcUserHistoryService.insertByBo(bo));
    }

    /**
     * 修改用户操作历史记录
     */
    @SaCheckPermission("system:userHistory:edit")
    @Log(title = "用户操作历史记录", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcUserHistoryBo bo) {
        return toAjax(iPzcUserHistoryService.updateByBo(bo));
    }

    /**
     * 删除用户操作历史记录
     *
     * @param historyIds 主键串
     */
    @SaCheckPermission("system:userHistory:remove")
    @Log(title = "用户操作历史记录", businessType = BusinessType.DELETE)
    @DeleteMapping("/{historyIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] historyIds) {
        return toAjax(iPzcUserHistoryService.deleteWithValidByIds(Arrays.asList(historyIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserPhotoController.java
================================================
package top.flya.system.controller;

import java.util.List;
import java.util.Arrays;

import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import top.flya.common.annotation.RepeatSubmit;
import top.flya.common.annotation.Log;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.validate.AddGroup;
import top.flya.common.core.validate.EditGroup;
import top.flya.common.enums.BusinessType;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.poi.ExcelUtil;
import top.flya.system.domain.vo.PzcUserPhotoVo;
import top.flya.system.domain.bo.PzcUserPhotoBo;
import top.flya.system.service.IPzcUserPhotoService;
import top.flya.common.core.page.TableDataInfo;

/**
 * 用户资料相册
 *
 * @author ruoyi
 * @date 2023-07-11
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/userPhoto")
public class PzcUserPhotoController extends BaseController {

    private final IPzcUserPhotoService iPzcUserPhotoService;

    /**
     * 查询用户资料相册列表
     */
    @GetMapping("/list")
    public TableDataInfo<PzcUserPhotoVo> list(PzcUserPhotoBo bo, PageQuery pageQuery) {
        if(bo.getUserId()==null)
        {
            bo.setUserId(LoginHelper.getUserId());
        }
        return iPzcUserPhotoService.queryPageList(bo, pageQuery);
    }

    /**
     * 导出用户资料相册列表
     */
    @Log(title = "用户资料相册", businessType = BusinessType.EXPORT)
    @PostMapping("/export")
    public void export(PzcUserPhotoBo bo, HttpServletResponse response) {
        List<PzcUserPhotoVo> list = iPzcUserPhotoService.queryList(bo);
        ExcelUtil.exportExcel(list, "用户资料相册", PzcUserPhotoVo.class, response);
    }

    /**
     * 获取用户资料相册详细信息
     *
     * @param photoId 主键
     */
    @GetMapping("/{photoId}")
    public R<PzcUserPhotoVo> getInfo(@NotNull(message = "主键不能为空")
                                     @PathVariable Long photoId) {
        return R.ok(iPzcUserPhotoService.queryById(photoId));
    }

    /**
     * 新增用户资料相册
     */
    @Log(title = "用户资料相册", businessType = BusinessType.INSERT)
    @RepeatSubmit()
    @PostMapping()
    public R<Void> add(@Validated(AddGroup.class) @RequestBody PzcUserPhotoBo bo) {
        bo.setUserId(LoginHelper.getUserId());
        return toAjax(iPzcUserPhotoService.insertByBo(bo));
    }

    /**
     * 修改用户资料相册
     */
    @Log(title = "用户资料相册", businessType = BusinessType.UPDATE)
    @RepeatSubmit()
    @PutMapping()
    public R<Void> edit(@Validated(EditGroup.class) @RequestBody PzcUserPhotoBo bo) {
        return toAjax(iPzcUserPhotoService.updateByBo(bo));
    }

    /**
     * 删除用户资料相册
     *
     * @param photoIds 主键串
     */
    @Log(title = "用户资料相册", businessType = BusinessType.DELETE)
    @DeleteMapping("/{photoIds}")
    public R<Void> remove(@NotEmpty(message = "主键不能为空")
                          @PathVariable Long[] photoIds) {
        return toAjax(iPzcUserPhotoService.deleteWithValidByIds(Arrays.asList(photoIds), true));
    }
}


================================================
FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserTalkController.java
================================================
package top.flya.system.controller;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import top.flya.common.core.controller.BaseController;
import top.flya.common.core.domain.PageQuery;
import top.flya.common.core.domain.R;
import top.flya.common.core.page.TableDataInfo;
import top.flya.common.helper.LoginHelper;
import top.flya.common.utils.JsonUtils;
import top.flya.system.domain.PzcUser;
import top.flya.system.domain.PzcUserTalk;
import top.flya.system.domain.bo.PzcUserTalkBo;
import top.flya.system.domain.vo.PzcUserTalkVo;
import top.flya.system.mapper.PzcUserMapper;
import top.flya.system.mapper.PzcUserPhotoMapper;
import top.flya.system.mapper.PzcUserTalkMapper;
import top.flya.system.service.IPzcUserTalkService;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

import static top.flya.system.config.ClientCache.concurrentHashMap;

/**
 * 用户聊天
 *
 * @author ruoyi
 * @date 2023-07-14
 */
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/userTalk")
@Slf4j
public class PzcUserTalkController extends BaseController {

    private final IPzcUserTalkService iPzcUserTalkService;

    private final PzcUserTalkMapper pzcUserTalkMapper;

    private final PzcUserMapper pzcUserMapper;

    private final PzcUserPhotoMapper pzcUserPhotoMapper;


    @PostMapping("/deleteByUserId") //删除聊天记录
    public R deleteByUserId(@RequestParam("userId") String userId, @RequestParam("groupId") Long groupId) {
        Long my = LoginHelper.getUserId();
        pzcUserTalkMapper.delete(new QueryWrapper<PzcUserTalk>().
            eq("group_id", groupId).
            and(
                i -> i.eq("user_id", my).
                    eq("from_user_id", userId).or().
                    eq("user_id", my).eq("to_user_id", userId)));
        return R.ok();
    }

    /**
     * 用户在线状态
     *
     * @param userId
     * @return
     */
    @GetMapping("/live")
    public R liveStatus(@RequestParam("userId") String userId) {
        Boolean liveStatus = false;
        if (concurrentHashMap.get(userId) != null) {
            liveStatus = true;
        }

        PzcUser pzcUser = pzcUserMapper.selectById(userId);
        Map<String, Object> result = new java.util.HashMap<>();
        result.put("liveStatus", liveStatus.toString());
        result.put("userId", userId);
        result.put("nickName", pzcUser.getNickname());
        result.put("address", pzcUser.getAddress());
        result.put("sex", String.valueOf(pzcUs
Download .txt
gitextract_aag72qvb/

├── .editorconfig
├── .gitee/
│   ├── ISSUE_TEMPLATE.zh-CN.md
│   └── PULL_REQUEST_TEMPLATE.zh-CN.md
├── .gitignore
├── .run/
│   ├── ruoyi-monitor-admin.run.xml
│   ├── ruoyi-server.run.xml
│   └── ruoyi-xxl-job-admin.run.xml
├── .vscode/
│   └── settings.json
├── LICENSE
├── PaiZhiCheng/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   ├── Main.java
│           │   └── top/
│           │       └── flya/
│           │           └── system/
│           │               ├── common/
│           │               │   ├── BatchUtils.java
│           │               │   └── CheckUtils.java
│           │               ├── config/
│           │               │   ├── ClientCache.java
│           │               │   ├── DbTemplate.java
│           │               │   ├── Event.java
│           │               │   ├── ServerConfig.java
│           │               │   ├── ServerRunner.java
│           │               │   └── WsConfig.java
│           │               ├── controller/
│           │               │   ├── GaoDeMapController.java
│           │               │   ├── PzcActivityConnArtistController.java
│           │               │   ├── PzcActivityConnIntroController.java
│           │               │   ├── PzcActivityConnTagController.java
│           │               │   ├── PzcActivityController.java
│           │               │   ├── PzcActivityGroupApplyController.java
│           │               │   ├── PzcActivityGroupController.java
│           │               │   ├── PzcArtistController.java
│           │               │   ├── PzcIntroController.java
│           │               │   ├── PzcOfficialController.java
│           │               │   ├── PzcOrderController.java
│           │               │   ├── PzcOrganizerController.java
│           │               │   ├── PzcOrganizerTicketController.java
│           │               │   ├── PzcRegionController.java
│           │               │   ├── PzcTagController.java
│           │               │   ├── PzcUserCollectController.java
│           │               │   ├── PzcUserController.java
│           │               │   ├── PzcUserHistoryController.java
│           │               │   ├── PzcUserPhotoController.java
│           │               │   ├── PzcUserTalkController.java
│           │               │   ├── PzcViewPagerController.java
│           │               │   └── WxUserController.java
│           │               ├── domain/
│           │               │   ├── PzcActivity.java
│           │               │   ├── PzcActivityConnArtist.java
│           │               │   ├── PzcActivityConnIntro.java
│           │               │   ├── PzcActivityConnTag.java
│           │               │   ├── PzcActivityGroup.java
│           │               │   ├── PzcActivityGroupApply.java
│           │               │   ├── PzcArtist.java
│           │               │   ├── PzcIntro.java
│           │               │   ├── PzcOfficial.java
│           │               │   ├── PzcOrder.java
│           │               │   ├── PzcOrganizer.java
│           │               │   ├── PzcOrganizerTicket.java
│           │               │   ├── PzcRegion.java
│           │               │   ├── PzcTag.java
│           │               │   ├── PzcUser.java
│           │               │   ├── PzcUserCollect.java
│           │               │   ├── PzcUserHistory.java
│           │               │   ├── PzcUserPhoto.java
│           │               │   ├── PzcUserTalk.java
│           │               │   ├── PzcViewPager.java
│           │               │   ├── bo/
│           │               │   │   ├── PayOrderBo.java
│           │               │   │   ├── PzcActivityBo.java
│           │               │   │   ├── PzcActivityConnArtistBo.java
│           │               │   │   ├── PzcActivityConnIntroBo.java
│           │               │   │   ├── PzcActivityConnTagBo.java
│           │               │   │   ├── PzcActivityGroupApplyBo.java
│           │               │   │   ├── PzcActivityGroupBo.java
│           │               │   │   ├── PzcArtistBo.java
│           │               │   │   ├── PzcIntroBo.java
│           │               │   │   ├── PzcOfficialBo.java
│           │               │   │   ├── PzcOrderBo.java
│           │               │   │   ├── PzcOrganizerBo.java
│           │               │   │   ├── PzcOrganizerTicketBo.java
│           │               │   │   ├── PzcRegionBo.java
│           │               │   │   ├── PzcTagBo.java
│           │               │   │   ├── PzcUserBo.java
│           │               │   │   ├── PzcUserCollectBo.java
│           │               │   │   ├── PzcUserHistoryBo.java
│           │               │   │   ├── PzcUserPhotoBo.java
│           │               │   │   ├── PzcUserTalkBo.java
│           │               │   │   ├── PzcViewPagerBo.java
│           │               │   │   ├── RefurbishBo.java
│           │               │   │   ├── Resource.java
│           │               │   │   ├── SuccessCallBackObjBo.java
│           │               │   │   ├── UpdateMoneyBo.java
│           │               │   │   └── WxzApplyBo.java
│           │               │   └── vo/
│           │               │       ├── PzcActivityConnArtistVo.java
│           │               │       ├── PzcActivityConnIntroVo.java
│           │               │       ├── PzcActivityConnTagVo.java
│           │               │       ├── PzcActivityGroupApplyVo.java
│           │               │       ├── PzcActivityGroupVo.java
│           │               │       ├── PzcActivityVo.java
│           │               │       ├── PzcArtistVo.java
│           │               │       ├── PzcIntroVo.java
│           │               │       ├── PzcOfficialVo.java
│           │               │       ├── PzcOrderVo.java
│           │               │       ├── PzcOrganizerTicketVo.java
│           │               │       ├── PzcOrganizerVo.java
│           │               │       ├── PzcRegionVo.java
│           │               │       ├── PzcTagVo.java
│           │               │       ├── PzcUserCollectVo.java
│           │               │       ├── PzcUserHistoryVo.java
│           │               │       ├── PzcUserPhotoVo.java
│           │               │       ├── PzcUserTalkVo.java
│           │               │       ├── PzcUserVo.java
│           │               │       ├── PzcViewPagerVo.java
│           │               │       └── RefurbishVO.java
│           │               ├── entity/
│           │               │   ├── Activity.java
│           │               │   ├── ActivityConnArtist.java
│           │               │   ├── ActivityConnIntro.java
│           │               │   ├── ActivityConnTag.java
│           │               │   ├── Artist.java
│           │               │   ├── Event.java
│           │               │   ├── FLBaseEntity.java
│           │               │   ├── Intro.java
│           │               │   ├── Organizer.java
│           │               │   ├── OrganizerTicket.java
│           │               │   ├── Price.java
│           │               │   ├── Region.java
│           │               │   ├── Tag.java
│           │               │   └── ViewPager.java
│           │               ├── handel/
│           │               │   ├── MessageEventHandler.java
│           │               │   └── WxPayInitHandel.java
│           │               ├── mapper/
│           │               │   ├── PzcActivityConnArtistMapper.java
│           │               │   ├── PzcActivityConnIntroMapper.java
│           │               │   ├── PzcActivityConnTagMapper.java
│           │               │   ├── PzcActivityGroupApplyMapper.java
│           │               │   ├── PzcActivityGroupMapper.java
│           │               │   ├── PzcActivityMapper.java
│           │               │   ├── PzcArtistMapper.java
│           │               │   ├── PzcIntroMapper.java
│           │               │   ├── PzcOfficialMapper.java
│           │               │   ├── PzcOrderMapper.java
│           │               │   ├── PzcOrganizerMapper.java
│           │               │   ├── PzcOrganizerTicketMapper.java
│           │               │   ├── PzcRegionMapper.java
│           │               │   ├── PzcTagMapper.java
│           │               │   ├── PzcUserCollectMapper.java
│           │               │   ├── PzcUserHistoryMapper.java
│           │               │   ├── PzcUserMapper.java
│           │               │   ├── PzcUserPhotoMapper.java
│           │               │   ├── PzcUserTalkMapper.java
│           │               │   ├── PzcViewPagerMapper.java
│           │               │   └── RegionTreeMapper.java
│           │               ├── service/
│           │               │   ├── IPzcActivityConnArtistService.java
│           │               │   ├── IPzcActivityConnIntroService.java
│           │               │   ├── IPzcActivityConnTagService.java
│           │               │   ├── IPzcActivityGroupApplyService.java
│           │               │   ├── IPzcActivityGroupService.java
│           │               │   ├── IPzcActivityService.java
│           │               │   ├── IPzcArtistService.java
│           │               │   ├── IPzcIntroService.java
│           │               │   ├── IPzcOfficialService.java
│           │               │   ├── IPzcOrderService.java
│           │               │   ├── IPzcOrganizerService.java
│           │               │   ├── IPzcOrganizerTicketService.java
│           │               │   ├── IPzcRegionService.java
│           │               │   ├── IPzcTagService.java
│           │               │   ├── IPzcUserCollectService.java
│           │               │   ├── IPzcUserHistoryService.java
│           │               │   ├── IPzcUserPhotoService.java
│           │               │   ├── IPzcUserService.java
│           │               │   ├── IPzcUserTalkService.java
│           │               │   ├── IPzcViewPagerService.java
│           │               │   └── impl/
│           │               │       ├── PzcActivityConnArtistServiceImpl.java
│           │               │       ├── PzcActivityConnIntroServiceImpl.java
│           │               │       ├── PzcActivityConnTagServiceImpl.java
│           │               │       ├── PzcActivityGroupApplyServiceImpl.java
│           │               │       ├── PzcActivityGroupServiceImpl.java
│           │               │       ├── PzcActivityServiceImpl.java
│           │               │       ├── PzcArtistServiceImpl.java
│           │               │       ├── PzcIntroServiceImpl.java
│           │               │       ├── PzcOfficialServiceImpl.java
│           │               │       ├── PzcOrderServiceImpl.java
│           │               │       ├── PzcOrganizerServiceImpl.java
│           │               │       ├── PzcOrganizerTicketServiceImpl.java
│           │               │       ├── PzcRegionServiceImpl.java
│           │               │       ├── PzcTagServiceImpl.java
│           │               │       ├── PzcUserCollectServiceImpl.java
│           │               │       ├── PzcUserHistoryServiceImpl.java
│           │               │       ├── PzcUserPhotoServiceImpl.java
│           │               │       ├── PzcUserServiceImpl.java
│           │               │       ├── PzcUserTalkServiceImpl.java
│           │               │       └── PzcViewPagerServiceImpl.java
│           │               ├── utils/
│           │               │   ├── ActivityUtils.java
│           │               │   ├── CreateSign.java
│           │               │   ├── MyPrivateKey.java
│           │               │   ├── WxUtils.java
│           │               │   ├── gaode/
│           │               │   │   ├── GaoDeEnum.java
│           │               │   │   └── GaoDeMapUtil.java
│           │               │   ├── map/
│           │               │   │   ├── City.java
│           │               │   │   ├── CitySql.java
│           │               │   │   ├── Maps.java
│           │               │   │   └── city.json
│           │               │   └── sensitivewordsfiliter/
│           │               │       ├── BaseSearch.java
│           │               │       ├── TrieNode.java
│           │               │       ├── TrieNode2.java
│           │               │       ├── WordsSearch.java
│           │               │       ├── WordsSearchResult.java
│           │               │       └── WorldsFilterUtils.java
│           │               └── xxlJob/
│           │                   ├── ScheduledExecutorUtils.java
│           │                   ├── WxHandler.java
│           │                   └── diy/
│           │                       ├── JobLoginService.java
│           │                       ├── TestController.java
│           │                       ├── XxlJobGroup.java
│           │                       └── XxlJobInfo.java
│           └── resources/
│               ├── apiclient_key.pem
│               ├── mapper/
│               │   └── system/
│               │       ├── PzcActivityConnArtistMapper.xml
│               │       ├── PzcActivityConnIntroMapper.xml
│               │       ├── PzcActivityConnTagMapper.xml
│               │       ├── PzcActivityGroupApplyMapper.xml
│               │       ├── PzcActivityGroupMapper.xml
│               │       ├── PzcActivityMapper.xml
│               │       ├── PzcArtistMapper.xml
│               │       ├── PzcIntroMapper.xml
│               │       ├── PzcOfficialMapper.xml
│               │       ├── PzcOrderMapper.xml
│               │       ├── PzcOrganizerMapper.xml
│               │       ├── PzcOrganizerTicketMapper.xml
│               │       ├── PzcRegionMapper.xml
│               │       ├── PzcTagMapper.xml
│               │       ├── PzcUserCollectMapper.xml
│               │       ├── PzcUserHistoryMapper.xml
│               │       ├── PzcUserMapper.xml
│               │       ├── PzcUserPhotoMapper.xml
│               │       ├── PzcUserTalkMapper.xml
│               │       └── PzcViewPagerMapper.xml
│               ├── static/
│               │   ├── bootstrap.css
│               │   ├── index.html
│               │   ├── index2.html
│               │   └── js/
│               │       └── socket.io/
│               │           └── socket.io.js
│               └── wordsfilter/
│                   ├── sensi_words.txt
│                   └── sensi_words2.txt
├── README.md
├── pom.xml
├── ruoyi-admin/
│   ├── Dockerfile
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           ├── RuoYiApplication.java
│           │           ├── RuoYiServletInitializer.java
│           │           └── web/
│           │               └── controller/
│           │                   ├── common/
│           │                   │   └── CaptchaController.java
│           │                   ├── monitor/
│           │                   │   ├── CacheController.java
│           │                   │   ├── SysLogininforController.java
│           │                   │   ├── SysOperlogController.java
│           │                   │   └── SysUserOnlineController.java
│           │                   └── system/
│           │                       ├── SysConfigController.java
│           │                       ├── SysDeptController.java
│           │                       ├── SysDictDataController.java
│           │                       ├── SysDictTypeController.java
│           │                       ├── SysIndexController.java
│           │                       ├── SysLoginController.java
│           │                       ├── SysMenuController.java
│           │                       ├── SysNoticeController.java
│           │                       ├── SysOssConfigController.java
│           │                       ├── SysOssController.java
│           │                       ├── SysPostController.java
│           │                       ├── SysProfileController.java
│           │                       ├── SysRegisterController.java
│           │                       ├── SysRoleController.java
│           │                       └── SysUserController.java
│           └── resources/
│               ├── Dockerfile
│               ├── apiclient_key.pem
│               ├── application-dev.yml
│               ├── application.yml
│               ├── banner.txt
│               ├── i18n/
│               │   ├── messages.properties
│               │   ├── messages_en_US.properties
│               │   └── messages_zh_CN.properties
│               ├── ip2region.xdb
│               ├── logback-plus.xml
│               └── spy.properties
├── ruoyi-common/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── common/
│                           ├── annotation/
│                           │   ├── CellMerge.java
│                           │   ├── DataColumn.java
│                           │   ├── DataPermission.java
│                           │   ├── DictDataMapper.java
│                           │   ├── EncryptField.java
│                           │   ├── ExcelDictFormat.java
│                           │   ├── ExcelEnumFormat.java
│                           │   ├── Log.java
│                           │   ├── RateLimiter.java
│                           │   ├── RepeatSubmit.java
│                           │   ├── Sensitive.java
│                           │   ├── Translation.java
│                           │   └── TranslationType.java
│                           ├── captcha/
│                           │   └── UnsignedMathGenerator.java
│                           ├── config/
│                           │   └── RuoYiConfig.java
│                           ├── constant/
│                           │   ├── CacheConstants.java
│                           │   ├── CacheNames.java
│                           │   ├── Constants.java
│                           │   ├── GenConstants.java
│                           │   ├── HttpStatus.java
│                           │   ├── TransConstant.java
│                           │   └── UserConstants.java
│                           ├── convert/
│                           │   ├── ExcelBigNumberConvert.java
│                           │   ├── ExcelDictConvert.java
│                           │   └── ExcelEnumConvert.java
│                           ├── core/
│                           │   ├── controller/
│                           │   │   └── BaseController.java
│                           │   ├── domain/
│                           │   │   ├── BaseEntity.java
│                           │   │   ├── PageQuery.java
│                           │   │   ├── R.java
│                           │   │   ├── TreeEntity.java
│                           │   │   ├── dto/
│                           │   │   │   ├── RoleDTO.java
│                           │   │   │   └── UserOnlineDTO.java
│                           │   │   ├── entity/
│                           │   │   │   ├── SysDept.java
│                           │   │   │   ├── SysDictData.java
│                           │   │   │   ├── SysDictType.java
│                           │   │   │   ├── SysMenu.java
│                           │   │   │   ├── SysRole.java
│                           │   │   │   └── SysUser.java
│                           │   │   ├── event/
│                           │   │   │   ├── LogininforEvent.java
│                           │   │   │   └── OperLogEvent.java
│                           │   │   └── model/
│                           │   │       ├── EmailLoginBody.java
│                           │   │       ├── LoginBody.java
│                           │   │       ├── LoginUser.java
│                           │   │       ├── RegisterBody.java
│                           │   │       ├── SmsLoginBody.java
│                           │   │       └── XcxLoginUser.java
│                           │   ├── mapper/
│                           │   │   └── BaseMapperPlus.java
│                           │   ├── page/
│                           │   │   └── TableDataInfo.java
│                           │   ├── service/
│                           │   │   ├── ConfigService.java
│                           │   │   ├── DeptService.java
│                           │   │   ├── DictService.java
│                           │   │   ├── OssService.java
│                           │   │   ├── SensitiveService.java
│                           │   │   └── UserService.java
│                           │   └── validate/
│                           │       ├── AddGroup.java
│                           │       ├── EditGroup.java
│                           │       └── QueryGroup.java
│                           ├── encrypt/
│                           │   ├── EncryptContext.java
│                           │   ├── IEncryptor.java
│                           │   └── encryptor/
│                           │       ├── AbstractEncryptor.java
│                           │       ├── AesEncryptor.java
│                           │       ├── Base64Encryptor.java
│                           │       ├── RsaEncryptor.java
│                           │       ├── Sm2Encryptor.java
│                           │       └── Sm4Encryptor.java
│                           ├── enums/
│                           │   ├── AlgorithmType.java
│                           │   ├── BusinessStatus.java
│                           │   ├── BusinessType.java
│                           │   ├── CaptchaCategory.java
│                           │   ├── CaptchaType.java
│                           │   ├── DataBaseType.java
│                           │   ├── DataScopeType.java
│                           │   ├── DeviceType.java
│                           │   ├── EncodeType.java
│                           │   ├── HttpMethod.java
│                           │   ├── LimitType.java
│                           │   ├── LoginType.java
│                           │   ├── OperatorType.java
│                           │   ├── SensitiveStrategy.java
│                           │   ├── UserStatus.java
│                           │   └── UserType.java
│                           ├── excel/
│                           │   ├── CellMergeStrategy.java
│                           │   ├── DefaultExcelListener.java
│                           │   ├── DefaultExcelResult.java
│                           │   ├── ExcelListener.java
│                           │   └── ExcelResult.java
│                           ├── exception/
│                           │   ├── DemoModeException.java
│                           │   ├── GlobalException.java
│                           │   ├── ServiceException.java
│                           │   ├── UtilException.java
│                           │   ├── base/
│                           │   │   └── BaseException.java
│                           │   ├── file/
│                           │   │   ├── FileException.java
│                           │   │   ├── FileNameLengthLimitExceededException.java
│                           │   │   └── FileSizeLimitExceededException.java
│                           │   └── user/
│                           │       ├── CaptchaException.java
│                           │       ├── CaptchaExpireException.java
│                           │       ├── UserException.java
│                           │       ├── UserPasswordNotMatchException.java
│                           │       └── UserPasswordRetryLimitExceedException.java
│                           ├── filter/
│                           │   ├── RepeatableFilter.java
│                           │   ├── RepeatedlyRequestWrapper.java
│                           │   ├── XssFilter.java
│                           │   └── XssHttpServletRequestWrapper.java
│                           ├── helper/
│                           │   ├── DataBaseHelper.java
│                           │   ├── DataPermissionHelper.java
│                           │   └── LoginHelper.java
│                           ├── jackson/
│                           │   ├── DictDataJsonSerializer.java
│                           │   └── SensitiveJsonSerializer.java
│                           ├── translation/
│                           │   ├── TranslationInterface.java
│                           │   ├── handler/
│                           │   │   ├── TranslationBeanSerializerModifier.java
│                           │   │   └── TranslationHandler.java
│                           │   └── impl/
│                           │       ├── DeptNameTranslationImpl.java
│                           │       ├── DictTypeTranslationImpl.java
│                           │       ├── OssUrlTranslationImpl.java
│                           │       └── UserNameTranslationImpl.java
│                           ├── utils/
│                           │   ├── BeanCopyUtils.java
│                           │   ├── DateUtils.java
│                           │   ├── EncryptUtils.java
│                           │   ├── JsonUtils.java
│                           │   ├── MessageUtils.java
│                           │   ├── ServletUtils.java
│                           │   ├── StreamUtils.java
│                           │   ├── StringUtils.java
│                           │   ├── Threads.java
│                           │   ├── TreeBuildUtils.java
│                           │   ├── ValidatorUtils.java
│                           │   ├── email/
│                           │   │   └── MailUtils.java
│                           │   ├── file/
│                           │   │   ├── FileUtils.java
│                           │   │   └── MimeTypeUtils.java
│                           │   ├── ip/
│                           │   │   ├── AddressUtils.java
│                           │   │   └── RegionUtils.java
│                           │   ├── poi/
│                           │   │   └── ExcelUtil.java
│                           │   ├── redis/
│                           │   │   ├── CacheUtils.java
│                           │   │   ├── QueueUtils.java
│                           │   │   └── RedisUtils.java
│                           │   ├── reflect/
│                           │   │   └── ReflectUtils.java
│                           │   ├── spring/
│                           │   │   └── SpringUtils.java
│                           │   └── sql/
│                           │       └── SqlUtil.java
│                           └── xss/
│                               ├── Xss.java
│                               └── XssValidator.java
├── ruoyi-extend/
│   ├── pom.xml
│   ├── ruoyi-monitor-admin/
│   │   ├── Dockerfile
│   │   ├── pom.xml
│   │   └── src/
│   │       └── main/
│   │           ├── java/
│   │           │   └── top/
│   │           │       └── flya/
│   │           │           └── monitor/
│   │           │               └── admin/
│   │           │                   ├── MonitorAdminApplication.java
│   │           │                   ├── config/
│   │           │                   │   ├── AdminServerConfig.java
│   │           │                   │   └── SecurityConfig.java
│   │           │                   └── notifier/
│   │           │                       └── CustomNotifier.java
│   │           └── resources/
│   │               ├── application.yml
│   │               ├── banner.txt
│   │               └── logback-plus.xml
│   └── ruoyi-xxl-job-admin/
│       ├── Dockerfile
│       ├── pom.xml
│       └── src/
│           └── main/
│               ├── java/
│               │   └── com/
│               │       └── xxl/
│               │           └── job/
│               │               └── admin/
│               │                   ├── XxlJobAdminApplication.java
│               │                   ├── controller/
│               │                   │   ├── IndexController.java
│               │                   │   ├── JobApiController.java
│               │                   │   ├── JobCodeController.java
│               │                   │   ├── JobGroupController.java
│               │                   │   ├── JobInfoController.java
│               │                   │   ├── JobLogController.java
│               │                   │   ├── UserController.java
│               │                   │   ├── annotation/
│               │                   │   │   └── PermissionLimit.java
│               │                   │   ├── interceptor/
│               │                   │   │   ├── CookieInterceptor.java
│               │                   │   │   ├── PermissionInterceptor.java
│               │                   │   │   └── WebMvcConfig.java
│               │                   │   └── resolver/
│               │                   │       └── WebExceptionResolver.java
│               │                   ├── core/
│               │                   │   ├── alarm/
│               │                   │   │   ├── JobAlarm.java
│               │                   │   │   ├── JobAlarmer.java
│               │                   │   │   └── impl/
│               │                   │   │       └── EmailJobAlarm.java
│               │                   │   ├── complete/
│               │                   │   │   └── XxlJobCompleter.java
│               │                   │   ├── conf/
│               │                   │   │   └── XxlJobAdminConfig.java
│               │                   │   ├── cron/
│               │                   │   │   └── CronExpression.java
│               │                   │   ├── exception/
│               │                   │   │   └── XxlJobException.java
│               │                   │   ├── model/
│               │                   │   │   ├── XxlJobGroup.java
│               │                   │   │   ├── XxlJobInfo.java
│               │                   │   │   ├── XxlJobLog.java
│               │                   │   │   ├── XxlJobLogGlue.java
│               │                   │   │   ├── XxlJobLogReport.java
│               │                   │   │   ├── XxlJobRegistry.java
│               │                   │   │   └── XxlJobUser.java
│               │                   │   ├── old/
│               │                   │   │   ├── RemoteHttpJobBean.java
│               │                   │   │   ├── XxlJobDynamicScheduler.java
│               │                   │   │   └── XxlJobThreadPool.java
│               │                   │   ├── route/
│               │                   │   │   ├── ExecutorRouteStrategyEnum.java
│               │                   │   │   ├── ExecutorRouter.java
│               │                   │   │   └── strategy/
│               │                   │   │       ├── ExecutorRouteBusyover.java
│               │                   │   │       ├── ExecutorRouteConsistentHash.java
│               │                   │   │       ├── ExecutorRouteFailover.java
│               │                   │   │       ├── ExecutorRouteFirst.java
│               │                   │   │       ├── ExecutorRouteLFU.java
│               │                   │   │       ├── ExecutorRouteLRU.java
│               │                   │   │       ├── ExecutorRouteLast.java
│               │                   │   │       ├── ExecutorRouteRandom.java
│               │                   │   │       └── ExecutorRouteRound.java
│               │                   │   ├── scheduler/
│               │                   │   │   ├── MisfireStrategyEnum.java
│               │                   │   │   ├── ScheduleTypeEnum.java
│               │                   │   │   └── XxlJobScheduler.java
│               │                   │   ├── thread/
│               │                   │   │   ├── JobCompleteHelper.java
│               │                   │   │   ├── JobFailMonitorHelper.java
│               │                   │   │   ├── JobLogReportHelper.java
│               │                   │   │   ├── JobRegistryHelper.java
│               │                   │   │   ├── JobScheduleHelper.java
│               │                   │   │   └── JobTriggerPoolHelper.java
│               │                   │   ├── trigger/
│               │                   │   │   ├── TriggerTypeEnum.java
│               │                   │   │   └── XxlJobTrigger.java
│               │                   │   └── util/
│               │                   │       ├── CookieUtil.java
│               │                   │       ├── FtlUtil.java
│               │                   │       ├── I18nUtil.java
│               │                   │       ├── JacksonUtil.java
│               │                   │       └── LocalCacheUtil.java
│               │                   ├── dao/
│               │                   │   ├── XxlJobGroupDao.java
│               │                   │   ├── XxlJobInfoDao.java
│               │                   │   ├── XxlJobLogDao.java
│               │                   │   ├── XxlJobLogGlueDao.java
│               │                   │   ├── XxlJobLogReportDao.java
│               │                   │   ├── XxlJobRegistryDao.java
│               │                   │   └── XxlJobUserDao.java
│               │                   └── service/
│               │                       ├── LoginService.java
│               │                       ├── XxlJobService.java
│               │                       └── impl/
│               │                           ├── AdminBizImpl.java
│               │                           └── XxlJobServiceImpl.java
│               └── resources/
│                   ├── application-dev.yml
│                   ├── application-prod.yml
│                   ├── application.yml
│                   ├── banner.txt
│                   ├── i18n/
│                   │   ├── message_en.properties
│                   │   ├── message_zh_CN.properties
│                   │   └── message_zh_TC.properties
│                   ├── logback-plus.xml
│                   ├── mybatis-mapper/
│                   │   ├── XxlJobGroupMapper.xml
│                   │   ├── XxlJobInfoMapper.xml
│                   │   ├── XxlJobLogGlueMapper.xml
│                   │   ├── XxlJobLogMapper.xml
│                   │   ├── XxlJobLogReportMapper.xml
│                   │   ├── XxlJobRegistryMapper.xml
│                   │   └── XxlJobUserMapper.xml
│                   ├── static/
│                   │   ├── adminlte/
│                   │   │   ├── bower_components/
│                   │   │   │   ├── PACE/
│                   │   │   │   │   └── themes/
│                   │   │   │   │       └── blue/
│                   │   │   │   │           └── pace-theme-flash.css
│                   │   │   │   ├── bootstrap-daterangepicker/
│                   │   │   │   │   ├── daterangepicker.css
│                   │   │   │   │   └── daterangepicker.js
│                   │   │   │   ├── fastclick/
│                   │   │   │   │   └── fastclick.js
│                   │   │   │   └── font-awesome/
│                   │   │   │       └── fonts/
│                   │   │   │           └── FontAwesome.otf
│                   │   │   └── plugins/
│                   │   │       └── iCheck/
│                   │   │           └── square/
│                   │   │               └── blue.css
│                   │   ├── js/
│                   │   │   ├── common.1.js
│                   │   │   ├── index.js
│                   │   │   ├── jobcode.index.1.js
│                   │   │   ├── jobgroup.index.1.js
│                   │   │   ├── jobinfo.index.1.js
│                   │   │   ├── joblog.detail.1.js
│                   │   │   ├── joblog.index.1.js
│                   │   │   ├── login.1.js
│                   │   │   └── user.index.1.js
│                   │   └── plugins/
│                   │       ├── codemirror/
│                   │       │   ├── addon/
│                   │       │   │   └── hint/
│                   │       │   │       ├── anyword-hint.js
│                   │       │   │       ├── show-hint.css
│                   │       │   │       └── show-hint.js
│                   │       │   ├── lib/
│                   │       │   │   ├── codemirror.css
│                   │       │   │   └── codemirror.js
│                   │       │   └── mode/
│                   │       │       ├── clike/
│                   │       │       │   └── clike.js
│                   │       │       ├── javascript/
│                   │       │       │   └── javascript.js
│                   │       │       ├── php/
│                   │       │       │   └── php.js
│                   │       │       ├── powershell/
│                   │       │       │   └── powershell.js
│                   │       │       ├── python/
│                   │       │       │   └── python.js
│                   │       │       └── shell/
│                   │       │           └── shell.js
│                   │       ├── cronGen/
│                   │       │   ├── cronGen.js
│                   │       │   └── cronGen_en.js
│                   │       ├── jquery/
│                   │       │   └── jquery.cookie.js
│                   │       └── layer/
│                   │           ├── layer.js
│                   │           └── theme/
│                   │               └── default/
│                   │                   └── layer.css
│                   └── templates/
│                       ├── common/
│                       │   ├── common.exception.ftl
│                       │   └── common.macro.ftl
│                       ├── help.ftl
│                       ├── index.ftl
│                       ├── jobcode/
│                       │   └── jobcode.index.ftl
│                       ├── jobgroup/
│                       │   └── jobgroup.index.ftl
│                       ├── jobinfo/
│                       │   └── jobinfo.index.ftl
│                       ├── joblog/
│                       │   ├── joblog.detail.ftl
│                       │   └── joblog.index.ftl
│                       ├── login.ftl
│                       └── user/
│                           └── user.index.ftl
├── ruoyi-framework/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── framework/
│                           ├── aspectj/
│                           │   ├── LogAspect.java
│                           │   ├── RateLimiterAspect.java
│                           │   └── RepeatSubmitAspect.java
│                           ├── config/
│                           │   ├── ApplicationConfig.java
│                           │   ├── AsyncConfig.java
│                           │   ├── CaptchaConfig.java
│                           │   ├── EncryptorConfig.java
│                           │   ├── FilterConfig.java
│                           │   ├── I18nConfig.java
│                           │   ├── JacksonConfig.java
│                           │   ├── MailConfig.java
│                           │   ├── MybatisPlusConfig.java
│                           │   ├── RedisConfig.java
│                           │   ├── ResourcesConfig.java
│                           │   ├── SaTokenConfig.java
│                           │   ├── SwaggerConfig.java
│                           │   ├── ThreadPoolConfig.java
│                           │   ├── TranslationConfig.java
│                           │   ├── UndertowConfig.java
│                           │   ├── ValidatorConfig.java
│                           │   └── properties/
│                           │       ├── CaptchaProperties.java
│                           │       ├── EncryptorProperties.java
│                           │       ├── MailProperties.java
│                           │       ├── RedissonProperties.java
│                           │       ├── SecurityProperties.java
│                           │       ├── SwaggerProperties.java
│                           │       ├── ThreadPoolProperties.java
│                           │       └── XssProperties.java
│                           ├── encrypt/
│                           │   ├── MybatisDecryptInterceptor.java
│                           │   └── MybatisEncryptInterceptor.java
│                           ├── handler/
│                           │   ├── AllUrlHandler.java
│                           │   ├── CreateAndUpdateMetaObjectHandler.java
│                           │   ├── KeyPrefixHandler.java
│                           │   ├── OpenApiHandler.java
│                           │   └── PlusDataPermissionHandler.java
│                           ├── interceptor/
│                           │   ├── PlusDataPermissionInterceptor.java
│                           │   └── PlusWebInvokeTimeInterceptor.java
│                           ├── jackson/
│                           │   └── BigNumberSerializer.java
│                           ├── listener/
│                           │   └── UserActionListener.java
│                           ├── manager/
│                           │   ├── EncryptorManager.java
│                           │   ├── PlusSpringCacheManager.java
│                           │   └── ShutdownManager.java
│                           ├── satoken/
│                           │   ├── dao/
│                           │   │   └── PlusSaTokenDao.java
│                           │   └── service/
│                           │       └── SaPermissionImpl.java
│                           └── web/
│                               └── exception/
│                                   └── GlobalExceptionHandler.java
├── ruoyi-generator/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           └── generator/
│           │               ├── config/
│           │               │   └── GenConfig.java
│           │               ├── controller/
│           │               │   └── GenController.java
│           │               ├── domain/
│           │               │   ├── GenTable.java
│           │               │   └── GenTableColumn.java
│           │               ├── mapper/
│           │               │   ├── GenTableColumnMapper.java
│           │               │   └── GenTableMapper.java
│           │               ├── service/
│           │               │   ├── GenTableServiceImpl.java
│           │               │   └── IGenTableService.java
│           │               └── util/
│           │                   ├── GenUtils.java
│           │                   ├── VelocityInitializer.java
│           │                   └── VelocityUtils.java
│           └── resources/
│               ├── generator.yml
│               ├── mapper/
│               │   ├── generator/
│               │   │   ├── GenTableColumnMapper.xml
│               │   │   └── GenTableMapper.xml
│               │   └── package-info.md
│               └── vm/
│                   ├── java/
│                   │   ├── bo.java.vm
│                   │   ├── controller.java.vm
│                   │   ├── domain.java.vm
│                   │   ├── mapper.java.vm
│                   │   ├── service.java.vm
│                   │   ├── serviceImpl.java.vm
│                   │   ├── sub-domain.java.vm
│                   │   └── vo.java.vm
│                   ├── js/
│                   │   └── api.js.vm
│                   ├── sql/
│                   │   ├── oracle/
│                   │   │   └── sql.vm
│                   │   ├── postgres/
│                   │   │   └── sql.vm
│                   │   ├── sql.vm
│                   │   └── sqlserver/
│                   │       └── sql.vm
│                   ├── vue/
│                   │   ├── index-tree.vue.vm
│                   │   ├── index.vue.vm
│                   │   └── v3/
│                   │       ├── index-tree.vue.vm
│                   │       ├── index.vue.vm
│                   │       └── readme.txt
│                   └── xml/
│                       └── mapper.xml.vm
├── ruoyi-job/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── job/
│                           ├── config/
│                           │   ├── XxlJobConfig.java
│                           │   └── properties/
│                           │       └── XxlJobProperties.java
│                           └── service/
│                               └── SampleService.java
├── ruoyi-oss/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── oss/
│                           ├── constant/
│                           │   └── OssConstant.java
│                           ├── core/
│                           │   └── OssClient.java
│                           ├── entity/
│                           │   └── UploadResult.java
│                           ├── enumd/
│                           │   ├── AccessPolicyType.java
│                           │   └── PolicyType.java
│                           ├── exception/
│                           │   └── OssException.java
│                           ├── factory/
│                           │   └── OssFactory.java
│                           └── properties/
│                               └── OssProperties.java
├── ruoyi-sms/
│   ├── pom.xml
│   └── src/
│       └── main/
│           └── java/
│               └── top/
│                   └── flya/
│                       └── sms/
│                           ├── config/
│                           │   ├── SmsConfig.java
│                           │   └── properties/
│                           │       └── SmsProperties.java
│                           ├── core/
│                           │   ├── AliyunSmsTemplate.java
│                           │   ├── SmsTemplate.java
│                           │   └── TencentSmsTemplate.java
│                           ├── entity/
│                           │   └── SmsResult.java
│                           └── exception/
│                               └── SmsException.java
├── ruoyi-system/
│   ├── pom.xml
│   └── src/
│       └── main/
│           ├── java/
│           │   └── top/
│           │       └── flya/
│           │           └── system/
│           │               ├── domain/
│           │               │   ├── SysCache.java
│           │               │   ├── SysConfig.java
│           │               │   ├── SysLogininfor.java
│           │               │   ├── SysNotice.java
│           │               │   ├── SysOperLog.java
│           │               │   ├── SysOss.java
│           │               │   ├── SysOssConfig.java
│           │               │   ├── SysPost.java
│           │               │   ├── SysRoleDept.java
│           │               │   ├── SysRoleMenu.java
│           │               │   ├── SysUserOnline.java
│           │               │   ├── SysUserPost.java
│           │               │   ├── SysUserRole.java
│           │               │   ├── bo/
│           │               │   │   ├── SysOssBo.java
│           │               │   │   └── SysOssConfigBo.java
│           │               │   └── vo/
│           │               │       ├── MetaVo.java
│           │               │       ├── RouterVo.java
│           │               │       ├── SysOssConfigVo.java
│           │               │       ├── SysOssVo.java
│           │               │       ├── SysUserExportVo.java
│           │               │       └── SysUserImportVo.java
│           │               ├── listener/
│           │               │   └── SysUserImportListener.java
│           │               ├── mapper/
│           │               │   ├── SysConfigMapper.java
│           │               │   ├── SysDeptMapper.java
│           │               │   ├── SysDictDataMapper.java
│           │               │   ├── SysDictTypeMapper.java
│           │               │   ├── SysLogininforMapper.java
│           │               │   ├── SysMenuMapper.java
│           │               │   ├── SysNoticeMapper.java
│           │               │   ├── SysOperLogMapper.java
│           │               │   ├── SysOssConfigMapper.java
│           │               │   ├── SysOssMapper.java
│           │               │   ├── SysPostMapper.java
│           │               │   ├── SysRoleDeptMapper.java
│           │               │   ├── SysRoleMapper.java
│           │               │   ├── SysRoleMenuMapper.java
│           │               │   ├── SysUserMapper.java
│           │               │   ├── SysUserPostMapper.java
│           │               │   └── SysUserRoleMapper.java
│           │               ├── runner/
│           │               │   └── SystemApplicationRunner.java
│           │               └── service/
│           │                   ├── ISysConfigService.java
│           │                   ├── ISysDataScopeService.java
│           │                   ├── ISysDeptService.java
│           │                   ├── ISysDictDataService.java
│           │                   ├── ISysDictTypeService.java
│           │                   ├── ISysLogininforService.java
│           │                   ├── ISysMenuService.java
│           │                   ├── ISysNoticeService.java
│           │                   ├── ISysOperLogService.java
│           │                   ├── ISysOssConfigService.java
│           │                   ├── ISysOssService.java
│           │                   ├── ISysPostService.java
│           │                   ├── ISysRoleService.java
│           │                   ├── ISysUserService.java
│           │                   ├── SysLoginService.java
│           │                   ├── SysPermissionService.java
│           │                   ├── SysRegisterService.java
│           │                   └── impl/
│           │                       ├── SysConfigServiceImpl.java
│           │                       ├── SysDataScopeServiceImpl.java
│           │                       ├── SysDeptServiceImpl.java
│           │                       ├── SysDictDataServiceImpl.java
│           │                       ├── SysDictTypeServiceImpl.java
│           │                       ├── SysLogininforServiceImpl.java
│           │                       ├── SysMenuServiceImpl.java
│           │                       ├── SysNoticeServiceImpl.java
│           │                       ├── SysOperLogServiceImpl.java
│           │                       ├── SysOssConfigServiceImpl.java
│           │                       ├── SysOssServiceImpl.java
│           │                       ├── SysPostServiceImpl.java
│           │                       ├── SysRoleServiceImpl.java
│           │                       ├── SysSensitiveServiceImpl.java
│           │                       └── SysUserServiceImpl.java
│           └── resources/
│               └── mapper/
│                   ├── package-info.md
│                   └── system/
│                       ├── SysConfigMapper.xml
│                       ├── SysDeptMapper.xml
│                       ├── SysDictDataMapper.xml
│                       ├── SysDictTypeMapper.xml
│                       ├── SysLogininforMapper.xml
│                       ├── SysMenuMapper.xml
│                       ├── SysNoticeMapper.xml
│                       ├── SysOperLogMapper.xml
│                       ├── SysOssConfigMapper.xml
│                       ├── SysOssMapper.xml
│                       ├── SysPostMapper.xml
│                       ├── SysRoleDeptMapper.xml
│                       ├── SysRoleMapper.xml
│                       ├── SysRoleMenuMapper.xml
│                       ├── SysUserMapper.xml
│                       ├── SysUserPostMapper.xml
│                       └── SysUserRoleMapper.xml
├── ruoyi-ui/
│   ├── .editorconfig
│   ├── .eslintignore
│   ├── .eslintrc.js
│   ├── .gitignore
│   ├── Dockerfile
│   ├── README.md
│   ├── babel.config.js
│   ├── bin/
│   │   ├── build.bat
│   │   ├── package.bat
│   │   └── run-web.bat
│   ├── build/
│   │   └── index.js
│   ├── nginx.conf
│   ├── package.json
│   ├── public/
│   │   ├── html/
│   │   │   └── ie.html
│   │   ├── index.html
│   │   └── robots.txt
│   ├── src/
│   │   ├── App.vue
│   │   ├── api/
│   │   │   ├── demo/
│   │   │   │   ├── demo.js
│   │   │   │   └── tree.js
│   │   │   ├── login.js
│   │   │   ├── menu.js
│   │   │   ├── monitor/
│   │   │   │   ├── cache.js
│   │   │   │   ├── logininfor.js
│   │   │   │   ├── online.js
│   │   │   │   └── operlog.js
│   │   │   ├── system/
│   │   │   │   ├── activity.js
│   │   │   │   ├── activityConnArtist.js
│   │   │   │   ├── activityConnIntro.js
│   │   │   │   ├── activityConnTag.js
│   │   │   │   ├── activityGroup.js
│   │   │   │   ├── activityGroupApply.js
│   │   │   │   ├── artist.js
│   │   │   │   ├── config.js
│   │   │   │   ├── dept.js
│   │   │   │   ├── dict/
│   │   │   │   │   ├── data.js
│   │   │   │   │   └── type.js
│   │   │   │   ├── intro.js
│   │   │   │   ├── menu.js
│   │   │   │   ├── notice.js
│   │   │   │   ├── official.js
│   │   │   │   ├── organizer.js
│   │   │   │   ├── organizerTicket.js
│   │   │   │   ├── oss.js
│   │   │   │   ├── ossConfig.js
│   │   │   │   ├── post.js
│   │   │   │   ├── pzc_order.js
│   │   │   │   ├── pzc_user.js
│   │   │   │   ├── region.js
│   │   │   │   ├── role.js
│   │   │   │   ├── tag.js
│   │   │   │   ├── user.js
│   │   │   │   ├── userCollect.js
│   │   │   │   ├── userHistory.js
│   │   │   │   ├── userPhoto.js
│   │   │   │   ├── userTalk.js
│   │   │   │   └── viewPager.js
│   │   │   └── tool/
│   │   │       └── gen.js
│   │   ├── assets/
│   │   │   ├── icons/
│   │   │   │   ├── index.js
│   │   │   │   └── svgo.yml
│   │   │   └── styles/
│   │   │       ├── btn.scss
│   │   │       ├── element-ui.scss
│   │   │       ├── element-variables.scss
│   │   │       ├── index.scss
│   │   │       ├── mixin.scss
│   │   │       ├── ruoyi.scss
│   │   │       ├── sidebar.scss
│   │   │       ├── transition.scss
│   │   │       └── variables.scss
│   │   ├── components/
│   │   │   ├── Breadcrumb/
│   │   │   │   └── index.vue
│   │   │   ├── Crontab/
│   │   │   │   ├── day.vue
│   │   │   │   ├── hour.vue
│   │   │   │   ├── index.vue
│   │   │   │   ├── min.vue
│   │   │   │   ├── month.vue
│   │   │   │   ├── result.vue
│   │   │   │   ├── second.vue
│   │   │   │   ├── week.vue
│   │   │   │   └── year.vue
│   │   │   ├── DictData/
│   │   │   │   └── index.js
│   │   │   ├── DictTag/
│   │   │   │   └── index.vue
│   │   │   ├── Editor/
│   │   │   │   └── index.vue
│   │   │   ├── FileUpload/
│   │   │   │   └── index.vue
│   │   │   ├── Hamburger/
│   │   │   │   └── index.vue
│   │   │   ├── HeaderSearch/
│   │   │   │   └── index.vue
│   │   │   ├── IconSelect/
│   │   │   │   ├── index.vue
│   │   │   │   └── requireIcons.js
│   │   │   ├── ImagePreview/
│   │   │   │   └── index.vue
│   │   │   ├── ImageUpload/
│   │   │   │   └── index.vue
│   │   │   ├── Pagination/
│   │   │   │   └── index.vue
│   │   │   ├── PanThumb/
│   │   │   │   └── index.vue
│   │   │   ├── ParentView/
│   │   │   │   └── index.vue
│   │   │   ├── RightPanel/
│   │   │   │   └── index.vue
│   │   │   ├── RightToolbar/
│   │   │   │   └── index.vue
│   │   │   ├── RuoYi/
│   │   │   │   ├── Doc/
│   │   │   │   │   └── index.vue
│   │   │   │   └── Git/
│   │   │   │       └── index.vue
│   │   │   ├── Screenfull/
│   │   │   │   └── index.vue
│   │   │   ├── SizeSelect/
│   │   │   │   └── index.vue
│   │   │   ├── SvgIcon/
│   │   │   │   └── index.vue
│   │   │   ├── ThemePicker/
│   │   │   │   └── index.vue
│   │   │   ├── TopNav/
│   │   │   │   └── index.vue
│   │   │   └── iFrame/
│   │   │       └── index.vue
│   │   ├── directive/
│   │   │   ├── dialog/
│   │   │   │   ├── drag.js
│   │   │   │   ├── dragHeight.js
│   │   │   │   └── dragWidth.js
│   │   │   ├── index.js
│   │   │   ├── module/
│   │   │   │   └── clipboard.js
│   │   │   └── permission/
│   │   │       ├── hasPermi.js
│   │   │       └── hasRole.js
│   │   ├── layout/
│   │   │   ├── components/
│   │   │   │   ├── AppMain.vue
│   │   │   │   ├── IframeToggle/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── InnerLink/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── Navbar.vue
│   │   │   │   ├── Settings/
│   │   │   │   │   └── index.vue
│   │   │   │   ├── Sidebar/
│   │   │   │   │   ├── FixiOSBug.js
│   │   │   │   │   ├── Item.vue
│   │   │   │   │   ├── Link.vue
│   │   │   │   │   ├── Logo.vue
│   │   │   │   │   ├── SidebarItem.vue
│   │   │   │   │   └── index.vue
│   │   │   │   ├── TagsView/
│   │   │   │   │   ├── ScrollPane.vue
│   │   │   │   │   └── index.vue
│   │   │   │   └── index.js
│   │   │   ├── index.vue
│   │   │   └── mixin/
│   │   │       └── ResizeHandler.js
│   │   ├── main.js
│   │   ├── permission.js
│   │   ├── plugins/
│   │   │   ├── auth.js
│   │   │   ├── cache.js
│   │   │   ├── download.js
│   │   │   ├── index.js
│   │   │   ├── modal.js
│   │   │   └── tab.js
│   │   ├── router/
│   │   │   └── index.js
│   │   ├── settings.js
│   │   ├── store/
│   │   │   ├── getters.js
│   │   │   ├── index.js
│   │   │   └── modules/
│   │   │       ├── app.js
│   │   │       ├── dict.js
│   │   │       ├── permission.js
│   │   │       ├── settings.js
│   │   │       ├── tagsView.js
│   │   │       └── user.js
│   │   ├── utils/
│   │   │   ├── auth.js
│   │   │   ├── dict/
│   │   │   │   ├── Dict.js
│   │   │   │   ├── DictConverter.js
│   │   │   │   ├── DictData.js
│   │   │   │   ├── DictMeta.js
│   │   │   │   ├── DictOptions.js
│   │   │   │   └── index.js
│   │   │   ├── errorCode.js
│   │   │   ├── generator/
│   │   │   │   ├── config.js
│   │   │   │   ├── css.js
│   │   │   │   ├── drawingDefault.js
│   │   │   │   ├── html.js
│   │   │   │   ├── icon.json
│   │   │   │   ├── js.js
│   │   │   │   └── render.js
│   │   │   ├── index.js
│   │   │   ├── jsencrypt.js
│   │   │   ├── permission.js
│   │   │   ├── request.js
│   │   │   ├── ruoyi.js
│   │   │   ├── scroll-to.js
│   │   │   └── validate.js
│   │   └── views/
│   │       ├── components/
│   │       │   └── icons/
│   │       │       ├── element-icons.js
│   │       │       ├── index.vue
│   │       │       └── svg-icons.js
│   │       ├── dashboard/
│   │       │   ├── BarChart.vue
│   │       │   ├── LineChart.vue
│   │       │   ├── PanelGroup.vue
│   │       │   ├── PieChart.vue
│   │       │   ├── RaddarChart.vue
│   │       │   └── mixins/
│   │       │       └── resize.js
│   │       ├── demo/
│   │       │   ├── demo/
│   │       │   │   └── index.vue
│   │       │   └── tree/
│   │       │       └── index.vue
│   │       ├── error/
│   │       │   ├── 401.vue
│   │       │   └── 404.vue
│   │       ├── index.vue
│   │       ├── index_v1.vue
│   │       ├── login.vue
│   │       ├── monitor/
│   │       │   ├── admin/
│   │       │   │   └── index.vue
│   │       │   ├── cache/
│   │       │   │   ├── index.vue
│   │       │   │   └── list.vue
│   │       │   ├── logininfor/
│   │       │   │   └── index.vue
│   │       │   ├── online/
│   │       │   │   └── index.vue
│   │       │   ├── operlog/
│   │       │   │   └── index.vue
│   │       │   └── xxljob/
│   │       │       └── index.vue
│   │       ├── redirect.vue
│   │       ├── register.vue
│   │       ├── system/
│   │       │   ├── activity/
│   │       │   │   ├── add/
│   │       │   │   │   └── index.vue
│   │       │   │   └── index.vue
│   │       │   ├── activityConnArtist/
│   │       │   │   └── index.vue
│   │       │   ├── activityConnIntro/
│   │       │   │   └── index.vue
│   │       │   ├── activityConnTag/
│   │       │   │   └── index.vue
│   │       │   ├── activityGroup/
│   │       │   │   └── index.vue
│   │       │   ├── activityGroupApply/
│   │       │   │   └── index.vue
│   │       │   ├── artist/
│   │       │   │   └── index.vue
│   │       │   ├── config/
│   │       │   │   └── index.vue
│   │       │   ├── dept/
│   │       │   │   └── index.vue
│   │       │   ├── dict/
│   │       │   │   ├── data.vue
│   │       │   │   └── index.vue
│   │       │   ├── intro/
│   │       │   │   └── index.vue
│   │       │   ├── menu/
│   │       │   │   └── index.vue
│   │       │   ├── notice/
│   │       │   │   └── index.vue
│   │       │   ├── official/
│   │       │   │   └── index.vue
│   │       │   ├── organizer/
│   │       │   │   └── index.vue
│   │       │   ├── organizerTicket/
│   │       │   │   └── index.vue
│   │       │   ├── oss/
│   │       │   │   ├── config.vue
│   │       │   │   └── index.vue
│   │       │   ├── post/
│   │       │   │   └── index.vue
│   │       │   ├── pzc_order/
│   │       │   │   └── index.vue
│   │       │   ├── pzc_user/
│   │       │   │   ├── index.vue
│   │       │   │   └── todoList/
│   │       │   │       └── index.vue
│   │       │   ├── region/
│   │       │   │   └── index.vue
│   │       │   ├── role/
│   │       │   │   ├── authUser.vue
│   │       │   │   ├── index.vue
│   │       │   │   └── selectUser.vue
│   │       │   ├── tag/
│   │       │   │   └── index.vue
│   │       │   ├── user/
│   │       │   │   ├── authRole.vue
│   │       │   │   ├── index.vue
│   │       │   │   └── profile/
│   │       │   │       ├── index.vue
│   │       │   │       ├── resetPwd.vue
│   │       │   │       ├── userAvatar.vue
│   │       │   │       └── userInfo.vue
│   │       │   ├── userCollect/
│   │       │   │   └── index.vue
│   │       │   ├── userHistory/
│   │       │   │   └── index.vue
│   │       │   ├── userPhoto/
│   │       │   │   └── index.vue
│   │       │   ├── userTalk/
│   │       │   │   └── index.vue
│   │       │   └── viewPager/
│   │       │       └── index.vue
│   │       └── tool/
│   │           ├── build/
│   │           │   ├── CodeTypeDialog.vue
│   │           │   ├── DraggableItem.vue
│   │           │   ├── IconsDialog.vue
│   │           │   ├── RightPanel.vue
│   │           │   ├── TreeNodeDialog.vue
│   │           │   └── index.vue
│   │           └── gen/
│   │               ├── basicInfoForm.vue
│   │               ├── editTable.vue
│   │               ├── genInfoForm.vue
│   │               ├── importTable.vue
│   │               └── index.vue
│   └── vue.config.js
└── script/
    ├── bin/
    │   ├── ry.bat
    │   └── ry.sh
    ├── docker/
    │   ├── database.yml
    │   ├── docker-compose.yml
    │   ├── nginx/
    │   │   └── conf/
    │   │       └── nginx.conf
    │   └── redis/
    │       ├── conf/
    │       │   └── redis.conf
    │       └── data/
    │           └── README.md
    └── sql/
        ├── oracle/
        │   ├── oracle_ry_vue_4.X.sql
        │   └── oracle_test.sql
        ├── postgres/
        │   ├── postgres_ry_vue_4.X.sql
        │   └── postgres_test.sql
        ├── ry_vue_4.X.sql
        ├── sqlserver/
        │   ├── sqlserver_ry_vue_4.X.sql
        │   └── sqlserver_test.sql
        ├── tables_xxl_job.sql
        ├── test.sql
        └── update/
            ├── oracle/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── postgres/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── sqlserver/
            │   ├── update-4.1-4.2.sql
            │   ├── update-4.2-4.3.sql
            │   └── update-4.3-4.4.sql
            ├── update-3.X-4.0.sql
            ├── update-4.0-4.1.sql
            ├── update-4.1-4.2.sql
            ├── update-4.2-4.3.sql
            └── update-4.3-4.4.sql
Download .txt
Showing preview only (355K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (4063 symbols across 664 files)

FILE: PaiZhiCheng/src/main/java/Main.java
  class Main (line 8) | public class Main {
    method main (line 17) | @SneakyThrows

FILE: PaiZhiCheng/src/main/java/top/flya/system/common/BatchUtils.java
  class BatchUtils (line 16) | @Component
    method getNewImageUrls (line 25) | public  Map<Long, String> getNewImageUrls(List<String> imageUrls) {
    method transformToPzcArtistVo (line 43) | public List<PzcArtistVo> transformToPzcArtistVo(List<PzcArtistVo> arti...
    method transformToPzcOrganizerVo (line 71) | public  List<PzcOrganizerVo> transformToPzcOrganizerVo(List<PzcOrganiz...
    method transformToPzcTagVo (line 105) | public  List<PzcTagVo> transformToPzcTagVo(List<PzcTagVo> tagList) {
    method transformToPzcIntroVo (line 134) | public List<PzcIntroVo> transformToPzcIntroVo(List<PzcIntroVo> introLi...
    method transformToPzcUserVo (line 165) | public List<PzcUserVo> transformToPzcUserVo(List<PzcUserVo> userList){
    method transformToPzcViewPagerVo (line 218) | public List<PzcViewPagerVo> transformToPzcViewPagerVo(List<PzcViewPage...
    method transformToPzcActivityVo (line 249) | public List<PzcActivityVo> transformToPzcActivityVo(List<PzcActivityVo...

FILE: PaiZhiCheng/src/main/java/top/flya/system/common/CheckUtils.java
  class CheckUtils (line 12) | @Slf4j
    method checkCreateActivity (line 24) | public R<Void> checkCreateActivity(PzcActivity activity, Integer type) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ClientCache.java
  class ClientCache (line 16) | @Component
    method getConcurrentHashMap (line 25) | public Map<String, HashMap<UUID, SocketIOClient>> getConcurrentHashMap()
    method saveClient (line 38) | public void saveClient(String userId, UUID sessionId, SocketIOClient s...
    method getUserClient (line 53) | public HashMap<UUID, SocketIOClient> getUserClient(String userId) {
    method deleteSessionClient (line 63) | public void deleteSessionClient(String userId, UUID sessionId) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/DbTemplate.java
  class DbTemplate (line 19) | @Component
    method findAll (line 31) | public List<UUID> findAll() {
    method findByUserId (line 41) | public Optional<UUID> findByUserId(String userId) {
    method save (line 51) | public void save(String userId, UUID sessionId) {
    method deleteByUserId (line 60) | public void deleteByUserId(String userId) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/Event.java
  type Event (line 11) | public interface Event {

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ServerConfig.java
  class ServerConfig (line 20) | @Configuration
    method server (line 24) | @Bean
    method springAnnotationScanner (line 51) | @Bean

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/ServerRunner.java
  class ServerRunner (line 17) | @Component
    method run (line 23) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/config/WsConfig.java
  class WsConfig (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/GaoDeMapController.java
  class GaoDeMapController (line 17) | @RestController
    method getAddress (line 28) | @GetMapping("/getAddress")
    method getLonLat (line 38) | @GetMapping("/getLonLat")
    method getDistance (line 43) | @GetMapping("/getDistance")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnArtistController.java
  class PzcActivityConnArtistController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:activityConnArtist:list")
    method export (line 52) | @SaCheckPermission("system:activityConnArtist:export")
    method getInfo (line 65) | @SaCheckPermission("system:activityConnArtist:query")
    method add (line 75) | @SaCheckPermission("system:activityConnArtist:add")
    method edit (line 86) | @SaCheckPermission("system:activityConnArtist:edit")
    method remove (line 99) | @SaCheckPermission("system:activityConnArtist:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnIntroController.java
  class PzcActivityConnIntroController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:activityConnIntro:list")
    method export (line 52) | @SaCheckPermission("system:activityConnIntro:export")
    method getInfo (line 65) | @SaCheckPermission("system:activityConnIntro:query")
    method add (line 75) | @SaCheckPermission("system:activityConnIntro:add")
    method edit (line 86) | @SaCheckPermission("system:activityConnIntro:edit")
    method remove (line 99) | @SaCheckPermission("system:activityConnIntro:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnTagController.java
  class PzcActivityConnTagController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:activityConnTag:list")
    method export (line 52) | @SaCheckPermission("system:activityConnTag:export")
    method getInfo (line 65) | @SaCheckPermission("system:activityConnTag:query")
    method add (line 75) | @SaCheckPermission("system:activityConnTag:add")
    method edit (line 86) | @SaCheckPermission("system:activityConnTag:edit")
    method remove (line 99) | @SaCheckPermission("system:activityConnTag:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityController.java
  class PzcActivityController (line 34) | @Validated
    method add (line 46) | @SaCheckPermission("system:activity:add")
    method edit (line 57) | @SaCheckPermission("system:activity:edit")
    method list (line 71) | @SaCheckPermission("system:activity:list")
    method Wx (line 81) | @GetMapping("/listWx")
    method export (line 91) | @SaCheckPermission("system:activity:export")
    method getInfo (line 104) | @GetMapping("/{activityId}")
    method remove (line 119) | @SaCheckPermission("system:activity:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupApplyController.java
  class PzcActivityGroupApplyController (line 53) | @Validated
    method wxzApply (line 79) | @PostMapping("/wxzApply")
    method myHistory (line 151) | @GetMapping("/myHistory") //我的历史活动
    method myTrips (line 220) | @GetMapping("/myTrips") //我的行程
    method list (line 276) | @GetMapping("/list")
    method export (line 285) | @Log(title = "活动组队申请列表", businessType = BusinessType.EXPORT)
    method getInfo (line 297) | @GetMapping("/{applyId}")
    method add (line 314) | @Log(title = "活动组队申请列表", businessType = BusinessType.INSERT) //
    method edit (line 345) | @Log(title = "活动组队申请列表", businessType = BusinessType.UPDATE)
    method remove (line 364) | @Log(title = "活动组队申请列表", businessType = BusinessType.DELETE)

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupController.java
  class PzcActivityGroupController (line 60) | @Validated
    method cancelIssueGroup (line 94) | @PostMapping("/cancelIssueGroup") //取消组队的发布
    method refurbish (line 138) | @PostMapping("/refurbish") //刷新
    method cancel (line 192) | @PostMapping("/cancel") //取消 双方都可以取消
    method cancelByGroupIn (line 250) | @PostMapping("/cancelByGroupIn") //活动过程中取消组队 扣除保证金 + 20派币 退还对方派币 + 对方的...
    method applyList (line 329) | @GetMapping("/applyList")
    method userInfo (line 373) | @GetMapping("/userInfo") //查看申请人或者发起人信息
    method pj (line 410) | @PostMapping("/pj") //双方评价 (可选)
    method confirmReach (line 476) | @PostMapping("/confirmReach") //确认到达目的地
    method applyRole (line 632) | @GetMapping("/applyRole")
    method confirm (line 644) | @PostMapping("/confirm") //确认申请 (这里判断 保证金 是否足够缴纳 保证 新人卡 bug)
    method apply (line 752) | @PostMapping("/apply")
    method list (line 1010) | @GetMapping("/list")
    method export (line 1019) | @SaCheckPermission("system:activityGroup:export")
    method getInfo (line 1032) | @GetMapping("/{groupId}")
    method add (line 1045) | @Log(title = "活动组队", businessType = BusinessType.INSERT)
    method edit (line 1101) | @Log(title = "活动组队", businessType = BusinessType.UPDATE)
    method remove (line 1130) | @SaCheckPermission("system:activityGroup:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcArtistController.java
  class PzcArtistController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:artist:list")
    method export (line 52) | @SaCheckPermission("system:artist:export")
    method getInfo (line 65) | @SaCheckPermission("system:artist:query")
    method add (line 75) | @SaCheckPermission("system:artist:add")
    method edit (line 86) | @SaCheckPermission("system:artist:edit")
    method remove (line 99) | @SaCheckPermission("system:artist:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcIntroController.java
  class PzcIntroController (line 35) | @Validated
    method list (line 47) | @SaCheckPermission("system:intro:list")
    method export (line 56) | @SaCheckPermission("system:intro:export")
    method getInfo (line 69) | @SaCheckPermission("system:intro:query")
    method add (line 79) | @SaCheckPermission("system:intro:add")
    method edit (line 90) | @SaCheckPermission("system:intro:edit")
    method remove (line 104) | @SaCheckPermission("system:intro:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOfficialController.java
  class PzcOfficialController (line 34) | @Validated
    method list (line 45) | @GetMapping("/list")
    method read (line 60) | @PostMapping("/read")
    method export (line 70) | @SaCheckPermission("system:official:export")
    method getInfo (line 83) | @SaCheckPermission("system:official:query")
    method add (line 93) | @SaCheckPermission("system:official:add")
    method edit (line 104) | @SaCheckPermission("system:official:edit")
    method remove (line 117) | @SaCheckPermission("system:official:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrderController.java
  class PzcOrderController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:pzc_order:list")
    method export (line 52) | @SaCheckPermission("system:pzc_order:export")
    method getInfo (line 65) | @SaCheckPermission("system:pzc_order:query")
    method add (line 75) | @SaCheckPermission("system:pzc_order:add")
    method edit (line 86) | @SaCheckPermission("system:pzc_order:edit")
    method remove (line 99) | @SaCheckPermission("system:pzc_order:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerController.java
  class PzcOrganizerController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:organizer:list")
    method export (line 52) | @SaCheckPermission("system:organizer:export")
    method getInfo (line 65) | @SaCheckPermission("system:organizer:query")
    method add (line 75) | @SaCheckPermission("system:organizer:add")
    method edit (line 86) | @SaCheckPermission("system:organizer:edit")
    method remove (line 99) | @SaCheckPermission("system:organizer:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerTicketController.java
  class PzcOrganizerTicketController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:organizerTicket:list")
    method export (line 52) | @SaCheckPermission("system:organizerTicket:export")
    method getInfo (line 65) | @SaCheckPermission("system:organizerTicket:query")
    method add (line 75) | @SaCheckPermission("system:organizerTicket:add")
    method edit (line 86) | @SaCheckPermission("system:organizerTicket:edit")
    method remove (line 99) | @SaCheckPermission("system:organizerTicket:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcRegionController.java
  class PzcRegionController (line 32) | @Validated
    method list (line 52) | @GetMapping("/list")
    method export (line 64) | @SaCheckPermission("system:region:export")
    method getInfo (line 77) | @SaCheckPermission("system:region:query")
    method add (line 87) | @SaCheckPermission("system:region:add")
    method edit (line 98) | @SaCheckPermission("system:region:edit")
    method remove (line 111) | @SaCheckPermission("system:region:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcTagController.java
  class PzcTagController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:tag:list")
    method export (line 52) | @SaCheckPermission("system:tag:export")
    method getInfo (line 65) | @SaCheckPermission("system:tag:query")
    method add (line 75) | @SaCheckPermission("system:tag:add")
    method edit (line 86) | @SaCheckPermission("system:tag:edit")
    method remove (line 99) | @SaCheckPermission("system:tag:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserCollectController.java
  class PzcUserCollectController (line 34) | @Validated
    method list (line 53) | @GetMapping("/list")
    method export (line 75) | @SaCheckPermission("system:userCollect:export")
    method getInfo (line 88) | @GetMapping("/{collectId}")
    method status (line 94) | @GetMapping("/status")
    method add (line 101) | @Log(title = "用户收藏/取消活动", businessType = BusinessType.INSERT)

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserController.java
  class PzcUserController (line 34) | @Validated
    method list (line 48) | @SaCheckPermission("system:pzc_user:list")
    method export (line 57) | @SaCheckPermission("system:pzc_user:export")
    method getInfo (line 70) | @SaCheckPermission("system:pzc_user:query")
    method add (line 80) | @SaCheckPermission("system:pzc_user:add")
    method updateMoney (line 89) | @PostMapping("/updateMoney")
    method edit (line 97) | @SaCheckPermission("system:pzc_user:edit")
    method remove (line 110) | @SaCheckPermission("system:pzc_user:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserHistoryController.java
  class PzcUserHistoryController (line 34) | @Validated
    method list (line 45) | @GetMapping("/list")
    method export (line 56) | @SaCheckPermission("system:userHistory:export")
    method getInfo (line 69) | @SaCheckPermission("system:userHistory:query")
    method add (line 79) | @SaCheckPermission("system:userHistory:add")
    method edit (line 90) | @SaCheckPermission("system:userHistory:edit")
    method remove (line 103) | @SaCheckPermission("system:userHistory:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserPhotoController.java
  class PzcUserPhotoController (line 33) | @Validated
    method list (line 44) | @GetMapping("/list")
    method export (line 56) | @Log(title = "用户资料相册", businessType = BusinessType.EXPORT)
    method getInfo (line 68) | @GetMapping("/{photoId}")
    method add (line 77) | @Log(title = "用户资料相册", businessType = BusinessType.INSERT)
    method edit (line 88) | @Log(title = "用户资料相册", businessType = BusinessType.UPDATE)
    method remove (line 100) | @Log(title = "用户资料相册", businessType = BusinessType.DELETE)

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserTalkController.java
  class PzcUserTalkController (line 35) | @Validated
    method deleteByUserId (line 51) | @PostMapping("/deleteByUserId") //删除聊天记录
    method liveStatus (line 69) | @GetMapping("/live")
    method read (line 98) | @PostMapping("/read")
    method myList (line 119) | @GetMapping("/myList")
    method list (line 128) | @GetMapping("/list")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/PzcViewPagerController.java
  class PzcViewPagerController (line 33) | @Validated
    method list (line 44) | @GetMapping("/list")
    method export (line 52) | @SaCheckPermission("system:viewPager:export")
    method getInfo (line 65) | @GetMapping("/{viewPagerId}")
    method add (line 74) | @SaCheckPermission("system:viewPager:add")
    method edit (line 85) | @SaCheckPermission("system:viewPager:edit")
    method remove (line 98) | @SaCheckPermission("system:viewPager:remove")

FILE: PaiZhiCheng/src/main/java/top/flya/system/controller/WxUserController.java
  class WxUserController (line 57) | @Validated
    method filterKeyWords (line 117) | @GetMapping("/filterKeyWords")
    method music (line 123) | @GetMapping("/music")
    method notRead (line 132) | @GetMapping("/notRead") // 获取首页 未读消息 (红点点)
    method login (line 142) | @PostMapping("/login") // 登录
    method getSchoolList (line 149) | @GetMapping("/getSchoolList")
    method userInfo (line 157) | @GetMapping("/userInfo") // 获取用户信息
    method updateUserInfo (line 162) | @PostMapping("/updateUserInfo") // 更新用户信息
    method createOrder (line 206) | @PostMapping("/recharge") // 充值
    method callback (line 305) | @RequestMapping("/callback")
    method updateUser (line 344) | public PzcUser updateUser(Map<String, Object> userInfo, PzcUser user) {
    method userLogin (line 380) | public String userLogin(PzcUserBo pzcUserBo) {
    method recordLogininfor (line 438) | private void recordLogininfor(String username, String message) {
    method sendArriveMsg (line 448) | @PostMapping("/sendArriveMsg") //推送微信小程序通知

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivity.java
  class PzcActivity (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnArtist.java
  class PzcActivityConnArtist (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnIntro.java
  class PzcActivityConnIntro (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnTag.java
  class PzcActivityConnTag (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityGroup.java
  class PzcActivityGroup (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityGroupApply.java
  class PzcActivityGroupApply (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcArtist.java
  class PzcArtist (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcIntro.java
  class PzcIntro (line 17) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOfficial.java
  class PzcOfficial (line 17) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrder.java
  class PzcOrder (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrganizer.java
  class PzcOrganizer (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrganizerTicket.java
  class PzcOrganizerTicket (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcRegion.java
  class PzcRegion (line 17) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcTag.java
  class PzcTag (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUser.java
  class PzcUser (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserCollect.java
  class PzcUserCollect (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserHistory.java
  class PzcUserHistory (line 17) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserPhoto.java
  class PzcUserPhoto (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserTalk.java
  class PzcUserTalk (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/PzcViewPager.java
  class PzcViewPager (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PayOrderBo.java
  class PayOrderBo (line 8) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityBo.java
  class PzcActivityBo (line 24) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnArtistBo.java
  class PzcActivityConnArtistBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnIntroBo.java
  class PzcActivityConnIntroBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnTagBo.java
  class PzcActivityConnTagBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityGroupApplyBo.java
  class PzcActivityGroupApplyBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityGroupBo.java
  class PzcActivityGroupBo (line 21) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcArtistBo.java
  class PzcArtistBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcIntroBo.java
  class PzcIntroBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOfficialBo.java
  class PzcOfficialBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrderBo.java
  class PzcOrderBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrganizerBo.java
  class PzcOrganizerBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrganizerTicketBo.java
  class PzcOrganizerTicketBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcRegionBo.java
  class PzcRegionBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcTagBo.java
  class PzcTagBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserBo.java
  class PzcUserBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserCollectBo.java
  class PzcUserCollectBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserHistoryBo.java
  class PzcUserHistoryBo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserPhotoBo.java
  class PzcUserPhotoBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserTalkBo.java
  class PzcUserTalkBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcViewPagerBo.java
  class PzcViewPagerBo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/RefurbishBo.java
  class RefurbishBo (line 5) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/Resource.java
  class Resource (line 12) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/SuccessCallBackObjBo.java
  class SuccessCallBackObjBo (line 12) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/UpdateMoneyBo.java
  class UpdateMoneyBo (line 7) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/bo/WxzApplyBo.java
  class WxzApplyBo (line 6) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnArtistVo.java
  class PzcActivityConnArtistVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnIntroVo.java
  class PzcActivityConnIntroVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnTagVo.java
  class PzcActivityConnTagVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityGroupApplyVo.java
  class PzcActivityGroupApplyVo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityGroupVo.java
  class PzcActivityGroupVo (line 21) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityVo.java
  class PzcActivityVo (line 23) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcArtistVo.java
  class PzcArtistVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcIntroVo.java
  class PzcIntroVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOfficialVo.java
  class PzcOfficialVo (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrderVo.java
  class PzcOrderVo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrganizerTicketVo.java
  class PzcOrganizerTicketVo (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrganizerVo.java
  class PzcOrganizerVo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcRegionVo.java
  class PzcRegionVo (line 19) | @Data
    method PzcRegionVo (line 68) | public PzcRegionVo() {

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcTagVo.java
  class PzcTagVo (line 20) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserCollectVo.java
  class PzcUserCollectVo (line 15) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserHistoryVo.java
  class PzcUserHistoryVo (line 19) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserPhotoVo.java
  class PzcUserPhotoVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserTalkVo.java
  class PzcUserTalkVo (line 18) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserVo.java
  class PzcUserVo (line 21) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcViewPagerVo.java
  class PzcViewPagerVo (line 16) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/domain/vo/RefurbishVO.java
  class RefurbishVO (line 5) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Activity.java
  class Activity (line 12) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnArtist.java
  class ActivityConnArtist (line 10) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnIntro.java
  class ActivityConnIntro (line 10) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnTag.java
  class ActivityConnTag (line 9) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Artist.java
  class Artist (line 9) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Event.java
  class Event (line 8) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/FLBaseEntity.java
  class FLBaseEntity (line 12) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Intro.java
  class Intro (line 13) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Organizer.java
  class Organizer (line 12) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/OrganizerTicket.java
  class OrganizerTicket (line 9) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Price.java
  class Price (line 8) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Region.java
  class Region (line 10) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/Tag.java
  class Tag (line 9) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/entity/ViewPager.java
  class ViewPager (line 9) | @EqualsAndHashCode(callSuper = true)

FILE: PaiZhiCheng/src/main/java/top/flya/system/handel/MessageEventHandler.java
  class MessageEventHandler (line 39) | @Component
    method onConnect (line 63) | @OnConnect
    method onDisconnect (line 98) | @OnDisconnect
    method sendToSingle (line 117) | public boolean sendToSingle(String userId, PzcUserTalkBo message) {
    method officialMessage (line 135) | public boolean officialMessage(String toUserId, WxzApplyBo wxzApplyBo) {
    method onOfficialEvent (line 153) | @OnEvent(value = Event.OFFICIAL)
    method onChatEvent (line 171) | @OnEvent(value = Event.CHAT)

FILE: PaiZhiCheng/src/main/java/top/flya/system/handel/WxPayInitHandel.java
  class WxPayInitHandel (line 30) | @Aspect
    method setup (line 76) | public CloseableHttpClient setup() throws IOException {
    method after (line 114) | public void after(CloseableHttpClient httpClient) throws IOException {

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnArtistMapper.java
  type PzcActivityConnArtistMapper (line 13) | public interface PzcActivityConnArtistMapper extends BaseMapperPlus<PzcA...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnIntroMapper.java
  type PzcActivityConnIntroMapper (line 13) | public interface PzcActivityConnIntroMapper extends BaseMapperPlus<PzcAc...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnTagMapper.java
  type PzcActivityConnTagMapper (line 13) | public interface PzcActivityConnTagMapper extends BaseMapperPlus<PzcActi...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityGroupApplyMapper.java
  type PzcActivityGroupApplyMapper (line 13) | public interface PzcActivityGroupApplyMapper extends BaseMapperPlus<PzcA...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityGroupMapper.java
  type PzcActivityGroupMapper (line 18) | public interface PzcActivityGroupMapper extends BaseMapperPlus<PzcActivi...
    method selectDetailsList (line 20) | Page<PzcActivityGroupVo> selectDetailsList(Page<Object> build,@Param("...
    method selectVoByIdDIY (line 22) | PzcActivityGroupVo selectVoByIdDIY(@Param("groupId") Long groupId);

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityMapper.java
  type PzcActivityMapper (line 16) | public interface PzcActivityMapper extends BaseMapperPlus<PzcActivityMap...
    method selectActivityByActivityIds (line 18) | List<PzcActivity> selectActivityByActivityIds(@Param("activityIds") Li...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcArtistMapper.java
  type PzcArtistMapper (line 13) | public interface PzcArtistMapper extends BaseMapperPlus<PzcArtistMapper,...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcIntroMapper.java
  type PzcIntroMapper (line 13) | public interface PzcIntroMapper extends BaseMapperPlus<PzcIntroMapper, P...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOfficialMapper.java
  type PzcOfficialMapper (line 13) | public interface PzcOfficialMapper extends BaseMapperPlus<PzcOfficialMap...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrderMapper.java
  type PzcOrderMapper (line 13) | public interface PzcOrderMapper extends BaseMapperPlus<PzcOrderMapper, P...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrganizerMapper.java
  type PzcOrganizerMapper (line 13) | public interface PzcOrganizerMapper extends BaseMapperPlus<PzcOrganizerM...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrganizerTicketMapper.java
  type PzcOrganizerTicketMapper (line 13) | public interface PzcOrganizerTicketMapper extends BaseMapperPlus<PzcOrga...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcRegionMapper.java
  type PzcRegionMapper (line 13) | public interface PzcRegionMapper extends BaseMapperPlus<PzcRegionMapper,...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcTagMapper.java
  type PzcTagMapper (line 13) | public interface PzcTagMapper extends BaseMapperPlus<PzcTagMapper, PzcTa...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserCollectMapper.java
  type PzcUserCollectMapper (line 13) | public interface PzcUserCollectMapper extends BaseMapperPlus<PzcUserColl...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserHistoryMapper.java
  type PzcUserHistoryMapper (line 13) | public interface PzcUserHistoryMapper extends BaseMapperPlus<PzcUserHist...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserMapper.java
  type PzcUserMapper (line 15) | public interface PzcUserMapper extends BaseMapperPlus<PzcUserMapper, Pzc...
    method updateMoney (line 17) | int updateMoney(@Param("bo") UpdateMoneyBo bo);

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserPhotoMapper.java
  type PzcUserPhotoMapper (line 13) | public interface PzcUserPhotoMapper extends BaseMapperPlus<PzcUserPhotoM...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserTalkMapper.java
  type PzcUserTalkMapper (line 18) | public interface PzcUserTalkMapper extends BaseMapperPlus<PzcUserTalkMap...
    method selectVoPageV1 (line 20) | PzcUserTalkVo selectVoPageV1 (@Param("otherUser")Long otherUser, @Para...
    method selectNotReadCount (line 22) | Integer selectNotReadCount(@Param("fromUserId") Long userId, @Param("t...
    method selectVoPageV2 (line 24) | Page<PzcUserTalkVo> selectVoPageV2(Page<Object> build, @Param("bo") Pz...
    method selectMyTalkUserIds (line 26) | List<Long> selectMyTalkUserIds(@Param("my") Long userId);
    method selectMyTalkUserIdsV2 (line 28) | List<Long> selectMyTalkUserIdsV2(@Param("my") Long userId);

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcViewPagerMapper.java
  type PzcViewPagerMapper (line 13) | public interface PzcViewPagerMapper extends BaseMapperPlus<PzcViewPagerM...

FILE: PaiZhiCheng/src/main/java/top/flya/system/mapper/RegionTreeMapper.java
  class RegionTreeMapper (line 11) | @Component
    method buildTree (line 13) | public  Map<String, List<PzcRegionVo>> buildTree(List<PzcRegionVo> pzc...
    method getParentBase (line 50) | private  String getParentBase(PzcRegionVo node) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnArtistService.java
  type IPzcActivityConnArtistService (line 18) | public interface IPzcActivityConnArtistService {
    method queryById (line 23) | PzcActivityConnArtistVo queryById(Integer activityConnArtistId);
    method queryPageList (line 28) | TableDataInfo<PzcActivityConnArtistVo> queryPageList(PzcActivityConnAr...
    method queryList (line 33) | List<PzcActivityConnArtistVo> queryList(PzcActivityConnArtistBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcActivityConnArtistBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcActivityConnArtistBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnIntroService.java
  type IPzcActivityConnIntroService (line 18) | public interface IPzcActivityConnIntroService {
    method queryById (line 23) | PzcActivityConnIntroVo queryById(Integer activityConnIntroId);
    method queryPageList (line 28) | TableDataInfo<PzcActivityConnIntroVo> queryPageList(PzcActivityConnInt...
    method queryList (line 33) | List<PzcActivityConnIntroVo> queryList(PzcActivityConnIntroBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcActivityConnIntroBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcActivityConnIntroBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnTagService.java
  type IPzcActivityConnTagService (line 18) | public interface IPzcActivityConnTagService {
    method queryById (line 23) | PzcActivityConnTagVo queryById(Integer activityConnTagId);
    method queryPageList (line 28) | TableDataInfo<PzcActivityConnTagVo> queryPageList(PzcActivityConnTagBo...
    method queryList (line 33) | List<PzcActivityConnTagVo> queryList(PzcActivityConnTagBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcActivityConnTagBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcActivityConnTagBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityGroupApplyService.java
  type IPzcActivityGroupApplyService (line 17) | public interface IPzcActivityGroupApplyService {
    method queryById (line 22) | PzcActivityGroupApplyVo queryById(Long applyId);
    method queryPageList (line 27) | TableDataInfo<PzcActivityGroupApplyVo> queryPageList(PzcActivityGroupA...
    method queryList (line 32) | List<PzcActivityGroupApplyVo> queryList(PzcActivityGroupApplyBo bo);
    method insertByBo (line 37) | Boolean insertByBo(PzcActivityGroupApplyBo bo);
    method updateByBo (line 42) | Boolean updateByBo(PzcActivityGroupApplyBo bo);
    method deleteWithValidByIds (line 47) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    method queryByUserIdAndActivityId (line 49) | boolean queryByUserIdAndActivityId(Long userId, Long activityId);
    method updateStatus (line 51) | Integer updateStatus(Long applyId, int i);
    method queryListByGroupIds (line 53) | List<PzcActivityGroupApplyVo> queryListByGroupIds(List<Long> groupIds);
    method queryByUserIdAndGroupId (line 55) | PzcActivityGroupApplyVo queryByUserIdAndGroupId(Long userId, Long grou...

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityGroupService.java
  type IPzcActivityGroupService (line 18) | public interface IPzcActivityGroupService {
    method queryById (line 23) | PzcActivityGroupVo queryById(Long groupId);
    method queryPageList (line 28) | TableDataInfo<PzcActivityGroupVo> queryPageList(PzcActivityGroupBo bo,...
    method queryList (line 33) | List<PzcActivityGroupVo> queryList(PzcActivityGroupBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcActivityGroupBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcActivityGroupBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    method checkActivity (line 50) | boolean checkActivity(Long activityId);
    method checkGroup (line 52) | boolean checkGroup(Long userId, Long activityId);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityService.java
  type IPzcActivityService (line 18) | public interface IPzcActivityService {
    method queryById (line 23) | PzcActivityVo queryById(Integer activityId);
    method queryPageList (line 28) | TableDataInfo<PzcActivityVo> queryPageList(PzcActivityBo bo, PageQuery...
    method queryPageListWx (line 35) | TableDataInfo<PzcActivityVo> queryPageListWx(PzcActivityBo bo, PageQue...
    method queryList (line 40) | List<PzcActivityVo> queryList(PzcActivityBo bo);
    method insertByBo (line 45) | Boolean insertByBo(PzcActivityBo bo);
    method updateByBo (line 50) | Boolean updateByBo(PzcActivityBo bo);
    method deleteWithValidByIds (line 55) | Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcArtistService.java
  type IPzcArtistService (line 18) | public interface IPzcArtistService {
    method queryById (line 23) | PzcArtistVo queryById(Long artistId);
    method queryPageList (line 28) | TableDataInfo<PzcArtistVo> queryPageList(PzcArtistBo bo, PageQuery pag...
    method queryList (line 33) | List<PzcArtistVo> queryList(PzcArtistBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcArtistBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcArtistBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcIntroService.java
  type IPzcIntroService (line 17) | public interface IPzcIntroService {
    method queryById (line 22) | PzcIntroVo queryById(Long introId);
    method queryPageList (line 27) | TableDataInfo<PzcIntroVo> queryPageList(PzcIntroBo bo, PageQuery pageQ...
    method queryList (line 32) | List<PzcIntroVo> queryList(PzcIntroBo bo);
    method insertByBo (line 37) | Boolean insertByBo(PzcIntroBo bo);
    method updateByBo (line 42) | Boolean updateByBo(PzcIntroBo bo);
    method deleteWithValidByIds (line 47) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOfficialService.java
  type IPzcOfficialService (line 17) | public interface IPzcOfficialService {
    method queryById (line 22) | PzcOfficialVo queryById(Long officialId);
    method queryPageList (line 27) | TableDataInfo<PzcOfficialVo> queryPageList(PzcOfficialBo bo, PageQuery...
    method queryList (line 32) | List<PzcOfficialVo> queryList(PzcOfficialBo bo);
    method insertByBo (line 37) | Boolean insertByBo(PzcOfficialBo bo);
    method updateByBo (line 42) | Boolean updateByBo(PzcOfficialBo bo);
    method deleteWithValidByIds (line 47) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    method read (line 49) | Integer read(Integer officialId);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrderService.java
  type IPzcOrderService (line 18) | public interface IPzcOrderService {
    method queryById (line 23) | PzcOrderVo queryById(Long orderId);
    method queryPageList (line 28) | TableDataInfo<PzcOrderVo> queryPageList(PzcOrderBo bo, PageQuery pageQ...
    method queryList (line 33) | List<PzcOrderVo> queryList(PzcOrderBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcOrderBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcOrderBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrganizerService.java
  type IPzcOrganizerService (line 18) | public interface IPzcOrganizerService {
    method queryById (line 23) | PzcOrganizerVo queryById(Long organizerId);
    method queryPageList (line 28) | TableDataInfo<PzcOrganizerVo> queryPageList(PzcOrganizerBo bo, PageQue...
    method queryList (line 33) | List<PzcOrganizerVo> queryList(PzcOrganizerBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcOrganizerBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcOrganizerBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrganizerTicketService.java
  type IPzcOrganizerTicketService (line 18) | public interface IPzcOrganizerTicketService {
    method queryById (line 23) | PzcOrganizerTicketVo queryById(Long organizerTicketId);
    method queryPageList (line 28) | TableDataInfo<PzcOrganizerTicketVo> queryPageList(PzcOrganizerTicketBo...
    method queryList (line 33) | List<PzcOrganizerTicketVo> queryList(PzcOrganizerTicketBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcOrganizerTicketBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcOrganizerTicketBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcRegionService.java
  type IPzcRegionService (line 17) | public interface IPzcRegionService {
    method queryById (line 22) | PzcRegionVo queryById(Long regionId);
    method queryPageList (line 27) | TableDataInfo<PzcRegionVo> queryPageList(PzcRegionBo bo, PageQuery pag...
    method queryList (line 32) | List<PzcRegionVo> queryList(PzcRegionBo bo);
    method insertByBo (line 37) | Boolean insertByBo(PzcRegionBo bo);
    method updateByBo (line 42) | Boolean updateByBo(PzcRegionBo bo);
    method deleteWithValidByIds (line 47) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcTagService.java
  type IPzcTagService (line 18) | public interface IPzcTagService {
    method queryById (line 23) | PzcTagVo queryById(Long tagId);
    method queryPageList (line 28) | TableDataInfo<PzcTagVo> queryPageList(PzcTagBo bo, PageQuery pageQuery);
    method queryList (line 33) | List<PzcTagVo> queryList(PzcTagBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcTagBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcTagBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserCollectService.java
  type IPzcUserCollectService (line 18) | public interface IPzcUserCollectService {
    method queryById (line 23) | PzcUserCollectVo queryById(Long collectId);
    method queryPageList (line 28) | TableDataInfo<PzcUserCollectVo> queryPageList(PzcUserCollectBo bo, Pag...
    method queryList (line 33) | List<PzcUserCollectVo> queryList(PzcUserCollectBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcUserCollectBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcUserCollectBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserHistoryService.java
  type IPzcUserHistoryService (line 18) | public interface IPzcUserHistoryService {
    method queryById (line 23) | PzcUserHistoryVo queryById(Long historyId);
    method queryPageList (line 28) | TableDataInfo<PzcUserHistoryVo> queryPageList(PzcUserHistoryBo bo, Pag...
    method queryList (line 33) | List<PzcUserHistoryVo> queryList(PzcUserHistoryBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcUserHistoryBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcUserHistoryBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserPhotoService.java
  type IPzcUserPhotoService (line 18) | public interface IPzcUserPhotoService {
    method queryById (line 23) | PzcUserPhotoVo queryById(Long photoId);
    method queryPageList (line 28) | TableDataInfo<PzcUserPhotoVo> queryPageList(PzcUserPhotoBo bo, PageQue...
    method queryList (line 33) | List<PzcUserPhotoVo> queryList(PzcUserPhotoBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcUserPhotoBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcUserPhotoBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserService.java
  type IPzcUserService (line 18) | public interface IPzcUserService {
    method queryById (line 23) | PzcUserVo queryById(Long userId);
    method queryPageList (line 28) | TableDataInfo<PzcUserVo> queryPageList(PzcUserBo bo, PageQuery pageQue...
    method queryList (line 33) | List<PzcUserVo> queryList(PzcUserBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcUserBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcUserBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    method updateMoney (line 50) | int updateMoney(UpdateMoneyBo bo);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserTalkService.java
  type IPzcUserTalkService (line 18) | public interface IPzcUserTalkService {
    method queryById (line 23) | PzcUserTalkVo queryById(Long talkId);
    method queryPageList (line 28) | TableDataInfo<PzcUserTalkVo> queryPageList(PzcUserTalkBo bo, PageQuery...
    method queryList (line 33) | List<PzcUserTalkVo> queryList(PzcUserTalkBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcUserTalkBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcUserTalkBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
    method queryMyPageList (line 51) | TableDataInfo<PzcUserTalkVo> queryMyPageList(PzcUserTalkBo bo, PageQue...

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/IPzcViewPagerService.java
  type IPzcViewPagerService (line 18) | public interface IPzcViewPagerService {
    method queryById (line 23) | PzcViewPagerVo queryById(Integer viewPagerId);
    method queryPageList (line 28) | TableDataInfo<PzcViewPagerVo> queryPageList(PzcViewPagerBo bo, PageQue...
    method queryList (line 33) | List<PzcViewPagerVo> queryList(PzcViewPagerBo bo);
    method insertByBo (line 38) | Boolean insertByBo(PzcViewPagerBo bo);
    method updateByBo (line 43) | Boolean updateByBo(PzcViewPagerBo bo);
    method deleteWithValidByIds (line 48) | Boolean deleteWithValidByIds(Collection<Integer> ids, Boolean isValid);

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnArtistServiceImpl.java
  class PzcActivityConnArtistServiceImpl (line 27) | @RequiredArgsConstructor
    method queryById (line 36) | @Override
    method queryPageList (line 44) | @Override
    method queryList (line 54) | @Override
    method buildQueryWrapper (line 60) | private LambdaQueryWrapper<PzcActivityConnArtist> buildQueryWrapper(Pz...
    method insertByBo (line 73) | @Override
    method updateByBo (line 87) | @Override
    method validEntityBeforeSave (line 97) | private void validEntityBeforeSave(PzcActivityConnArtist entity){
    method deleteWithValidByIds (line 104) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnIntroServiceImpl.java
  class PzcActivityConnIntroServiceImpl (line 27) | @RequiredArgsConstructor
    method queryById (line 36) | @Override
    method queryPageList (line 44) | @Override
    method queryList (line 54) | @Override
    method buildQueryWrapper (line 60) | private LambdaQueryWrapper<PzcActivityConnIntro> buildQueryWrapper(Pzc...
    method insertByBo (line 72) | @Override
    method updateByBo (line 86) | @Override
    method validEntityBeforeSave (line 96) | private void validEntityBeforeSave(PzcActivityConnIntro entity){
    method deleteWithValidByIds (line 103) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnTagServiceImpl.java
  class PzcActivityConnTagServiceImpl (line 27) | @RequiredArgsConstructor
    method queryById (line 36) | @Override
    method queryPageList (line 44) | @Override
    method queryList (line 54) | @Override
    method buildQueryWrapper (line 60) | private LambdaQueryWrapper<PzcActivityConnTag> buildQueryWrapper(PzcAc...
    method insertByBo (line 74) | @Override
    method updateByBo (line 88) | @Override
    method validEntityBeforeSave (line 98) | private void validEntityBeforeSave(PzcActivityConnTag entity){
    method deleteWithValidByIds (line 105) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityGroupApplyServiceImpl.java
  class PzcActivityGroupApplyServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 38) | @Override
    method queryPageList (line 46) | @Override
    method queryList (line 56) | @Override
    method buildQueryWrapper (line 62) | private LambdaQueryWrapper<PzcActivityGroupApply> buildQueryWrapper(Pz...
    method insertByBo (line 82) | @Override
    method updateByBo (line 96) | @Override
    method validEntityBeforeSave (line 106) | private void validEntityBeforeSave(PzcActivityGroupApply entity){
    method deleteWithValidByIds (line 113) | @Override
    method queryByUserIdAndActivityId (line 121) | @Override
    method updateStatus (line 134) | @Override
    method queryListByGroupIds (line 144) | @Override
    method queryByUserIdAndGroupId (line 152) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityGroupServiceImpl.java
  class PzcActivityGroupServiceImpl (line 38) | @RequiredArgsConstructor
    method queryById (line 59) | @Override
    method getPrivateUser (line 93) | public PzcUserVo getPrivateUser(PzcUserVo pzcUser)
    method queryPageList (line 124) | @Override
    method queryList (line 193) | @Override
    method buildQueryWrapper (line 199) | private LambdaQueryWrapper<PzcActivityGroup> buildQueryWrapper(PzcActi...
    method insertByBo (line 218) | @Override
    method updateByBo (line 232) | @Override
    method validEntityBeforeSave (line 242) | private void validEntityBeforeSave(PzcActivityGroup entity) {
    method deleteWithValidByIds (line 249) | @Override
    method checkActivity (line 257) | @Override
    method checkGroup (line 262) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityServiceImpl.java
  class PzcActivityServiceImpl (line 33) | @RequiredArgsConstructor
    method queryById (line 63) | @Override
    method queryPageList (line 150) | @Override
    method queryPageListWx (line 161) | @Override
    method queryList (line 176) | @Override
    method buildQueryWrapper (line 182) | private LambdaQueryWrapper<PzcActivity> buildQueryWrapper(PzcActivityB...
    method insertByBo (line 214) | @Override
    method saveActivityConfigs (line 245) | @Transactional //这里关联其他表的保存
    method updateByBo (line 522) | @Override
    method validEntityBeforeSave (line 538) | private void validEntityBeforeSave(PzcActivity entity) {
    method deleteWithValidByIds (line 556) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcArtistServiceImpl.java
  class PzcArtistServiceImpl (line 31) | @RequiredArgsConstructor
    method queryById (line 44) | @Override
    method queryPageList (line 52) | @Override
    method queryList (line 63) | @Override
    method buildQueryWrapper (line 69) | private LambdaQueryWrapper<PzcArtist> buildQueryWrapper(PzcArtistBo bo) {
    method insertByBo (line 81) | @Override
    method updateByBo (line 95) | @Override
    method validEntityBeforeSave (line 105) | private void validEntityBeforeSave(PzcArtist entity){
    method deleteWithValidByIds (line 112) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcIntroServiceImpl.java
  class PzcIntroServiceImpl (line 29) | @RequiredArgsConstructor
    method queryById (line 39) | @Override
    method queryPageList (line 47) | @Override
    method queryList (line 58) | @Override
    method buildQueryWrapper (line 64) | private LambdaQueryWrapper<PzcIntro> buildQueryWrapper(PzcIntroBo bo) {
    method insertByBo (line 79) | @Override
    method updateByBo (line 93) | @Override
    method validEntityBeforeSave (line 103) | private void validEntityBeforeSave(PzcIntro entity){
    method deleteWithValidByIds (line 110) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOfficialServiceImpl.java
  class PzcOfficialServiceImpl (line 30) | @RequiredArgsConstructor
    method queryById (line 39) | @Override
    method queryPageList (line 47) | @Override
    method queryList (line 58) | @Override
    method buildQueryWrapper (line 64) | private LambdaQueryWrapper<PzcOfficial> buildQueryWrapper(PzcOfficialB...
    method insertByBo (line 82) | @Override
    method updateByBo (line 96) | @Override
    method validEntityBeforeSave (line 106) | private void validEntityBeforeSave(PzcOfficial entity){
    method deleteWithValidByIds (line 113) | @Override
    method read (line 122) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrderServiceImpl.java
  class PzcOrderServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 37) | @Override
    method queryPageList (line 45) | @Override
    method queryList (line 55) | @Override
    method buildQueryWrapper (line 61) | private LambdaQueryWrapper<PzcOrder> buildQueryWrapper(PzcOrderBo bo) {
    method insertByBo (line 80) | @Override
    method updateByBo (line 94) | @Override
    method validEntityBeforeSave (line 104) | private void validEntityBeforeSave(PzcOrder entity){
    method deleteWithValidByIds (line 111) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrganizerServiceImpl.java
  class PzcOrganizerServiceImpl (line 29) | @RequiredArgsConstructor
    method queryById (line 39) | @Override
    method queryPageList (line 47) | @Override
    method queryList (line 58) | @Override
    method buildQueryWrapper (line 64) | private LambdaQueryWrapper<PzcOrganizer> buildQueryWrapper(PzcOrganize...
    method insertByBo (line 77) | @Override
    method updateByBo (line 91) | @Override
    method validEntityBeforeSave (line 101) | private void validEntityBeforeSave(PzcOrganizer entity){
    method deleteWithValidByIds (line 108) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrganizerTicketServiceImpl.java
  class PzcOrganizerTicketServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 37) | @Override
    method queryPageList (line 45) | @Override
    method queryList (line 55) | @Override
    method buildQueryWrapper (line 61) | private LambdaQueryWrapper<PzcOrganizerTicket> buildQueryWrapper(PzcOr...
    method insertByBo (line 74) | @Override
    method updateByBo (line 88) | @Override
    method validEntityBeforeSave (line 98) | private void validEntityBeforeSave(PzcOrganizerTicket entity){
    method deleteWithValidByIds (line 105) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcRegionServiceImpl.java
  class PzcRegionServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 37) | @Override
    method queryPageList (line 45) | @Override
    method queryList (line 60) | @Override
    method buildQueryWrapper (line 66) | private LambdaQueryWrapper<PzcRegion> buildQueryWrapper(PzcRegionBo bo) {
    method insertByBo (line 80) | @Override
    method updateByBo (line 94) | @Override
    method validEntityBeforeSave (line 104) | private void validEntityBeforeSave(PzcRegion entity){
    method deleteWithValidByIds (line 111) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcTagServiceImpl.java
  class PzcTagServiceImpl (line 29) | @RequiredArgsConstructor
    method queryById (line 39) | @Override
    method queryPageList (line 47) | @Override
    method queryList (line 58) | @Override
    method buildQueryWrapper (line 64) | private LambdaQueryWrapper<PzcTag> buildQueryWrapper(PzcTagBo bo) {
    method insertByBo (line 77) | @Override
    method updateByBo (line 91) | @Override
    method validEntityBeforeSave (line 101) | private void validEntityBeforeSave(PzcTag entity){
    method deleteWithValidByIds (line 108) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserCollectServiceImpl.java
  class PzcUserCollectServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 42) | @Override
    method queryPageList (line 50) | @Override
    method queryList (line 82) | @Override
    method buildQueryWrapper (line 88) | private LambdaQueryWrapper<PzcUserCollect> buildQueryWrapper(PzcUserCo...
    method insertByBo (line 99) | @Override
    method updateByBo (line 113) | @Override
    method validEntityBeforeSave (line 123) | private void validEntityBeforeSave(PzcUserCollect entity){
    method deleteWithValidByIds (line 130) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserHistoryServiceImpl.java
  class PzcUserHistoryServiceImpl (line 30) | @RequiredArgsConstructor
    method queryById (line 39) | @Override
    method queryPageList (line 47) | @Override
    method queryList (line 57) | @Override
    method buildQueryWrapper (line 63) | private LambdaQueryWrapper<PzcUserHistory> buildQueryWrapper(PzcUserHi...
    method insertByBo (line 86) | @Override
    method updateByBo (line 100) | @Override
    method validEntityBeforeSave (line 110) | private void validEntityBeforeSave(PzcUserHistory entity){
    method deleteWithValidByIds (line 117) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserPhotoServiceImpl.java
  class PzcUserPhotoServiceImpl (line 28) | @RequiredArgsConstructor
    method queryById (line 37) | @Override
    method queryPageList (line 45) | @Override
    method queryList (line 55) | @Override
    method buildQueryWrapper (line 61) | private LambdaQueryWrapper<PzcUserPhoto> buildQueryWrapper(PzcUserPhot...
    method insertByBo (line 75) | @Override
    method updateByBo (line 89) | @Override
    method validEntityBeforeSave (line 99) | private void validEntityBeforeSave(PzcUserPhoto entity){
    method deleteWithValidByIds (line 106) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserServiceImpl.java
  class PzcUserServiceImpl (line 30) | @RequiredArgsConstructor
    method queryById (line 41) | @Override
    method queryPageList (line 49) | @Override
    method queryList (line 60) | @Override
    method buildQueryWrapper (line 66) | private LambdaQueryWrapper<PzcUser> buildQueryWrapper(PzcUserBo bo) {
    method insertByBo (line 95) | @Override
    method updateByBo (line 109) | @Override
    method validEntityBeforeSave (line 119) | private void validEntityBeforeSave(PzcUser entity){
    method deleteWithValidByIds (line 126) | @Override
    method updateMoney (line 134) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserTalkServiceImpl.java
  class PzcUserTalkServiceImpl (line 31) | @RequiredArgsConstructor
    method queryById (line 43) | @Override
    method queryPageList (line 51) | @Override
    method queryMyPageList (line 64) | @Override
    method queryList (line 98) | @Override
    method buildQueryWrapper (line 104) | private LambdaQueryWrapper<PzcUserTalk> buildQueryWrapper(PzcUserTalkB...
    method insertByBo (line 120) | @Override
    method updateByBo (line 134) | @Override
    method validEntityBeforeSave (line 144) | private void validEntityBeforeSave(PzcUserTalk entity) {
    method deleteWithValidByIds (line 151) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcViewPagerServiceImpl.java
  class PzcViewPagerServiceImpl (line 29) | @RequiredArgsConstructor
    method queryById (line 40) | @Override
    method queryPageList (line 48) | @Override
    method queryList (line 59) | @Override
    method buildQueryWrapper (line 65) | private LambdaQueryWrapper<PzcViewPager> buildQueryWrapper(PzcViewPage...
    method insertByBo (line 79) | @Override
    method updateByBo (line 93) | @Override
    method validEntityBeforeSave (line 103) | private void validEntityBeforeSave(PzcViewPager entity){
    method deleteWithValidByIds (line 110) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/ActivityUtils.java
  class ActivityUtils (line 18) | @Component
    method checkActivity (line 37) | public Boolean checkActivity(Integer activityId) {
    method checkGroup (line 64) | public Boolean checkGroup(Integer activityId,Long groupId) {
    method allCheck (line 90) | public Boolean allCheck(Integer activityId, Long groupId) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/CreateSign.java
  class CreateSign (line 17) | @Slf4j
    method getSign (line 32) | public String getSign(String appId, long timestamp, String nonceStr, S...
    method buildMessage (line 40) | private String buildMessage(String appId, long timestamp, String nonce...
    method sign (line 46) | private String sign(byte[] message) throws Exception{

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/MyPrivateKey.java
  class MyPrivateKey (line 17) | public class MyPrivateKey {
    method getPrivateKey (line 26) | public static PrivateKey getPrivateKey(String filename) throws IOExcep...

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/WxUtils.java
  class WxUtils (line 27) | @Component
    method checkMgc (line 49) | public void checkMgc(String msg)
    method sendArriveMsg (line 63) | public R sendArriveMsg(String toUserOpenId, Map data) {
    method checkApplyConfirm (line 91) | public PzcActivityGroupApplyVo  checkApplyConfirm(Long applyId)
    method checkApplyPj (line 111) | public PzcActivityGroupApplyVo checkApplyPj(long applyId) {
    method applyStatus (line 135) | public String applyStatus(Integer applyStatus)
    method getAccessToken (line 189) | public String getAccessToken() {
    method checkUser (line 195) | public PzcUser checkUser()
    method insertPzcOfficialMsg (line 205) | public void insertPzcOfficialMsg(Long fromUserId,Long toUserId,String ...
    method insertUserHistory (line 221) | public void insertUserHistory(Long userId, Long activityId, Long type,...
    method checkApplyScore (line 234) | public void checkApplyScore(Integer score) {
    method updateUserMsg (line 241) | public void updateUserMsg(PzcUser otherUser) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/gaode/GaoDeEnum.java
  type GaoDeEnum (line 11) | @AllArgsConstructor

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/gaode/GaoDeMapUtil.java
  class GaoDeMapUtil (line 22) | @Component
    method getDistanceByAddress (line 48) | public Long getDistanceByAddress(String start, String end) {
    method getLonLat (line 63) | public R getLonLat(String address) {
    method getAddress (line 87) | public static R getAddress(String longitude, String latitude) throws E...
    method getDistance (line 136) | public R<Long> getDistance(String startLonLat, String endLonLat) {
    method getResponse (line 169) | private static String getResponse(String serverUrl) {
    method main (line 189) | public static void main(String[] args) throws Exception {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/map/City.java
  class City (line 3) | public class City {
    method getName (line 6) | public String getName() {
    method setName (line 10) | public void setName(String name) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/map/CitySql.java
  class CitySql (line 11) | @Data
    method main (line 14) | public static void main(String[] args) throws IOException {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/map/Maps.java
  class Maps (line 7) | @Data

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/BaseSearch.java
  class BaseSearch (line 8) | public class BaseSearch {
    method SetKeywords (line 18) | public void SetKeywords(List<String> keywords) {
    method SetKeywords (line 24) | protected void SetKeywords() {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/TrieNode.java
  class TrieNode (line 7) | public class TrieNode implements Comparable<TrieNode> {
    method TrieNode (line 22) | public TrieNode() {
    method Add (line 27) | public TrieNode Add(final Character c) {
    method SetResults (line 38) | public void SetResults(final Integer index) {
    method compareTo (line 47) | @Override

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/TrieNode2.java
  class TrieNode2 (line 8) | public class TrieNode2 {
    method TrieNode2 (line 15) | public TrieNode2()
    method Add (line 21) | public void Add(final char c, final TrieNode2 node3) {
    method SetResults (line 31) | public void SetResults(final Integer index) {
    method HasKey (line 40) | public boolean HasKey(final char c) {
    method GetValue (line 47) | public TrieNode2 GetValue(final char c) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/WordsSearch.java
  class WordsSearch (line 8) | public class WordsSearch extends BaseSearch {
    method FindFirst (line 17) | public WordsSearchResult FindFirst(final String text) {
    method FindAll (line 50) | public List<WordsSearchResult> FindAll(final String text) {
    method ContainsAny (line 86) | public boolean ContainsAny(final String text) {
    method Replace (line 116) | public String Replace(final String text) {
    method Replace (line 127) | public String Replace(final String text, final char replaceChar) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/WordsSearchResult.java
  class WordsSearchResult (line 3) | public class WordsSearchResult {
    method WordsSearchResult (line 5) | public WordsSearchResult(final String keyword, final int start, final ...
    method WordsSearchResult (line 13) | public WordsSearchResult(final String keyword, final int start, final ...

FILE: PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/WorldsFilterUtils.java
  class WorldsFilterUtils (line 19) | @Slf4j
    method initBlackWordsList (line 26) | public static void initBlackWordsList() {
    method wordsCheck (line 45) | private static boolean wordsCheck(List<String> worlds, String content) {
    method checkBySystemWords (line 52) | public static boolean checkBySystemWords(String content) {
    method loadSystemKeywords (line 58) | public synchronized static void loadSystemKeywords() {
    method forceLoadSystemKeywords (line 65) | public synchronized static void forceLoadSystemKeywords() {

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/ScheduledExecutorUtils.java
  class ScheduledExecutorUtils (line 10) | public class ScheduledExecutorUtils {
    method scheduleTask (line 13) | public static void scheduleTask(String timeString, RunnableWithParams ...
    method main (line 28) | public static void main(String[] args) {
    type RunnableWithParams (line 53) | @FunctionalInterface
      method run (line 55) | void run(Object... params);

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/WxHandler.java
  class WxHandler (line 13) | @Component
    method syncWxUserCancel (line 37) | @XxlJob("wxJobHandler")
    method getLevel (line 52) | public Integer getLevel(Integer jf) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/diy/JobLoginService.java
  class JobLoginService (line 15) | @Component
    method login (line 29) | public void login() {
    method getCookie (line 45) | public String getCookie() {

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/diy/TestController.java
  class TestController (line 20) | @RestController
    method getJobList (line 41) | @GetMapping("/list")
    method createNewJob (line 62) | @PostMapping("/add")
    method updateNewJob (line 102) | @PostMapping("/update")
    method startNewJob (line 142) | @PostMapping("/start")
    method stopNewJob (line 158) | @PostMapping("/stop")

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/diy/XxlJobGroup.java
  class XxlJobGroup (line 12) | public class XxlJobGroup {
    method getRegistryList (line 23) | public List<String> getRegistryList() {
    method getId (line 30) | public int getId() {
    method setId (line 34) | public void setId(int id) {
    method getAppname (line 38) | public String getAppname() {
    method setAppname (line 42) | public void setAppname(String appname) {
    method getTitle (line 46) | public String getTitle() {
    method setTitle (line 50) | public void setTitle(String title) {
    method getAddressType (line 54) | public int getAddressType() {
    method setAddressType (line 58) | public void setAddressType(int addressType) {
    method getAddressList (line 62) | public String getAddressList() {
    method getUpdateTime (line 66) | public Date getUpdateTime() {
    method setUpdateTime (line 70) | public void setUpdateTime(Date updateTime) {
    method setAddressList (line 74) | public void setAddressList(String addressList) {

FILE: PaiZhiCheng/src/main/java/top/flya/system/xxlJob/diy/XxlJobInfo.java
  class XxlJobInfo (line 12) | public class XxlJobInfo {
    method getId (line 48) | public int getId() {
    method setId (line 52) | public void setId(int id) {
    method getJobGroup (line 56) | public int getJobGroup() {
    method setJobGroup (line 60) | public void setJobGroup(int jobGroup) {
    method getJobDesc (line 64) | public String getJobDesc() {
    method setJobDesc (line 68) | public void setJobDesc(String jobDesc) {
    method getAddTime (line 72) | public Date getAddTime() {
    method setAddTime (line 76) | public void setAddTime(Date addTime) {
    method getUpdateTime (line 80) | public Date getUpdateTime() {
    method setUpdateTime (line 84) | public void setUpdateTime(Date updateTime) {
    method getAuthor (line 88) | public String getAuthor() {
    method setAuthor (line 92) | public void setAuthor(String author) {
    method getAlarmEmail (line 96) | public String getAlarmEmail() {
    method setAlarmEmail (line 100) | public void setAlarmEmail(String alarmEmail) {
    method getScheduleType (line 104) | public String getScheduleType() {
    method setScheduleType (line 108) | public void setScheduleType(String scheduleType) {
    method getScheduleConf (line 112) | public String getScheduleConf() {
    method setScheduleConf (line 116) | public void setScheduleConf(String scheduleConf) {
    method getMisfireStrategy (line 120) | public String getMisfireStrategy() {
    method setMisfireStrategy (line 124) | public void setMisfireStrategy(String misfireStrategy) {
    method getExecutorRouteStrategy (line 128) | public String getExecutorRouteStrategy() {
    method setExecutorRouteStrategy (line 132) | public void setExecutorRouteStrategy(String executorRouteStrategy) {
    method getExecutorHandler (line 136) | public String getExecutorHandler() {
    method setExecutorHandler (line 140) | public void setExecutorHandler(String executorHandler) {
    method getExecutorParam (line 144) | public String getExecutorParam() {
    method setExecutorParam (line 148) | public void setExecutorParam(String executorParam) {
    method getExecutorBlockStrategy (line 152) | public String getExecutorBlockStrategy() {
    method setExecutorBlockStrategy (line 156) | public void setExecutorBlockStrategy(String executorBlockStrategy) {
    method getExecutorTimeout (line 160) | public int getExecutorTimeout() {
    method setExecutorTimeout (line 164) | public void setExecutorTimeout(int executorTimeout) {
    method getExecutorFailRetryCount (line 168) | public int getExecutorFailRetryCount() {
    method setExecutorFailRetryCount (line 172) | public void setExecutorFailRetryCount(int executorFailRetryCount) {
    method getGlueType (line 176) | public String getGlueType() {
    method setGlueType (line 180) | public void setGlueType(String glueType) {
    method getGlueSource (line 184) | public String getGlueSource() {
    method setGlueSource (line 188) | public void setGlueSource(String glueSource) {
    method getGlueRemark (line 192) | public String getGlueRemark() {
    method setGlueRemark (line 196) | public void setGlueRemark(String glueRemark) {
    method getGlueUpdatetime (line 200) | public Date getGlueUpdatetime() {
    method setGlueUpdatetime (line 204) | public void setGlueUpdatetime(Date glueUpdatetime) {
    method getChildJobId (line 208) | public String getChildJobId() {
    method setChildJobId (line 212) | public void setChildJobId(String childJobId) {
    method getTriggerStatus (line 216) | public int getTriggerStatus() {
    method setTriggerStatus (line 220) | public void setTriggerStatus(int triggerStatus) {
    method getTriggerLastTime (line 224) | public long getTriggerLastTime() {
    method setTriggerLastTime (line 228) | public void setTriggerLastTime(long triggerLastTime) {
    method getTriggerNextTime (line 232) | public long getTriggerNextTime() {
    method setTriggerNextTime (line 236) | public void setTriggerNextTime(long triggerNextTime) {

FILE: PaiZhiCheng/src/main/resources/static/js/socket.io/socket.io.js
  function s (line 1) | function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&re...
  function lookup (line 1) | function lookup(uri,opts){if(typeof uri=="object"){opts=uri;uri=undefine...
  function Manager (line 1) | function Manager(uri,opts){if(!(this instanceof Manager))return new Mana...
  function on (line 1) | function on(obj,ev,fn){obj.on(ev,fn);return{destroy:function(){obj.remov...
  function Socket (line 1) | function Socket(io,nsp){this.io=io;this.nsp=nsp;this.json=this;this.ids=...
  function url (line 1) | function url(uri,loc){var obj=uri;var loc=loc||global.location;if(null==...
  function Backoff (line 1) | function Backoff(opts){opts=opts||{};this.ms=opts.min||100;this.max=opts...
  function Emitter (line 1) | function Emitter(obj){if(obj)return mixin(obj)}
  function mixin (line 1) | function mixin(obj){for(var key in Emitter.prototype){obj[key]=Emitter.p...
  function on (line 1) | function on(){self.off(event,on);fn.apply(this,arguments)}
  function debug (line 1) | function debug(name){if(!debug.enabled(name))return function(){};return ...
  function coerce (line 1) | function coerce(val){if(val instanceof Error)return val.stack||val.messa...
  function noop (line 1) | function noop(){}
  function Socket (line 1) | function Socket(uri,opts){if(!(this instanceof Socket))return new Socket...
  function clone (line 1) | function clone(obj){var o={};for(var i in obj){if(obj.hasOwnProperty(i))...
  function onTransportOpen (line 1) | function onTransportOpen(){if(self.onlyBinaryUpgrades){var upgradeLosesB...
  function freezeTransport (line 1) | function freezeTransport(){if(failed)return;failed=true;cleanup();transp...
  function onerror (line 1) | function onerror(err){var error=new Error("probe error: "+err);error.tra...
  function onTransportClose (line 1) | function onTransportClose(){onerror("transport closed")}
  function onclose (line 1) | function onclose(){onerror("socket closed")}
  function onupgrade (line 1) | function onupgrade(to){if(transport&&to.name!=transport.name){debug('"%s...
  function cleanup (line 1) | function cleanup(){transport.removeListener("open",onTransportOpen);tran...
  function close (line 1) | function close(){self.onClose("forced close");debug("socket closing - te...
  function cleanupAndClose (line 1) | function cleanupAndClose(){self.removeListener("upgrade",cleanupAndClose...
  function waitForUpgrade (line 1) | function waitForUpgrade(){self.once("upgrade",cleanupAndClose);self.once...
  function Transport (line 1) | function Transport(opts){this.path=opts.path;this.hostname=opts.hostname...
  function polling (line 1) | function polling(opts){var xhr;var xd=false;var xs=false;var jsonp=false...
  function empty (line 2) | function empty(){}
  function JSONPPolling (line 2) | function JSONPPolling(opts){Polling.call(this,opts);this.query=this.quer...
  function complete (line 2) | function complete(){initIframe();fn()}
  function initIframe (line 2) | function initIframe(){if(self.iframe){try{self.form.removeChild(self.ifr...
  function empty (line 2) | function empty(){}
  function XHR (line 2) | function XHR(opts){Polling.call(this,opts);if(global.location){var isSSL...
  function Request (line 2) | function Request(opts){this.method=opts.method||"GET";this.uri=opts.uri;...
  function unloadHandler (line 2) | function unloadHandler(){for(var i in Request.requests){if(Request.reque...
  function Polling (line 2) | function Polling(opts){var forceBase64=opts&&opts.forceBase64;if(!hasXHR...
  function pause (line 2) | function pause(){debug("paused");self.readyState="paused";onPause()}
  function close (line 2) | function close(){debug("writing close packet");self.write([{type:"close"...
  function WS (line 2) | function WS(opts){var forceBase64=opts&&opts.forceBase64;if(forceBase64)...
  function ondrain (line 2) | function ondrain(){self.writable=true;self.emit("drain")}
  function useColors (line 2) | function useColors(){return"WebkitAppearance"in document.documentElement...
  function formatArgs (line 2) | function formatArgs(){var args=arguments;var useColors=this.useColors;ar...
  function log (line 2) | function log(){return"object"==typeof console&&"function"==typeof consol...
  function save (line 2) | function save(namespaces){try{if(null==namespaces){localStorage.removeIt...
  function load (line 2) | function load(){var r;try{r=localStorage.debug}catch(e){}return r}
  function selectColor (line 2) | function selectColor(){return exports.colors[prevColor++%exports.colors....
  function debug (line 2) | function debug(namespace){function disabled(){}disabled.enabled=false;fu...
  function enable (line 2) | function enable(namespaces){exports.save(namespaces);var split=(namespac...
  function disable (line 2) | function disable(){exports.enable("")}
  function enabled (line 2) | function enabled(name){var i,len;for(i=0,len=exports.skips.length;i<len;...
  function coerce (line 2) | function coerce(val){if(val instanceof Error)return val.stack||val.messa...
  function parse (line 2) | function parse(str){var match=/^((?:\d+)?\.?\d+) *(ms|seconds?|s|minutes...
  function short (line 2) | function short(ms){if(ms>=d)return Math.round(ms/d)+"d";if(ms>=h)return ...
  function long (line 2) | function long(ms){return plural(ms,d,"day")||plural(ms,h,"hour")||plural...
  function plural (line 2) | function plural(ms,n,name){if(ms<n)return;if(ms<n*1.5)return Math.floor(...
  function encodeBase64Object (line 2) | function encodeBase64Object(packet,callback){var message="b"+exports.pac...
  function encodeArrayBuffer (line 2) | function encodeArrayBuffer(packet,supportsBinary,callback){if(!supportsB...
  function encodeBlobAsArrayBuffer (line 2) | function encodeBlobAsArrayBuffer(packet,supportsBinary,callback){if(!sup...
  function encodeBlob (line 2) | function encodeBlob(packet,supportsBinary,callback){if(!supportsBinary){...
  function setLengthHeader (line 2) | function setLengthHeader(message){return message.length+":"+message}
  function encodeOne (line 2) | function encodeOne(packet,doneCallback){exports.encodePacket(packet,!isB...
  function map (line 2) | function map(ary,each,done){var result=new Array(ary.length);var next=af...
  function encodeOne (line 2) | function encodeOne(packet,doneCallback){exports.encodePacket(packet,true...
  function encodeOne (line 2) | function encodeOne(packet,doneCallback){exports.encodePacket(packet,true...
  function after (line 2) | function after(count,callback,err_cb){var bail=false;err_cb=err_cb||noop...
  function noop (line 2) | function noop(){}
  function BlobBuilderConstructor (line 2) | function BlobBuilderConstructor(ary,options){options=options||{};var bb=...
  function hasBinary (line 2) | function hasBinary(data){function _hasBinary(obj){if(!obj)return false;i...
  function ucs2decode (line 2) | function ucs2decode(string){var output=[];var counter=0;var length=strin...
  function ucs2encode (line 3) | function ucs2encode(array){var length=array.length;var index=-1;var valu...
  function createByte (line 3) | function createByte(codePoint,shift){return stringFromCharCode(codePoint...
  function encodeCodePoint (line 3) | function encodeCodePoint(codePoint){if((codePoint&4294967168)==0){return...
  function utf8encode (line 3) | function utf8encode(string){var codePoints=ucs2decode(string);var length...
  function readContinuationByte (line 3) | function readContinuationByte(){if(byteIndex>=byteCount){throw Error("In...
  function decodeSymbol (line 3) | function decodeSymbol(){var byte1;var byte2;var byte3;var byte4;var code...
  function utf8decode (line 3) | function utf8decode(byteString){byteArray=ucs2decode(byteString);byteCou...
  function ws (line 3) | function ws(uri,protocols,opts){var instance;if(protocols){instance=new ...
  function hasBinary (line 3) | function hasBinary(data){function _hasBinary(obj){if(!obj)return false;i...
  function _deconstructPacket (line 3) | function _deconstructPacket(data){if(!data)return data;if(isBuf(data)){v...
  function _reconstructPacket (line 3) | function _reconstructPacket(data){if(data&&data._placeholder){var buf=bu...
  function _removeBlobs (line 3) | function _removeBlobs(obj,curKey,containingObject){if(!obj)return obj;if...
  function Encoder (line 3) | function Encoder(){}
  function encodeAsString (line 3) | function encodeAsString(obj){var str="";var nsp=false;str+=obj.type;if(e...
  function encodeAsBinary (line 3) | function encodeAsBinary(obj,callback){function writeEncoding(bloblessDat...
  function Decoder (line 3) | function Decoder(){this.reconstructor=null}
  function decodeString (line 3) | function decodeString(str){var p={};var i=0;p.type=Number(str.charAt(0))...
  function BinaryReconstructor (line 3) | function BinaryReconstructor(packet){this.reconPack=packet;this.buffers=[]}
  function error (line 3) | function error(data){return{type:exports.ERROR,data:"parser error"}}
  function isBuf (line 3) | function isBuf(obj){return global.Buffer&&global.Buffer.isBuffer(obj)||g...
  function has (line 3) | function has(name){if(has[name]!==undef){return has[name]}var isSupporte...
  function toArray (line 3) | function toArray(list,index){var array=[];index=index||0;for(var i=index...

FILE: ruoyi-admin/src/main/java/top/flya/RuoYiApplication.java
  class RuoYiApplication (line 12) | @SpringBootApplication
    method main (line 15) | public static void main(String[] args) {

FILE: ruoyi-admin/src/main/java/top/flya/RuoYiServletInitializer.java
  class RuoYiServletInitializer (line 11) | public class RuoYiServletInitializer extends SpringBootServletInitializer {
    method configure (line 13) | @Override

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/common/CaptchaController.java
  class CaptchaController (line 42) | @SaIgnore
    method smsCaptcha (line 59) | @GetMapping("/captchaSms")
    method emailCode (line 85) | @GetMapping("/captchaEmail")
    method getCode (line 105) | @GetMapping("/captchaImage")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/monitor/CacheController.java
  class CacheController (line 26) | @RequiredArgsConstructor
    method getInfo (line 49) | @SaCheckPermission("monitor:cache:list")
    method cache (line 78) | @SaCheckPermission("monitor:cache:list")
    method getCacheKeys (line 89) | @SaCheckPermission("monitor:cache:list")
    method getCacheValue (line 110) | @SaCheckPermission("monitor:cache:list")
    method clearCacheName (line 128) | @SaCheckPermission("monitor:cache:list")
    method clearCacheKey (line 144) | @SaCheckPermission("monitor:cache:list")
    method clearCacheAll (line 158) | @SaCheckPermission("monitor:cache:list")
    method isCacheNames (line 165) | private boolean isCacheNames(String cacheName) {

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/monitor/SysLogininforController.java
  class SysLogininforController (line 27) | @Validated
    method list (line 38) | @SaCheckPermission("monitor:logininfor:list")
    method export (line 47) | @Log(title = "登录日志", businessType = BusinessType.EXPORT)
    method remove (line 59) | @SaCheckPermission("monitor:logininfor:remove")
    method clean (line 69) | @SaCheckPermission("monitor:logininfor:remove")
    method unlock (line 77) | @SaCheckPermission("monitor:logininfor:unlock")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/monitor/SysOperlogController.java
  class SysOperlogController (line 25) | @Validated
    method list (line 36) | @SaCheckPermission("monitor:operlog:list")
    method export (line 45) | @Log(title = "操作日志", businessType = BusinessType.EXPORT)
    method remove (line 57) | @Log(title = "操作日志", businessType = BusinessType.DELETE)
    method clean (line 67) | @Log(title = "操作日志", businessType = BusinessType.CLEAN)

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/monitor/SysUserOnlineController.java
  class SysUserOnlineController (line 30) | @RequiredArgsConstructor
    method list (line 41) | @SaCheckPermission("monitor:online:list")
    method forceLogout (line 80) | @SaCheckPermission("monitor:online:forceLogout")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysConfigController.java
  class SysConfigController (line 26) | @Validated
    method list (line 37) | @SaCheckPermission("system:config:list")
    method export (line 46) | @Log(title = "参数管理", businessType = BusinessType.EXPORT)
    method getInfo (line 59) | @SaCheckPermission("system:config:query")
    method getConfigKey (line 70) | @GetMapping(value = "/configKey/{configKey}")
    method add (line 78) | @SaCheckPermission("system:config:add")
    method edit (line 92) | @SaCheckPermission("system:config:edit")
    method updateByKey (line 106) | @SaCheckPermission("system:config:edit")
    method remove (line 119) | @SaCheckPermission("system:config:remove")
    method refreshCache (line 130) | @SaCheckPermission("system:config:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysDeptController.java
  class SysDeptController (line 24) | @Validated
    method list (line 35) | @SaCheckPermission("system:dept:list")
    method excludeChild (line 47) | @SaCheckPermission("system:dept:list")
    method getInfo (line 61) | @SaCheckPermission("system:dept:query")
    method add (line 71) | @SaCheckPermission("system:dept:add")
    method edit (line 84) | @SaCheckPermission("system:dept:edit")
    method remove (line 106) | @SaCheckPermission("system:dept:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysDictDataController.java
  class SysDictDataController (line 28) | @Validated
    method list (line 41) | @GetMapping("/list")
    method export (line 49) | @Log(title = "字典数据", businessType = BusinessType.EXPORT)
    method getInfo (line 63) | @GetMapping(value = "/{dictCode}")
    method dictType (line 73) | @GetMapping(value = "/type/{dictType}")
    method add (line 85) | @SaCheckPermission("system:dict:add")
    method edit (line 96) | @SaCheckPermission("system:dict:edit")
    method remove (line 109) | @SaCheckPermission("system:dict:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysDictTypeController.java
  class SysDictTypeController (line 26) | @Validated
    method list (line 37) | @SaCheckPermission("system:dict:list")
    method export (line 46) | @Log(title = "字典类型", businessType = BusinessType.EXPORT)
    method getInfo (line 59) | @SaCheckPermission("system:dict:query")
    method add (line 68) | @SaCheckPermission("system:dict:add")
    method edit (line 82) | @SaCheckPermission("system:dict:edit")
    method remove (line 98) | @SaCheckPermission("system:dict:remove")
    method refreshCache (line 109) | @SaCheckPermission("system:dict:remove")
    method optionselect (line 120) | @GetMapping("/optionselect")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysIndexController.java
  class SysIndexController (line 15) | @RequiredArgsConstructor
    method index (line 27) | @SaIgnore

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysLoginController.java
  class SysLoginController (line 35) | @Validated
    method login (line 50) | @SaIgnore
    method smsLogin (line 67) | @SaIgnore
    method emailLogin (line 83) | @PostMapping("/emailLogin")
    method xcxLogin (line 95) | @SaIgnore
    method logout (line 108) | @SaIgnore
    method getInfo (line 120) | @GetMapping("getInfo")
    method getRouters (line 136) | @GetMapping("getRouters")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysMenuController.java
  class SysMenuController (line 26) | @Validated
    method list (line 37) | @SaCheckPermission("system:menu:list")
    method getInfo (line 49) | @SaCheckPermission("system:menu:query")
    method treeselect (line 58) | @GetMapping("/treeselect")
    method roleMenuTreeselect (line 69) | @GetMapping(value = "/roleMenuTreeselect/{roleId}")
    method add (line 81) | @SaCheckPermission("system:menu:add")
    method edit (line 96) | @SaCheckPermission("system:menu:edit")
    method remove (line 115) | @SaCheckPermission("system:menu:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysNoticeController.java
  class SysNoticeController (line 21) | @Validated
    method list (line 32) | @SaCheckPermission("system:notice:list")
    method getInfo (line 43) | @SaCheckPermission("system:notice:query")
    method add (line 52) | @SaCheckPermission("system:notice:add")
    method edit (line 62) | @SaCheckPermission("system:notice:edit")
    method remove (line 74) | @SaCheckPermission("system:notice:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysOssConfigController.java
  class SysOssConfigController (line 32) | @Validated
    method list (line 43) | @SaCheckPermission("system:oss:list")
    method getInfo (line 54) | @SaCheckPermission("system:oss:query")
    method add (line 64) | @SaCheckPermission("system:oss:add")
    method edit (line 75) | @SaCheckPermission("system:oss:edit")
    method remove (line 88) | @SaCheckPermission("system:oss:remove")
    method changeStatus (line 99) | @SaCheckPermission("system:oss:edit")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysOssController.java
  class SysOssController (line 35) | @Validated
    method list (line 46) | @SaCheckPermission("system:oss:list")
    method listByIds (line 57) | @SaCheckPermission("system:oss:list")
    method upload (line 71) | @Log(title = "OSS对象存储", businessType = BusinessType.INSERT)
    method download (line 90) | @SaCheckPermission("system:oss:download")
    method remove (line 101) | @SaCheckPermission("system:oss:remove")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysPostController.java
  class SysPostController (line 26) | @Validated
    method list (line 37) | @SaCheckPermission("system:post:list")
    method export (line 46) | @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
    method getInfo (line 59) | @SaCheckPermission("system:post:query")
    method add (line 68) | @SaCheckPermission("system:post:add")
    method edit (line 83) | @SaCheckPermission("system:post:edit")
    method remove (line 100) | @SaCheckPermission("system:post:remove")
    method optionselect (line 110) | @GetMapping("/optionselect")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysProfileController.java
  class SysProfileController (line 33) | @Validated
    method profile (line 45) | @GetMapping
    method updateProfile (line 58) | @Log(title = "个人信息", businessType = BusinessType.UPDATE)
    method updatePwd (line 84) | @Log(title = "个人信息", businessType = BusinessType.UPDATE)
    method avatar (line 108) | @Log(title = "用户头像", businessType = BusinessType.UPDATE)

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysRegisterController.java
  class SysRegisterController (line 20) | @Validated
    method register (line 31) | @SaIgnore

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysRoleController.java
  class SysRoleController (line 33) | @Validated
    method list (line 47) | @SaCheckPermission("system:role:list")
    method export (line 56) | @Log(title = "角色管理", businessType = BusinessType.EXPORT)
    method getInfo (line 69) | @SaCheckPermission("system:role:query")
    method add (line 79) | @SaCheckPermission("system:role:add")
    method edit (line 95) | @SaCheckPermission("system:role:edit")
    method dataScope (line 117) | @SaCheckPermission("system:role:edit")
    method changeStatus (line 129) | @SaCheckPermission("system:role:edit")
    method remove (line 143) | @SaCheckPermission("system:role:remove")
    method optionselect (line 153) | @SaCheckPermission("system:role:query")
    method allocatedList (line 162) | @SaCheckPermission("system:role:list")
    method unallocatedList (line 171) | @SaCheckPermission("system:role:list")
    method cancelAuthUser (line 180) | @SaCheckPermission("system:role:edit")
    method cancelAuthUserAll (line 193) | @SaCheckPermission("system:role:edit")
    method selectAuthUserAll (line 206) | @SaCheckPermission("system:role:edit")
    method roleDeptTreeselect (line 219) | @SaCheckPermission("system:role:list")

FILE: ruoyi-admin/src/main/java/top/flya/web/controller/system/SysUserController.java
  class SysUserController (line 48) | @Validated
    method list (line 62) | @SaCheckPermission("system:user:list")
    method export (line 71) | @Log(title = "用户管理", businessType = BusinessType.EXPORT)
    method importData (line 94) | @Log(title = "用户管理", businessType = BusinessType.IMPORT)
    method importTemplate (line 105) | @PostMapping("/importTemplate")
    method getInfo (line 115) | @SaCheckPermission("system:user:query")
    method add (line 135) | @SaCheckPermission("system:user:add")
    method edit (line 153) | @SaCheckPermission("system:user:edit")
    method remove (line 174) | @SaCheckPermission("system:user:remove")
    method resetPwd (line 187) | @SaCheckPermission("system:user:resetPwd")
    method changeStatus (line 200) | @SaCheckPermission("system:user:edit")
    method authRole (line 214) | @SaCheckPermission("system:user:query")
    method insertAuthRole (line 231) | @SaCheckPermission("system:user:edit")
    method deptTree (line 243) | @SaCheckPermission("system:user:list")

FILE: ruoyi-common/src/main/java/top/flya/common/captcha/UnsignedMathGenerator.java
  class UnsignedMathGenerator (line 14) | public class UnsignedMathGenerator implements CodeGenerator {
    method UnsignedMathGenerator (line 28) | public UnsignedMathGenerator() {
    method UnsignedMathGenerator (line 37) | public UnsignedMathGenerator(int numberLength) {
    method generate (line 41) | @Override
    method verify (line 54) | @Override
    method getLength (line 73) | public int getLength() {
    method getLimit (line 82) | private int getLimit() {

FILE: ruoyi-common/src/main/java/top/flya/common/config/RuoYiConfig.java
  class RuoYiConfig (line 14) | @Data
    method setAddressEnabled (line 50) | public void setAddressEnabled(boolean addressEnabled) {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/CacheConstants.java
  type CacheConstants (line 8) | public interface CacheConstants {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/CacheNames.java
  type CacheNames (line 16) | public interface CacheNames {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/Constants.java
  type Constants (line 8) | public interface Constants {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/GenConstants.java
  type GenConstants (line 8) | public interface GenConstants {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/HttpStatus.java
  type HttpStatus (line 8) | public interface HttpStatus {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/TransConstant.java
  type TransConstant (line 8) | public interface TransConstant {

FILE: ruoyi-common/src/main/java/top/flya/common/constant/UserConstants.java
  type UserConstants (line 8) | public interface UserConstants {

FILE: ruoyi-common/src/main/java/top/flya/common/convert/ExcelBigNumberConvert.java
  class ExcelBigNumberConvert (line 21) | @Slf4j
    method supportJavaTypeKey (line 24) | @Override
    method supportExcelTypeKey (line 29) | @Override
    method convertToJavaData (line 34) | @Override
    method convertToExcelData (line 39) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/convert/ExcelDictConvert.java
  class ExcelDictConvert (line 26) | @Slf4j
    method supportJavaTypeKey (line 29) | @Override
    method supportExcelTypeKey (line 34) | @Override
    method convertToJavaData (line 39) | @Override
    method convertToExcelData (line 53) | @Override
    method getAnnotation (line 70) | private ExcelDictFormat getAnnotation(Field field) {

FILE: ruoyi-common/src/main/java/top/flya/common/convert/ExcelEnumConvert.java
  class ExcelEnumConvert (line 25) | @Slf4j
    method supportJavaTypeKey (line 28) | @Override
    method supportExcelTypeKey (line 33) | @Override
    method convertToJavaData (line 38) | @Override
    method convertToExcelData (line 50) | @Override
    method beforeConvert (line 60) | private Map<Object, String> beforeConvert(ExcelContentProperty content...
    method getAnnotation (line 72) | private ExcelEnumFormat getAnnotation(Field field) {

FILE: ruoyi-common/src/main/java/top/flya/common/core/controller/BaseController.java
  class BaseController (line 13) | public class BaseController {
    method toAjax (line 21) | protected R<Void> toAjax(int rows) {
    method toAjax (line 31) | protected R<Void> toAjax(boolean result) {
    method redirect (line 38) | public String redirect(String url) {
    method getLoginUser (line 45) | public LoginUser getLoginUser() {
    method getUserId (line 52) | public Long getUserId() {
    method getDeptId (line 59) | public Long getDeptId() {
    method getUsername (line 66) | public String getUsername() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/BaseEntity.java
  class BaseEntity (line 20) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/PageQuery.java
  class PageQuery (line 22) | @Data
    method build (line 57) | public <T> Page<T> build() {
    method buildOrderItem (line 81) | private List<OrderItem> buildOrderItem() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/R.java
  class R (line 14) | @Data
    method ok (line 35) | public static <T> R<T> ok() {
    method ok (line 39) | public static <T> R<T> ok(T data) {
    method ok (line 43) | public static <T> R<T> ok(String msg) {
    method ok (line 47) | public static <T> R<T> ok(String msg, T data) {
    method fail (line 51) | public static <T> R<T> fail() {
    method fail (line 55) | public static <T> R<T> fail(String msg) {
    method fail (line 59) | public static <T> R<T> fail(T data) {
    method fail (line 63) | public static <T> R<T> fail(String msg, T data) {
    method fail (line 67) | public static <T> R<T> fail(int code, String msg) {
    method warn (line 77) | public static <T> R<T> warn(String msg) {
    method warn (line 88) | public static <T> R<T> warn(String msg, T data) {
    method restResult (line 92) | private static <T> R<T> restResult(T data, int code, String msg) {
    method isError (line 100) | public static <T> Boolean isError(R<T> ret) {
    method isSuccess (line 104) | public static <T> Boolean isSuccess(R<T> ret) {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/TreeEntity.java
  class TreeEntity (line 16) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/dto/RoleDTO.java
  class RoleDTO (line 14) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/dto/UserOnlineDTO.java
  class UserOnlineDTO (line 14) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysDept.java
  class SysDept (line 21) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysDictData.java
  class SysDictData (line 24) | @Data
    method getDefault (line 97) | public boolean getDefault() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysDictType.java
  class SysDictType (line 24) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysMenu.java
  class SysMenu (line 21) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysRole.java
  class SysRole (line 24) | @Data
    method SysRole (line 114) | public SysRole(Long roleId) {
    method isAdmin (line 118) | public boolean isAdmin() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/entity/SysUser.java
  class SysUser (line 27) | @Data
    method getPassword (line 98) | @JsonIgnore
    method SysUser (line 160) | public SysUser(Long userId) {
    method isAdmin (line 164) | public boolean isAdmin() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/event/LogininforEvent.java
  class LogininforEvent (line 14) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/event/OperLogEvent.java
  class OperLogEvent (line 14) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/EmailLoginBody.java
  class EmailLoginBody (line 14) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/LoginBody.java
  class LoginBody (line 15) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/LoginUser.java
  class LoginUser (line 17) | @Data
    method getLoginId (line 106) | public String getLoginId() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/RegisterBody.java
  class RegisterBody (line 11) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/SmsLoginBody.java
  class SmsLoginBody (line 13) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/domain/model/XcxLoginUser.java
  class XcxLoginUser (line 12) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/core/mapper/BaseMapperPlus.java
  type BaseMapperPlus (line 30) | @SuppressWarnings("unchecked")
    method currentVoClass (line 35) | default Class<V> currentVoClass() {
    method currentModelClass (line 39) | default Class<T> currentModelClass() {
    method currentMapperClass (line 43) | default Class<M> currentMapperClass() {
    method selectList (line 47) | default List<T> selectList() {
    method insertBatch (line 54) | default boolean insertBatch(Collection<T> entityList) {
    method updateBatchById (line 61) | default boolean updateBatchById(Collection<T> entityList) {
    method insertOrUpdateBatch (line 68) | default boolean insertOrUpdateBatch(Collection<T> entityList) {
    method insertBatch (line 75) | default boolean insertBatch(Collection<T> entityList, int batchSize) {
    method updateBatchById (line 82) | default boolean updateBatchById(Collection<T> entityList, int batchSiz...
    method insertOrUpdateBatch (line 89) | default boolean insertOrUpdateBatch(Collection<T> entityList, int batc...
    method insertOrUpdate (line 96) | default boolean insertOrUpdate(T entity) {
    method selectVoById (line 100) | default V selectVoById(Serializable id) {
    method selectVoById (line 107) | default <C> C selectVoById(Serializable id, Class<C> voClass) {
    method selectVoBatchIds (line 115) | default List<V> selectVoBatchIds(Collection<? extends Serializable> id...
    method selectVoBatchIds (line 122) | default <C> List<C> selectVoBatchIds(Collection<? extends Serializable...
    method selectVoByMap (line 130) | default List<V> selectVoByMap(Map<String, Object> map) {
    method selectVoByMap (line 137) | default <C> List<C> selectVoByMap(Map<String, Object> map, Class<C> vo...
    method selectVoOne (line 145) | default V selectVoOne(Wrapper<T> wrapper) {
    method selectVoOne (line 152) | default <C> C selectVoOne(Wrapper<T> wrapper, Class<C> voClass) {
    method selectVoList (line 160) | default List<V> selectVoList(Wrapper<T> wrapper) {
    method selectVoList (line 167) | default <C> List<C> selectVoList(Wrapper<T> wrapper, Class<C> voClass) {
    method selectVoPage (line 175) | default <P extends IPage<V>> P selectVoPage(IPage<T> page, Wrapper<T> ...
    method selectVoPage (line 182) | default <C, P extends IPage<C>> P selectVoPage(IPage<T> page, Wrapper<...

FILE: ruoyi-common/src/main/java/top/flya/common/core/page/TableDataInfo.java
  class TableDataInfo (line 17) | @Data
    method TableDataInfo (line 48) | public TableDataInfo(List<T> list, long total) {
    method build (line 53) | public static <T> TableDataInfo<T> build(IPage<T> page) {
    method build (line 62) | public static <T> TableDataInfo<T> build(List<T> list) {
    method build (line 71) | public static <T> TableDataInfo<T> build() {

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/ConfigService.java
  type ConfigService (line 8) | public interface ConfigService {
    method getConfigValue (line 16) | String getConfigValue(String configKey);

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/DeptService.java
  type DeptService (line 8) | public interface DeptService {
    method selectDeptNameByIds (line 16) | String selectDeptNameByIds(String deptIds);

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/DictService.java
  type DictService (line 8) | public interface DictService {
    method getDictLabel (line 22) | default String getDictLabel(String dictType, String dictValue) {
    method getDictValue (line 33) | default String getDictValue(String dictType, String dictLabel) {
    method getDictLabel (line 45) | String getDictLabel(String dictType, String dictValue, String separator);
    method getDictValue (line 55) | String getDictValue(String dictType, String dictLabel, String separator);

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/OssService.java
  type OssService (line 8) | public interface OssService {
    method selectUrlByIds (line 16) | String selectUrlByIds(String ossIds);

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/SensitiveService.java
  type SensitiveService (line 11) | public interface SensitiveService {
    method isSensitive (line 16) | boolean isSensitive();

FILE: ruoyi-common/src/main/java/top/flya/common/core/service/UserService.java
  type UserService (line 8) | public interface UserService {
    method selectUserNameById (line 16) | String selectUserNameById(Long userId);

FILE: ruoyi-common/src/main/java/top/flya/common/core/validate/AddGroup.java
  type AddGroup (line 8) | public interface AddGroup {

FILE: ruoyi-common/src/main/java/top/flya/common/core/validate/EditGroup.java
  type EditGroup (line 8) | public interface EditGroup {

FILE: ruoyi-common/src/main/java/top/flya/common/core/validate/QueryGroup.java
  type QueryGroup (line 8) | public interface QueryGroup {

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/EncryptContext.java
  class EncryptContext (line 13) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/IEncryptor.java
  type IEncryptor (line 12) | public interface IEncryptor {
    method algorithm (line 17) | AlgorithmType algorithm();
    method encrypt (line 26) | String encrypt(String value, EncodeType encodeType);
    method decrypt (line 34) | String decrypt(String value);

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/AbstractEncryptor.java
  class AbstractEncryptor (line 12) | public abstract class AbstractEncryptor implements IEncryptor {
    method AbstractEncryptor (line 14) | public AbstractEncryptor(EncryptContext context) {

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/AesEncryptor.java
  class AesEncryptor (line 19) | public class AesEncryptor extends AbstractEncryptor {
    method AesEncryptor (line 23) | public AesEncryptor(EncryptContext context) {
    method algorithm (line 40) | @Override
    method encrypt (line 51) | @Override
    method decrypt (line 65) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/Base64Encryptor.java
  class Base64Encryptor (line 14) | public class Base64Encryptor extends AbstractEncryptor {
    method Base64Encryptor (line 16) | public Base64Encryptor(EncryptContext context) {
    method algorithm (line 23) | @Override
    method encrypt (line 34) | @Override
    method decrypt (line 44) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/RsaEncryptor.java
  class RsaEncryptor (line 19) | public class RsaEncryptor extends AbstractEncryptor {
    method RsaEncryptor (line 23) | public RsaEncryptor(EncryptContext context) {
    method algorithm (line 36) | @Override
    method encrypt (line 47) | @Override
    method decrypt (line 61) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/Sm2Encryptor.java
  class Sm2Encryptor (line 19) | public class Sm2Encryptor extends AbstractEncryptor {
    method Sm2Encryptor (line 23) | public Sm2Encryptor(EncryptContext context) {
    method algorithm (line 36) | @Override
    method encrypt (line 47) | @Override
    method decrypt (line 61) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/encrypt/encryptor/Sm4Encryptor.java
  class Sm4Encryptor (line 18) | public class Sm4Encryptor extends AbstractEncryptor {
    method Sm4Encryptor (line 22) | public Sm4Encryptor(EncryptContext context) {
    method algorithm (line 38) | @Override
    method encrypt (line 49) | @Override
    method decrypt (line 63) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/enums/AlgorithmType.java
  type AlgorithmType (line 14) | @Getter

FILE: ruoyi-common/src/main/java/top/flya/common/enums/BusinessStatus.java
  type BusinessStatus (line 8) | public enum BusinessStatus {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/BusinessType.java
  type BusinessType (line 8) | public enum BusinessType {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/CaptchaCategory.java
  type CaptchaCategory (line 15) | @Getter

FILE: ruoyi-common/src/main/java/top/flya/common/enums/CaptchaType.java
  type CaptchaType (line 14) | @Getter

FILE: ruoyi-common/src/main/java/top/flya/common/enums/DataBaseType.java
  type DataBaseType (line 12) | @Getter
    method find (line 38) | public static DataBaseType find(String databaseProductName) {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/DataScopeType.java
  type DataScopeType (line 21) | @Getter
    method findCode (line 62) | public static DataScopeType findCode(String code) {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/DeviceType.java
  type DeviceType (line 12) | @Getter

FILE: ruoyi-common/src/main/java/top/flya/common/enums/EncodeType.java
  type EncodeType (line 9) | public enum EncodeType {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/HttpMethod.java
  type HttpMethod (line 13) | public enum HttpMethod {
    method resolve (line 24) | @Nullable
    method matches (line 29) | public boolean matches(String method) {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/LimitType.java
  type LimitType (line 9) | public enum LimitType {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/LoginType.java
  type LoginType (line 11) | @Getter

FILE: ruoyi-common/src/main/java/top/flya/common/enums/OperatorType.java
  type OperatorType (line 8) | public enum OperatorType {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/SensitiveStrategy.java
  type SensitiveStrategy (line 14) | @AllArgsConstructor
    method desensitizer (line 46) | public Function<String, String> desensitizer() {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/UserStatus.java
  type UserStatus (line 8) | public enum UserStatus {
    method UserStatus (line 14) | UserStatus(String code, String info) {
    method getCode (line 19) | public String getCode() {
    method getInfo (line 23) | public String getInfo() {

FILE: ruoyi-common/src/main/java/top/flya/common/enums/UserType.java
  type UserType (line 13) | @Getter
    method getUserType (line 31) | public static UserType getUserType(String str) {

FILE: ruoyi-common/src/main/java/top/flya/common/excel/CellMergeStrategy.java
  class CellMergeStrategy (line 27) | @AllArgsConstructor
    method merge (line 34) | @Override
    method handle (line 48) | @SneakyThrows
    class RepeatCell (line 105) | @Data

FILE: ruoyi-common/src/main/java/top/flya/common/excel/DefaultExcelListener.java
  class DefaultExcelListener (line 25) | @Slf4j
    method DefaultExcelListener (line 44) | public DefaultExcelListener(boolean isValidate) {
    method onException (line 55) | @Override
    method invokeHeadMap (line 82) | @Override
    method invoke (line 88) | @Override
    method doAfterAllAnalysed (line 96) | @Override
    method getExcelResult (line 101) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/excel/DefaultExcelResult.java
  class DefaultExcelResult (line 15) | public class DefaultExcelResult<T> implements ExcelResult<T> {
    method DefaultExcelResult (line 29) | public DefaultExcelResult() {
    method DefaultExcelResult (line 34) | public DefaultExcelResult(List<T> list, List<String> errorList) {
    method DefaultExcelResult (line 39) | public DefaultExcelResult(ExcelResult<T> excelResult) {
    method getList (line 44) | @Override
    method getErrorList (line 49) | @Override
    method getAnalysis (line 59) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/excel/ExcelListener.java
  type ExcelListener (line 10) | public interface ExcelListener<T> extends ReadListener<T> {
    method getExcelResult (line 12) | ExcelResult<T> getExcelResult();

FILE: ruoyi-common/src/main/java/top/flya/common/excel/ExcelResult.java
  type ExcelResult (line 10) | public interface ExcelResult<T> {
    method getList (line 15) | List<T> getList();
    method getErrorList (line 20) | List<String> getErrorList();
    method getAnalysis (line 25) | String getAnalysis();

FILE: ruoyi-common/src/main/java/top/flya/common/exception/DemoModeException.java
  class DemoModeException (line 8) | public class DemoModeException extends RuntimeException {
    method DemoModeException (line 11) | public DemoModeException() {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/GlobalException.java
  class GlobalException (line 8) | public class GlobalException extends RuntimeException {
    method GlobalException (line 27) | public GlobalException() {
    method GlobalException (line 30) | public GlobalException(String message) {
    method getDetailMessage (line 34) | public String getDetailMessage() {
    method setDetailMessage (line 38) | public GlobalException setDetailMessage(String detailMessage) {
    method getMessage (line 43) | @Override
    method setMessage (line 48) | public GlobalException setMessage(String message) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/ServiceException.java
  class ServiceException (line 8) | public final class ServiceException extends RuntimeException {
    method ServiceException (line 31) | public ServiceException() {
    method ServiceException (line 34) | public ServiceException(String message) {
    method ServiceException (line 38) | public ServiceException(String message, Integer code) {
    method getDetailMessage (line 43) | public String getDetailMessage() {
    method getMessage (line 47) | @Override
    method getCode (line 52) | public Integer getCode() {
    method setMessage (line 56) | public ServiceException setMessage(String message) {
    method setDetailMessage (line 61) | public ServiceException setDetailMessage(String detailMessage) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/UtilException.java
  class UtilException (line 8) | public class UtilException extends RuntimeException {
    method UtilException (line 11) | public UtilException(Throwable e) {
    method UtilException (line 15) | public UtilException(String message) {
    method UtilException (line 19) | public UtilException(String message, Throwable throwable) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/base/BaseException.java
  class BaseException (line 14) | @Data
    method BaseException (line 40) | public BaseException(String module, String code, Object[] args, String...
    method BaseException (line 47) | public BaseException(String module, String code, Object[] args) {
    method BaseException (line 51) | public BaseException(String module, String defaultMessage) {
    method BaseException (line 55) | public BaseException(String code, Object[] args) {
    method BaseException (line 59) | public BaseException(String defaultMessage) {
    method getMessage (line 63) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/exception/file/FileException.java
  class FileException (line 10) | public class FileException extends BaseException {
    method FileException (line 13) | public FileException(String code, Object[] args) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/file/FileNameLengthLimitExceededException.java
  class FileNameLengthLimitExceededException (line 8) | public class FileNameLengthLimitExceededException extends FileException {
    method FileNameLengthLimitExceededException (line 11) | public FileNameLengthLimitExceededException(int defaultFileNameLength) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/file/FileSizeLimitExceededException.java
  class FileSizeLimitExceededException (line 8) | public class FileSizeLimitExceededException extends FileException {
    method FileSizeLimitExceededException (line 11) | public FileSizeLimitExceededException(long defaultMaxSize) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/user/CaptchaException.java
  class CaptchaException (line 8) | public class CaptchaException extends UserException {
    method CaptchaException (line 11) | public CaptchaException() {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/user/CaptchaExpireException.java
  class CaptchaExpireException (line 8) | public class CaptchaExpireException extends UserException {
    method CaptchaExpireException (line 11) | public CaptchaExpireException() {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/user/UserException.java
  class UserException (line 10) | public class UserException extends BaseException {
    method UserException (line 13) | public UserException(String code, Object... args) {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/user/UserPasswordNotMatchException.java
  class UserPasswordNotMatchException (line 8) | public class UserPasswordNotMatchException extends UserException {
    method UserPasswordNotMatchException (line 11) | public UserPasswordNotMatchException() {

FILE: ruoyi-common/src/main/java/top/flya/common/exception/user/UserPasswordRetryLimitExceedException.java
  class UserPasswordRetryLimitExceedException (line 8) | public class UserPasswordRetryLimitExceedException extends UserException {
    method UserPasswordRetryLimitExceedException (line 12) | public UserPasswordRetryLimitExceedException(int retryLimitCount, int ...

FILE: ruoyi-common/src/main/java/top/flya/common/filter/RepeatableFilter.java
  class RepeatableFilter (line 15) | public class RepeatableFilter implements Filter {
    method init (line 16) | @Override
    method doFilter (line 21) | @Override
    method destroy (line 36) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/filter/RepeatedlyRequestWrapper.java
  class RepeatedlyRequestWrapper (line 21) | public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper {
    method RepeatedlyRequestWrapper (line 24) | public RepeatedlyRequestWrapper(HttpServletRequest request, ServletRes...
    method getReader (line 32) | @Override
    method getInputStream (line 37) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/filter/XssFilter.java
  class XssFilter (line 18) | public class XssFilter implements Filter {
    method init (line 24) | @Override
    method doFilter (line 35) | @Override
    method handleExcludeURL (line 48) | private boolean handleExcludeURL(HttpServletRequest request, HttpServl...
    method destroy (line 58) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/filter/XssHttpServletRequestWrapper.java
  class XssHttpServletRequestWrapper (line 23) | public class XssHttpServletRequestWrapper extends HttpServletRequestWrap...
    method XssHttpServletRequestWrapper (line 27) | public XssHttpServletRequestWrapper(HttpServletRequest request) {
    method getParameterValues (line 31) | @Override
    method getInputStream (line 46) | @Override
    method isJsonRequest (line 93) | public boolean isJsonRequest() {

FILE: ruoyi-common/src/main/java/top/flya/common/helper/DataBaseHelper.java
  class DataBaseHelper (line 21) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getDataBaseType (line 29) | public static DataBaseType getDataBaseType() {
    method isMySql (line 40) | public static boolean isMySql() {
    method isOracle (line 44) | public static boolean isOracle() {
    method isPostgerSql (line 48) | public static boolean isPostgerSql() {
    method isSqlServer (line 52) | public static boolean isSqlServer() {
    method findInSet (line 56) | public static String findInSet(Object var1, String var2) {

FILE: ruoyi-common/src/main/java/top/flya/common/helper/DataPermissionHelper.java
  class DataPermissionHelper (line 21) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getVariable (line 27) | public static <T> T getVariable(String key) {
    method setVariable (line 33) | public static void setVariable(String key, Object value) {
    method getContext (line 38) | public static Map<String, Object> getContext() {
    method enableIgnore (line 54) | public static void enableIgnore() {
    method disableIgnore (line 61) | public static void disableIgnore() {
    method ignore (line 70) | public static void ignore(Runnable handle) {
    method ignore (line 84) | public static <T> T ignore(Supplier<T> handle) {

FILE: ruoyi-common/src/main/java/top/flya/common/helper/LoginHelper.java
  class LoginHelper (line 28) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method login (line 39) | public static void login(LoginUser loginUser) {
    method loginByDevice (line 49) | public static void loginByDevice(LoginUser loginUser, DeviceType devic...
    method getLoginUser (line 64) | public static LoginUser getLoginUser() {
    method getLoginUser (line 77) | public static LoginUser getLoginUser(String token) {
    method getUserId (line 84) | public static Long getUserId() {
    method getDeptId (line 101) | public static Long getDeptId() {
    method getUsername (line 108) | public static String getUsername() {
    method getUserType (line 115) | public static UserType getUserType() {
    method isAdmin (line 126) | public static boolean isAdmin(Long userId) {
    method isAdmin (line 130) | public static boolean isAdmin() {

FILE: ruoyi-common/src/main/java/top/flya/common/jackson/DictDataJsonSerializer.java
  class DictDataJsonSerializer (line 27) | @Deprecated
    method serialize (line 33) | @Override
    method createContextual (line 49) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/jackson/SensitiveJsonSerializer.java
  class SensitiveJsonSerializer (line 25) | @Slf4j
    method serialize (line 30) | @Override
    method createContextual (line 45) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/TranslationInterface.java
  type TranslationInterface (line 10) | public interface TranslationInterface<T> {
    method translation (line 18) | T translation(Object key, String other);

FILE: ruoyi-common/src/main/java/top/flya/common/translation/handler/TranslationBeanSerializerModifier.java
  class TranslationBeanSerializerModifier (line 15) | public class TranslationBeanSerializerModifier extends BeanSerializerMod...
    method changeProperties (line 17) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/handler/TranslationHandler.java
  class TranslationHandler (line 26) | @Slf4j
    method serialize (line 36) | @Override
    method createContextual (line 56) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/impl/DeptNameTranslationImpl.java
  class DeptNameTranslationImpl (line 15) | @Component
    method translation (line 22) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/impl/DictTypeTranslationImpl.java
  class DictTypeTranslationImpl (line 16) | @Component
    method translation (line 23) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/impl/OssUrlTranslationImpl.java
  class OssUrlTranslationImpl (line 15) | @Component
    method translation (line 22) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/translation/impl/UserNameTranslationImpl.java
  class UserNameTranslationImpl (line 15) | @Component
    method translation (line 22) | @Override

FILE: ruoyi-common/src/main/java/top/flya/common/utils/BeanCopyUtils.java
  class BeanCopyUtils (line 28) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method copy (line 38) | public static <T, V> V copy(T source, Class<V> desc) {
    method copy (line 56) | public static <T, V> V copy(T source, V desc) {
    method copyList (line 75) | public static <T, V> List<V> copyList(List<T> sourceList, Class<V> des...
    method copyToMap (line 95) | @SuppressWarnings("unchecked")
    method mapToBean (line 110) | public static <T> T mapToBean(Map<String, Object> map, Class<T> beanCl...
    method mapToBean (line 128) | public static <T> T mapToBean(Map<String, Object> map, T bean) {
    method mapToMap (line 146) | public static <T, V> Map<String, V> mapToMap(Map<String, T> map, Class...
    type BeanCopierCache (line 165) | public enum BeanCopierCache {
      method get (line 181) | public BeanCopier get(Class<?> srcClass, Class<?> targetClass, Conve...
      method genKey (line 194) | private String genKey(Class<?> srcClass, Class<?> targetClass, Conve...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/DateUtils.java
  class DateUtils (line 19) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getNowDate (line 42) | public static Date getNowDate() {
    method getDate (line 51) | public static String getDate() {
    method getTime (line 55) | public static String getTime() {
    method dateTimeNow (line 59) | public static String dateTimeNow() {
    method dateTimeNow (line 63) | public static String dateTimeNow(final String format) {
    method dateTime (line 67) | public static String dateTime(final Date date) {
    method parseDateToStr (line 71) | public static String parseDateToStr(final String format, final Date da...
    method dateTime (line 75) | public static Date dateTime(final String format, final String ts) {
    method datePath (line 86) | public static String datePath() {
    method dateTime (line 94) | public static String dateTime() {
    method parseDate (line 102) | public static Date parseDate(Object str) {
    method getServerStartDate (line 116) | public static Date getServerStartDate() {
    method differentDaysByMillisecond (line 124) | public static int differentDaysByMillisecond(Date date1, Date date2) {
    method getDatePoor (line 131) | public static String getDatePoor(Date endDate, Date nowDate) {
    method toDate (line 152) | public static Date toDate(LocalDateTime temporalAccessor) {
    method toDate (line 160) | public static Date toDate(LocalDate temporalAccessor) {
    method getMonthStartAndEnd (line 166) | public static String[] getMonthStartAndEnd(String timeStr) throws Pars...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/EncryptUtils.java
  class EncryptUtils (line 21) | public class EncryptUtils {
    method encryptByBase64 (line 37) | public static String encryptByBase64(String data) {
    method decryptByBase64 (line 47) | public static String decryptByBase64(String data) {
    method encryptByAes (line 58) | public static String encryptByAes(String data, String password) {
    method decryptByAes (line 77) | public static String decryptByAes(String data, String password) {
    method encryptBySm4 (line 96) | public static String encryptBySm4(String data, String password) {
    method decryptBySm4 (line 115) | public static String decryptBySm4(String data, String password) {
    method generateSm2Key (line 132) | public static Map<String, String> generateSm2Key() {
    method encryptBySm2 (line 147) | public static String encryptBySm2(String data, String publicKey) {
    method decryptBySm2 (line 162) | public static String decryptBySm2(String data, String privateKey) {
    method generateRsaKey (line 175) | public static Map<String, String> generateRsaKey() {
    method encryptByRsa (line 190) | public static String encryptByRsa(String data, String publicKey) {
    method decryptByRsa (line 205) | public static String decryptByRsa(String data, String privateKey) {
    method encryptByMd5 (line 219) | public static String encryptByMd5(String data) {
    method encryptBySha256 (line 229) | public static String encryptBySha256(String data) {
    method encryptBySm3 (line 239) | public static String encryptBySm3(String data) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/JsonUtils.java
  class JsonUtils (line 23) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getObjectMapper (line 28) | public static ObjectMapper getObjectMapper() {
    method toJsonString (line 32) | public static String toJsonString(Object object) {
    method parseObject (line 43) | public static <T> T parseObject(String text, Class<T> clazz) {
    method parseObject (line 54) | public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
    method parseObject (line 65) | public static <T> T parseObject(String text, TypeReference<T> typeRefe...
    method parseMap (line 76) | public static Dict parseMap(String text) {
    method parseArrayMap (line 90) | public static List<Dict> parseArrayMap(String text) {
    method parseArray (line 101) | public static <T> List<T> parseArray(String text, Class<T> clazz) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/MessageUtils.java
  class MessageUtils (line 14) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method message (line 26) | public static String message(String code, Object... args) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/ServletUtils.java
  class ServletUtils (line 32) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getParameter (line 38) | public static String getParameter(String name) {
    method getParameter (line 45) | public static String getParameter(String name, String defaultValue) {
    method getParameterToInt (line 52) | public static Integer getParameterToInt(String name) {
    method getParameterToInt (line 59) | public static Integer getParameterToInt(String name, Integer defaultVa...
    method getParameterToBool (line 66) | public static Boolean getParameterToBool(String name) {
    method getParameterToBool (line 73) | public static Boolean getParameterToBool(String name, Boolean defaultV...
    method getParams (line 83) | public static Map<String, String[]> getParams(ServletRequest request) {
    method getParamMap (line 94) | public static Map<String, String> getParamMap(ServletRequest request) {
    method getRequest (line 105) | public static HttpServletRequest getRequest() {
    method getResponse (line 112) | public static HttpServletResponse getResponse() {
    method getSession (line 119) | public static HttpSession getSession() {
    method getRequestAttributes (line 123) | public static ServletRequestAttributes getRequestAttributes() {
    method renderString (line 134) | public static void renderString(HttpServletResponse response, String s...
    method isAjaxRequest (line 150) | public static boolean isAjaxRequest(HttpServletRequest request) {
    method getClientIP (line 171) | public static String getClientIP() {
    method urlEncode (line 181) | public static String urlEncode(String str) {
    method urlDecode (line 195) | public static String urlDecode(String str) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/StreamUtils.java
  class StreamUtils (line 19) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method filter (line 29) | public static <E> List<E> filter(Collection<E> collection, Predicate<E...
    method join (line 43) | public static <E> String join(Collection<E> collection, Function<E, St...
    method join (line 55) | public static <E> String join(Collection<E> collection, Function<E, St...
    method sorted (line 69) | public static <E> List<E> sorted(Collection<E> collection, Comparator<...
    method toIdentityMap (line 86) | public static <V, K> Map<K, V> toIdentityMap(Collection<V> collection,...
    method toMap (line 105) | public static <E, K, V> Map<K, V> toMap(Collection<E> collection, Func...
    method groupByKey (line 122) | public static <E, K> Map<K, List<E>> groupByKey(Collection<E> collecti...
    method groupBy2Key (line 143) | public static <E, K, U> Map<K, Map<U, List<E>>> groupBy2Key(Collection...
    method group2Map (line 164) | public static <E, T, U> Map<T, Map<U, E>> group2Map(Collection<E> coll...
    method toList (line 183) | public static <E, T> List<T> toList(Collection<E> collection, Function...
    method toSet (line 204) | public static <E, T> Set<T> toSet(Collection<E> collection, Function<E...
    method merge (line 228) | public static <K, X, Y, V> Map<K, V> merge(Map<K, X> map1, Map<K, Y> m...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/StringUtils.java
  class StringUtils (line 20) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method blankToDefault (line 31) | public static String blankToDefault(String str, String defaultValue) {
    method isEmpty (line 41) | public static boolean isEmpty(String str) {
    method isNotEmpty (line 51) | public static boolean isNotEmpty(String str) {
    method trim (line 58) | public static String trim(String str) {
    method substring (line 69) | public static String substring(final String str, int start) {
    method substring (line 81) | public static String substring(final String str, int start, int end) {
    method format (line 98) | public static String format(String template, Object... params) {
    method ishttp (line 108) | public static boolean ishttp(String link) {
    method str2Set (line 119) | public static Set<String> str2Set(String str, String sep) {
    method str2List (line 132) | public static List<String> str2List(String str, String sep, boolean fi...
    method containsAnyIgnoreCase (line 163) | public static boolean containsAnyIgnoreCase(CharSequence cs, CharSeque...
    method toUnderScoreCase (line 170) | public static String toUnderScoreCase(String str) {
    method inStringIgnoreCase (line 181) | public static boolean inStringIgnoreCase(String str, String... strs) {
    method convertToCamelCase (line 191) | public static String convertToCamelCase(String name) {
    method toCamelCase (line 198) | public static String toCamelCase(String s) {
    method matches (line 209) | public static boolean matches(String str, List<String> strs) {
    method isMatch (line 230) | public static boolean isMatch(String pattern, String url) {
    method padl (line 242) | public static String padl(final Number num, final int size) {
    method padl (line 254) | public static String padl(final String s, final int size, final char c) {
    method splitList (line 280) | public static List<String> splitList(String str) {
    method splitList (line 291) | public static List<String> splitList(String str, String separator) {
    method splitTo (line 302) | public static <T> List<T> splitTo(String str, Function<? super Object,...
    method splitTo (line 314) | public static <T> List<T> splitTo(String str, String separator, Functi...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/Threads.java
  class Threads (line 14) | @Slf4j
    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: ruoyi-common/src/main/java/top/flya/common/utils/TreeBuildUtils.java
  class TreeBuildUtils (line 19) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method build (line 27) | public static <T, K> List<Tree<K>> build(List<T> list, NodeParser<T, K...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/ValidatorUtils.java
  class ValidatorUtils (line 17) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method validate (line 22) | public static <T> void validate(T object, Class<?>... groups) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/email/MailUtils.java
  class MailUtils (line 26) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getMailAccount (line 34) | public static MailAccount getMailAccount() {
    method getMailAccount (line 44) | public static MailAccount getMailAccount(String from, String user, Str...
    method sendText (line 62) | public static String sendText(String to, String subject, String conten...
    method sendHtml (line 77) | public static String sendHtml(String to, String subject, String conten...
    method send (line 92) | public static String send(String to, String subject, String content, b...
    method send (line 110) | public static String send(String to, String cc, String bcc, String sub...
    method sendText (line 123) | public static String sendText(Collection<String> tos, String subject, ...
    method sendHtml (line 137) | public static String sendHtml(Collection<String> tos, String subject, ...
    method send (line 151) | public static String send(Collection<String> tos, String subject, Stri...
    method send (line 168) | public static String send(Collection<String> tos, Collection<String> c...
    method send (line 186) | public static String send(MailAccount mailAccount, String to, String s...
    method send (line 201) | public static String send(MailAccount mailAccount, Collection<String> ...
    method send (line 219) | public static String send(MailAccount mailAccount, Collection<String> ...
    method sendHtml (line 235) | public static String sendHtml(String to, String subject, String conten...
    method send (line 251) | public static String send(String to, String subject, String content, M...
    method send (line 270) | public static String send(String to, String cc, String bcc, String sub...
    method sendHtml (line 285) | public static String sendHtml(Collection<String> tos, String subject, ...
    method send (line 300) | public static String send(Collection<String> tos, String subject, Stri...
    method send (line 318) | public static String send(Collection<String> tos, Collection<String> c...
    method send (line 337) | public static String send(MailAccount mailAccount, String to, String s...
    method send (line 354) | public static String send(MailAccount mailAccount, Collection<String> ...
    method send (line 373) | public static String send(MailAccount mailAccount, Collection<String> ...
    method getSession (line 386) | public static Session getSession(MailAccount mailAccount, boolean isSi...
    method send (line 414) | private static String send(MailAccount mailAccount, boolean useGlobalS...
    method splitAddress (line 451) | private static List<String> splitAddress(String addresses) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/file/FileUtils.java
  class FileUtils (line 17) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method setAttachmentResponseHeader (line 26) | public static void setAttachmentResponseHeader(HttpServletResponse res...
    method percentEncode (line 48) | public static String percentEncode(String s) throws UnsupportedEncodin...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/file/MimeTypeUtils.java
  class MimeTypeUtils (line 8) | public class MimeTypeUtils {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/ip/AddressUtils.java
  class AddressUtils (line 15) | @Slf4j
    method getRealAddressByIP (line 22) | public static String getRealAddressByIP(String ip) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/ip/RegionUtils.java
  class RegionUtils (line 19) | @Slf4j
    method getCityInfo (line 55) | public static String getCityInfo(String ip) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/poi/ExcelUtil.java
  class ExcelUtil (line 38) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method importExcel (line 47) | public static <T> List<T> importExcel(InputStream is, Class<T> clazz) {
    method importExcel (line 60) | public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> ...
    method importExcel (line 74) | public static <T> ExcelResult<T> importExcel(InputStream is, Class<T> ...
    method exportExcel (line 87) | public static <T> void exportExcel(List<T> list, String sheetName, Cla...
    method exportExcel (line 106) | public static <T> void exportExcel(List<T> list, String sheetName, Cla...
    method exportExcel (line 124) | public static <T> void exportExcel(List<T> list, String sheetName, Cla...
    method exportExcel (line 137) | public static <T> void exportExcel(List<T> list, String sheetName, Cla...
    method exportTemplate (line 162) | public static void exportTemplate(List<Object> data, String filename, ...
    method exportTemplate (line 181) | public static void exportTemplate(List<Object> data, String templatePa...
    method exportTemplateMultiList (line 210) | public static void exportTemplateMultiList(Map<String, Object> data, S...
    method exportTemplateMultiList (line 229) | public static void exportTemplateMultiList(Map<String, Object> data, S...
    method resetResponse (line 257) | private static void resetResponse(String sheetName, HttpServletRespons...
    method convertByExp (line 271) | public static String convertByExp(String propertyValue, String convert...
    method reverseByExp (line 300) | public static String reverseByExp(String propertyValue, String convert...
    method encodingFilename (line 324) | public static String encodingFilename(String filename) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/redis/CacheUtils.java
  class CacheUtils (line 18) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method keys (line 29) | public static Set<Object> keys(String cacheNames) {
    method get (line 40) | public static <T> T get(String cacheNames, Object key) {
    method put (line 52) | public static void put(String cacheNames, Object key, Object value) {
    method evict (line 62) | public static void evict(String cacheNames, Object key) {
    method clear (line 71) | public static void clear(String cacheNames) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/redis/QueueUtils.java
  class QueueUtils (line 19) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method getClient (line 28) | public static RedissonClient getClient() {
    method addQueueObject (line 38) | public static <T> boolean addQueueObject(String queueName, T data) {
    method getQueueObject (line 48) | public static <T> T getQueueObject(String queueName) {
    method removeQueueObject (line 56) | public static <T> boolean removeQueueObject(String queueName, T data) {
    method destroyQueue (line 64) | public static <T> boolean destroyQueue(String queueName) {
    method addDelayedQueueObject (line 76) | public static <T> void addDelayedQueueObject(String queueName, T data,...
    method addDelayedQueueObject (line 88) | public static <T> void addDelayedQueueObject(String queueName, T data,...
    method getDelayedQueueObject (line 99) | public static <T> T getDelayedQueueObject(String queueName) {
    method removeDelayedQueueObject (line 108) | public static <T> boolean removeDelayedQueueObject(String queueName, T...
    method destroyDelayedQueue (line 117) | public static <T> void destroyDelayedQueue(String queueName) {
    method addPriorityQueueObject (line 129) | public static <T> boolean addPriorityQueueObject(String queueName, T d...
    method trySetBoundedQueueCapacity (line 140) | public static <T> boolean trySetBoundedQueueCapacity(String queueName,...
    method trySetBoundedQueueCapacity (line 152) | public static <T> boolean trySetBoundedQueueCapacity(String queueName,...
    method addBoundedQueueObject (line 167) | public static <T> boolean addBoundedQueueObject(String queueName, T da...
    method subscribeBlockingQueue (line 175) | public static <T> void subscribeBlockingQueue(String queueName, Consum...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/redis/RedisUtils.java
  class RedisUtils (line 23) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method rateLimiter (line 38) | public static long rateLimiter(String key, RateType rateType, int rate...
    method getClient (line 51) | public static RedissonClient getClient() {
    method publish (line 62) | public static <T> void publish(String channelKey, T msg, Consumer<T> c...
    method publish (line 68) | public static <T> void publish(String channelKey, T msg) {
    method subscribe (line 80) | public static <T> void subscribe(String channelKey, Class<T> clazz, Co...
    method setCacheObject (line 91) | public static <T> void setCacheObject(final String key, final T value) {
    method setCacheObject (line 103) | public static <T> void setCacheObject(final String key, final T value,...
    method setCacheObject (line 124) | public static <T> void setCacheObject(final String key, final T value,...
    method addObjectListener (line 140) | public static <T> void addObjectListener(final String key, final Objec...
    method expire (line 152) | public static boolean expire(final String key, final long timeout) {
    method expire (line 163) | public static boolean expire(final String key, final Duration duration) {
    method getCacheObject (line 174) | public static <T> T getCacheObject(final String key) {
    method getTimeToLive (line 185) | public static <T> long getTimeToLive(final String key) {
    method deleteObject (line 195) | public static boolean deleteObject(final String key) {
    method deleteObject (line 204) | public static void deleteObject(final Collection collection) {
    method isExistsObject (line 217) | public static boolean isExistsObject(final String key) {
    method setCacheList (line 228) | public static <T> boolean setCacheList(final String key, final List<T>...
    method addListListener (line 241) | public static <T> void addListListener(final String key, final ObjectL...
    method getCacheList (line 252) | public static <T> List<T> getCacheList(final String key) {
    method setCacheSet (line 264) | public static <T> boolean setCacheSet(final String key, final Set<T> d...
    method addSetListener (line 277) | public static <T> void addSetListener(final String key, final ObjectLi...
    method getCacheSet (line 288) | public static <T> Set<T> getCacheSet(final String key) {
    method setCacheMap (line 299) | public static <T> void setCacheMap(final String key, final Map<String,...
    method addMapListener (line 314) | public static <T> void addMapListener(final String key, final ObjectLi...
    method getCacheMap (line 325) | public static <T> Map<String, T> getCacheMap(final String key) {
    method getCacheMapKeySet (line 336) | public static <T> Set<String> getCacheMapKeySet(final String key) {
    method setCacheMapValue (line 348) | public static <T> void setCacheMapValue(final String key, final String...
    method getCacheMapValue (line 360) | public static <T> T getCacheMapValue(final String key, final String hK...
    method delCacheMapValue (line 372) | public static <T> T delCacheMapValue(final String key, final String hK...
    method getMultiCacheMapValue (line 384) | public static <K, V> Map<K, V> getMultiCacheMapValue(final String key,...
    method setAtomicValue (line 395) | public static void setAtomicValue(String key, long value) {
    method getAtomicValue (line 406) | public static long getAtomicValue(String key) {
    method incrAtomicValue (line 417) | public static long incrAtomicValue(String key) {
    method decrAtomicValue (line 428) | public static long decrAtomicValue(String key) {
    method keys (line 439) | public static Collection<String> keys(final String pattern) {
    method deleteKeys (line 449) | public static void deleteKeys(final String pattern) {
    method hasKey (line 458) | public static Boolean hasKey(String key) {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/reflect/ReflectUtils.java
  class ReflectUtils (line 15) | @SuppressWarnings("rawtypes")
    method invokeGetter (line 27) | @SuppressWarnings("unchecked")
    method invokeSetter (line 41) | public static <E> void invokeSetter(Object obj, String propertyName, E...

FILE: ruoyi-common/src/main/java/top/flya/common/utils/spring/SpringUtils.java
  class SpringUtils (line 14) | @Component
    method containsBean (line 23) | public static boolean containsBean(String name) {
    method isSingleton (line 34) | public static boolean isSingleton(String name) throws NoSuchBeanDefini...
    method getType (line 42) | public static Class<?> getType(String name) throws NoSuchBeanDefinitio...
    method getAliases (line 51) | public static String[] getAliases(String name) throws NoSuchBeanDefini...
    method getAopProxy (line 61) | @SuppressWarnings("unchecked")
    method context (line 70) | public static ApplicationContext context() {

FILE: ruoyi-common/src/main/java/top/flya/common/utils/sql/SqlUtil.java
  class SqlUtil (line 13) | @NoArgsConstructor(access = AccessLevel.PRIVATE)
    method escapeOrderBySql (line 29) | public static String escapeOrderBySql(String value) {
    method isValidOrderBySql (line 40) | public static boolean isValidOrderBySql(String value) {
    method filterKeyword (line 47) | public static void filterKeyword(String value) {

FILE: ruoyi-common/src/main/java/top/flya/common/xss/XssValidator.java
  class XssValidator (line 15) | @Slf4j
    method isValid (line 18) | @Override

FILE: ruoyi-extend/ruoyi-monitor-admin/src/main/java/top/flya/monitor/admin/MonitorAdminApplication.java
  class MonitorAdminApplication (line 11) | @SpringBootApplication
    method main (line 14) | public static void main(String[] args) {

FILE: ruoyi-extend/ruoyi-monitor-admin/src/main/java/top/flya/monitor/admin/config/AdminServerConfig.java
  class AdminServerConfig (line 19) | @Configuration
    method applicationTaskExecutor (line 23) | @Lazy

FILE: ruoyi-extend/ruoyi-monitor-admin/src/main/java/top/flya/monitor/admin/config/SecurityConfig.java
  class SecurityConfig (line 15) | @EnableWebSecurity
    method SecurityConfig (line 20) | public SecurityConfig(AdminServerProperties adminServerProperties) {
    method filterChain (line 24) | @Bean

FILE: ruoyi-extend/ruoyi-monitor-admin/src/main/java/top/flya/monitor/admin/notifier/CustomNotifier.java
  class CustomNotifier (line 17) | @Slf4j
    method CustomNotifier (line 21) | protected CustomNotifier(InstanceRepository repository) {
    method doNotify (line 25) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/XxlJobAdminApplication.java
  class XxlJobAdminApplication (line 9) | @SpringBootApplication
    method main (line 12) | public static void main(String[] args) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/IndexController.java
  class IndexController (line 30) | @Controller
    method index (line 39) | @RequestMapping("/")
    method chartInfo (line 48) | @RequestMapping("/chartInfo")
    method toLogin (line 55) | @RequestMapping("/toLogin")
    method loginDo (line 65) | @RequestMapping(value = "login", method = RequestMethod.POST)
    method logout (line 73) | @RequestMapping(value = "logout", method = RequestMethod.POST)
    method help (line 80) | @RequestMapping("/help")
    method initBinder (line 90) | @InitBinder

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobApiController.java
  class JobApiController (line 24) | @Controller
    method api (line 38) | @RequestMapping("/{uri}")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobCodeController.java
  class JobCodeController (line 25) | @Controller
    method index (line 34) | @RequestMapping
    method save (line 57) | @RequestMapping("/save")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobGroupController.java
  class JobGroupController (line 27) | @Controller
    method index (line 38) | @RequestMapping
    method pageList (line 44) | @RequestMapping("/pageList")
    method save (line 64) | @RequestMapping("/save")
    method update (line 108) | @RequestMapping("/update")
    method findRegistryByAppName (line 155) | private List<String> findRegistryByAppName(String appnameParam) {
    method remove (line 177) | @RequestMapping("/remove")
    method loadById (line 197) | @RequestMapping("/loadById")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobInfoController.java
  class JobInfoController (line 38) | @Controller
    method index (line 48) | @RequestMapping
    method filterJobGroupByRole (line 73) | public static List<XxlJobGroup> filterJobGroupByRole(HttpServletReques...
    method validPermission (line 94) | public static void validPermission(HttpServletRequest request, int job...
    method pageList (line 101) | @RequestMapping("/pageList")
    method add (line 110) | @RequestMapping("/add")
    method update (line 116) | @RequestMapping("/update")
    method remove (line 122) | @RequestMapping("/remove")
    method pause (line 128) | @RequestMapping("/stop")
    method start (line 134) | @RequestMapping("/start")
    method triggerJob (line 140) | @RequestMapping("/trigger")
    method nextTriggerTime (line 153) | @RequestMapping("/nextTriggerTime")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/JobLogController.java
  class JobLogController (line 39) | @Controller
    method index (line 51) | @RequestMapping
    method getJobsByGroup (line 81) | @RequestMapping("/getJobsByGroup")
    method pageList (line 88) | @RequestMapping("/pageList")
    method logDetailPage (line 121) | @RequestMapping("/logDetailPage")
    method logDetailCat (line 137) | @RequestMapping("/logDetailCat")
    method logKill (line 165) | @RequestMapping("/logKill")
    method clearLog (line 199) | @RequestMapping("/clearLog")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/UserController.java
  class UserController (line 28) | @Controller
    method index (line 37) | @RequestMapping
    method pageList (line 48) | @RequestMapping("/pageList")
    method add (line 74) | @RequestMapping("/add")
    method update (line 109) | @RequestMapping("/update")
    method remove (line 137) | @RequestMapping("/remove")
    method updatePwd (line 152) | @RequestMapping("/updatePwd")

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/CookieInterceptor.java
  class CookieInterceptor (line 19) | @Component
    method postHandle (line 22) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/PermissionInterceptor.java
  class PermissionInterceptor (line 20) | @Component
    method preHandle (line 26) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/interceptor/WebMvcConfig.java
  class WebMvcConfig (line 14) | @Configuration
    method addInterceptors (line 22) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/controller/resolver/WebExceptionResolver.java
  class WebExceptionResolver (line 23) | @Component
    method resolveException (line 27) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/JobAlarm.java
  type JobAlarm (line 9) | public interface JobAlarm {
    method doAlarm (line 18) | public boolean doAlarm(XxlJobInfo info, XxlJobLog jobLog);

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/JobAlarmer.java
  class JobAlarmer (line 17) | @Component
    method setApplicationContext (line 24) | @Override
    method afterPropertiesSet (line 29) | @Override
    method alarm (line 44) | public boolean alarm(XxlJobInfo info, XxlJobLog jobLog) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/alarm/impl/EmailJobAlarm.java
  class EmailJobAlarm (line 26) | @Component
    method doAlarm (line 35) | @Override
    method loadEmailJobAlarmTemplate (line 92) | private static final String loadEmailJobAlarmTemplate() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/complete/XxlJobCompleter.java
  class XxlJobCompleter (line 19) | public class XxlJobCompleter {
    method updateHandleInfoAndFinish (line 28) | public static int updateHandleInfoAndFinish(XxlJobLog xxlJobLog) {
    method finishJob (line 46) | private static void finishJob(XxlJobLog xxlJobLog) {
    method isNumeric (line 90) | private static boolean isNumeric(String str) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/conf/XxlJobAdminConfig.java
  class XxlJobAdminConfig (line 22) | @Component
    method getAdminConfig (line 27) | public static XxlJobAdminConfig getAdminConfig() {
    method afterPropertiesSet (line 36) | @Override
    method destroy (line 44) | @Override
    method getI18n (line 91) | public String getI18n() {
    method getAccessToken (line 98) | public String getAccessToken() {
    method getEmailFrom (line 102) | public String getEmailFrom() {
    method getTriggerPoolFastMax (line 106) | public int getTriggerPoolFastMax() {
    method getTriggerPoolSlowMax (line 113) | public int getTriggerPoolSlowMax() {
    method getLogretentiondays (line 120) | public int getLogretentiondays() {
    method getXxlJobLogDao (line 127) | public XxlJobLogDao getXxlJobLogDao() {
    method getXxlJobInfoDao (line 131) | public XxlJobInfoDao getXxlJobInfoDao() {
    method getXxlJobRegistryDao (line 135) | public XxlJobRegistryDao getXxlJobRegistryDao() {
    method getXxlJobGroupDao (line 139) | public XxlJobGroupDao getXxlJobGroupDao() {
    method getXxlJobLogReportDao (line 143) | public XxlJobLogReportDao getXxlJobLogReportDao() {
    method getMailSender (line 147) | public JavaMailSender getMailSender() {
    method getDataSource (line 151) | public DataSource getDataSource() {
    method getJobAlarmer (line 155) | public JobAlarmer getJobAlarmer() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/cron/CronExpression.java
  class CronExpression (line 200) | public final class CronExpression implements Serializable, Cloneable {
    method CronExpression (line 270) | public CronExpression(String cronExpression) throws ParseException {
    method CronExpression (line 286) | public CronExpression(CronExpression expression) {
    method isSatisfiedBy (line 312) | public boolean isSatisfiedBy(Date date) {
    method getNextValidTimeAfter (line 333) | public Date getNextValidTimeAfter(Date date) {
    method getNextInvalidTimeAfter (line 345) | public Date getNextInvalidTimeAfter(Date date) {
    method getTimeZone (line 380) | public TimeZone getTimeZone() {
    method setTimeZone (line 392) | public void setTimeZone(TimeZone timeZone) {
    method toString (line 401) | @Override
    method isValidExpression (line 414) | public static boolean isValidExpression(String cronExpression) {
    method validateExpression (line 425) | public static void validateExpression(String cronExpression) throws Pa...
    method buildExpression (line 437) | protected void buildExpression(String expression) throws ParseException {
    method storeExpressionVals (line 523) | protected int storeExpressionVals(int pos, String s, int type)
    method checkIncrementRange (line 703) | private void checkIncrementRange(int incr, int type, int idxPos) throw...
    method checkNext (line 717) | protected int checkNext(int pos, String s, int val, int type)
    method getCronExpression (line 854) | public String getCronExpression() {
    method getExpressionSummary (line 858) | public String getExpressionSummary() {
    method getExpressionSetSummary (line 898) | protected String getExpressionSetSummary(java.util.Set<Integer> set) {
    method getExpressionSetSummary (line 924) | protected String getExpressionSetSummary(java.util.ArrayList<Integer> ...
    method skipWhiteSpace (line 950) | protected int skipWhiteSpace(int i, String s) {
    method findNextWhiteSpace (line 957) | protected int findNextWhiteSpace(int i, String s) {
    method addToSet (line 964) | protected void addToSet(int val, int end, int incr, int type)
    method getSet (line 1111) | TreeSet<Integer> getSet(int type) {
    method getValue (line 1132) | protected ValueSet getValue(int v, String s, int i) {
    method getNumericValue (line 1150) | protected int getNumericValue(String s, int i) {
    method getMonthNumber (line 1156) | protected int getMonthNumber(String s) {
    method getDayOfWeekNumber (line 1166) | protected int getDayOfWeekNumber(String s) {
    method getTimeAfter (line 1182) | public Date getTimeAfter(Date afterTime) {
    method setCalendarHour (line 1593) | protected void setCalendarHour(Calendar cal, int hour) {
    method getTimeBefore (line 1604) | public Date getTimeBefore(Date endTime) {
    method getFinalFireTime (line 1613) | public Date getFinalFireTime() {
    method isLeapYear (line 1618) | protected boolean isLeapYear(int year) {
    method getLastDayOfMonth (line 1622) | protected int getLastDayOfMonth(int monthNum, int year) {
    method readObject (line 1656) | private void readObject(java.io.ObjectInputStream stream)
    method clone (line 1666) | @Override
  class ValueSet (line 1673) | class ValueSet {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/exception/XxlJobException.java
  class XxlJobException (line 6) | public class XxlJobException extends RuntimeException {
    method XxlJobException (line 8) | public XxlJobException() {
    method XxlJobException (line 11) | public XxlJobException(String message) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobGroup.java
  class XxlJobGroup (line 11) | public class XxlJobGroup {
    method getRegistryList (line 23) | public List<String> getRegistryList() {
    method getId (line 30) | public int getId() {
    method setId (line 34) | public void setId(int id) {
    method getAppname (line 38) | public String getAppname() {
    method setAppname (line 42) | public void setAppname(String appname) {
    method getTitle (line 46) | public String getTitle() {
    method setTitle (line 50) | public void setTitle(String title) {
    method getAddressType (line 54) | public int getAddressType() {
    method setAddressType (line 58) | public void setAddressType(int addressType) {
    method getAddressList (line 62) | public String getAddressList() {
    method getUpdateTime (line 66) | public Date getUpdateTime() {
    method setUpdateTime (line 70) | public void setUpdateTime(Date updateTime) {
    method setAddressList (line 74) | public void setAddressList(String addressList) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobInfo.java
  class XxlJobInfo (line 10) | public class XxlJobInfo {
    method getId (line 46) | public int getId() {
    method setId (line 50) | public void setId(int id) {
    method getJobGroup (line 54) | public int getJobGroup() {
    method setJobGroup (line 58) | public void setJobGroup(int jobGroup) {
    method getJobDesc (line 62) | public String getJobDesc() {
    method setJobDesc (line 66) | public void setJobDesc(String jobDesc) {
    method getAddTime (line 70) | public Date getAddTime() {
    method setAddTime (line 74) | public void setAddTime(Date addTime) {
    method getUpdateTime (line 78) | public Date getUpdateTime() {
    method setUpdateTime (line 82) | public void setUpdateTime(Date updateTime) {
    method getAuthor (line 86) | public String getAuthor() {
    method setAuthor (line 90) | public void setAuthor(String author) {
    method getAlarmEmail (line 94) | public String getAlarmEmail() {
    method setAlarmEmail (line 98) | public void setAlarmEmail(String alarmEmail) {
    method getScheduleType (line 102) | public String getScheduleType() {
    method setScheduleType (line 106) | public void setScheduleType(String scheduleType) {
    method getScheduleConf (line 110) | public String getScheduleConf() {
    method setScheduleConf (line 114) | public void setScheduleConf(String scheduleConf) {
    method getMisfireStrategy (line 118) | public String getMisfireStrategy() {
    method setMisfireStrategy (line 122) | public void setMisfireStrategy(String misfireStrategy) {
    method getExecutorRouteStrategy (line 126) | public String getExecutorRouteStrategy() {
    method setExecutorRouteStrategy (line 130) | public void setExecutorRouteStrategy(String executorRouteStrategy) {
    method getExecutorHandler (line 134) | public String getExecutorHandler() {
    method setExecutorHandler (line 138) | public void setExecutorHandler(String executorHandler) {
    method getExecutorParam (line 142) | public String getExecutorParam() {
    method setExecutorParam (line 146) | public void setExecutorParam(String executorParam) {
    method getExecutorBlockStrategy (line 150) | public String getExecutorBlockStrategy() {
    method setExecutorBlockStrategy (line 154) | public void setExecutorBlockStrategy(String executorBlockStrategy) {
    method getExecutorTimeout (line 158) | public int getExecutorTimeout() {
    method setExecutorTimeout (line 162) | public void setExecutorTimeout(int executorTimeout) {
    method getExecutorFailRetryCount (line 166) | public int getExecutorFailRetryCount() {
    method setExecutorFailRetryCount (line 170) | public void setExecutorFailRetryCount(int executorFailRetryCount) {
    method getGlueType (line 174) | public String getGlueType() {
    method setGlueType (line 178) | public void setGlueType(String glueType) {
    method getGlueSource (line 182) | public String getGlueSource() {
    method setGlueSource (line 186) | public void setGlueSource(String glueSource) {
    method getGlueRemark (line 190) | public String getGlueRemark() {
    method setGlueRemark (line 194) | public void setGlueRemark(String glueRemark) {
    method getGlueUpdatetime (line 198) | public Date getGlueUpdatetime() {
    method setGlueUpdatetime (line 202) | public void setGlueUpdatetime(Date glueUpdatetime) {
    method getChildJobId (line 206) | public String getChildJobId() {
    method setChildJobId (line 210) | public void setChildJobId(String childJobId) {
    method getTriggerStatus (line 214) | public int getTriggerStatus() {
    method setTriggerStatus (line 218) | public void setTriggerStatus(int triggerStatus) {
    method getTriggerLastTime (line 222) | public long getTriggerLastTime() {
    method setTriggerLastTime (line 226) | public void setTriggerLastTime(long triggerLastTime) {
    method getTriggerNextTime (line 230) | public long getTriggerNextTime() {
    method setTriggerNextTime (line 234) | public void setTriggerNextTime(long triggerNextTime) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLog.java
  class XxlJobLog (line 10) | public class XxlJobLog {
    method getId (line 38) | public long getId() {
    method setId (line 42) | public void setId(long id) {
    method getJobGroup (line 46) | public int getJobGroup() {
    method setJobGroup (line 50) | public void setJobGroup(int jobGroup) {
    method getJobId (line 54) | public int getJobId() {
    method setJobId (line 58) | public void setJobId(int jobId) {
    method getExecutorAddress (line 62) | public String getExecutorAddress() {
    method setExecutorAddress (line 66) | public void setExecutorAddress(String executorAddress) {
    method getExecutorHandler (line 70) | public String getExecutorHandler() {
    method setExecutorHandler (line 74) | public void setExecutorHandler(String executorHandler) {
    method getExecutorParam (line 78) | public String getExecutorParam() {
    method setExecutorParam (line 82) | public void setExecutorParam(String executorParam) {
    method getExecutorShardingParam (line 86) | public String getExecutorShardingParam() {
    method setExecutorShardingParam (line 90) | public void setExecutorShardingParam(String executorShardingParam) {
    method getExecutorFailRetryCount (line 94) | public int getExecutorFailRetryCount() {
    method setExecutorFailRetryCount (line 98) | public void setExecutorFailRetryCount(int executorFailRetryCount) {
    method getTriggerTime (line 102) | public Date getTriggerTime() {
    method setTriggerTime (line 106) | public void setTriggerTime(Date triggerTime) {
    method getTriggerCode (line 110) | public int getTriggerCode() {
    method setTriggerCode (line 114) | public void setTriggerCode(int triggerCode) {
    method getTriggerMsg (line 118) | public String getTriggerMsg() {
    method setTriggerMsg (line 122) | public void setTriggerMsg(String triggerMsg) {
    method getHandleTime (line 126) | public Date getHandleTime() {
    method setHandleTime (line 130) | public void setHandleTime(Date handleTime) {
    method getHandleCode (line 134) | public int getHandleCode() {
    method setHandleCode (line 138) | public void setHandleCode(int handleCode) {
    method getHandleMsg (line 142) | public String getHandleMsg() {
    method setHandleMsg (line 146) | public void setHandleMsg(String handleMsg) {
    method getAlarmStatus (line 150) | public int getAlarmStatus() {
    method setAlarmStatus (line 154) | public void setAlarmStatus(int alarmStatus) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogGlue.java
  class XxlJobLogGlue (line 10) | public class XxlJobLogGlue {
    method getId (line 20) | public int getId() {
    method setId (line 24) | public void setId(int id) {
    method getJobId (line 28) | public int getJobId() {
    method setJobId (line 32) | public void setJobId(int jobId) {
    method getGlueType (line 36) | public String getGlueType() {
    method setGlueType (line 40) | public void setGlueType(String glueType) {
    method getGlueSource (line 44) | public String getGlueSource() {
    method setGlueSource (line 48) | public void setGlueSource(String glueSource) {
    method getGlueRemark (line 52) | public String getGlueRemark() {
    method setGlueRemark (line 56) | public void setGlueRemark(String glueRemark) {
    method getAddTime (line 60) | public Date getAddTime() {
    method setAddTime (line 64) | public void setAddTime(Date addTime) {
    method getUpdateTime (line 68) | public Date getUpdateTime() {
    method setUpdateTime (line 72) | public void setUpdateTime(Date updateTime) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobLogReport.java
  class XxlJobLogReport (line 5) | public class XxlJobLogReport {
    method getId (line 15) | public int getId() {
    method setId (line 19) | public void setId(int id) {
    method getTriggerDay (line 23) | public Date getTriggerDay() {
    method setTriggerDay (line 27) | public void setTriggerDay(Date triggerDay) {
    method getRunningCount (line 31) | public int getRunningCount() {
    method setRunningCount (line 35) | public void setRunningCount(int runningCount) {
    method getSucCount (line 39) | public int getSucCount() {
    method setSucCount (line 43) | public void setSucCount(int sucCount) {
    method getFailCount (line 47) | public int getFailCount() {
    method setFailCount (line 51) | public void setFailCount(int failCount) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobRegistry.java
  class XxlJobRegistry (line 8) | public class XxlJobRegistry {
    method getId (line 16) | public int getId() {
    method setId (line 20) | public void setId(int id) {
    method getRegistryGroup (line 24) | public String getRegistryGroup() {
    method setRegistryGroup (line 28) | public void setRegistryGroup(String registryGroup) {
    method getRegistryKey (line 32) | public String getRegistryKey() {
    method setRegistryKey (line 36) | public void setRegistryKey(String registryKey) {
    method getRegistryValue (line 40) | public String getRegistryValue() {
    method setRegistryValue (line 44) | public void setRegistryValue(String registryValue) {
    method getUpdateTime (line 48) | public Date getUpdateTime() {
    method setUpdateTime (line 52) | public void setUpdateTime(Date updateTime) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/model/XxlJobUser.java
  class XxlJobUser (line 8) | public class XxlJobUser {
    method getId (line 16) | public int getId() {
    method setId (line 20) | public void setId(int id) {
    method getUsername (line 24) | public String getUsername() {
    method setUsername (line 28) | public void setUsername(String username) {
    method getPassword (line 32) | public String getPassword() {
    method setPassword (line 36) | public void setPassword(String password) {
    method getRole (line 40) | public int getRole() {
    method setRole (line 44) | public void setRole(int role) {
    method getPermission (line 48) | public String getPermission() {
    method setPermission (line 52) | public void setPermission(String permission) {
    method validPermission (line 57) | public boolean validPermission(int jobGroup) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouteStrategyEnum.java
  type ExecutorRouteStrategyEnum (line 9) | public enum ExecutorRouteStrategyEnum {
    method ExecutorRouteStrategyEnum (line 22) | ExecutorRouteStrategyEnum(String title, ExecutorRouter router) {
    method getTitle (line 30) | public String getTitle() {
    method getRouter (line 34) | public ExecutorRouter getRouter() {
    method match (line 38) | public static ExecutorRouteStrategyEnum match(String name, ExecutorRou...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/ExecutorRouter.java
  class ExecutorRouter (line 13) | public abstract class ExecutorRouter {
    method route (line 22) | public abstract ReturnT<String> route(TriggerParam triggerParam, List<...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteBusyover.java
  class ExecutorRouteBusyover (line 16) | public class ExecutorRouteBusyover extends ExecutorRouter {
    method route (line 18) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteConsistentHash.java
  class ExecutorRouteConsistentHash (line 20) | public class ExecutorRouteConsistentHash extends ExecutorRouter {
    method hash (line 30) | private static long hash(String key) {
    method hashJob (line 60) | public String hashJob(int jobId, List<String> addressList) {
    method route (line 80) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFailover.java
  class ExecutorRouteFailover (line 15) | public class ExecutorRouteFailover extends ExecutorRouter {
    method route (line 17) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteFirst.java
  class ExecutorRouteFirst (line 12) | public class ExecutorRouteFirst extends ExecutorRouter {
    method route (line 14) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLFU.java
  class ExecutorRouteLFU (line 18) | public class ExecutorRouteLFU extends ExecutorRouter {
    method route (line 23) | public String route(int jobId, List<String> addressList) {
    method route (line 73) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLRU.java
  class ExecutorRouteLRU (line 20) | public class ExecutorRouteLRU extends ExecutorRouter {
    method route (line 25) | public String route(int jobId, List<String> addressList) {
    method route (line 70) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteLast.java
  class ExecutorRouteLast (line 12) | public class ExecutorRouteLast extends ExecutorRouter {
    method route (line 14) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java
  class ExecutorRouteRandom (line 13) | public class ExecutorRouteRandom extends ExecutorRouter {
    method route (line 17) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRound.java
  class ExecutorRouteRound (line 16) | public class ExecutorRouteRound extends ExecutorRouter {
    method count (line 21) | private static int count(int jobId) {
    method route (line 40) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/MisfireStrategyEnum.java
  type MisfireStrategyEnum (line 8) | public enum MisfireStrategyEnum {
    method MisfireStrategyEnum (line 22) | MisfireStrategyEnum(String title) {
    method getTitle (line 26) | public String getTitle() {
    method match (line 30) | public static MisfireStrategyEnum match(String name, MisfireStrategyEn...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/ScheduleTypeEnum.java
  type ScheduleTypeEnum (line 8) | public enum ScheduleTypeEnum {
    method ScheduleTypeEnum (line 29) | ScheduleTypeEnum(String title) {
    method getTitle (line 33) | public String getTitle() {
    method match (line 37) | public static ScheduleTypeEnum match(String name, ScheduleTypeEnum def...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/scheduler/XxlJobScheduler.java
  class XxlJobScheduler (line 19) | public class XxlJobScheduler {
    method init (line 23) | public void init() throws Exception {
    method destroy (line 49) | public void destroy() throws Exception {
    method initI18n (line 73) | private void initI18n() {
    method getExecutorBiz (line 82) | public static ExecutorBiz getExecutorBiz(String address) throws Except...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobCompleteHelper.java
  class JobCompleteHelper (line 22) | public class JobCompleteHelper {
    method getInstance (line 27) | public static JobCompleteHelper getInstance() {
    method start (line 37) | public void start() {
    method toStop (line 122) | public void toStop() {
    method callback (line 140) | public ReturnT<String> callback(List<HandleCallbackParam> callbackPara...
    method callback (line 156) | private ReturnT<String> callback(HandleCallbackParam handleCallbackPar...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobFailMonitorHelper.java
  class JobFailMonitorHelper (line 19) | public class JobFailMonitorHelper {
    method getInstance (line 24) | public static JobFailMonitorHelper getInstance() {
    method start (line 33) | public void start() {
    method toStop (line 101) | public void toStop() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobLogReportHelper.java
  class JobLogReportHelper (line 19) | public class JobLogReportHelper {
    method getInstance (line 24) | public static JobLogReportHelper getInstance() {
    method start (line 32) | public void start() {
    method toStop (line 143) | public void toStop() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobRegistryHelper.java
  class JobRegistryHelper (line 21) | public class JobRegistryHelper {
    method getInstance (line 26) | public static JobRegistryHelper getInstance() {
    method start (line 34) | public void start() {
    method toStop (line 133) | public void toStop() {
    method registry (line 151) | public ReturnT<String> registry(RegistryParam registryParam) {
    method registryRemove (line 177) | public ReturnT<String> registryRemove(RegistryParam registryParam) {
    method freshGroupRegistryInfo (line 201) | private void freshGroupRegistryInfo(RegistryParam registryParam) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobScheduleHelper.java
  class JobScheduleHelper (line 22) | public class JobScheduleHelper {
    method getInstance (line 27) | public static JobScheduleHelper getInstance() {
    method start (line 39) | public void start() {
    method refreshNextValidTime (line 273) | private void refreshNextValidTime(XxlJobInfo jobInfo, Date fromTime) t...
    method pushTimeRing (line 287) | private void pushTimeRing(int ringSecond, int jobId) {
    method toStop (line 299) | public void toStop() {
    method generateNextValidTime (line 359) | public static Date generateNextValidTime(XxlJobInfo jobInfo, Date from...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/thread/JobTriggerPoolHelper.java
  class JobTriggerPoolHelper (line 17) | public class JobTriggerPoolHelper {
    method start (line 27) | public void start() {
    method stop (line 56) | public void stop() {
    method addTrigger (line 72) | public void addTrigger(final int jobId,
    method toStart (line 127) | public static void toStart() {
    method toStop (line 131) | public static void toStop() {
    method trigger (line 144) | public static void trigger(int jobId, TriggerTypeEnum triggerType, int...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/TriggerTypeEnum.java
  type TriggerTypeEnum (line 10) | public enum TriggerTypeEnum {
    method TriggerTypeEnum (line 19) | private TriggerTypeEnum(String title) {
    method getTitle (line 25) | public String getTitle() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/trigger/XxlJobTrigger.java
  class XxlJobTrigger (line 25) | public class XxlJobTrigger {
    method trigger (line 41) | public static void trigger(int jobId,
    method isNumeric (line 91) | private static boolean isNumeric(String str) {
    method processTrigger (line 108) | private static void processTrigger(XxlJobGroup group, XxlJobInfo jobIn...
    method runExecutor (line 205) | public static ReturnT<String> runExecutor(TriggerParam triggerParam, S...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/CookieUtil.java
  class CookieUtil (line 12) | public class CookieUtil {
    method set (line 27) | public static void set(HttpServletResponse response, String key, Strin...
    method set (line 40) | private static void set(HttpServletResponse response, String key, Stri...
    method getValue (line 58) | public static String getValue(HttpServletRequest request, String key) {
    method get (line 72) | private static Cookie get(HttpServletRequest request, String key) {
    method remove (line 91) | public static void remove(HttpServletRequest request, HttpServletRespo...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/FtlUtil.java
  class FtlUtil (line 15) | public class FtlUtil {
    method generateStaticModel (line 20) | public static TemplateHashModel generateStaticModel(String packageName) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/I18nUtil.java
  class I18nUtil (line 22) | public class I18nUtil {
    method loadI18nProp (line 27) | public static Properties loadI18nProp() {
    method getString (line 52) | public static String getString(String key) {
    method getMultString (line 62) | public static String getMultString(String... keys) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/JacksonUtil.java
  class JacksonUtil (line 21) | public class JacksonUtil {
    method getInstance (line 26) | public static ObjectMapper getInstance() {
    method writeValueAsString (line 37) | public static String writeValueAsString(Object obj) {
    method readValue (line 58) | public static <T> T readValue(String jsonStr, Class<T> clazz) {
    method readValue (line 80) | public static <T> T readValue(String jsonStr, Class<?> parametrized, C...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/core/util/LocalCacheUtil.java
  class LocalCacheUtil (line 11) | public class LocalCacheUtil {
    class LocalCacheData (line 15) | private static class LocalCacheData {
      method LocalCacheData (line 20) | public LocalCacheData() {
      method LocalCacheData (line 23) | public LocalCacheData(String key, Object val, long timeoutTime) {
      method getKey (line 29) | public String getKey() {
      method setKey (line 33) | public void setKey(String key) {
      method getVal (line 37) | public Object getVal() {
      method setVal (line 41) | public void setVal(Object val) {
      method getTimeoutTime (line 45) | public long getTimeoutTime() {
      method setTimeoutTime (line 49) | public void setTimeoutTime(long timeoutTime) {
    method set (line 63) | public static boolean set(String key, Object val, long cacheTime) {
    method remove (line 90) | public static boolean remove(String key) {
    method get (line 104) | public static Object get(String key) {
    method cleanTimeoutCache (line 122) | public static boolean cleanTimeoutCache() {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobGroupDao.java
  type XxlJobGroupDao (line 12) | @Mapper
    method findAll (line 15) | public List<XxlJobGroup> findAll();
    method findByAddressType (line 17) | public List<XxlJobGroup> findByAddressType(@Param("addressType") int a...
    method save (line 19) | public int save(XxlJobGroup xxlJobGroup);
    method update (line 21) | public int update(XxlJobGroup xxlJobGroup);
    method remove (line 23) | public int remove(@Param("id") int id);
    method load (line 25) | public XxlJobGroup load(@Param("id") int id);
    method pageList (line 27) | public List<XxlJobGroup> pageList(@Param("offset") int offset,
    method pageListCount (line 32) | public int pageListCount(@Param("offset") int offset,

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobInfoDao.java
  type XxlJobInfoDao (line 15) | @Mapper
    method pageList (line 18) | public List<XxlJobInfo> pageList(@Param("offset") int offset,
    method pageListCount (line 26) | public int pageListCount(@Param("offset") int offset,
    method save (line 34) | public int save(XxlJobInfo info);
    method loadById (line 36) | public XxlJobInfo loadById(@Param("id") int id);
    method update (line 38) | public int update(XxlJobInfo xxlJobInfo);
    method delete (line 40) | public int delete(@Param("id") long id);
    method getJobsByGroup (line 42) | public List<XxlJobInfo> getJobsByGroup(@Param("jobGroup") int jobGroup);
    method findAllCount (line 44) | public int findAllCount();
    method scheduleJobQuery (line 46) | public List<XxlJobInfo> scheduleJobQuery(@Param("maxNextTime") long ma...
    method scheduleUpdate (line 48) | public int scheduleUpdate(XxlJobInfo xxlJobInfo);

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogDao.java
  type XxlJobLogDao (line 16) | @Mapper
    method pageList (line 20) | public List<XxlJobLog> pageList(@Param("offset") int offset,
    method pageListCount (line 28) | public int pageListCount(@Param("offset") int offset,
    method load (line 36) | public XxlJobLog load(@Param("id") long id);
    method save (line 38) | public long save(XxlJobLog xxlJobLog);
    method updateTriggerInfo (line 40) | public int updateTriggerInfo(XxlJobLog xxlJobLog);
    method updateHandleInfo (line 42) | public int updateHandleInfo(XxlJobLog xxlJobLog);
    method delete (line 44) | public int delete(@Param("jobId") int jobId);
    method findLogReport (line 46) | public Map<String, Object> findLogReport(@Param("from") Date from,
    method findClearLogIds (line 49) | public List<Long> findClearLogIds(@Param("jobGroup") int jobGroup,
    method clearLog (line 55) | public int clearLog(@Param("logIds") List<Long> logIds);
    method findFailJobLogIds (line 57) | public List<Long> findFailJobLogIds(@Param("pagesize") int pagesize);
    method updateAlarmStatus (line 59) | public int updateAlarmStatus(@Param("logId") long logId,
    method findLostJobIds (line 63) | public List<Long> findLostJobIds(@Param("losedTime") Date losedTime);

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogGlueDao.java
  type XxlJobLogGlueDao (line 14) | @Mapper
    method save (line 17) | public int save(XxlJobLogGlue xxlJobLogGlue);
    method findByJobId (line 19) | public List<XxlJobLogGlue> findByJobId(@Param("jobId") int jobId);
    method removeOld (line 21) | public int removeOld(@Param("jobId") int jobId, @Param("limit") int li...
    method deleteByJobId (line 23) | public int deleteByJobId(@Param("jobId") int jobId);

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobLogReportDao.java
  type XxlJobLogReportDao (line 15) | @Mapper
    method save (line 18) | public int save(XxlJobLogReport xxlJobLogReport);
    method update (line 20) | public int update(XxlJobLogReport xxlJobLogReport);
    method queryLogReport (line 22) | public List<XxlJobLogReport> queryLogReport(@Param("triggerDayFrom") D...
    method queryLogReportTotal (line 25) | public XxlJobLogReport queryLogReportTotal();

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobRegistryDao.java
  type XxlJobRegistryDao (line 13) | @Mapper
    method findDead (line 16) | public List<Integer> findDead(@Param("timeout") int timeout,
    method removeDead (line 19) | public int removeDead(@Param("ids") List<Integer> ids);
    method findAll (line 21) | public List<XxlJobRegistry> findAll(@Param("timeout") int timeout,
    method registryUpdate (line 24) | public int registryUpdate(@Param("registryGroup") String registryGroup,
    method registrySave (line 29) | public int registrySave(@Param("registryGroup") String registryGroup,
    method registryDelete (line 34) | public int registryDelete(@Param("registryGroup") String registryGroup,

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/dao/XxlJobUserDao.java
  type XxlJobUserDao (line 12) | @Mapper
    method pageList (line 15) | public List<XxlJobUser> pageList(@Param("offset") int offset,
    method pageListCount (line 20) | public int pageListCount(@Param("offset") int offset,
    method loadByUserName (line 25) | public XxlJobUser loadByUserName(@Param("username") String username);
    method save (line 27) | public int save(XxlJobUser xxlJobUser);
    method update (line 29) | public int update(XxlJobUser xxlJobUser);
    method delete (line 31) | public int delete(@Param("id") int id);

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/LoginService.java
  class LoginService (line 20) | @Configuration
    method makeToken (line 29) | private String makeToken(XxlJobUser xxlJobUser) {
    method parseToken (line 35) | private XxlJobUser parseToken(String tokenHex) {
    method login (line 45) | public ReturnT<String> login(HttpServletRequest request, HttpServletRe...
    method logout (line 75) | public ReturnT<String> logout(HttpServletRequest request, HttpServletR...
    method ifLogin (line 86) | public XxlJobUser ifLogin(HttpServletRequest request, HttpServletRespo...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/XxlJobService.java
  type XxlJobService (line 15) | public interface XxlJobService {
    method pageList (line 28) | public Map<String, Object> pageList(int start, int length, int jobGrou...
    method add (line 36) | public ReturnT<String> add(XxlJobInfo jobInfo);
    method update (line 44) | public ReturnT<String> update(XxlJobInfo jobInfo);
    method remove (line 53) | public ReturnT<String> remove(int id);
    method start (line 61) | public ReturnT<String> start(int id);
    method stop (line 69) | public ReturnT<String> stop(int id);
    method dashboardInfo (line 76) | public Map<String, Object> dashboardInfo();
    method chartInfo (line 85) | public ReturnT<Map<String, Object>> chartInfo(Date startDate, Date end...

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/AdminBizImpl.java
  class AdminBizImpl (line 16) | @Service
    method callback (line 20) | @Override
    method registry (line 25) | @Override
    method registryRemove (line 30) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/java/com/xxl/job/admin/service/impl/XxlJobServiceImpl.java
  class XxlJobServiceImpl (line 31) | @Service
    method pageList (line 46) | @Override
    method add (line 61) | @Override
    method isNumeric (line 160) | private boolean isNumeric(String str) {
    method update (line 169) | @Override
    method remove (line 291) | @Override
    method start (line 304) | @Override
    method stop (line 336) | @Override
    method dashboardInfo (line 349) | @Override
    method chartInfo (line 383) | @Override

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/adminlte/bower_components/fastclick/fastclick.js
  function FastClick (line 23) | function FastClick(layer, options) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/index.js
  function freshChartDate (line 49) | function freshChartDate(startDate, endDate) {
  function lineChartInit (line 77) | function lineChartInit(data) {
  function pieChartInit (line 156) | function pieChartInit(data) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/jobcode.index.1.js
  function initIde (line 5) | function initIde(glueSource) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/jobinfo.index.1.js
  function findGlueTypeTitle (line 676) | function findGlueTypeTitle(glueType) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/js/joblog.detail.1.js
  function pullLog (line 13) | function pullLog() {
  function logRunStop (line 83) | function logRunStop(content){

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/plugins/codemirror/addon/hint/show-hint.js
  function Completion (line 49) | function Completion(cm, options) {
  function parseOptions (line 137) | function parseOptions(cm, pos, options) {
  function getText (line 149) | function getText(completion) {
  function buildKeyMap (line 154) | function buildKeyMap(completion, handle) {
  function getHintElement (line 189) | function getHintElement(hintsElement, el) {
  function Widget (line 196) | function Widget(completion, data) {
  function applicableHelpers (line 352) | function applicableHelpers(cm, helpers) {
  function fetchHints (line 360) | function fetchHints(hint, cm, options, callback) {
  function resolveAutoHints (line 370) | function resolveAutoHints(cm, pos) {

FILE: ruoyi-extend/ruoyi-xxl-job-admin/src/main/resources/static/plugins/codemirror/lib/codemirror.js
  function classTest (line 50) | function classTest(cls) { return new RegExp("(^|\\s)" + cls + "(?:$|\\s)...
  function removeChildren (line 61) | function removeChildren(e) {
  function removeChildrenAndAdd (line 67) | function removeChildrenAndAdd(parent, e) {
  function elt (line 71) | function elt(tag, content, className, style) {
  function eltP (line 80) | function eltP(tag, content, className, style) {
  function contains (line 103) | function contains(parent, child) {
  function activeElt (line 114) | function activeElt() {
  function addClass (line 129) | function addClass(node, cls) {
  function joinClasses (line 133) | function joinClasses(a, b) {
  function bind (line 146) | function bind(f) {
  function copyObj (line 151) | function copyObj(obj, target, overwrite) {
  function countColumn (line 161) | function countColumn(string, end, tabSize, startIndex, startValue) {
  function indexOf (line 182) | function indexOf(array, elt) {
  function findColumn (line 200) | function findColumn(string, goal, tabSize) {
  function spaceStr (line 215) | function spaceStr(n) {
  function lst (line 221) | function lst(arr) { return arr[arr.length-1] }
  function map (line 223) | function map(array, f) {
  function insertSorted (line 229) | function insertSorted(array, value, score) {
  function nothing (line 235) | function nothing() {}
  function createObj (line 237) | function createObj(base, props) {
  function isWordCharBasic (line 250) | function isWordCharBasic(ch) {
  function isWordChar (line 254) | function isWordChar(ch, helper) {
  function isEmpty (line 260) | function isEmpty(obj) {
  function isExtendingChar (line 271) | function isExtendingChar(ch) { return ch.charCodeAt(0) >= 768 && extendi...
  function skipExtendingChars (line 274) | function skipExtendingChars(str, pos, dir) {
  function findFirst (line 282) | function findFirst(pred, from, to) {
  function Display (line 299) | function Display(place, doc, input) {
  function getLine (line 399) | function getLine(doc, n) {
  function getBetween (line 415) | function getBetween(doc, start, end) {
  function getLines (line 427) | function getLines(doc, from, to) {
  function updateLineHeight (line 435) | function updateLineHeight(line, height) {
  function lineNo (line 442) | function lineNo(line) {
  function lineAtHeight (line 456) | function lineAtHeight(chunk, h) {
  function isLine (line 476) | function isLine(doc, l) {return l >= doc.first && l < doc.first + doc.size}
  function lineNumberFor (line 478) | function lineNumberFor(options, i) {
  function Pos (line 483) | function Pos(line, ch, sticky) {
  function cmp (line 494) | function cmp(a, b) { return a.line - b.line || a.ch - b.ch }
  function equalCursorPos (line 496) | function equalCursorPos(a, b) { return a.sticky == b.sticky && cmp(a, b)...
  function copyPos (line 498) | function copyPos(x) {return Pos(x.line, x.ch)
Condensed preview — 1013 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (5,213K chars).
[
  {
    "path": ".editorconfig",
    "chars": 304,
    "preview": "# http://editorconfig.org\nroot = true\n\n# 空格替代Tab缩进在各种编辑工具下效果一致\n[*]\nindent_style = space\nindent_size = 4\ncharset = utf-8\n"
  },
  {
    "path": ".gitee/ISSUE_TEMPLATE.zh-CN.md",
    "chars": 570,
    "preview": "### 使用版本(未按照模板填写直接删除)\n\n- jdk版本(带上尾号): 例如 1.8.0_202\n- 框架版本(项目启动时输出的版本号): 例如 4.4.0\n- 其他依赖版本(你觉得有必要的):\n\n### 问题前提\n\n> 功能不好用 不"
  },
  {
    "path": ".gitee/PULL_REQUEST_TEMPLATE.zh-CN.md",
    "chars": 86,
    "preview": "### 更改目的 解决了什么问题(请提交到dev分支)\n\n\n### 改动逻辑 这么写的思路(让作者更好的理解你的意图)\n\n\n### 测试 都做了哪些测试(未经过测试不采纳)"
  },
  {
    "path": ".gitignore",
    "chars": 649,
    "preview": "######################################################################\n# Build Tools\n\n.gradle\n/build/\n!gradle/wrapper/gr"
  },
  {
    "path": ".run/ruoyi-monitor-admin.run.xml",
    "chars": 536,
    "preview": "<component name=\"ProjectRunConfigurationManager\">\n  <configuration default=\"false\" name=\"ruoyi-monitor-admin\" type=\"dock"
  },
  {
    "path": ".run/ruoyi-server.run.xml",
    "chars": 501,
    "preview": "<component name=\"ProjectRunConfigurationManager\">\n  <configuration default=\"false\" name=\"ruoyi-server\" type=\"docker-depl"
  },
  {
    "path": ".run/ruoyi-xxl-job-admin.run.xml",
    "chars": 536,
    "preview": "<component name=\"ProjectRunConfigurationManager\">\n  <configuration default=\"false\" name=\"ruoyi-xxl-job-admin\" type=\"dock"
  },
  {
    "path": ".vscode/settings.json",
    "chars": 54,
    "preview": "{\n    \"java.compile.nullAnalysis.mode\": \"automatic\"\n}\n"
  },
  {
    "path": "LICENSE",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "PaiZhiCheng/pom.xml",
    "chars": 2367,
    "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": "PaiZhiCheng/src/main/java/Main.java",
    "chars": 1356,
    "preview": "import lombok.SneakyThrows;\n\nimport java.util.concurrent.CompletableFuture;\nimport java.util.concurrent.Semaphore;\n\nimpo"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/common/BatchUtils.java",
    "chars": 12119,
    "preview": "package top.flya.system.common;\n\n\nimport cn.hutool.json.JSONUtil;\nimport lombok.extern.slf4j.Slf4j;\nimport org.springfra"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/common/CheckUtils.java",
    "chars": 1508,
    "preview": "package top.flya.system.common;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.stereotype.Component;\nimpo"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/ClientCache.java",
    "chars": 1683,
    "preview": "package top.flya.system.config;\n\nimport com.corundumstudio.socketio.SocketIOClient;\nimport lombok.Data;\nimport org.sprin"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/DbTemplate.java",
    "chars": 1298,
    "preview": "package top.flya.system.config;\n\nimport cn.hutool.core.collection.CollUtil;\nimport org.springframework.stereotype.Compon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/Event.java",
    "chars": 276,
    "preview": "package top.flya.system.config;\n\n/**\n * <p>\n * 事件常量\n * </p>\n *\n * @author yangkai.shen\n * @date Created in 2018-12-18 19"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/ServerConfig.java",
    "chars": 1842,
    "preview": "package top.flya.system.config;\n\nimport com.corundumstudio.socketio.SocketConfig;\nimport com.corundumstudio.socketio.Soc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/ServerRunner.java",
    "chars": 636,
    "preview": "package top.flya.system.config;\n\nimport com.corundumstudio.socketio.SocketIOServer;\nimport lombok.extern.slf4j.Slf4j;\nim"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/config/WsConfig.java",
    "chars": 672,
    "preview": "package top.flya.system.config;\n\nimport lombok.Data;\nimport org.springframework.beans.factory.annotation.Value;\nimport o"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/GaoDeMapController.java",
    "chars": 1253,
    "preview": "package top.flya.system.controller;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframework"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnArtistController.java",
    "chars": 3730,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnIntroController.java",
    "chars": 3731,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityConnTagController.java",
    "chars": 3661,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityController.java",
    "chars": 3691,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupApplyController.java",
    "chars": 15798,
    "preview": "package top.flya.system.controller;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport lombok.R"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcActivityGroupController.java",
    "chars": 54449,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport cn.hutool.core.map.Map"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcArtistController.java",
    "chars": 3255,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcIntroController.java",
    "chars": 3433,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOfficialController.java",
    "chars": 3823,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrderController.java",
    "chars": 3249,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerController.java",
    "chars": 3397,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcOrganizerTicketController.java",
    "chars": 3607,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcRegionController.java",
    "chars": 3697,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcTagController.java",
    "chars": 3175,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserCollectController.java",
    "chars": 4228,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserController.java",
    "chars": 3505,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserHistoryController.java",
    "chars": 3650,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserPhotoController.java",
    "chars": 3279,
    "preview": "package top.flya.system.controller;\n\nimport java.util.List;\nimport java.util.Arrays;\n\nimport lombok.RequiredArgsConstruc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcUserTalkController.java",
    "chars": 4659,
    "preview": "package top.flya.system.controller;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport lombok.R"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/PzcViewPagerController.java",
    "chars": 3334,
    "preview": "package top.flya.system.controller;\n\nimport cn.dev33.satoken.annotation.SaCheckPermission;\nimport lombok.RequiredArgsCon"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/controller/WxUserController.java",
    "chars": 18600,
    "preview": "package top.flya.system.controller;\n\n\nimport cn.dev33.satoken.stp.StpUtil;\nimport cn.hutool.core.bean.BeanUtil;\nimport c"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivity.java",
    "chars": 1232,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnArtist.java",
    "chars": 780,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnIntro.java",
    "chars": 779,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityConnTag.java",
    "chars": 747,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityGroup.java",
    "chars": 1375,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.anno"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcActivityGroupApply.java",
    "chars": 1703,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcArtist.java",
    "chars": 757,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcIntro.java",
    "chars": 923,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.anno"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOfficial.java",
    "chars": 1043,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.anno"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrder.java",
    "chars": 990,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrganizer.java",
    "chars": 1114,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.anno"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcOrganizerTicket.java",
    "chars": 964,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.ann"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcRegion.java",
    "chars": 861,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.IdType;\nimport com.baomidou.mybatisplus.anno"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcTag.java",
    "chars": 682,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUser.java",
    "chars": 2224,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserCollect.java",
    "chars": 658,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserHistory.java",
    "chars": 824,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserPhoto.java",
    "chars": 697,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcUserTalk.java",
    "chars": 953,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/PzcViewPager.java",
    "chars": 950,
    "preview": "package top.flya.system.domain;\n\nimport com.baomidou.mybatisplus.annotation.*;\nimport lombok.Data;\nimport lombok.EqualsA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PayOrderBo.java",
    "chars": 179,
    "preview": "package top.flya.system.domain.bo;\n\n\nimport lombok.Data;\n\nimport javax.validation.constraints.NotNull;\n\n@Data\npublic cla"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityBo.java",
    "chars": 2390,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnArtistBo.java",
    "chars": 880,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnIntroBo.java",
    "chars": 883,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityConnTagBo.java",
    "chars": 875,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityGroupApplyBo.java",
    "chars": 1661,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcActivityGroupBo.java",
    "chars": 1968,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcArtistBo.java",
    "chars": 742,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcIntroBo.java",
    "chars": 1169,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOfficialBo.java",
    "chars": 1599,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrderBo.java",
    "chars": 1681,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrganizerBo.java",
    "chars": 1032,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcOrganizerTicketBo.java",
    "chars": 1198,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcRegionBo.java",
    "chars": 1017,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcTagBo.java",
    "chars": 814,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserBo.java",
    "chars": 2119,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserCollectBo.java",
    "chars": 879,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserHistoryBo.java",
    "chars": 1199,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserPhotoBo.java",
    "chars": 809,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcUserTalkBo.java",
    "chars": 1329,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/PzcViewPagerBo.java",
    "chars": 1324,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\nimport lombok.EqualsAndHashCode;\nimport top.flya.common.core.dom"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/RefurbishBo.java",
    "chars": 173,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\n\n@Data\npublic class RefurbishBo {\n\n   private  Long applyId;\n   "
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/Resource.java",
    "chars": 348,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\n\n/**\n * Created with IntelliJ IDEA.\n *\n * @author: 风离\n * @Date: "
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/SuccessCallBackObjBo.java",
    "chars": 386,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\n\n/**\n * Created with IntelliJ IDEA.\n *\n * @author: 风离\n * @Date: "
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/UpdateMoneyBo.java",
    "chars": 181,
    "preview": "package top.flya.system.domain.bo;\n\nimport lombok.Data;\n\nimport java.math.BigDecimal;\n\n@Data\npublic class UpdateMoneyBo "
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/bo/WxzApplyBo.java",
    "chars": 279,
    "preview": "package top.flya.system.domain.bo;\n\n\nimport lombok.Data;\n\n@Data\npublic class WxzApplyBo {\n\n    private Integer fromUserI"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnArtistVo.java",
    "chars": 1098,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnIntroVo.java",
    "chars": 988,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityConnTagVo.java",
    "chars": 980,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityGroupApplyVo.java",
    "chars": 2047,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityGroupVo.java",
    "chars": 2039,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcActivityVo.java",
    "chars": 2259,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcArtistVo.java",
    "chars": 921,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcIntroVo.java",
    "chars": 1131,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOfficialVo.java",
    "chars": 1320,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrderVo.java",
    "chars": 1681,
    "preview": "package top.flya.system.domain.vo;\n\nimport java.math.BigDecimal;\nimport java.util.Date;\n\nimport com.alibaba.excel.annota"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrganizerTicketVo.java",
    "chars": 946,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcOrganizerVo.java",
    "chars": 1232,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcRegionVo.java",
    "chars": 1185,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcTagVo.java",
    "chars": 1023,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserCollectVo.java",
    "chars": 723,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserHistoryVo.java",
    "chars": 1121,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserPhotoVo.java",
    "chars": 1029,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserTalkVo.java",
    "chars": 1511,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcUserVo.java",
    "chars": 3354,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/PzcViewPagerVo.java",
    "chars": 1084,
    "preview": "package top.flya.system.domain.vo;\n\nimport com.alibaba.excel.annotation.ExcelIgnoreUnannotated;\nimport com.alibaba.excel"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/domain/vo/RefurbishVO.java",
    "chars": 243,
    "preview": "package top.flya.system.domain.vo;\n\nimport lombok.Data;\n\n@Data\npublic class RefurbishVO {\n\n\n    //发起方当前位置\n    private St"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Activity.java",
    "chars": 1223,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.mybatisplus"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnArtist.java",
    "chars": 580,
    "preview": "package top.flya.system.entity;\n\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.a"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnIntro.java",
    "chars": 582,
    "preview": "package top.flya.system.entity;\n\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.a"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/ActivityConnTag.java",
    "chars": 562,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Artist.java",
    "chars": 549,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Event.java",
    "chars": 3443,
    "preview": "package top.flya.system.entity;\n\nimport com.fasterxml.jackson.annotation.JsonProperty;\nimport lombok.Data;\n\nimport java."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/FLBaseEntity.java",
    "chars": 653,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.FieldFill;\nimport com.baomidou.mybatisplus."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Intro.java",
    "chars": 557,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Organizer.java",
    "chars": 782,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableField;\nimport com.baomidou.mybatisplus"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/OrganizerTicket.java",
    "chars": 645,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Price.java",
    "chars": 846,
    "preview": "package top.flya.system.entity;\n\nimport com.fasterxml.jackson.annotation.JsonProperty;\nimport lombok.Data;\n\nimport java."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Region.java",
    "chars": 474,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/Tag.java",
    "chars": 501,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/entity/ViewPager.java",
    "chars": 623,
    "preview": "package top.flya.system.entity;\n\n\nimport com.baomidou.mybatisplus.annotation.TableId;\nimport com.baomidou.mybatisplus.an"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/handel/MessageEventHandler.java",
    "chars": 6492,
    "preview": "package top.flya.system.handel;\n\nimport cn.hutool.core.lang.Dict;\nimport cn.hutool.json.JSONUtil;\nimport com.corundumstu"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/handel/WxPayInitHandel.java",
    "chars": 5122,
    "preview": "package top.flya.system.handel;\n\nimport com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;\nimport com."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnArtistMapper.java",
    "chars": 412,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcActivityConnArtist;\nimport top.flya.system.domain.vo.P"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnIntroMapper.java",
    "chars": 409,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcActivityConnIntro;\nimport top.flya.system.domain.vo.Pz"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityConnTagMapper.java",
    "chars": 397,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcActivityConnTag;\nimport top.flya.system.domain.vo.PzcA"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityGroupApplyMapper.java",
    "chars": 413,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcActivityGroupApply;\nimport top.flya.system.domain.vo.P"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityGroupMapper.java",
    "chars": 855,
    "preview": "package top.flya.system.mapper;\n\nimport com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;\nimport com.ba"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcActivityMapper.java",
    "chars": 544,
    "preview": "package top.flya.system.mapper;\n\nimport org.apache.ibatis.annotations.Param;\nimport top.flya.common.core.mapper.BaseMapp"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcArtistMapper.java",
    "chars": 335,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcArtist;\nimport top.flya.system.domain.vo.PzcArtistVo;\n"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcIntroMapper.java",
    "chars": 332,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcIntro;\nimport top.flya.system.domain.vo.PzcIntroVo;\nim"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOfficialMapper.java",
    "chars": 350,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcOfficial;\nimport top.flya.system.domain.vo.PzcOfficial"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrderMapper.java",
    "chars": 330,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcOrder;\nimport top.flya.system.domain.vo.PzcOrderVo;\nim"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrganizerMapper.java",
    "chars": 357,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcOrganizer;\nimport top.flya.system.domain.vo.PzcOrganiz"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcOrganizerTicketMapper.java",
    "chars": 393,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcOrganizerTicket;\nimport top.flya.system.domain.vo.PzcO"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcRegionMapper.java",
    "chars": 336,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcRegion;\nimport top.flya.system.domain.vo.PzcRegionVo;\n"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcTagMapper.java",
    "chars": 320,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcTag;\nimport top.flya.system.domain.vo.PzcTagVo;\nimport"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserCollectMapper.java",
    "chars": 370,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcUserCollect;\nimport top.flya.system.domain.vo.PzcUserC"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserHistoryMapper.java",
    "chars": 372,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcUserHistory;\nimport top.flya.system.domain.vo.PzcUserH"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserMapper.java",
    "chars": 468,
    "preview": "package top.flya.system.mapper;\n\nimport org.apache.ibatis.annotations.Param;\nimport top.flya.common.core.mapper.BaseMapp"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserPhotoMapper.java",
    "chars": 358,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcUserPhoto;\nimport top.flya.system.domain.vo.PzcUserPho"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcUserTalkMapper.java",
    "chars": 986,
    "preview": "package top.flya.system.mapper;\n\nimport com.baomidou.mybatisplus.extension.plugins.pagination.Page;\nimport org.apache.ib"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/PzcViewPagerMapper.java",
    "chars": 355,
    "preview": "package top.flya.system.mapper;\n\nimport top.flya.system.domain.PzcViewPager;\nimport top.flya.system.domain.vo.PzcViewPag"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/mapper/RegionTreeMapper.java",
    "chars": 2205,
    "preview": "package top.flya.system.mapper;\n\nimport org.springframework.stereotype.Component;\nimport top.flya.system.domain.vo.PzcRe"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnArtistService.java",
    "chars": 1107,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcActivityConnArtist;\nimport top.flya.system.domain.vo."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnIntroService.java",
    "chars": 1116,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcActivityConnIntro;\nimport top.flya.system.domain.vo.P"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityConnTagService.java",
    "chars": 1092,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcActivityConnTag;\nimport top.flya.system.domain.vo.Pzc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityGroupApplyService.java",
    "chars": 1319,
    "preview": "package top.flya.system.service;\n\nimport top.flya.common.core.domain.PageQuery;\nimport top.flya.common.core.page.TableDa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityGroupService.java",
    "chars": 1119,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcActivityGroup;\nimport top.flya.system.domain.vo.PzcAc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcActivityService.java",
    "chars": 1088,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcActivity;\nimport top.flya.system.domain.vo.PzcActivit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcArtistService.java",
    "chars": 928,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcArtist;\nimport top.flya.system.domain.vo.PzcArtistVo;"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcIntroService.java",
    "chars": 891,
    "preview": "package top.flya.system.service;\n\nimport top.flya.common.core.domain.PageQuery;\nimport top.flya.common.core.page.TableDa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOfficialService.java",
    "chars": 963,
    "preview": "package top.flya.system.service;\n\nimport top.flya.common.core.domain.PageQuery;\nimport top.flya.common.core.page.TableDa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrderService.java",
    "chars": 917,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcOrder;\nimport top.flya.system.domain.vo.PzcOrderVo;\ni"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrganizerService.java",
    "chars": 986,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcOrganizer;\nimport top.flya.system.domain.vo.PzcOrgani"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcOrganizerTicketService.java",
    "chars": 1058,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcOrganizerTicket;\nimport top.flya.system.domain.vo.Pzc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcRegionService.java",
    "chars": 888,
    "preview": "package top.flya.system.service;\n\nimport top.flya.common.core.domain.PageQuery;\nimport top.flya.common.core.page.TableDa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcTagService.java",
    "chars": 907,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcTag;\nimport top.flya.system.domain.vo.PzcTagVo;\nimpor"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserCollectService.java",
    "chars": 1013,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcUserCollect;\nimport top.flya.system.domain.vo.PzcUser"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserHistoryService.java",
    "chars": 1027,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcUserHistory;\nimport top.flya.system.domain.vo.PzcUser"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserPhotoService.java",
    "chars": 989,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcUserPhoto;\nimport top.flya.system.domain.vo.PzcUserPh"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserService.java",
    "chars": 954,
    "preview": "package top.flya.system.service;\n\nimport top.flya.common.core.domain.PageQuery;\nimport top.flya.common.core.page.TableDa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcUserTalkService.java",
    "chars": 1054,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcUserTalk;\nimport top.flya.system.domain.vo.PzcUserTal"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/IPzcViewPagerService.java",
    "chars": 978,
    "preview": "package top.flya.system.service;\n\nimport top.flya.system.domain.PzcViewPager;\nimport top.flya.system.domain.vo.PzcViewPa"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnArtistServiceImpl.java",
    "chars": 3672,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport top.flya.common.core.page.TableDataIn"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnIntroServiceImpl.java",
    "chars": 3582,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport top.flya.common.core.page.TableDataIn"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityConnTagServiceImpl.java",
    "chars": 3702,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport top.flya.common.core.page.TableDataIn"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityGroupApplyServiceImpl.java",
    "chars": 5815,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityGroupServiceImpl.java",
    "chars": 10708,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcActivityServiceImpl.java",
    "chars": 27066,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcArtistServiceImpl.java",
    "chars": 3442,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcIntroServiceImpl.java",
    "chars": 3629,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOfficialServiceImpl.java",
    "chars": 4494,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrderServiceImpl.java",
    "chars": 3773,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrganizerServiceImpl.java",
    "chars": 3592,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcOrganizerTicketServiceImpl.java",
    "chars": 3644,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcRegionServiceImpl.java",
    "chars": 3418,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcTagServiceImpl.java",
    "chars": 3379,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserCollectServiceImpl.java",
    "chars": 4776,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport lombok.extern.slf4j.Slf4j;\nimport top"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserHistoryServiceImpl.java",
    "chars": 3952,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserPhotoServiceImpl.java",
    "chars": 3491,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserServiceImpl.java",
    "chars": 4984,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcUserTalkServiceImpl.java",
    "chars": 5578,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.conditi"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/service/impl/PzcViewPagerServiceImpl.java",
    "chars": 3674,
    "preview": "package top.flya.system.service.impl;\n\nimport cn.hutool.core.bean.BeanUtil;\nimport com.baomidou.mybatisplus.core.toolkit"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/ActivityUtils.java",
    "chars": 2763,
    "preview": "package top.flya.system.utils;\n\n\nimport lombok.RequiredArgsConstructor;\nimport lombok.extern.slf4j.Slf4j;\nimport org.spr"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/CreateSign.java",
    "chars": 1447,
    "preview": "package top.flya.system.utils;\n\n/**\n * Created with IntelliJ IDEA.\n *\n * @author: 风离\n * @Date: 2022/06/04/14:06\n * @Desc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/MyPrivateKey.java",
    "chars": 810,
    "preview": "package top.flya.system.utils;\n\n/**\n * Created with IntelliJ IDEA.\n *\n * @author: 风离\n * @Date: 2022/06/04/14:57\n * @Desc"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/WxUtils.java",
    "chars": 8072,
    "preview": "package top.flya.system.utils;\n\nimport cn.hutool.http.HttpUtil;\nimport cn.hutool.json.JSONUtil;\nimport com.alibaba.fastj"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/gaode/GaoDeEnum.java",
    "chars": 495,
    "preview": "package top.flya.system.utils.gaode;\n\nimport lombok.AllArgsConstructor;\nimport lombok.Getter;\n\n/**\n * @Description: 高德地图"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/gaode/GaoDeMapUtil.java",
    "chars": 6269,
    "preview": "package top.flya.system.utils.gaode;\n\nimport com.alibaba.fastjson.JSONArray;\nimport com.alibaba.fastjson.JSONObject;\nimp"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/map/City.java",
    "chars": 321,
    "preview": "package top.flya.system.utils.map;\n\npublic class City {\n    private String name;\n\n    public String getName() {\n        "
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/map/CitySql.java",
    "chars": 1585,
    "preview": "package top.flya.system.utils.map;\n\nimport com.alibaba.fastjson.JSONObject;\nimport lombok.Data;\nimport org.apache.common"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/map/Maps.java",
    "chars": 163,
    "preview": "package top.flya.system.utils.map;\n\nimport lombok.Data;\n\nimport java.util.List;\n\n@Data\npublic class Maps {\n    private S"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/map/city.json",
    "chars": 83412,
    "preview": "[\n  {\n    \"name\": \"北京市\",\n    \"city\": [\n      {\n        \"name\": \"北京市\",\n        \"area\": [\n          \"东城区\",\n          \"西城区\""
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/BaseSearch.java",
    "chars": 3960,
    "preview": "package top.flya.system.utils.sensitivewordsfiliter;\n\nimport java.util.ArrayList;\nimport java.util.Hashtable;\nimport jav"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/TrieNode.java",
    "chars": 1246,
    "preview": "package top.flya.system.utils.sensitivewordsfiliter;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/TrieNode2.java",
    "chars": 1164,
    "preview": "package top.flya.system.utils.sensitivewordsfiliter;\n\nimport java.util.ArrayList;\nimport java.util.HashMap;\nimport java."
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/WordsSearch.java",
    "chars": 4259,
    "preview": "package top.flya.system.utils.sensitivewordsfiliter;\n\n\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class"
  },
  {
    "path": "PaiZhiCheng/src/main/java/top/flya/system/utils/sensitivewordsfiliter/WordsSearchResult.java",
    "chars": 819,
    "preview": "package top.flya.system.utils.sensitivewordsfiliter;\n\npublic class WordsSearchResult {\n\n    public WordsSearchResult(fin"
  }
]

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

About this extraction

This page contains the full source code of the fl1906/music-city GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1013 files (14.9 MB), approximately 1.2M tokens, and a symbol index with 4063 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!