Showing preview only (9,464K chars total). Download the full file or copy to clipboard to get everything.
Repository: zccbbg/ruoyi-mall
Branch: master
Commit: 02be470cd302
Files: 651
Total size: 8.3 MB
Directory structure:
gitextract_hjh0math/
├── .gitignore
├── LICENSE
├── README.md
├── bin/
│ ├── clean.bat
│ ├── package.bat
│ └── run.bat
├── pom.xml
├── ruoyi-admin/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── ruoyi/
│ │ │ ├── RuoYiApplication.java
│ │ │ ├── RuoYiServletInitializer.java
│ │ │ └── web/
│ │ │ ├── controller/
│ │ │ │ ├── common/
│ │ │ │ │ ├── CaptchaController.java
│ │ │ │ │ ├── CodeController.java
│ │ │ │ │ ├── CommonController.java
│ │ │ │ │ └── OssController.java
│ │ │ │ ├── monitor/
│ │ │ │ │ ├── CacheController.java
│ │ │ │ │ ├── ServerController.java
│ │ │ │ │ ├── SysLogininforController.java
│ │ │ │ │ ├── SysOperlogController.java
│ │ │ │ │ └── SysUserOnlineController.java
│ │ │ │ ├── system/
│ │ │ │ │ ├── ConfigController.java
│ │ │ │ │ ├── SysConfigController.java
│ │ │ │ │ ├── SysDeptController.java
│ │ │ │ │ ├── SysDictDataController.java
│ │ │ │ │ ├── SysDictTypeController.java
│ │ │ │ │ ├── SysIndexController.java
│ │ │ │ │ ├── SysLoginController.java
│ │ │ │ │ ├── SysMenuController.java
│ │ │ │ │ ├── SysNoticeController.java
│ │ │ │ │ ├── SysPostController.java
│ │ │ │ │ ├── SysProfileController.java
│ │ │ │ │ ├── SysRegisterController.java
│ │ │ │ │ ├── SysRoleController.java
│ │ │ │ │ └── SysUserController.java
│ │ │ │ └── tool/
│ │ │ │ ├── SwaggerController.java
│ │ │ │ └── TestController.java
│ │ │ └── core/
│ │ │ └── config/
│ │ │ ├── H5MemberInterceptor.java
│ │ │ ├── MvcConfig.java
│ │ │ └── SwaggerConfig.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── spring-devtools.properties
│ │ ├── application-druid.yml
│ │ ├── application.yml
│ │ ├── banner.txt
│ │ ├── i18n/
│ │ │ └── messages.properties
│ │ ├── logback.xml
│ │ └── mybatis/
│ │ └── mybatis-config.xml
│ └── test/
│ └── java/
│ └── com/
│ └── fjp/
│ └── lc/
│ └── test/
│ ├── common/
│ │ └── CommonTest.java
│ └── service/
│ ├── ControllerTest.java
│ ├── OssTest.java
│ ├── ServiceTest.java
│ └── WechatTest.java
├── ruoyi-common/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── ruoyi/
│ └── common/
│ ├── annotation/
│ │ ├── DataScope.java
│ │ ├── DataSource.java
│ │ ├── Excel.java
│ │ ├── Excels.java
│ │ ├── Log.java
│ │ ├── RateLimiter.java
│ │ └── RepeatSubmit.java
│ ├── config/
│ │ ├── RuoYiConfig.java
│ │ ├── SmsConfig.java
│ │ └── properties/
│ │ └── SmsProperties.java
│ ├── constant/
│ │ ├── CacheConstants.java
│ │ ├── CommonConstant.java
│ │ ├── Constants.java
│ │ ├── GenConstants.java
│ │ ├── HttpStatus.java
│ │ ├── ScheduleConstants.java
│ │ └── UserConstants.java
│ ├── core/
│ │ ├── controller/
│ │ │ └── BaseController.java
│ │ ├── domain/
│ │ │ ├── AjaxResult.java
│ │ │ ├── BaseAudit.java
│ │ │ ├── BaseEntity.java
│ │ │ ├── IQuery.java
│ │ │ ├── TreeEntity.java
│ │ │ ├── TreeSelect.java
│ │ │ ├── entity/
│ │ │ │ ├── SysDept.java
│ │ │ │ ├── SysDictData.java
│ │ │ │ ├── SysDictType.java
│ │ │ │ ├── SysMenu.java
│ │ │ │ ├── SysRole.java
│ │ │ │ └── SysUser.java
│ │ │ └── model/
│ │ │ ├── ExtraUserBody.java
│ │ │ ├── LoginBody.java
│ │ │ ├── LoginMember.java
│ │ │ ├── LoginUser.java
│ │ │ ├── PhoneLoginBody.java
│ │ │ ├── RegisterBody.java
│ │ │ └── SmsResult.java
│ │ ├── mybatis/
│ │ │ ├── BaseAuditInterceptor.java
│ │ │ ├── MybatisAutoSetUserAuditInfoInterceptor.java
│ │ │ └── MybatisId.java
│ │ ├── page/
│ │ │ ├── PageDomain.java
│ │ │ ├── TableDataInfo.java
│ │ │ └── TableSupport.java
│ │ ├── redis/
│ │ │ ├── RedisCache.java
│ │ │ └── RedisService.java
│ │ ├── sms/
│ │ │ ├── AliyunSmsTemplate.java
│ │ │ └── SmsTemplate.java
│ │ └── text/
│ │ ├── CharsetKit.java
│ │ ├── Convert.java
│ │ └── StrFormatter.java
│ ├── enums/
│ │ ├── AftersaleStatus.java
│ │ ├── BusinessStatus.java
│ │ ├── BusinessType.java
│ │ ├── DataSourceType.java
│ │ ├── HttpMethod.java
│ │ ├── LimitType.java
│ │ ├── OperatorType.java
│ │ ├── OrderRefundStatus.java
│ │ ├── OrderStatus.java
│ │ ├── TradeStatusEnum.java
│ │ └── UserStatus.java
│ ├── exception/
│ │ ├── DemoModeException.java
│ │ ├── GlobalException.java
│ │ ├── ServiceException.java
│ │ ├── UtilException.java
│ │ ├── base/
│ │ │ └── BaseException.java
│ │ ├── file/
│ │ │ ├── FileException.java
│ │ │ ├── FileNameLengthLimitExceededException.java
│ │ │ ├── FileSizeLimitExceededException.java
│ │ │ └── InvalidExtensionException.java
│ │ ├── job/
│ │ │ └── TaskException.java
│ │ ├── sms/
│ │ │ └── SmsException.java
│ │ └── user/
│ │ ├── CaptchaException.java
│ │ ├── CaptchaExpireException.java
│ │ ├── UserException.java
│ │ └── UserPasswordNotMatchException.java
│ ├── filter/
│ │ ├── RepeatableFilter.java
│ │ ├── RepeatedlyRequestWrapper.java
│ │ ├── XssFilter.java
│ │ └── XssHttpServletRequestWrapper.java
│ └── utils/
│ ├── AesCryptoUtils.java
│ ├── Arith.java
│ ├── DateUtils.java
│ ├── DictUtils.java
│ ├── ExceptionUtil.java
│ ├── IDGenerator.java
│ ├── JsonUtils.java
│ ├── LogUtils.java
│ ├── MessageUtils.java
│ ├── OssUtils.java
│ ├── PhoneUtils.java
│ ├── ResponseUtils.java
│ ├── SecurityUtils.java
│ ├── ServletUtils.java
│ ├── SmsUtils.java
│ ├── SortUtil.java
│ ├── StringUtils.java
│ ├── Threads.java
│ ├── VerifyCodeUtils.java
│ ├── bean/
│ │ └── BeanUtils.java
│ ├── file/
│ │ ├── FileTypeUtils.java
│ │ ├── FileUploadUtils.java
│ │ ├── FileUtils.java
│ │ ├── ImageUtils.java
│ │ └── MimeTypeUtils.java
│ ├── html/
│ │ ├── EscapeUtil.java
│ │ └── HTMLFilter.java
│ ├── http/
│ │ ├── HttpHelper.java
│ │ └── HttpUtils.java
│ ├── ip/
│ │ ├── AddressUtils.java
│ │ └── IpUtils.java
│ ├── poi/
│ │ ├── ExcelHandlerAdapter.java
│ │ └── ExcelUtil.java
│ ├── reflect/
│ │ └── ReflectUtils.java
│ ├── sign/
│ │ ├── Base64.java
│ │ └── Md5Utils.java
│ ├── spring/
│ │ └── SpringUtils.java
│ ├── sql/
│ │ └── SqlUtil.java
│ └── uuid/
│ ├── IdUtils.java
│ └── UUID.java
├── ruoyi-framework/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── ruoyi/
│ └── framework/
│ ├── aspectj/
│ │ ├── DataScopeAspect.java
│ │ ├── DataSourceAspect.java
│ │ ├── LogAspect.java
│ │ ├── LoggingAspect.java
│ │ └── RateLimiterAspect.java
│ ├── config/
│ │ ├── ApplicationConfig.java
│ │ ├── CaptchaConfig.java
│ │ ├── DruidConfig.java
│ │ ├── FastJson2JsonRedisSerializer.java
│ │ ├── FilterConfig.java
│ │ ├── KaptchaTextCreator.java
│ │ ├── LocalDataUtil.java
│ │ ├── MyBatisConfig.java
│ │ ├── MybatisPlusConfig.java
│ │ ├── PaginationConfiguration.java
│ │ ├── RedisConfig.java
│ │ ├── ResourcesConfig.java
│ │ ├── SecurityConfig.java
│ │ ├── ServerConfig.java
│ │ ├── ThreadPoolConfig.java
│ │ └── properties/
│ │ └── DruidProperties.java
│ ├── datasource/
│ │ ├── DynamicDataSource.java
│ │ └── DynamicDataSourceContextHolder.java
│ ├── interceptor/
│ │ ├── RepeatSubmitInterceptor.java
│ │ └── impl/
│ │ └── SameUrlDataInterceptor.java
│ ├── manager/
│ │ ├── AsyncManager.java
│ │ ├── ShutdownManager.java
│ │ └── factory/
│ │ └── AsyncFactory.java
│ ├── security/
│ │ ├── filter/
│ │ │ └── JwtAuthenticationTokenFilter.java
│ │ └── handle/
│ │ ├── AuthenticationEntryPointImpl.java
│ │ └── LogoutSuccessHandlerImpl.java
│ └── web/
│ ├── domain/
│ │ ├── Server.java
│ │ └── server/
│ │ ├── Cpu.java
│ │ ├── Jvm.java
│ │ ├── Mem.java
│ │ ├── Sys.java
│ │ └── SysFile.java
│ ├── exception/
│ │ └── GlobalExceptionHandler.java
│ └── service/
│ ├── PermissionService.java
│ ├── SysLoginService.java
│ ├── SysPermissionService.java
│ ├── SysRegisterService.java
│ ├── TokenService.java
│ └── UserDetailsServiceImpl.java
├── ruoyi-generator/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── ruoyi/
│ │ │ └── generator/
│ │ │ ├── config/
│ │ │ │ ├── GenConfig.java
│ │ │ │ └── GenPathConfig.java
│ │ │ ├── constant/
│ │ │ │ └── ProjectPathConstant.java
│ │ │ ├── controller/
│ │ │ │ └── GenController.java
│ │ │ ├── domain/
│ │ │ │ ├── GenTable.java
│ │ │ │ └── GenTableColumn.java
│ │ │ ├── mapper/
│ │ │ │ ├── GenTableColumnMapper.java
│ │ │ │ └── GenTableMapper.java
│ │ │ ├── service/
│ │ │ │ ├── GenTableColumnServiceImpl.java
│ │ │ │ ├── GenTableServiceImpl.java
│ │ │ │ ├── IGenTableColumnService.java
│ │ │ │ └── IGenTableService.java
│ │ │ └── util/
│ │ │ ├── GenUtils.java
│ │ │ ├── VelocityInitializer.java
│ │ │ └── VelocityUtils.java
│ │ └── resources/
│ │ ├── generator.yml
│ │ ├── mapper/
│ │ │ └── generator/
│ │ │ ├── GenTableColumnMapper.xml
│ │ │ └── GenTableMapper.xml
│ │ └── vm/
│ │ ├── java/
│ │ │ ├── controller.java.vm
│ │ │ ├── convert.java.vm
│ │ │ ├── domain.java.vm
│ │ │ ├── dto.java.vm
│ │ │ ├── example.java.vm
│ │ │ ├── mapper.java.vm
│ │ │ ├── query.java.vm
│ │ │ ├── service.java.vm
│ │ │ ├── serviceImpl.java.vm
│ │ │ ├── sub-domain.java.vm
│ │ │ └── vo.java.vm
│ │ ├── js/
│ │ │ └── api.js.vm
│ │ ├── sql/
│ │ │ └── sql.vm
│ │ ├── vue/
│ │ │ ├── index-tree.vue.vm
│ │ │ └── index.vue.vm
│ │ └── xml/
│ │ └── mapper.xml.vm
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── generator/
│ │ ├── ApplicationTest.java
│ │ ├── CommonTest.java
│ │ ├── SingleComponentTest.java
│ │ └── SpringAppTest.java
│ └── resources/
│ ├── application.yml
│ ├── generator.properties
│ ├── generatorConfig.xml
│ ├── logback.xml
│ └── vm2/
│ ├── java/
│ │ ├── controller.java.vm
│ │ ├── convert.java.vm
│ │ ├── domain.java.vm
│ │ ├── example.java.vm
│ │ ├── mapper.java.vm
│ │ ├── query.java.vm
│ │ ├── service.java.vm
│ │ ├── serviceImpl.java.vm
│ │ └── vo.java.vm
│ ├── js/
│ │ └── api.js.vm
│ ├── sql/
│ │ └── sql.vm
│ ├── vue/
│ │ ├── index-tree.vue.vm
│ │ └── index.vue.vm
│ └── xml/
│ └── mapper.xml.vm
├── ruoyi-mall/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── cyl/
│ │ │ ├── config/
│ │ │ │ ├── AESForWeixinGetPhoneNumber.java
│ │ │ │ ├── RestTemplateConfig.java
│ │ │ │ └── WechatConfig.java
│ │ │ ├── external/
│ │ │ │ ├── ExternalException.java
│ │ │ │ ├── WechatUtil.java
│ │ │ │ └── resp/
│ │ │ │ ├── AccessTokenResp.java
│ │ │ │ ├── BaseResp.java
│ │ │ │ └── UserInfoResp.java
│ │ │ ├── h5/
│ │ │ │ ├── config/
│ │ │ │ │ └── SecurityUtil.java
│ │ │ │ ├── controller/
│ │ │ │ │ ├── CategoryController.java
│ │ │ │ │ ├── H5CommonController.java
│ │ │ │ │ ├── H5MemberAddressController.java
│ │ │ │ │ ├── H5MemberCartController.java
│ │ │ │ │ ├── H5MemberController.java
│ │ │ │ │ ├── H5OrderController.java
│ │ │ │ │ ├── H5ProductController.java
│ │ │ │ │ ├── NoAuthController.java
│ │ │ │ │ ├── PayNotifyController.java
│ │ │ │ │ ├── UserController.java
│ │ │ │ │ └── WechatController2.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ ├── CategoryDTO.java
│ │ │ │ │ │ ├── DeliveryReq.java
│ │ │ │ │ │ ├── OrderProductListDTO.java
│ │ │ │ │ │ └── PayNotifyMessageDTO.java
│ │ │ │ │ ├── form/
│ │ │ │ │ │ ├── ApplyRefundForm.java
│ │ │ │ │ │ ├── BindOpenIDForm.java
│ │ │ │ │ │ ├── CancelOrderForm.java
│ │ │ │ │ │ ├── H5AccountLoginForm.java
│ │ │ │ │ │ ├── H5LoginForm.java
│ │ │ │ │ │ ├── H5SmsLoginForm.java
│ │ │ │ │ │ ├── OrderCreateForm.java
│ │ │ │ │ │ ├── OrderPayForm.java
│ │ │ │ │ │ ├── OrderSubmitForm.java
│ │ │ │ │ │ ├── RegisterForm.java
│ │ │ │ │ │ └── WechatLoginForm.java
│ │ │ │ │ ├── query/
│ │ │ │ │ │ └── OrderH5Query.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── AftersaleRefundInfoVO.java
│ │ │ │ │ ├── CountOrderVO.java
│ │ │ │ │ ├── H5LoginVO.java
│ │ │ │ │ ├── H5OrderVO.java
│ │ │ │ │ ├── H5ProductVO.java
│ │ │ │ │ ├── HomeConfigVO.java
│ │ │ │ │ ├── OrderCalcVO.java
│ │ │ │ │ ├── OrderPayVO.java
│ │ │ │ │ ├── ProductDetailVO.java
│ │ │ │ │ ├── RegisterVO.java
│ │ │ │ │ ├── SkuViewVO.java
│ │ │ │ │ ├── ValidatePhoneVO.java
│ │ │ │ │ └── WechatLoginVO.java
│ │ │ │ └── service/
│ │ │ │ ├── H5MemberAddressService.java
│ │ │ │ ├── H5MemberCartService.java
│ │ │ │ ├── H5MemberService.java
│ │ │ │ └── H5OrderService.java
│ │ │ ├── job/
│ │ │ │ ├── OrderJob.java
│ │ │ │ └── StatisticsJob.java
│ │ │ ├── manager/
│ │ │ │ ├── act/
│ │ │ │ │ ├── constant/
│ │ │ │ │ │ └── IntegralRule.java
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── CouponActivityController.java
│ │ │ │ │ │ ├── H5CouponController.java
│ │ │ │ │ │ ├── H5IntegralHistoryController.java
│ │ │ │ │ │ ├── IntegralHistoryController.java
│ │ │ │ │ │ └── MemberCouponController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── CouponActivityConvert.java
│ │ │ │ │ │ ├── IntegralHistoryConvert.java
│ │ │ │ │ │ └── MemberCouponConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── CouponActivity.java
│ │ │ │ │ │ │ ├── IntegralHistory.java
│ │ │ │ │ │ │ └── MemberCoupon.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── CouponActivityQuery.java
│ │ │ │ │ │ │ ├── IntegralHistoryQuery.java
│ │ │ │ │ │ │ └── MemberCouponQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── CouponActivityVO.java
│ │ │ │ │ │ ├── IntegralHistoryVO.java
│ │ │ │ │ │ ├── IntegralStatVO.java
│ │ │ │ │ │ └── MemberCouponVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── CouponActivityMapper.java
│ │ │ │ │ │ ├── IntegralHistoryMapper.java
│ │ │ │ │ │ └── MemberCouponMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── CouponActivityService.java
│ │ │ │ │ ├── IntegralHistoryService.java
│ │ │ │ │ └── MemberCouponService.java
│ │ │ │ ├── aws/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ └── SystemStatisticsController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ └── SystemStatisticsConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ └── SystemStatistics.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ └── SystemStatisticsQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ └── SystemStatisticsVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ └── SystemStatisticsMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ └── SystemStatisticsService.java
│ │ │ │ ├── oms/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── AftersaleController.java
│ │ │ │ │ │ ├── AftersaleItemController.java
│ │ │ │ │ │ ├── OrderController.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryController.java
│ │ │ │ │ │ ├── OrderItemController.java
│ │ │ │ │ │ ├── OrderOperateHistoryController.java
│ │ │ │ │ │ └── WechatPaymentHistoryController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── AftersaleConvert.java
│ │ │ │ │ │ ├── AftersaleItemConvert.java
│ │ │ │ │ │ ├── OrderConvert.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryConvert.java
│ │ │ │ │ │ ├── OrderItemConvert.java
│ │ │ │ │ │ ├── OrderOperateHistoryConvert.java
│ │ │ │ │ │ └── WechatPaymentHistoryConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── Aftersale.java
│ │ │ │ │ │ │ ├── AftersaleItem.java
│ │ │ │ │ │ │ ├── Order.java
│ │ │ │ │ │ │ ├── OrderDeliveryHistory.java
│ │ │ │ │ │ │ ├── OrderItem.java
│ │ │ │ │ │ │ ├── OrderOperateHistory.java
│ │ │ │ │ │ │ └── WechatPaymentHistory.java
│ │ │ │ │ │ ├── form/
│ │ │ │ │ │ │ ├── DealWithAftersaleForm.java
│ │ │ │ │ │ │ ├── DeliverProductForm.java
│ │ │ │ │ │ │ ├── ManagerAftersaleOrderForm.java
│ │ │ │ │ │ │ └── ManagerOrderQueryForm.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── AftersaleItemQuery.java
│ │ │ │ │ │ │ ├── AftersaleQuery.java
│ │ │ │ │ │ │ ├── OrderDeliveryHistoryQuery.java
│ │ │ │ │ │ │ ├── OrderItemQuery.java
│ │ │ │ │ │ │ ├── OrderOperateHistoryQuery.java
│ │ │ │ │ │ │ ├── OrderQuery.java
│ │ │ │ │ │ │ └── WechatPaymentHistoryQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── AftersaleItemVO.java
│ │ │ │ │ │ ├── AftersaleVO.java
│ │ │ │ │ │ ├── ManagerOrderAddressVo.java
│ │ │ │ │ │ ├── ManagerOrderDetailVO.java
│ │ │ │ │ │ ├── ManagerOrderProductVO.java
│ │ │ │ │ │ ├── ManagerOrderVO.java
│ │ │ │ │ │ ├── ManagerRefundOrderDetailVO.java
│ │ │ │ │ │ ├── ManagerRefundOrderVO.java
│ │ │ │ │ │ ├── OrderAddressVO.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryVO.java
│ │ │ │ │ │ ├── OrderItemVO.java
│ │ │ │ │ │ ├── OrderOperateHistoryVO.java
│ │ │ │ │ │ ├── OrderVO.java
│ │ │ │ │ │ ├── RefundInfoVO.java
│ │ │ │ │ │ └── WechatPaymentHistoryVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── AftersaleItemMapper.java
│ │ │ │ │ │ ├── AftersaleMapper.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryMapper.java
│ │ │ │ │ │ ├── OrderItemMapper.java
│ │ │ │ │ │ ├── OrderMapper.java
│ │ │ │ │ │ ├── OrderOperateHistoryMapper.java
│ │ │ │ │ │ └── WechatPaymentHistoryMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── AftersaleItemService.java
│ │ │ │ │ ├── AftersaleService.java
│ │ │ │ │ ├── OrderDeliveryHistoryService.java
│ │ │ │ │ ├── OrderItemService.java
│ │ │ │ │ ├── OrderOperateHistoryService.java
│ │ │ │ │ ├── OrderService.java
│ │ │ │ │ └── WechatPaymentHistoryService.java
│ │ │ │ ├── pms/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── BrandController.java
│ │ │ │ │ │ ├── ProductCategoryController.java
│ │ │ │ │ │ ├── ProductController.java
│ │ │ │ │ │ └── SkuController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── BrandConvert.java
│ │ │ │ │ │ ├── ProductCategoryConvert.java
│ │ │ │ │ │ ├── ProductConvert.java
│ │ │ │ │ │ └── SkuConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── Brand.java
│ │ │ │ │ │ │ ├── Product.java
│ │ │ │ │ │ │ ├── ProductCategory.java
│ │ │ │ │ │ │ └── Sku.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── BrandQuery.java
│ │ │ │ │ │ │ ├── ProductCategoryQuery.java
│ │ │ │ │ │ │ ├── ProductQuery.java
│ │ │ │ │ │ │ └── SkuQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── BrandVO.java
│ │ │ │ │ │ ├── ProductCategoryVO.java
│ │ │ │ │ │ ├── ProductVO.java
│ │ │ │ │ │ └── SkuVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── BrandMapper.java
│ │ │ │ │ │ ├── ProductCategoryMapper.java
│ │ │ │ │ │ ├── ProductMapper.java
│ │ │ │ │ │ └── SkuMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── BrandService.java
│ │ │ │ │ ├── ProductCategoryService.java
│ │ │ │ │ ├── ProductService.java
│ │ │ │ │ └── SkuService.java
│ │ │ │ ├── statistics/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ └── IndexStatisticsManagerController.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── GoodsStatisticsQuery.java
│ │ │ │ │ │ │ └── OrderStatisticsQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── MemberAndCartStatisticsVO.java
│ │ │ │ │ │ ├── OrderAndAftersaleStatisticsVO.java
│ │ │ │ │ │ ├── OrderStatisticsVO.java
│ │ │ │ │ │ └── ProductTopVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ └── IndexStatisticsMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ └── IndexStatisticsService.java
│ │ │ │ └── ums/
│ │ │ │ ├── controller/
│ │ │ │ │ ├── FeedbackController.java
│ │ │ │ │ ├── MemberAccountController.java
│ │ │ │ │ ├── MemberAddressController.java
│ │ │ │ │ ├── MemberCartController.java
│ │ │ │ │ ├── MemberController.java
│ │ │ │ │ ├── MemberLogininforController.java
│ │ │ │ │ ├── MemberWechatController.java
│ │ │ │ │ └── PlatformVerifyController.java
│ │ │ │ ├── convert/
│ │ │ │ │ ├── FeedbackConvert.java
│ │ │ │ │ ├── MemberAccountConvert.java
│ │ │ │ │ ├── MemberAddressConvert.java
│ │ │ │ │ ├── MemberCartConvert.java
│ │ │ │ │ ├── MemberConvert.java
│ │ │ │ │ ├── MemberLogininforConvert.java
│ │ │ │ │ └── MemberWechatConvert.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ └── AddressDTO.java
│ │ │ │ │ ├── entity/
│ │ │ │ │ │ ├── Address.java
│ │ │ │ │ │ ├── Feedback.java
│ │ │ │ │ │ ├── Member.java
│ │ │ │ │ │ ├── MemberAccount.java
│ │ │ │ │ │ ├── MemberAddress.java
│ │ │ │ │ │ ├── MemberCart.java
│ │ │ │ │ │ ├── MemberLogininfor.java
│ │ │ │ │ │ └── MemberWechat.java
│ │ │ │ │ ├── form/
│ │ │ │ │ │ ├── AddMemberCartForm.java
│ │ │ │ │ │ ├── ChangeMemberStatusForm.java
│ │ │ │ │ │ ├── MemberAddressForm.java
│ │ │ │ │ │ └── UpdateMemberCartForm.java
│ │ │ │ │ ├── query/
│ │ │ │ │ │ ├── FeedbackQuery.java
│ │ │ │ │ │ ├── MemberAccountQuery.java
│ │ │ │ │ │ ├── MemberAddressQuery.java
│ │ │ │ │ │ ├── MemberCartQuery.java
│ │ │ │ │ │ ├── MemberLogininforQuery.java
│ │ │ │ │ │ ├── MemberQuery.java
│ │ │ │ │ │ └── MemberWechatQuery.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── FeedbackVO.java
│ │ │ │ │ ├── MemberAccountVO.java
│ │ │ │ │ ├── MemberAddressVO.java
│ │ │ │ │ ├── MemberCartVO.java
│ │ │ │ │ ├── MemberDataStatisticsVO.java
│ │ │ │ │ ├── MemberLogininforVO.java
│ │ │ │ │ ├── MemberVO.java
│ │ │ │ │ └── MemberWechatVO.java
│ │ │ │ ├── mapper/
│ │ │ │ │ ├── AddressMapper.java
│ │ │ │ │ ├── FeedbackMapper.java
│ │ │ │ │ ├── MemberAccountMapper.java
│ │ │ │ │ ├── MemberAddressMapper.java
│ │ │ │ │ ├── MemberCartMapper.java
│ │ │ │ │ ├── MemberLogininforMapper.java
│ │ │ │ │ ├── MemberMapper.java
│ │ │ │ │ └── MemberWechatMapper.java
│ │ │ │ └── service/
│ │ │ │ ├── FeedbackService.java
│ │ │ │ ├── MemberAccountService.java
│ │ │ │ ├── MemberAddressService.java
│ │ │ │ ├── MemberCartService.java
│ │ │ │ ├── MemberLogininforService.java
│ │ │ │ ├── MemberService.java
│ │ │ │ └── MemberWechatService.java
│ │ │ ├── sms/
│ │ │ │ ├── controller/
│ │ │ │ │ └── SmsController.java
│ │ │ │ └── service/
│ │ │ │ └── SmsService.java
│ │ │ └── wechat/
│ │ │ ├── WechatAuthService.java
│ │ │ ├── WechatController.java
│ │ │ ├── WechatPayConfig.java
│ │ │ ├── WechatPayData.java
│ │ │ ├── WechatPayService.java
│ │ │ ├── WechatPayUtil.java
│ │ │ └── response/
│ │ │ ├── JssdkConfigResponse.java
│ │ │ ├── WeChatAmount.java
│ │ │ ├── WeChatPayNotify.java
│ │ │ ├── WeChatPayer.java
│ │ │ └── WechatUserAuth.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── mapper/
│ │ ├── act/
│ │ │ ├── CouponActivityMapper.xml
│ │ │ ├── IntegralHistoryMapper.xml
│ │ │ └── MemberCouponMapper.xml
│ │ ├── aws/
│ │ │ └── SystemStatisticsMapper.xml
│ │ ├── oms/
│ │ │ ├── AftersaleItemMapper.xml
│ │ │ ├── AftersaleMapper.xml
│ │ │ ├── OrderDeliveryHistoryMapper.xml
│ │ │ ├── OrderItemMapper.xml
│ │ │ ├── OrderMapper.xml
│ │ │ ├── OrderOperateHistoryMapper.xml
│ │ │ └── WechatPaymentHistoryMapper.xml
│ │ ├── pms/
│ │ │ ├── BrandMapper.xml
│ │ │ ├── ProductCategoryMapper.xml
│ │ │ ├── ProductMapper.xml
│ │ │ └── SkuMapper.xml
│ │ ├── statistics/
│ │ │ └── IndexStatisticsMapper.xml
│ │ └── ums/
│ │ ├── AddressMapper.xml
│ │ ├── FeedbackMapper.xml
│ │ ├── MemberAccountMapper.xml
│ │ ├── MemberAddressMapper.xml
│ │ ├── MemberCartMapper.xml
│ │ ├── MemberLogininforMapper.xml
│ │ ├── MemberMapper.xml
│ │ └── MemberWechatMapper.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── ruoyimall/
│ └── RuoyiMallApplicationTests.java
├── ruoyi-quartz/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── quartz/
│ │ ├── config/
│ │ │ └── ScheduleConfig.java
│ │ ├── controller/
│ │ │ ├── SysJobController.java
│ │ │ └── SysJobLogController.java
│ │ ├── domain/
│ │ │ ├── SysJob.java
│ │ │ └── SysJobLog.java
│ │ ├── mapper/
│ │ │ ├── SysJobLogMapper.java
│ │ │ └── SysJobMapper.java
│ │ ├── service/
│ │ │ ├── ISysJobLogService.java
│ │ │ ├── ISysJobService.java
│ │ │ └── impl/
│ │ │ ├── SysJobLogServiceImpl.java
│ │ │ └── SysJobServiceImpl.java
│ │ ├── task/
│ │ │ └── RyTask.java
│ │ └── util/
│ │ ├── AbstractQuartzJob.java
│ │ ├── CronUtils.java
│ │ ├── JobInvokeUtil.java
│ │ ├── QuartzDisallowConcurrentExecution.java
│ │ ├── QuartzJobExecution.java
│ │ └── ScheduleUtils.java
│ └── resources/
│ └── mapper/
│ └── quartz/
│ ├── SysJobLogMapper.xml
│ └── SysJobMapper.xml
├── ruoyi-system/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── system/
│ │ ├── domain/
│ │ │ ├── SysCache.java
│ │ │ ├── SysConfig.java
│ │ │ ├── SysLogininfor.java
│ │ │ ├── SysNotice.java
│ │ │ ├── SysOperLog.java
│ │ │ ├── SysPost.java
│ │ │ ├── SysRoleDept.java
│ │ │ ├── SysRoleMenu.java
│ │ │ ├── SysUserOnline.java
│ │ │ ├── SysUserPost.java
│ │ │ ├── SysUserRole.java
│ │ │ └── vo/
│ │ │ ├── MetaVo.java
│ │ │ ├── RouterVo.java
│ │ │ └── SysConfigVo.java
│ │ ├── mapper/
│ │ │ ├── SysConfigMapper.java
│ │ │ ├── SysDeptMapper.java
│ │ │ ├── SysDictDataMapper.java
│ │ │ ├── SysDictTypeMapper.java
│ │ │ ├── SysLogininforMapper.java
│ │ │ ├── SysMenuMapper.java
│ │ │ ├── SysNoticeMapper.java
│ │ │ ├── SysOperLogMapper.java
│ │ │ ├── SysPostMapper.java
│ │ │ ├── SysRoleDeptMapper.java
│ │ │ ├── SysRoleMapper.java
│ │ │ ├── SysRoleMenuMapper.java
│ │ │ ├── SysUserMapper.java
│ │ │ ├── SysUserPostMapper.java
│ │ │ └── SysUserRoleMapper.java
│ │ └── service/
│ │ ├── ISysConfigService.java
│ │ ├── ISysDeptService.java
│ │ ├── ISysDictDataService.java
│ │ ├── ISysDictTypeService.java
│ │ ├── ISysLogininforService.java
│ │ ├── ISysMenuService.java
│ │ ├── ISysNoticeService.java
│ │ ├── ISysOperLogService.java
│ │ ├── ISysPostService.java
│ │ ├── ISysRoleService.java
│ │ ├── ISysUserOnlineService.java
│ │ ├── ISysUserService.java
│ │ ├── PhoneCodeService.java
│ │ └── impl/
│ │ ├── SysConfigServiceImpl.java
│ │ ├── SysDeptServiceImpl.java
│ │ ├── SysDictDataServiceImpl.java
│ │ ├── SysDictTypeServiceImpl.java
│ │ ├── SysLogininforServiceImpl.java
│ │ ├── SysMenuServiceImpl.java
│ │ ├── SysNoticeServiceImpl.java
│ │ ├── SysOperLogServiceImpl.java
│ │ ├── SysPostServiceImpl.java
│ │ ├── SysRoleServiceImpl.java
│ │ ├── SysUserOnlineServiceImpl.java
│ │ └── SysUserServiceImpl.java
│ └── resources/
│ └── mapper/
│ └── system/
│ ├── SysConfigMapper.xml
│ ├── SysDeptMapper.xml
│ ├── SysDictDataMapper.xml
│ ├── SysDictTypeMapper.xml
│ ├── SysLogininforMapper.xml
│ ├── SysMenuMapper.xml
│ ├── SysNoticeMapper.xml
│ ├── SysOperLogMapper.xml
│ ├── SysPostMapper.xml
│ ├── SysRoleDeptMapper.xml
│ ├── SysRoleMapper.xml
│ ├── SysRoleMenuMapper.xml
│ ├── SysUserMapper.xml
│ ├── SysUserPostMapper.xml
│ └── SysUserRoleMapper.xml
├── ry.bat
├── ry.sh
└── sql/
├── address.sql
└── 数据和结构.sql
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
######################################################################
# Build Tools
.gradle
/build/
!gradle/wrapper/gradle-wrapper.jar
target/
!.mvn/wrapper/maven-wrapper.jar
######################################################################
# IDE
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
nbproject/private/
build/*
nbbuild/
dist/
nbdist/
.nb-gradle/
######################################################################
# Others
*.log
*.xml.versionsBackup
*.swp
!*/build/*.java
!*/build/*.html
!*/build/*.xml
/sql/local.sql
/ruoyi-admin/src/main/resources/application-dev.yml
/ruoyi-admin/src/main/resources/application-prod.yml
*local*.yml
apiclient_key.pem
================================================
FILE: LICENSE
================================================
# Open Source License
ruoyi-mall is licensed under a modified version of the Apache License 2.0, with the following additional conditions:
1. ruoyi-mall may be utilized commercially, including as a backend service for other applications or as an application development platform for enterprises. Should the conditions below be met, a commercial license must be obtained from the producer:
a. Multi-tenant service: Unless explicitly authorized by ruoyi-mall in writing, you may not use the ruoyi-mall source code to operate a multi-tenant environment.
b. LOGO and copyright information: In the process of using ruoyi-mall's frontend, you may not remove or moruoyi-mall the LOGO or copyright information in the ruoyi-mall console or applications. This restriction is inapplicable to uses of ruoyi-mall that do not involve its frontend.
- Frontend Definition: For the purposes of this license, the "frontend" of ruoyi-mall includes all components located in the web/ directory when running ruoyi-mall from the raw source code, or the "web" image when running ruoyi-mall with Docker.
2. As a contributor, you should agree that:
a. The producer can adjust the open-source agreement to be more strict or relaxed as deemed necessary.
b. Your contributed code may be used for commercial purposes, including but not limited to its cloud business operations.
Apart from the specific conditions mentioned above, all other rights and restrictions follow the Apache License 2.0. Detailed information about the Apache License 2.0 can be found at http://www.apache.org/licenses/LICENSE-2.0.
The interactive design of this product is protected by appearance patent.
================================================
FILE: README.md
================================================
## 平台简介
若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。我们在此基础上开发了ruoyi-mall,希望能给做商城的朋友减轻工作量。
* 前端采用Vue、Element UI。
* 后端采用Spring Boot、Spring Security、Redis & Jwt。
* 权限认证使用Jwt,支持多终端认证系统。
* 支持加载动态权限菜单,多方式轻松权限控制。
* 高效率开发,使用代码生成器可以一键生成前后端代码。
## B站讲解视频
https://www.bilibili.com/video/BV16N4y1d7MM
## 若依视频教程
对若依框架不了解,不知道怎么部署、修改密码等操作的,请参考:https://www.bilibili.com/video/BV1Fi4y1q74p/
## 本地运行文档
https://docs.ichengle.top/mall/run.html
## 系统部署文档
https://docs.ichengle.top/mall/ops.html
## 特别注意
jdk请选择1.8~11之间的,不然mybaties会报错
## 项目地址
| | gitee | github |
|:--------------:|:----------------------------------------|:---------------------------------------------|
| 管理端vue element | https://gitee.com/zccbbg/ruoyi-mall-vue | https://github.com/zccbbg/ruoyi-mall-vue |
| h5 uniapp | https://gitee.com/zccbbg/ruoyi-mall-uniapp | https://github.com/zccbbg/ruoyi-mall-uniapp |
## 在线体验
### 管理后台演示地址
http://mall.ichengle.top
### 小程序和h5
<img src="doc/小程序演示.jpg" width="200px">
<img src="doc/h5演示.png" width="200px">
## 若依技术专栏
关注文末公众号回复:星球
## 若依mall功能
1. 首页:

2. PMS商品管理:


3. UMS会员管理:
会员列表:

购物车:

4. OMS订单管理:
订单列表:

售后列表:

5. SMS营销管理:


6. CMS内容管理:

## 科技企业招聘、内推渠道
如果投简历经常已读不回,可以试试这个小程序,回复率相对高一点:

## 交流群/技术支持
| 公众号 |
|:------------------------------------------:|
| <img src="doc/datacall.jpg" width="200px"> |
扫公众号二维码,关注后,回复:“加群”
================================================
FILE: bin/clean.bat
================================================
@echo off
echo.
echo [Ϣ] target·
echo.
%~d0
cd %~dp0
cd ..
call mvn clean
pause
================================================
FILE: bin/package.bat
================================================
@echo off
echo.
echo [Ϣ] Weḅwar/jarļ
echo.
%~d0
cd %~dp0
cd ..
call mvn clean package -Dmaven.test.skip=true
pause
================================================
FILE: bin/run.bat
================================================
@echo off
echo.
echo [Ϣ] ʹJarWeb̡
echo.
cd %~dp0
cd ../ruoyi-admin/target
set JAVA_OPTS=-Xms256m -Xmx1024m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=512m
java -jar %JAVA_OPTS% ruoyi-admin.jar
cd bin
pause
================================================
FILE: 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">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi</artifactId>
<version>3.7.0</version>
<name>ruoyi</name>
<properties>
<ruoyi.version>3.7.0</ruoyi.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>
<druid.version>1.2.6</druid.version>
<bitwalker.version>1.21</bitwalker.version>
<swagger.version>3.0.0</swagger.version>
<kaptcha.version>2.3.2</kaptcha.version>
<mybatis-spring-boot.version>2.1.4</mybatis-spring-boot.version>
<pagehelper.boot.version>1.3.1</pagehelper.boot.version>
<fastjson.version>2.0.43</fastjson.version>
<oshi.version>5.8.0</oshi.version>
<jna.version>5.8.0</jna.version>
<commons.io.version>2.11.0</commons.io.version>
<commons.fileupload.version>1.4</commons.fileupload.version>
<commons.collections.version>3.2.2</commons.collections.version>
<poi.version>4.1.2</poi.version>
<velocity.version>1.7</velocity.version>
<jwt.version>0.9.1</jwt.version>
<lombok.version>1.16.20</lombok.version>
<mybatis.plus.version>3.4.0</mybatis.plus.version>
<!-- SMS 配置 -->
<aliyun.sms.version>2.0.23</aliyun.sms.version>
</properties>
<!-- 依赖声明 -->
<dependencyManagement>
<dependencies>
<!-- SpringBoot的依赖配置-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.2.13.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- 阿里数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>${bitwalker.version}</version>
</dependency>
<!-- SpringBoot集成mybatis框架 -->
<!--<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis-spring-boot.version}</version>
</dependency>-->
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${pagehelper.boot.version}</version>
</dependency>
<!-- 获取系统信息 -->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>${oshi.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna</artifactId>
<version>${jna.version}</version>
</dependency>
<dependency>
<groupId>net.java.dev.jna</groupId>
<artifactId>jna-platform</artifactId>
<version>${jna.version}</version>
</dependency>
<!-- Swagger3依赖 -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
<version>${swagger.version}</version>
<exclusions>
<exclusion>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
</exclusion>
<exclusion>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons.io.version}</version>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons.fileupload.version}</version>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.15.2</version>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
</dependency>
<!-- velocity代码生成使用模板 -->
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>${velocity.version}</version>
<exclusions>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- collections工具类 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>${commons.collections.version}</version>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<!-- Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jwt.version}</version>
</dependency>
<!-- 验证码 -->
<dependency>
<groupId>com.github.penggle</groupId>
<artifactId>kaptcha</artifactId>
<version>${kaptcha.version}</version>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 系统模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-system</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 通用工具-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-common</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.13</version>
</dependency>
<!-- 代码转换产生器 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>${aliyun.sms.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<modules>
<module>ruoyi-admin</module>
<module>ruoyi-framework</module>
<module>ruoyi-system</module>
<module>ruoyi-quartz</module>
<module>ruoyi-generator</module>
<module>ruoyi-common</module>
<module>ruoyi-mall</module>
</modules>
<packaging>pom</packaging>
<dependencies>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
<encoding>${project.build.sourceEncoding}</encoding>
<annotationProcessorPaths>
<path>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct-processor</artifactId>
<version>1.4.2.Final</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
</path>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-mapstruct-binding</artifactId>
<version>0.2.0</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>
================================================
FILE: ruoyi-admin/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</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<packaging>jar</packaging>
<artifactId>ruoyi-admin</artifactId>
<description>
web服务入口
</description>
<dependencies>
<!-- spring-boot-devtools, 在部分情况可能导致 类型异常或者 linkerror -->
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional> <!– 表示依赖不会传递 –>
</dependency>-->
<!-- swagger3-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-boot-starter</artifactId>
</dependency>
<!-- 防止进入swagger页面报类型转换错误,排除3.0.0中的引用,手动增加1.6.2版本 -->
<dependency>
<groupId>io.swagger</groupId>
<artifactId>swagger-models</artifactId>
<version>1.6.2</version>
</dependency>
<!-- Mysql驱动包 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- 核心模块-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-framework</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 定时任务-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-quartz</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<!-- 代码生成-->
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-generator</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<dependency>
<groupId>com.ruoyi</groupId>
<artifactId>ruoyi-mall</artifactId>
<version>${ruoyi.version}</version>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.5.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>test</scope>
</dependency>
<!-- 代码转换产生器 -->
<dependency>
<groupId>org.mapstruct</groupId>
<artifactId>mapstruct</artifactId>
<version>1.4.2.Final</version>
</dependency>
<!-- aliyun sms -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.1.0</version>
<configuration>
<failOnMissingWebXml>false</failOnMissingWebXml>
<warName>${project.artifactId}</warName>
</configuration>
</plugin>
</plugins>
<finalName>${project.artifactId}</finalName>
</build>
</project>
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
================================================
package com.ruoyi;
import com.cyl.wechat.WechatPayData;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* 启动程序
*
* @author ruoyi
*/
@SpringBootApplication(
exclude = {DataSourceAutoConfiguration.class},
scanBasePackages = {"com.ruoyi", "com.cyl"}
)
@EnableConfigurationProperties(WechatPayData.class)
@EnableScheduling
public class RuoYiApplication {
public static void main(String[] args) {
// System.setProperty("spring.devtools.restart.enabled", "false");
SpringApplication.run(RuoYiApplication.class, args);
System.out.println("(♥◠‿◠)ノ゙ 若依启动成功 ლ(´ڡ`ლ)゙ \n" +
" .-------. ____ __ \n" +
" | _ _ \\ \\ \\ / / \n" +
" | ( ' ) | \\ _. / ' \n" +
" |(_ o _) / _( )_ .' \n" +
" | (_,_).' __ ___(_ o _)' \n" +
" | |\\ \\ | || |(_,_)' \n" +
" | | \\ `' /| `-' / \n" +
" | | \\ / \\ / \n" +
" ''-' `'-' `-..-' ");
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java
================================================
package com.ruoyi;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
/**
* web容器中进行部署
*
* @author ruoyi
*/
public class RuoYiServletInitializer extends SpringBootServletInitializer
{
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application)
{
return application.sources(RuoYiApplication.class);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
================================================
package com.ruoyi.web.controller.common;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletResponse;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.util.FastByteArrayOutputStream;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.google.code.kaptcha.Producer;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.utils.sign.Base64;
import com.ruoyi.common.utils.uuid.IdUtils;
import com.ruoyi.system.service.ISysConfigService;
/**
* 验证码操作处理
*
* @author ruoyi
*/
@RestController
public class CaptchaController
{
@Resource(name = "captchaProducer")
private Producer captchaProducer;
@Resource(name = "captchaProducerMath")
private Producer captchaProducerMath;
@Autowired
private RedisCache redisCache;
// 验证码类型
@Value("${ruoyi.captchaType}")
private String captchaType;
@Autowired
private ISysConfigService configService;
/**
* 生成验证码
*/
@GetMapping("/captchaImage")
public AjaxResult getCode(HttpServletResponse response) throws IOException
{
AjaxResult ajax = AjaxResult.success();
boolean captchaOnOff = configService.selectCaptchaOnOff();
ajax.put("captchaOnOff", captchaOnOff);
if (!captchaOnOff)
{
return ajax;
}
// 保存验证码信息
String uuid = IdUtils.simpleUUID();
String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
String capStr = null, code = null;
BufferedImage image = null;
// 生成验证码
if ("math".equals(captchaType))
{
String capText = captchaProducerMath.createText();
capStr = capText.substring(0, capText.lastIndexOf("@"));
code = capText.substring(capText.lastIndexOf("@") + 1);
image = captchaProducerMath.createImage(capStr);
}
else if ("char".equals(captchaType))
{
capStr = code = captchaProducer.createText();
image = captchaProducer.createImage(capStr);
}
redisCache.setCacheObject(verifyKey, code, Constants.CAPTCHA_EXPIRATION, TimeUnit.MINUTES);
// 转换流信息写出
FastByteArrayOutputStream os = new FastByteArrayOutputStream();
try
{
ImageIO.write(image, "jpg", os);
}
catch (IOException e)
{
return AjaxResult.error(e.getMessage());
}
ajax.put("uuid", uuid);
ajax.put("img", Base64.encode(os.toByteArray()));
return ajax;
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java
================================================
package com.ruoyi.web.controller.common;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.service.PhoneCodeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@RestController
@RequestMapping("/code")
public class CodeController extends BaseController {
@Value("${ruoyi.traceIdName}")
private String traceIdName;
@Autowired
private PhoneCodeService phoneCodeService;
@GetMapping("/get")
public AjaxResult getCode(HttpServletRequest request, @RequestParam String phone) {
String uuid = request.getHeader(traceIdName);
boolean res = phoneCodeService.obtainCode(uuid, phone);
return AjaxResult.success(res);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
================================================
package com.ruoyi.web.controller.common;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.manager.ums.domain.entity.Address;
import com.cyl.manager.ums.mapper.AddressMapper;
import com.cyl.manager.ums.domain.dto.AddressDTO;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.redis.RedisService;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.common.utils.file.MimeTypeUtils;
import com.ruoyi.framework.config.ServerConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
/**
* 通用请求处理
*
* @author ruoyi
*/
@RestController
public class CommonController
{
private static final Logger log = LoggerFactory.getLogger(CommonController.class);
@Autowired
private ServerConfig serverConfig;
@Autowired
private RedisService redisService;
@Autowired
private AddressMapper addressMapper;
/**
* 通用下载请求
*
* @param fileName 文件名称
* @param delete 是否删除
*/
@GetMapping("common/download")
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request)
{
try
{
if (!FileUtils.checkAllowDownload(fileName))
{
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName));
}
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1);
String filePath = RuoYiConfig.getDownloadPath() + fileName;
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, realFileName);
FileUtils.writeBytes(filePath, response.getOutputStream());
if (delete)
{
FileUtils.deleteFile(filePath);
}
}
catch (Exception e)
{
log.error("下载文件失败", e);
}
}
/**
* 通用上传请求
*/
@PostMapping("/common/upload")
public AjaxResult uploadFile(MultipartFile file) throws Exception
{
try
{
// 上传文件路径
String filePath = RuoYiConfig.getUploadPath();
// 上传并返回新文件名称
String fileName = FileUploadUtils.upload(filePath, file, MimeTypeUtils.isImg(file.getContentType()));
String url = serverConfig.getUrl() + fileName;
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", fileName);
ajax.put("url", url);
return ajax;
}
catch (Exception e)
{
return AjaxResult.error(e.getMessage());
}
}
/**
* 本地资源通用下载
*/
@GetMapping("/common/download/resource")
public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)
throws Exception
{
try
{
if (!FileUtils.checkAllowDownload(resource))
{
throw new Exception(StringUtils.format("资源文件({})非法,不允许下载。 ", resource));
}
// 本地资源路径
String localPath = RuoYiConfig.getProfile();
// 数据库资源地址
String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX);
// 下载名称
String downloadName = StringUtils.substringAfterLast(downloadPath, "/");
response.setContentType(MediaType.APPLICATION_OCTET_STREAM_VALUE);
FileUtils.setAttachmentResponseHeader(response, downloadName);
FileUtils.writeBytes(downloadPath, response.getOutputStream());
}
catch (Exception e)
{
log.error("下载文件失败", e);
}
}
@GetMapping("/common/area")
public AjaxResult getAddressList() {
String addresses = redisService.getAddressList();
if (org.apache.commons.lang3.StringUtils.isNotEmpty(addresses)) {
List<AddressDTO> addressDTOList = JSON.parseArray(addresses, AddressDTO.class);
if(addressDTOList.size()>0){
return AjaxResult.success(addressDTOList);
}
}
QueryWrapper<Address> addressQueryWrapper = new QueryWrapper<>();
addressQueryWrapper.in("level", Arrays.asList(0,1,2));
List<Address> addressList = addressMapper.selectList(addressQueryWrapper);
Map<Long, List<Address>> cityMap = addressList.stream().filter(it -> it.getLevel() == 1).collect(Collectors.groupingBy(it -> it.getParentCode()));
Map<Long, List<Address>> districtMap = addressList.stream().filter(it -> it.getLevel() == 2).collect(Collectors.groupingBy(it -> it.getParentCode()));
List<AddressDTO> result = new ArrayList<>();
addressList.stream().filter(it -> it.getLevel() == 0).forEach(it -> {
AddressDTO dto = new AddressDTO();
dto.setId(it.getCode());
dto.setLevel("province");
dto.setName(it.getName());
dto.setPid(0L);
//获取城市列表
List<AddressDTO> child = new ArrayList<>();
if (cityMap.containsKey(it.getCode())) {
cityMap.get(it.getCode()).forEach(city -> {
AddressDTO cityDto = new AddressDTO();
cityDto.setId(city.getCode());
cityDto.setLevel("city");
cityDto.setName(city.getName());
cityDto.setPid(city.getParentCode());
cityDto.setChildren(districtMap.containsKey(city.getCode()) ?
districtMap.get(city.getCode()).stream().map(district -> {
AddressDTO districtDto = new AddressDTO();
districtDto.setId(district.getCode());
districtDto.setLevel("district");
districtDto.setName(district.getName());
districtDto.setPid(district.getParentCode());
return districtDto;
}).collect(Collectors.toList()) : Collections.EMPTY_LIST);
child.add(cityDto);
});
}
dto.setChildren(child);
result.add(dto);
});
redisService.setAddressList(JSON.toJSONString(result));
return AjaxResult.success(result);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java
================================================
package com.ruoyi.web.controller.common;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.OssUtils;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@RestController
@Api(tags = "OSS对象存储Controller")
@RequestMapping("/oss")
public class OssController {
@Autowired
OssUtils ossUtils;
@PostMapping("upload")
public AjaxResult uploadFile(MultipartFile file) {
//返回上传oss的url
String url = ossUtils.uploadOneFile(file);
AjaxResult ajax = AjaxResult.success();
ajax.put("fileName", file.getOriginalFilename());
ajax.put("url", url);
return ajax;
}
@PostMapping("uploadArrayFile")
public List<String> uploadArrayFile(MultipartFile[] files) {
//返回上传oss的url
return ossUtils.uploadArrayFile(files);
}
@PostMapping("deleteFile")
public boolean deleteFile(@RequestBody String fileUrl) {
//返回是否删除成功
return ossUtils.deleteFile(fileUrl);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
================================================
package com.ruoyi.web.controller.monitor;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import java.util.*;
/**
* 缓存监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/monitor/cache")
public class CacheController
{
@Autowired
private RedisTemplate<String, String> redisTemplate;
private final static List<SysCache> caches = new ArrayList<SysCache>();
{
caches.add(new SysCache(CacheConstants.LOGIN_TOKEN_KEY, "用户信息"));
caches.add(new SysCache(CacheConstants.SYS_CONFIG_KEY, "配置信息"));
caches.add(new SysCache(CacheConstants.SYS_DICT_KEY, "数据字典"));
caches.add(new SysCache(CacheConstants.CAPTCHA_CODE_KEY, "验证码"));
caches.add(new SysCache(CacheConstants.REPEAT_SUBMIT_KEY, "防重提交"));
caches.add(new SysCache(CacheConstants.RATE_LIMIT_KEY, "限流处理"));
caches.add(new SysCache(CacheConstants.PWD_ERR_CNT_KEY, "密码错误次数"));
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@GetMapping()
public AjaxResult getInfo() throws Exception
{
Properties info = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info());
Properties commandStats = (Properties) redisTemplate.execute((RedisCallback<Object>) connection -> connection.info("commandstats"));
Object dbSize = redisTemplate.execute((RedisCallback<Object>) connection -> connection.dbSize());
Map<String, Object> result = new HashMap<>(3);
result.put("info", info);
result.put("dbSize", dbSize);
List<Map<String, String>> pieList = new ArrayList<>();
commandStats.stringPropertyNames().forEach(key -> {
Map<String, String> data = new HashMap<>(2);
String property = commandStats.getProperty(key);
data.put("name", StringUtils.removeStart(key, "cmdstat_"));
data.put("value", StringUtils.substringBetween(property, "calls=", ",usec"));
pieList.add(data);
});
result.put("commandStats", pieList);
return AjaxResult.success(result);
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@GetMapping("/getNames")
public AjaxResult cache()
{
return AjaxResult.success(caches);
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@GetMapping("/getKeys/{cacheName}")
public AjaxResult getCacheKeys(@PathVariable String cacheName)
{
Set<String> cacheKeys = redisTemplate.keys(cacheName + "*");
return AjaxResult.success(cacheKeys);
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@GetMapping("/getValue/{cacheName}/{cacheKey}")
public AjaxResult getCacheValue(@PathVariable String cacheName, @PathVariable String cacheKey)
{
String cacheValue = redisTemplate.opsForValue().get(cacheKey);
SysCache sysCache = new SysCache(cacheName, cacheKey, cacheValue);
return AjaxResult.success(sysCache);
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@DeleteMapping("/clearCacheName/{cacheName}")
public AjaxResult clearCacheName(@PathVariable String cacheName)
{
Collection<String> cacheKeys = redisTemplate.keys(cacheName + "*");
redisTemplate.delete(cacheKeys);
return AjaxResult.success();
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@DeleteMapping("/clearCacheKey/{cacheKey}")
public AjaxResult clearCacheKey(@PathVariable String cacheKey)
{
redisTemplate.delete(cacheKey);
return AjaxResult.success();
}
@PreAuthorize("@ss.hasPermi('monitor:cache:list')")
@DeleteMapping("/clearCacheAll")
public AjaxResult clearCacheAll()
{
Collection<String> cacheKeys = redisTemplate.keys("*");
redisTemplate.delete(cacheKeys);
return AjaxResult.success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
================================================
package com.ruoyi.web.controller.monitor;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.framework.web.domain.Server;
/**
* 服务器监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/monitor/server")
public class ServerController
{
@PreAuthorize("@ss.hasPermi('monitor:server:list')")
@GetMapping()
public AjaxResult getInfo() throws Exception
{
Server server = new Server();
server.copyTo();
return AjaxResult.success(server);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
================================================
package com.ruoyi.web.controller.monitor;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysLogininfor;
import com.ruoyi.system.service.ISysLogininforService;
/**
* 系统访问记录
*
* @author ruoyi
*/
@RestController
@RequestMapping("/monitor/logininfor")
public class SysLogininforController extends BaseController
{
@Autowired
private ISysLogininforService logininforService;
@PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
@GetMapping("/list")
public TableDataInfo list(SysLogininfor logininfor)
{
startPage();
List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
return getDataTable(list);
}
@Log(title = "登录日志", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('monitor:logininfor:export')")
@GetMapping("/export")
public AjaxResult export(SysLogininfor logininfor)
{
List<SysLogininfor> list = logininforService.selectLogininforList(logininfor);
ExcelUtil<SysLogininfor> util = new ExcelUtil<SysLogininfor>(SysLogininfor.class);
return util.exportExcel(list, "登录日志");
}
@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
@Log(title = "登录日志", businessType = BusinessType.DELETE)
@DeleteMapping("/{infoIds}")
public AjaxResult remove(@PathVariable Long[] infoIds)
{
return toAjax(logininforService.deleteLogininforByIds(infoIds));
}
@PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
@Log(title = "登录日志", businessType = BusinessType.CLEAN)
@DeleteMapping("/clean")
public AjaxResult clean()
{
logininforService.cleanLogininfor();
return AjaxResult.success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
================================================
package com.ruoyi.web.controller.monitor;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysOperLog;
import com.ruoyi.system.service.ISysOperLogService;
/**
* 操作日志记录
*
* @author ruoyi
*/
@RestController
@RequestMapping("/monitor/operlog")
public class SysOperlogController extends BaseController
{
@Autowired
private ISysOperLogService operLogService;
@PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
@GetMapping("/list")
public TableDataInfo list(SysOperLog operLog)
{
startPage();
List<SysOperLog> list = operLogService.selectOperLogList(operLog);
return getDataTable(list);
}
@Log(title = "操作日志", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('monitor:operlog:export')")
@GetMapping("/export")
public AjaxResult export(SysOperLog operLog)
{
List<SysOperLog> list = operLogService.selectOperLogList(operLog);
ExcelUtil<SysOperLog> util = new ExcelUtil<SysOperLog>(SysOperLog.class);
return util.exportExcel(list, "操作日志");
}
@Log(title = "操作日志", businessType = BusinessType.DELETE)
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
@DeleteMapping("/{operIds}")
public AjaxResult remove(@PathVariable Long[] operIds)
{
return toAjax(operLogService.deleteOperLogByIds(operIds));
}
@Log(title = "操作日志", businessType = BusinessType.CLEAN)
@PreAuthorize("@ss.hasPermi('monitor:operlog:remove')")
@DeleteMapping("/clean")
public AjaxResult clean()
{
operLogService.cleanOperLog();
return AjaxResult.success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
================================================
package com.ruoyi.web.controller.monitor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.SysUserOnline;
import com.ruoyi.system.service.ISysUserOnlineService;
/**
* 在线用户监控
*
* @author ruoyi
*/
@RestController
@RequestMapping("/monitor/online")
public class SysUserOnlineController extends BaseController
{
@Autowired
private ISysUserOnlineService userOnlineService;
@Autowired
private RedisCache redisCache;
@PreAuthorize("@ss.hasPermi('monitor:online:list')")
@GetMapping("/list")
public TableDataInfo list(String ipaddr, String userName)
{
Collection<String> keys = redisCache.keys(Constants.LOGIN_TOKEN_KEY + "*");
List<SysUserOnline> userOnlineList = new ArrayList<SysUserOnline>();
for (String key : keys)
{
LoginUser user = redisCache.getCacheObject(key);
if (StringUtils.isNotEmpty(ipaddr) && StringUtils.isNotEmpty(userName))
{
if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername()))
{
userOnlineList.add(userOnlineService.selectOnlineByInfo(ipaddr, userName, user));
}
}
else if (StringUtils.isNotEmpty(ipaddr))
{
if (StringUtils.equals(ipaddr, user.getIpaddr()))
{
userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ipaddr, user));
}
}
else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser()))
{
if (StringUtils.equals(userName, user.getUsername()))
{
userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
}
}
else
{
userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
}
}
Collections.reverse(userOnlineList);
userOnlineList.removeAll(Collections.singleton(null));
return getDataTable(userOnlineList);
}
/**
* 强退用户
*/
@PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
@Log(title = "在线用户", businessType = BusinessType.FORCE)
@DeleteMapping("/{tokenId}")
public AjaxResult forceLogout(@PathVariable String tokenId)
{
redisCache.deleteObject(Constants.LOGIN_TOKEN_KEY + tokenId);
return AjaxResult.success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java
================================================
package com.ruoyi.web.controller.system;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.domain.vo.SysConfigVo;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/sys/config")
public class ConfigController extends BaseController {
@Autowired
private ISysConfigService configService;
@PreAuthorize("@ss.hasAnyRoles('admin,viewer')")
@GetMapping(value = "/configKey2/{configKey}")
public AjaxResult getConfigKey2(@PathVariable String configKey) {
return AjaxResult.success(configService.selectConfigByKey2(configKey));
}
@PreAuthorize("@ss.hasAnyRoles(admin)")
@PostMapping("/addOrUpdate")
public AjaxResult addOrUpdate(@RequestBody SysConfigVo content) {
SysConfig config = new SysConfig();
BeanUtils.copyProperties(content,config);
if (config.getConfigId() == null) {
config.setCreateBy(getUserId());
return toAjax(configService.insertConfig(config));
}
config.setUpdateBy(getUserId());
return toAjax(configService.updateConfig(config));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import com.ruoyi.system.domain.vo.SysConfigVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysConfig;
import com.ruoyi.system.service.ISysConfigService;
/**
* 参数配置 信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/config")
public class SysConfigController extends BaseController {
@Autowired
private ISysConfigService configService;
/**
* 获取参数配置列表
*/
@PreAuthorize("@ss.hasPermi('system:config:list')")
@GetMapping("/list")
public TableDataInfo list(SysConfig config) {
startPage();
List<SysConfig> list = configService.selectConfigList(config);
return getDataTable(list);
}
@Log(title = "参数管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:config:export')")
@GetMapping("/export")
public AjaxResult export(SysConfig config) {
List<SysConfig> list = configService.selectConfigList(config);
ExcelUtil<SysConfig> util = new ExcelUtil<SysConfig>(SysConfig.class);
return util.exportExcel(list, "参数数据");
}
/**
* 根据参数编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:config:query')")
@GetMapping(value = "/{configId}")
public AjaxResult getInfo(@PathVariable Long configId) {
return AjaxResult.success(configService.selectConfigById(configId));
}
/**
* 根据参数键名查询参数值
*/
@GetMapping(value = "/configKey/{configKey}")
public AjaxResult getConfigKey(@PathVariable String configKey) {
return AjaxResult.success(configService.selectConfigByKey(configKey));
}
/**
* 新增参数配置
*/
@PreAuthorize("@ss.hasPermi('system:config:add')")
@Log(title = "参数管理", businessType = BusinessType.INSERT)
@PostMapping
@RepeatSubmit
public AjaxResult add(@Validated @RequestBody SysConfig config) {
if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
return AjaxResult.error("新增参数'" + config.getConfigName() + "'失败,参数键名已存在");
}
config.setCreateBy(getUserId());
return toAjax(configService.insertConfig(config));
}
/**
* 修改参数配置
*/
@PreAuthorize("@ss.hasPermi('system:config:edit')")
@Log(title = "参数管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysConfig config) {
if (UserConstants.NOT_UNIQUE.equals(configService.checkConfigKeyUnique(config))) {
return AjaxResult.error("修改参数'" + config.getConfigName() + "'失败,参数键名已存在");
}
config.setUpdateBy(getUserId());
return toAjax(configService.updateConfig(config));
}
/**
* 删除参数配置
*/
@PreAuthorize("@ss.hasPermi('system:config:remove')")
@Log(title = "参数管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{configIds}")
public AjaxResult remove(@PathVariable Long[] configIds) {
configService.deleteConfigByIds(configIds);
return success();
}
/**
* 刷新参数缓存
*/
@PreAuthorize("@ss.hasPermi('system:config:remove')")
@Log(title = "参数管理", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache")
public AjaxResult refreshCache() {
configService.resetConfigCache();
return AjaxResult.success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysDeptService;
/**
* 部门信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/dept")
public class SysDeptController extends BaseController
{
@Autowired
private ISysDeptService deptService;
/**
* 获取部门列表
*/
@PreAuthorize("@ss.hasPermi('system:dept:list')")
@GetMapping("/list")
public AjaxResult list(SysDept dept)
{
List<SysDept> depts = deptService.selectDeptList(dept);
return AjaxResult.success(depts);
}
/**
* 查询部门列表(排除节点)
*/
@PreAuthorize("@ss.hasPermi('system:dept:list')")
@GetMapping("/list/exclude/{deptId}")
public AjaxResult excludeChild(@PathVariable(value = "deptId", required = false) Long deptId)
{
List<SysDept> depts = deptService.selectDeptList(new SysDept());
Iterator<SysDept> it = depts.iterator();
while (it.hasNext())
{
SysDept d = (SysDept) it.next();
if (d.getDeptId().intValue() == deptId
|| ArrayUtils.contains(StringUtils.split(d.getAncestors(), ","), deptId + ""))
{
it.remove();
}
}
return AjaxResult.success(depts);
}
/**
* 根据部门编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:dept:query')")
@GetMapping(value = "/{deptId}")
public AjaxResult getInfo(@PathVariable Long deptId)
{
deptService.checkDeptDataScope(deptId);
return AjaxResult.success(deptService.selectDeptById(deptId));
}
/**
* 获取部门下拉树列表
*/
@GetMapping("/treeselect")
public AjaxResult treeselect(SysDept dept)
{
List<SysDept> depts = deptService.selectDeptList(dept);
return AjaxResult.success(deptService.buildDeptTreeSelect(depts));
}
/**
* 加载对应角色部门列表树
*/
@GetMapping(value = "/roleDeptTreeselect/{roleId}")
public AjaxResult roleDeptTreeselect(@PathVariable("roleId") Long roleId)
{
List<SysDept> depts = deptService.selectDeptList(new SysDept());
AjaxResult ajax = AjaxResult.success();
ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId));
ajax.put("depts", deptService.buildDeptTreeSelect(depts));
return ajax;
}
/**
* 新增部门
*/
@PreAuthorize("@ss.hasPermi('system:dept:add')")
@Log(title = "部门管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDept dept)
{
if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
{
return AjaxResult.error("新增部门'" + dept.getDeptName() + "'失败,部门名称已存在");
}
dept.setCreateBy(getUserId());
return toAjax(deptService.insertDept(dept));
}
/**
* 修改部门
*/
@PreAuthorize("@ss.hasPermi('system:dept:edit')")
@Log(title = "部门管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDept dept)
{
if (UserConstants.NOT_UNIQUE.equals(deptService.checkDeptNameUnique(dept)))
{
return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,部门名称已存在");
}
else if (dept.getParentId().equals(dept.getDeptId()))
{
return AjaxResult.error("修改部门'" + dept.getDeptName() + "'失败,上级部门不能是自己");
}
else if (StringUtils.equals(UserConstants.DEPT_DISABLE, dept.getStatus())
&& deptService.selectNormalChildrenDeptById(dept.getDeptId()) > 0)
{
return AjaxResult.error("该部门包含未停用的子部门!");
}
dept.setUpdateBy(getUserId());
return toAjax(deptService.updateDept(dept));
}
/**
* 删除部门
*/
@PreAuthorize("@ss.hasPermi('system:dept:remove')")
@Log(title = "部门管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{deptId}")
public AjaxResult remove(@PathVariable Long deptId)
{
if (deptService.hasChildByDeptId(deptId))
{
return AjaxResult.error("存在下级部门,不允许删除");
}
if (deptService.checkDeptExistUser(deptId))
{
return AjaxResult.error("部门存在用户,不允许删除");
}
return toAjax(deptService.deleteDeptById(deptId));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.ArrayList;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDictData;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDictDataService;
import com.ruoyi.system.service.ISysDictTypeService;
/**
* 数据字典信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/dict/data")
public class SysDictDataController extends BaseController
{
@Autowired
private ISysDictDataService dictDataService;
@Autowired
private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')")
@GetMapping("/list")
public TableDataInfo list(SysDictData dictData)
{
startPage();
List<SysDictData> list = dictDataService.selectDictDataList(dictData);
return getDataTable(list);
}
@Log(title = "字典数据", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@GetMapping("/export")
public AjaxResult export(SysDictData dictData)
{
List<SysDictData> list = dictDataService.selectDictDataList(dictData);
ExcelUtil<SysDictData> util = new ExcelUtil<SysDictData>(SysDictData.class);
return util.exportExcel(list, "字典数据");
}
/**
* 查询字典数据详细
*/
@PreAuthorize("@ss.hasPermi('system:dict:query')")
@GetMapping(value = "/{dictCode}")
public AjaxResult getInfo(@PathVariable Long dictCode)
{
return AjaxResult.success(dictDataService.selectDictDataById(dictCode));
}
/**
* 根据字典类型查询字典数据信息
*/
@GetMapping(value = "/type/{dictType}")
public AjaxResult dictType(@PathVariable String dictType)
{
List<SysDictData> data = dictTypeService.selectDictDataByType(dictType);
if (StringUtils.isNull(data))
{
data = new ArrayList<SysDictData>();
}
return AjaxResult.success(data);
}
/**
* 根据字典类型查询字典数据信息
*/
@PostMapping(value = "/all-by-types")
public AjaxResult allByTypes(@RequestBody List<String> dictTypes)
{
SysDictData query = new SysDictData();
query.getParams().put("dictTypes", dictTypes);
List<SysDictData> data = dictDataService.selectDictDataList(query);
if (StringUtils.isNull(data))
{
data = new ArrayList<>();
}
return AjaxResult.success(data);
}
/**
* 新增字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:add')")
@Log(title = "字典数据", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictData dict)
{
dict.setCreateBy(getUserId());
return toAjax(dictDataService.insertDictData(dict));
}
/**
* 修改保存字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
@Log(title = "字典数据", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictData dict)
{
dict.setUpdateBy(getUserId());
return toAjax(dictDataService.updateDictData(dict));
}
/**
* 删除字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictCodes}")
public AjaxResult remove(@PathVariable Long[] dictCodes)
{
dictDataService.deleteDictDataByIds(dictCodes);
return success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysDictType;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysDictTypeService;
/**
* 数据字典信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/dict/type")
public class SysDictTypeController extends BaseController
{
@Autowired
private ISysDictTypeService dictTypeService;
@PreAuthorize("@ss.hasPermi('system:dict:list')")
@GetMapping("/list")
public TableDataInfo list(SysDictType dictType)
{
startPage();
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
return getDataTable(list);
}
@Log(title = "字典类型", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:dict:export')")
@GetMapping("/export")
public AjaxResult export(SysDictType dictType)
{
List<SysDictType> list = dictTypeService.selectDictTypeList(dictType);
ExcelUtil<SysDictType> util = new ExcelUtil<SysDictType>(SysDictType.class);
return util.exportExcel(list, "字典类型");
}
/**
* 查询字典类型详细
*/
@PreAuthorize("@ss.hasPermi('system:dict:query')")
@GetMapping(value = "/{dictId}")
public AjaxResult getInfo(@PathVariable Long dictId)
{
return AjaxResult.success(dictTypeService.selectDictTypeById(dictId));
}
/**
* 新增字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:add')")
@Log(title = "字典类型", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysDictType dict)
{
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
{
return AjaxResult.error("新增字典'" + dict.getDictName() + "'失败,字典类型已存在");
}
dict.setCreateBy(getUserId());
return toAjax(dictTypeService.insertDictType(dict));
}
/**
* 修改字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:edit')")
@Log(title = "字典类型", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysDictType dict)
{
if (UserConstants.NOT_UNIQUE.equals(dictTypeService.checkDictTypeUnique(dict)))
{
return AjaxResult.error("修改字典'" + dict.getDictName() + "'失败,字典类型已存在");
}
dict.setUpdateBy(getUserId());
return toAjax(dictTypeService.updateDictType(dict));
}
/**
* 删除字典类型
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{dictIds}")
public AjaxResult remove(@PathVariable Long[] dictIds)
{
dictTypeService.deleteDictTypeByIds(dictIds);
return success();
}
/**
* 刷新字典缓存
*/
@PreAuthorize("@ss.hasPermi('system:dict:remove')")
@Log(title = "字典类型", businessType = BusinessType.CLEAN)
@DeleteMapping("/refreshCache")
public AjaxResult refreshCache()
{
dictTypeService.resetDictCache();
return AjaxResult.success();
}
/**
* 获取字典选择框列表
*/
@GetMapping("/optionselect")
public AjaxResult optionselect()
{
List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
return AjaxResult.success(dictTypes);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
================================================
package com.ruoyi.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.utils.StringUtils;
/**
* 首页
*
* @author ruoyi
*/
@RestController
public class SysIndexController
{
/** 系统基础配置 */
@Autowired
private RuoYiConfig ruoyiConfig;
/**
* 访问首页,提示语
*/
@RequestMapping("/")
public String index()
{
return StringUtils.format("欢迎使用{}后台管理框架,当前版本:v{},请通过前端地址访问。", ruoyiConfig.getName(), ruoyiConfig.getVersion());
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
================================================
package com.ruoyi.web.controller.system;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginBody;
import com.ruoyi.common.core.domain.model.PhoneLoginBody;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.framework.web.service.SysLoginService;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.system.service.ISysMenuService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Set;
/**
* 登录验证
*
* @author ruoyi
*/
@RestController
public class SysLoginController {
@Autowired
private SysLoginService loginService;
@Autowired
private ISysMenuService menuService;
@Autowired
private SysPermissionService permissionService;
/**
* 登录方法
*
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping("/login")
public AjaxResult login(@RequestBody LoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
// 生成令牌
String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
loginBody.getUuid());
ajax.put(Constants.TOKEN, token);
return ajax;
}
/**
* 使用手机号登陆
*
* @param loginBody 登录信息
* @return 结果
*/
@PostMapping("/login/phone")
public AjaxResult login(@RequestBody PhoneLoginBody loginBody) {
AjaxResult ajax = AjaxResult.success();
SysUser user = loginService.phoneLogin(loginBody.getPhone(), loginBody.getCode(), loginBody.getUuid());
ajax.put(Constants.TOKEN, loginService.createToken(user));
return ajax;
}
/**
* 获取用户信息
*
* @return 用户信息
*/
@GetMapping("getInfo")
public AjaxResult getInfo() {
SysUser user = SecurityUtils.getLoginUser().getUser();
// 角色集合
Set<String> roles = permissionService.getRolePermission(user);
// 权限集合
Set<String> permissions = permissionService.getMenuPermission(user);
AjaxResult ajax = AjaxResult.success();
ajax.put("user", user);
ajax.put("roles", roles);
ajax.put("permissions", permissions);
return ajax;
}
/**
* 获取路由信息
*
* @return 路由信息
*/
@GetMapping("getRouters")
public AjaxResult getRouters()
{
Long userId = SecurityUtils.getUserId();
List<SysMenu> menus = menuService.selectMenuTreeByUserId(userId);
return AjaxResult.success(menuService.buildMenus(menus));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysMenu;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.service.ISysMenuService;
/**
* 菜单信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/menu")
public class SysMenuController extends BaseController
{
@Autowired
private ISysMenuService menuService;
/**
* 获取菜单列表
*/
@PreAuthorize("@ss.hasPermi('system:menu:list')")
@GetMapping("/list")
public AjaxResult list(SysMenu menu)
{
List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
return AjaxResult.success(menus);
}
/**
* 根据菜单编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:menu:query')")
@GetMapping(value = "/{menuId}")
public AjaxResult getInfo(@PathVariable Long menuId)
{
return AjaxResult.success(menuService.selectMenuById(menuId));
}
/**
* 获取菜单下拉树列表
*/
@GetMapping("/treeselect")
public AjaxResult treeselect(SysMenu menu)
{
List<SysMenu> menus = menuService.selectMenuList(menu, getUserId());
return AjaxResult.success(menuService.buildMenuTreeSelect(menus));
}
/**
* 加载对应角色菜单列表树
*/
@GetMapping(value = "/roleMenuTreeselect/{roleId}")
public AjaxResult roleMenuTreeselect(@PathVariable("roleId") Long roleId)
{
List<SysMenu> menus = menuService.selectMenuList(getUserId());
AjaxResult ajax = AjaxResult.success();
ajax.put("checkedKeys", menuService.selectMenuListByRoleId(roleId));
ajax.put("menus", menuService.buildMenuTreeSelect(menus));
return ajax;
}
/**
* 新增菜单
*/
@PreAuthorize("@ss.hasPermi('system:menu:add')")
@Log(title = "菜单管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysMenu menu)
{
if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
{
return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
}
else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
{
return AjaxResult.error("新增菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
}
menu.setCreateBy(getUserId());
return toAjax(menuService.insertMenu(menu));
}
/**
* 修改菜单
*/
@PreAuthorize("@ss.hasPermi('system:menu:edit')")
@Log(title = "菜单管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysMenu menu)
{
if (UserConstants.NOT_UNIQUE.equals(menuService.checkMenuNameUnique(menu)))
{
return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,菜单名称已存在");
}
else if (UserConstants.YES_FRAME.equals(menu.getIsFrame()) && !StringUtils.ishttp(menu.getPath()))
{
return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,地址必须以http(s)://开头");
}
else if (menu.getMenuId().equals(menu.getParentId()))
{
return AjaxResult.error("修改菜单'" + menu.getMenuName() + "'失败,上级菜单不能选择自己");
}
menu.setUpdateBy(getUserId());
return toAjax(menuService.updateMenu(menu));
}
/**
* 删除菜单
*/
@PreAuthorize("@ss.hasPermi('system:menu:remove')")
@Log(title = "菜单管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{menuId}")
public AjaxResult remove(@PathVariable("menuId") Long menuId)
{
if (menuService.hasChildByMenuId(menuId))
{
return AjaxResult.error("存在子菜单,不允许删除");
}
if (menuService.checkMenuExistRole(menuId))
{
return AjaxResult.error("菜单已分配,不允许删除");
}
return toAjax(menuService.deleteMenuById(menuId));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.system.domain.SysNotice;
import com.ruoyi.system.service.ISysNoticeService;
/**
* 公告 信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/notice")
public class SysNoticeController extends BaseController
{
@Autowired
private ISysNoticeService noticeService;
/**
* 获取通知公告列表
*/
@PreAuthorize("@ss.hasPermi('system:notice:list')")
@GetMapping("/list")
public TableDataInfo list(SysNotice notice)
{
startPage();
List<SysNotice> list = noticeService.selectNoticeList(notice);
return getDataTable(list);
}
/**
* 根据通知公告编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:notice:query')")
@GetMapping(value = "/{noticeId}")
public AjaxResult getInfo(@PathVariable Long noticeId)
{
return AjaxResult.success(noticeService.selectNoticeById(noticeId));
}
/**
* 新增通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:add')")
@Log(title = "通知公告", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysNotice notice)
{
notice.setCreateBy(getUserId());
return toAjax(noticeService.insertNotice(notice));
}
/**
* 修改通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:edit')")
@Log(title = "通知公告", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysNotice notice)
{
notice.setUpdateBy(getUserId());
return toAjax(noticeService.updateNotice(notice));
}
/**
* 删除通知公告
*/
@PreAuthorize("@ss.hasPermi('system:notice:remove')")
@Log(title = "通知公告", businessType = BusinessType.DELETE)
@DeleteMapping("/{noticeIds}")
public AjaxResult remove(@PathVariable Long[] noticeIds)
{
return toAjax(noticeService.deleteNoticeByIds(noticeIds));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.SysPost;
import com.ruoyi.system.service.ISysPostService;
/**
* 岗位信息操作处理
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/post")
public class SysPostController extends BaseController
{
@Autowired
private ISysPostService postService;
/**
* 获取岗位列表
*/
@PreAuthorize("@ss.hasPermi('system:post:list')")
@GetMapping("/list")
public TableDataInfo list(SysPost post)
{
startPage();
List<SysPost> list = postService.selectPostList(post);
return getDataTable(list);
}
@Log(title = "岗位管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:post:export')")
@GetMapping("/export")
public AjaxResult export(SysPost post)
{
List<SysPost> list = postService.selectPostList(post);
ExcelUtil<SysPost> util = new ExcelUtil<SysPost>(SysPost.class);
return util.exportExcel(list, "岗位数据");
}
/**
* 根据岗位编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:post:query')")
@GetMapping(value = "/{postId}")
public AjaxResult getInfo(@PathVariable Long postId)
{
return AjaxResult.success(postService.selectPostById(postId));
}
/**
* 新增岗位
*/
@PreAuthorize("@ss.hasPermi('system:post:add')")
@Log(title = "岗位管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysPost post)
{
if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
{
return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
{
return AjaxResult.error("新增岗位'" + post.getPostName() + "'失败,岗位编码已存在");
}
post.setCreateBy(getUserId());
return toAjax(postService.insertPost(post));
}
/**
* 修改岗位
*/
@PreAuthorize("@ss.hasPermi('system:post:edit')")
@Log(title = "岗位管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysPost post)
{
if (UserConstants.NOT_UNIQUE.equals(postService.checkPostNameUnique(post)))
{
return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(postService.checkPostCodeUnique(post)))
{
return AjaxResult.error("修改岗位'" + post.getPostName() + "'失败,岗位编码已存在");
}
post.setUpdateBy(getUserId());
return toAjax(postService.updatePost(post));
}
/**
* 删除岗位
*/
@PreAuthorize("@ss.hasPermi('system:post:remove')")
@Log(title = "岗位管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{postIds}")
public AjaxResult remove(@PathVariable Long[] postIds)
{
return toAjax(postService.deletePostByIds(postIds));
}
/**
* 获取岗位选择框列表
*/
@GetMapping("/optionselect")
public AjaxResult optionselect()
{
List<SysPost> posts = postService.selectPostAll();
return AjaxResult.success(posts);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
================================================
package com.ruoyi.web.controller.system;
import java.io.IOException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.config.RuoYiConfig;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.file.FileUploadUtils;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.service.ISysUserService;
/**
* 个人信息 业务处理
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/user/profile")
public class SysProfileController extends BaseController
{
@Autowired
private ISysUserService userService;
@Autowired
private TokenService tokenService;
/**
* 个人信息
*/
@GetMapping
public AjaxResult profile()
{
LoginUser loginUser = getLoginUser();
SysUser user = loginUser.getUser();
AjaxResult ajax = AjaxResult.success(user);
ajax.put("roleGroup", userService.selectUserRoleGroup(loginUser.getUsername()));
ajax.put("postGroup", userService.selectUserPostGroup(loginUser.getUsername()));
return ajax;
}
/**
* 修改用户
*/
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult updateProfile(@RequestBody SysUser user)
{
if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
}
if (StringUtils.isNotEmpty(user.getEmail())
&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
LoginUser loginUser = getLoginUser();
SysUser sysUser = loginUser.getUser();
user.setUserId(sysUser.getUserId());
user.setPassword(null);
if (userService.updateUserProfile(user) > 0)
{
// 更新缓存用户信息
sysUser.setNickName(user.getNickName());
sysUser.setPhonenumber(user.getPhonenumber());
sysUser.setEmail(user.getEmail());
sysUser.setSex(user.getSex());
tokenService.setLoginUser(loginUser);
return AjaxResult.success();
}
return AjaxResult.error("修改个人信息异常,请联系管理员");
}
/**
* 重置密码
*/
@Log(title = "个人信息", businessType = BusinessType.UPDATE)
@PutMapping("/updatePwd")
public AjaxResult updatePwd(String oldPassword, String newPassword)
{
LoginUser loginUser = getLoginUser();
String userName = loginUser.getUsername();
String password = loginUser.getPassword();
if (!SecurityUtils.matchesPassword(oldPassword, password))
{
return AjaxResult.error("修改密码失败,旧密码错误");
}
if (SecurityUtils.matchesPassword(newPassword, password))
{
return AjaxResult.error("新密码不能与旧密码相同");
}
if (userService.resetUserPwd(userName, SecurityUtils.encryptPassword(newPassword)) > 0)
{
// 更新缓存用户密码
loginUser.getUser().setPassword(SecurityUtils.encryptPassword(newPassword));
tokenService.setLoginUser(loginUser);
return AjaxResult.success();
}
return AjaxResult.error("修改密码异常,请联系管理员");
}
/**
* 头像上传
*/
@Log(title = "用户头像", businessType = BusinessType.UPDATE)
@PostMapping("/avatar")
public AjaxResult avatar(@RequestParam("avatarfile") MultipartFile file) throws IOException
{
if (!file.isEmpty())
{
LoginUser loginUser = getLoginUser();
String avatar = FileUploadUtils.upload(RuoYiConfig.getAvatarPath(), file);
if (userService.updateUserAvatar(loginUser.getUsername(), avatar))
{
AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", avatar);
// 更新缓存用户头像
loginUser.getUser().setAvatar(avatar);
tokenService.setLoginUser(loginUser);
return ajax;
}
}
return AjaxResult.error("上传图片异常,请联系管理员");
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
================================================
package com.ruoyi.web.controller.system;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.model.RegisterBody;
import com.ruoyi.framework.web.service.SysRegisterService;
import com.ruoyi.system.service.ISysConfigService;
/**
* 注册验证
*
* @author ruoyi
*/
@RestController
public class SysRegisterController extends BaseController
{
@Autowired
private SysRegisterService registerService;
@Autowired
private ISysConfigService configService;
@PostMapping("/register")
public AjaxResult register(@RequestBody RegisterBody user)
{
if (!("true".equals(configService.selectConfigByKey("sys.account.registerUser"))))
{
return error("当前系统没有开启注册功能!");
}
String msg = registerService.register(user);
return StringUtils.isEmpty(msg) ? success() : error(msg);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.service.SysPermissionService;
import com.ruoyi.framework.web.service.TokenService;
import com.ruoyi.system.domain.SysUserRole;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
/**
* 角色信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/role")
public class SysRoleController extends BaseController
{
@Autowired
private ISysRoleService roleService;
@Autowired
private TokenService tokenService;
@Autowired
private SysPermissionService permissionService;
@Autowired
private ISysUserService userService;
@PreAuthorize("@ss.hasPermi('system:role:list')")
@GetMapping("/list")
public TableDataInfo list(SysRole role)
{
startPage();
List<SysRole> list = roleService.selectRoleList(role);
return getDataTable(list);
}
@Log(title = "角色管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:role:export')")
@GetMapping("/export")
public AjaxResult export(SysRole role)
{
List<SysRole> list = roleService.selectRoleList(role);
ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class);
return util.exportExcel(list, "角色数据");
}
/**
* 根据角色编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:role:query')")
@GetMapping(value = "/{roleId}")
public AjaxResult getInfo(@PathVariable Long roleId)
{
roleService.checkRoleDataScope(roleId);
return AjaxResult.success(roleService.selectRoleById(roleId));
}
/**
* 新增角色
*/
@PreAuthorize("@ss.hasPermi('system:role:add')")
@Log(title = "角色管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysRole role)
{
if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
{
return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
{
return AjaxResult.error("新增角色'" + role.getRoleName() + "'失败,角色权限已存在");
}
role.setCreateBy(getUserId());
return toAjax(roleService.insertRole(role));
}
/**
* 修改保存角色
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysRole role)
{
roleService.checkRoleAllowed(role);
if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))
{
return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色名称已存在");
}
else if (UserConstants.NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))
{
return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,角色权限已存在");
}
role.setUpdateBy(getUserId());
if (roleService.updateRole(role) > 0)
{
// 更新缓存用户权限
LoginUser loginUser = getLoginUser();
if (StringUtils.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin())
{
loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser()));
loginUser.setUser(userService.selectUserByUserName(loginUser.getUser().getUserName()));
tokenService.setLoginUser(loginUser);
}
return AjaxResult.success();
}
return AjaxResult.error("修改角色'" + role.getRoleName() + "'失败,请联系管理员");
}
/**
* 修改保存数据权限
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping("/dataScope")
public AjaxResult dataScope(@RequestBody SysRole role)
{
roleService.checkRoleAllowed(role);
return toAjax(roleService.authDataScope(role));
}
/**
* 状态修改
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody SysRole role)
{
roleService.checkRoleAllowed(role);
role.setUpdateBy(getUserId());
return toAjax(roleService.updateRoleStatus(role));
}
/**
* 删除角色
*/
@PreAuthorize("@ss.hasPermi('system:role:remove')")
@Log(title = "角色管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{roleIds}")
public AjaxResult remove(@PathVariable Long[] roleIds)
{
return toAjax(roleService.deleteRoleByIds(roleIds));
}
/**
* 获取角色选择框列表
*/
@PreAuthorize("@ss.hasPermi('system:role:query')")
@GetMapping("/optionselect")
public AjaxResult optionselect()
{
return AjaxResult.success(roleService.selectRoleAll());
}
/**
* 查询已分配用户角色列表
*/
@PreAuthorize("@ss.hasPermi('system:role:list')")
@GetMapping("/authUser/allocatedList")
public TableDataInfo allocatedList(SysUser user)
{
startPage();
List<SysUser> list = userService.selectAllocatedList(user);
return getDataTable(list);
}
/**
* 查询未分配用户角色列表
*/
@PreAuthorize("@ss.hasPermi('system:role:list')")
@GetMapping("/authUser/unallocatedList")
public TableDataInfo unallocatedList(SysUser user)
{
startPage();
List<SysUser> list = userService.selectUnallocatedList(user);
return getDataTable(list);
}
/**
* 取消授权用户
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/cancel")
public AjaxResult cancelAuthUser(@RequestBody SysUserRole userRole)
{
return toAjax(roleService.deleteAuthUser(userRole));
}
/**
* 批量取消授权用户
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/cancelAll")
public AjaxResult cancelAuthUserAll(Long roleId, Long[] userIds)
{
return toAjax(roleService.deleteAuthUsers(roleId, userIds));
}
/**
* 批量选择用户授权
*/
@PreAuthorize("@ss.hasPermi('system:role:edit')")
@Log(title = "角色管理", businessType = BusinessType.GRANT)
@PutMapping("/authUser/selectAll")
public AjaxResult selectAuthUserAll(Long roleId, Long[] userIds)
{
return toAjax(roleService.insertAuthUsers(roleId, userIds));
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
================================================
package com.ruoyi.web.controller.system;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.constant.UserConstants;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.domain.entity.SysRole;
import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.service.ISysPostService;
import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.system.service.ISysUserService;
/**
* 用户信息
*
* @author ruoyi
*/
@RestController
@RequestMapping("/system/user")
public class SysUserController extends BaseController
{
@Autowired
private ISysUserService userService;
@Autowired
private ISysRoleService roleService;
@Autowired
private ISysPostService postService;
/**
* 获取用户列表
*/
@PreAuthorize("@ss.hasPermi('system:user:list')")
@GetMapping("/list")
public TableDataInfo list(SysUser user)
{
startPage();
List<SysUser> list = userService.selectUserList(user);
return getDataTable(list);
}
@Log(title = "用户管理", businessType = BusinessType.EXPORT)
@PreAuthorize("@ss.hasPermi('system:user:export')")
@GetMapping("/export")
public AjaxResult export(SysUser user)
{
List<SysUser> list = userService.selectUserList(user);
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
return util.exportExcel(list, "用户数据");
}
@Log(title = "用户管理", businessType = BusinessType.IMPORT)
@PreAuthorize("@ss.hasPermi('system:user:import')")
@PostMapping("/importData")
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
List<SysUser> userList = util.importExcel(file.getInputStream());
String message = userService.importUser(userList, updateSupport, getUserId());
return AjaxResult.success(message);
}
@GetMapping("/importTemplate")
public AjaxResult importTemplate()
{
ExcelUtil<SysUser> util = new ExcelUtil<SysUser>(SysUser.class);
return util.importTemplateExcel("用户数据");
}
/**
* 根据用户编号获取详细信息
*/
@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping(value = { "/", "/{userId}" })
public AjaxResult getInfo(@PathVariable(value = "userId", required = false) Long userId)
{
userService.checkUserDataScope(userId);
AjaxResult ajax = AjaxResult.success();
List<SysRole> roles = roleService.selectRoleAll();
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
ajax.put("posts", postService.selectPostAll());
if (StringUtils.isNotNull(userId))
{
ajax.put(AjaxResult.DATA_TAG, userService.selectUserById(userId));
ajax.put("postIds", postService.selectPostListByUserId(userId));
ajax.put("roleIds", roleService.selectRoleListByUserId(userId));
}
return ajax;
}
/**
* 新增用户
*/
@PreAuthorize("@ss.hasPermi('system:user:add')")
@Log(title = "用户管理", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@Validated @RequestBody SysUser user)
{
if (UserConstants.NOT_UNIQUE.equals(userService.checkUserNameUnique(user.getUserName())))
{
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,登录账号已存在");
}
else if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,手机号码已存在");
}
else if (StringUtils.isNotEmpty(user.getEmail())
&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
{
return AjaxResult.error("新增用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setCreateBy(getUserId());
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
return toAjax(userService.insertUser(user));
}
/**
* 修改用户
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@Validated @RequestBody SysUser user)
{
userService.checkUserAllowed(user);
if (StringUtils.isNotEmpty(user.getPhonenumber())
&& UserConstants.NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,手机号码已存在");
}
else if (StringUtils.isNotEmpty(user.getEmail())
&& UserConstants.NOT_UNIQUE.equals(userService.checkEmailUnique(user)))
{
return AjaxResult.error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
}
user.setUpdateBy(getUserId());
return toAjax(userService.updateUser(user));
}
/**
* 删除用户
*/
@PreAuthorize("@ss.hasPermi('system:user:remove')")
@Log(title = "用户管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{userIds}")
public AjaxResult remove(@PathVariable Long[] userIds)
{
if (ArrayUtils.contains(userIds, getUserId()))
{
return error("当前用户不能删除");
}
return toAjax(userService.deleteUserByIds(userIds));
}
/**
* 重置密码
*/
@PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/resetPwd")
public AjaxResult resetPwd(@RequestBody SysUser user)
{
userService.checkUserAllowed(user);
user.setPassword(SecurityUtils.encryptPassword(user.getPassword()));
user.setUpdateBy(getUserId());
return toAjax(userService.resetPwd(user));
}
/**
* 状态修改
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.UPDATE)
@PutMapping("/changeStatus")
public AjaxResult changeStatus(@RequestBody SysUser user)
{
userService.checkUserAllowed(user);
user.setUpdateBy(getUserId());
return toAjax(userService.updateUserStatus(user));
}
/**
* 根据用户编号获取授权角色
*/
@PreAuthorize("@ss.hasPermi('system:user:query')")
@GetMapping("/authRole/{userId}")
public AjaxResult authRole(@PathVariable("userId") Long userId)
{
AjaxResult ajax = AjaxResult.success();
SysUser user = userService.selectUserById(userId);
List<SysRole> roles = roleService.selectRolesByUserId(userId);
ajax.put("user", user);
ajax.put("roles", SysUser.isAdmin(userId) ? roles : roles.stream().filter(r -> !r.isAdmin()).collect(Collectors.toList()));
return ajax;
}
/**
* 用户授权角色
*/
@PreAuthorize("@ss.hasPermi('system:user:edit')")
@Log(title = "用户管理", businessType = BusinessType.GRANT)
@PutMapping("/authRole")
public AjaxResult insertAuthRole(Long userId, Long[] roleIds)
{
userService.insertUserAuth(userId, roleIds);
return success();
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java
================================================
package com.ruoyi.web.controller.tool;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import com.ruoyi.common.core.controller.BaseController;
/**
* swagger 接口
*
* @author ruoyi
*/
@Controller
@RequestMapping("/tool/swagger")
public class SwaggerController extends BaseController
{
@PreAuthorize("@ss.hasPermi('tool:swagger:view')")
@GetMapping()
public String index()
{
return redirect("/swagger-ui.html");
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java
================================================
package com.ruoyi.web.controller.tool;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.StringUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
/**
* swagger 用户测试方法
*
* @author ruoyi
*/
@Api("用户信息管理")
@RestController
@RequestMapping("/test/user")
public class TestController extends BaseController
{
private final static Map<Integer, UserEntity> users = new LinkedHashMap<Integer, UserEntity>();
{
users.put(1, new UserEntity(1, "admin", "admin123", "15888888888"));
users.put(2, new UserEntity(2, "ry", "admin123", "15666666666"));
}
@ApiOperation("获取用户列表")
@GetMapping("/list")
public AjaxResult userList()
{
List<UserEntity> userList = new ArrayList<UserEntity>(users.values());
return AjaxResult.success(userList);
}
@ApiOperation("获取用户详细")
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path")
@GetMapping("/{userId}")
public AjaxResult getUser(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
return AjaxResult.success(users.get(userId));
}
else
{
return error("用户不存在");
}
}
@ApiOperation("新增用户")
@ApiImplicitParams({
@ApiImplicitParam(name = "userId", value = "用户id", dataType = "Integer"),
@ApiImplicitParam(name = "username", value = "用户名称", dataType = "String"),
@ApiImplicitParam(name = "password", value = "用户密码", dataType = "String"),
@ApiImplicitParam(name = "mobile", value = "用户手机", dataType = "String")
})
@PostMapping("/save")
public AjaxResult save(UserEntity user)
{
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
{
return error("用户ID不能为空");
}
return AjaxResult.success(users.put(user.getUserId(), user));
}
@ApiOperation("更新用户")
@PutMapping("/update")
public AjaxResult update(@RequestBody UserEntity user)
{
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUserId()))
{
return error("用户ID不能为空");
}
if (users.isEmpty() || !users.containsKey(user.getUserId()))
{
return error("用户不存在");
}
users.remove(user.getUserId());
return AjaxResult.success(users.put(user.getUserId(), user));
}
@ApiOperation("删除用户信息")
@ApiImplicitParam(name = "userId", value = "用户ID", required = true, dataType = "int", paramType = "path")
@DeleteMapping("/{userId}")
public AjaxResult delete(@PathVariable Integer userId)
{
if (!users.isEmpty() && users.containsKey(userId))
{
users.remove(userId);
return success();
}
else
{
return error("用户不存在");
}
}
}
@ApiModel(value = "UserEntity", description = "用户实体")
class UserEntity
{
@ApiModelProperty("用户ID")
private Integer userId;
@ApiModelProperty("用户名称")
private String username;
@ApiModelProperty("用户密码")
private String password;
@ApiModelProperty("用户手机")
private String mobile;
public UserEntity()
{
}
public UserEntity(Integer userId, String username, String password, String mobile)
{
this.userId = userId;
this.username = username;
this.password = password;
this.mobile = mobile;
}
public Integer getUserId()
{
return userId;
}
public void setUserId(Integer userId)
{
this.userId = userId;
}
public String getUsername()
{
return username;
}
public void setUsername(String username)
{
this.username = username;
}
public String getPassword()
{
return password;
}
public void setPassword(String password)
{
this.password = password;
}
public String getMobile()
{
return mobile;
}
public void setMobile(String mobile)
{
this.mobile = mobile;
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java
================================================
package com.ruoyi.web.core.config;
import com.cyl.manager.ums.domain.entity.Member;
import com.cyl.manager.ums.service.MemberService;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.constant.HttpStatus;
import com.ruoyi.common.core.domain.model.LoginMember;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.framework.config.LocalDataUtil;
import com.ruoyi.framework.web.service.TokenService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Configuration
public class H5MemberInterceptor extends HandlerInterceptorAdapter {
@Autowired
private TokenService tokenService;
@Autowired
private MemberService memberService;
private static String[] WHITE_PATHS = {
"/h5/sms/login",
"/h5/wechat/login",
"/h5/account/login",
"/h5/register",
"/h5/validate"
};
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String requestUri = request.getRequestURI();
boolean flag = true;
if (!requestUri.startsWith("/h5/")) {
return super.preHandle(request, response, handler);
}
for (String s : WHITE_PATHS) {
if (requestUri.startsWith(s)) {
flag = false;
break;
}
}
if (!flag) {
return super.preHandle(request, response, handler);
}
LoginMember loginMember = tokenService.getLoginMember(request);
if (loginMember == null) {
throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);
}
tokenService.verifyMemberToken(loginMember);
//获取会员信息
Member member = memberService.selectById(loginMember.getMemberId());
if (member == null || member.getStatus() == 0) {
throw new ServiceException("获取用户ID异常", HttpStatus.UNAUTHORIZED);
}
//将会员信息存放至全局
LocalDataUtil.setVar(Constants.MEMBER_INFO, member);
return super.preHandle(request, response, handler);
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java
================================================
package com.ruoyi.web.core.config;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
@Slf4j
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public H5MemberInterceptor memberInterceptor() {
return new H5MemberInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(memberInterceptor());
}
}
================================================
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
================================================
package com.ruoyi.web.core.config;
import com.ruoyi.common.config.RuoYiConfig;
import io.swagger.annotations.ApiOperation;
import io.swagger.models.auth.In;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import java.util.ArrayList;
import java.util.List;
/**
* Swagger2的接口配置
*
* @author ruoyi
*/
@Configuration
public class SwaggerConfig
{
/** 系统基础配置 */
@Autowired
private RuoYiConfig ruoyiConfig;
/** 是否开启swagger */
@Value("${swagger.enabled}")
private boolean enabled;
/** 设置请求的统一前缀 */
@Value("${swagger.pathMapping}")
private String pathMapping;
/**
* 创建API
*/
@Bean
public Docket createRestApi()
{
return new Docket(DocumentationType.OAS_30)
// 是否启用Swagger
.enable(enabled)
// 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
.apiInfo(apiInfo())
// 设置哪些接口暴露给Swagger展示
.select()
// 扫描所有有注解的api,用这种方式更灵活
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
// 扫描指定包中的swagger注解
// .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
// 扫描所有 .apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any())
.build()
/* 设置安全模式,swagger可以设置访问token */
.securitySchemes(securitySchemes())
.securityContexts(securityContexts())
.pathMapping(pathMapping);
}
/**
* 安全模式,这里指定token通过Authorization头请求头传递
*/
private List<SecurityScheme> securitySchemes()
{
List<SecurityScheme> apiKeyList = new ArrayList<SecurityScheme>();
apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue()));
return apiKeyList;
}
/**
* 安全上下文
*/
private List<SecurityContext> securityContexts()
{
List<SecurityContext> securityContexts = new ArrayList<>();
securityContexts.add(
SecurityContext.builder()
.securityReferences(defaultAuth())
.operationSelector(o -> o.requestMappingPattern().matches("/.*"))
.build());
return securityContexts;
}
/**
* 默认的安全上引用
*/
private List<SecurityReference> defaultAuth()
{
AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
authorizationScopes[0] = authorizationScope;
List<SecurityReference> securityReferences = new ArrayList<>();
securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
return securityReferences;
}
/**
* 添加摘要信息
*/
private ApiInfo apiInfo()
{
// 用ApiInfoBuilder进行定制
return new ApiInfoBuilder()
// 设置标题
.title("标题:接口文档")
// 描述
.description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...")
// 作者信息
.contact(new Contact(ruoyiConfig.getName(), null, null))
// 版本
.version("版本号:" + ruoyiConfig.getVersion())
.build();
}
}
================================================
FILE: ruoyi-admin/src/main/resources/META-INF/spring-devtools.properties
================================================
restart.include.json=/com.alibaba.fastjson.*.jar
================================================
FILE: ruoyi-admin/src/main/resources/application-druid.yml
================================================
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 主库数据源
master:
url: jdbc:mysql://localhost:3306/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8&rewriteBatchedStatements=true
username: root
password: password
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
statViewServlet:
# 控制台管理用户名和密码
login-username: ruoyi
login-password: 123456
# redis 配置
redis:
# 地址
host:
# 端口,默认为6379
port:
# 数据库索引
database:
# 密码
password:
ruoyi:
# 文件路径 示例( Windows配置C:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile: C:/ruoyi/uploadPath
scheduling:
enabled: false
#操作oss需要的一些参数
aliyun:
accessKeyId: 你的accessKeyId # 阿里云的accessKeyId
secretAccessKey: 你的accessKey密码 # accessKey 密码
oss:
endPoint: 你的endpoint # Endpoint:在阿里云oss控制台查看自己使用的endpoint
bucketName: 你的bucketName # bucket 名称
wechat:
enabled: false
appId: 你的微信服务号信息(h5的时候需要,小程序的时候不需要)
secret: 你的微信服务号信息(h5的时候需要,小程序的时候不需要)
merchantId: 微信支付商户号
privateKeyPath: 微信支付密钥地址相对地址
merchantSerialNumber: 微信支付密钥对应的序列号
apiV3key: 微信支付apiV3key
notifyUrl: 微信支付回调地址
miniProgramAppId: 小程序apppid(h5的时候不需要)
miniProgramSecret: 小程序Secret(h5的时候不需要)
sms:
enabled: true
# 阿里云 dysmsapi.aliyuncs.com
endpoint: dysmsapi.aliyuncs.com
accessKeyId: 你的accessKeyId #阿里云短信服务控制台查看
accessKeySecret: 你的accessKeySecret #同上
signName: 签名
templateId: 模板id
# 腾讯专用
sdkAppId:
aes:
# aes的密钥(长度只能是16或24或32位)
key: 1111111111111111
================================================
FILE: ruoyi-admin/src/main/resources/application.yml
================================================
# 项目相关配置
ruoyi:
# 名称
name: RuoYi
# 版本
version: 3.7.0
# 版权年份
copyrightYear: 2022
# 实例演示开关
demoEnabled: true
# 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
profile: C:/ruoyi/uploadPath
# 获取ip地址开关
addressEnabled: true
# 验证码类型 math 数组计算 char 字符验证
captchaType: math
# 前端请求的 跟踪 header name
traceIdName: x-web-trace-id
# 开发环境配置
server:
# 服务器的HTTP端口,默认为8080
port: 8080
servlet:
# 应用的访问路径
context-path: /
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# tomcat最大线程数,默认为200
max-threads: 800
# Tomcat启动初始化的线程数,默认值25
min-spare-threads: 30
# 日志配置
logging:
level:
com.ruoyi: debug
org.springframework: warn
# Spring配置
spring:
# 资源信息
messages:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: druid
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 10MB
# 设置总上传的文件大小
max-request-size: 20MB
# 服务模块
devtools:
restart:
# 热部署开关
enabled: true
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
druid:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 连接超时时间
timeout: 50s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# token配置
token:
# 令牌自定义标识
header: Authorization
# 令牌密钥
secret: abcdefghijkomnopqrstuvwxyx
# 令牌有效期(默认30分钟)
expireTime: 30
memberExpireTime: 30
# mybatis-plus 配置
mybatis-plus:
# 搜索指定包别名
typeAliasesPackage: com.cyl.**.domain, com.ruoyi.common.core.domain.entity, com.ruoyi.**.domain
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapperLocations: classpath*:mapper/**/*Mapper.xml
# 加载全局的配置文件
configLocation: classpath:mybatis/mybatis-config.xml
global-config:
db-config:
id-type: auto
update-strategy: ignored
pagehelper:
helperDialect: mysql
supportMethodsArguments: true
params: count=countSql
# Swagger配置
swagger:
# 是否开启swagger
enabled: true
# 请求前缀
pathMapping: /dev-api
# 防止XSS攻击
xss:
# 过滤开关
enabled: true
# 排除链接(多个用逗号分隔)
excludes: /system/notice
# 匹配链接
urlPatterns: /system/*,/monitor/*,/tool/*
extra:
wx:
appid: wxappid
secret: wxsecret
redirect: ""
scheduling:
enabled: true
http-pool:
connection-request-timeout: 10000
connection-timeout: 10000
socket-timeout: 10000
max-per-route: 200
max-total: 200
gen:
# 作者
author: zcc
# 默认生成包路径 system 需改成自己的模块名称 如 system monitor tool
packageName: com.cyl.mall
# 自动去除表前缀,默认是false
autoRemovePre: true
# 表前缀(生成类名不会包含表前缀,多个用逗号分隔)
tablePrefix: mall_
# 一级权限名
rootPermission: mall
# 模板根路径
templateRootPath: vm
# 路径
path:
# 后端根目录
backPath: D:\java_project\mall\ruoyi-mall
# 后端 service 模块名
serviceModule: mall
# 后端 api 模块名, 默认与 service 一致
apiModule: mall
# 前端根目录
frontPath: D:\java_project\mall\ruoyi-mall-vue
# 前端 api 目录
frontApiPath: src/api/mall
# 前端 view 目录
frontViewPath: src/views/mall
# sql 目录
sql: sql
# 环境变量
env:
# 审计 的 基类(创建者,创建时间,更新者,更新时间)
baseAudit: com.ruoyi.common.core.domain.BaseAudit
# 树 的 基类
baseTree: com.ruoyi.common.core.domain.TreeEntity
# 对于新增的模板,如果没有默认值,在这里进行配置
fileMap:
"api.js.vm": "${frontPath}/${frontApiPath}/${className}.js"
"controller.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/controller/${ClassName}Controller.java"
"service.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/service/${ClassName}Service.java"
"mapper.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/mapper/${ClassName}Mapper.java"
"convert.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/convert/${ClassName}Convert.java"
"example.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/example/${ClassName}Example.java"
"query.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/query/${ClassName}Query.java"
"dto.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/dto/${ClassName}DTO.java"
"vo.java.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/${packageName}/pojo/vo/${ClassName}VO.java"
"domain.java.vm": "${backPath}/${apiModule}/${MAIN_JAVA}/${packageName}/domain/${ClassName}.java"
"mapper.xml.vm": "${backPath}/${serviceModule}/${MAIN_RESOURCES}/mapper/${ClassName}Mapper.xml"
"sql.vm": "${backPath}/sql/${className}.sql"
"h2.sql.vm": "${backPath}/${serviceModule}/${MAIN_JAVA}/db/${tableName}-h2.sql"
"add.vue.vm": "${frontPath}/${frontViewPath}/Add${ClassName}.vue"
"index.vue.vm": "${frontPath}/${frontViewPath}/${className}/index.vue"
"index-tree.vue.vm": "${frontPath}/${frontViewPath}/index.vue"
"sub-domain.java.vm": "${frontPath}/${frontViewPath}/Sub${ClassName}.vue"
templates:
- vm/js/api.js.vm
- vm/java/controller.java.vm
- vm/java/service.java.vm
- vm/java/mapper.java.vm
- vm/java/convert.java.vm
- vm/java/query.java.vm
- vm/java/dto.java.vm
- vm/java/vo.java.vm
- vm/java/domain.java.vm
- vm/xml/mapper.xml.vm
- vm/sql/sql.vm
testTemplates:
# - vm/sql/h2.sql.vm
crudTemplates:
# - vm/vue/add.vue.vm
- vm/vue/index.vue.vm
treeTemplates:
# - vm/vue/index-tree.vue.vm
subTemplates:
# - vm/vue/index.vue.vm
# - vm/java/sub-domain.java.vm
type2component:
"String": "a-input("
"LocalDate": "a-date-picker("
"LocalDateTime": "a-date-picker(format=\"YYYY-MM-DD HH:mm\""
================================================
FILE: ruoyi-admin/src/main/resources/banner.txt
================================================
Application Version: ${ruoyi.version}
Spring Boot Version: ${spring-boot.version}
////////////////////////////////////////////////////////////////////
// _ooOoo_ //
// o8888888o //
// 88" . "88 //
// (| ^_^ |) //
// O\ = /O //
// ____/`---'\____ //
// .' \\| |// `. //
// / \\||| : |||// \ //
// / _||||| -:- |||||- \ //
// | | \\\ - /// | | //
// | \_| ''\---/'' | | //
// \ .-\__ `-` ___/-. / //
// ___`. .' /--.--\ `. . ___ //
// ."" '< `.___\_<|>_/___.' >'"". //
// | | : `- \`.;`\ _ /`;.`/ - ` : | | //
// \ \ `-. \_ __\ /__ _/ .-` / / //
// ========`-.____`-.___\_____/___.-`____.-'======== //
// `=---=' //
// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ //
// 佛祖保佑 永不宕机 永无BUG //
////////////////////////////////////////////////////////////////////
================================================
FILE: ruoyi-admin/src/main/resources/i18n/messages.properties
================================================
#错误消息
not.null=* 必须填写
user.jcaptcha.error=验证码错误
user.jcaptcha.expire=验证码已失效
user.not.exists=用户不存在/密码错误
user.password.not.match=用户不存在/密码错误
user.password.retry.limit.count=密码输入错误{0}次
user.password.retry.limit.exceed=密码输入错误{0}次,帐户锁定10分钟
user.password.delete=对不起,您的账号已被删除
user.blocked=用户已封禁,请联系管理员
role.blocked=角色已封禁,请联系管理员
user.logout.success=退出成功
length.not.valid=长度必须在{min}到{max}个字符之间
user.username.not.valid=* 2到20个汉字、字母、数字或下划线组成,且必须以非数字开头
user.password.not.valid=* 5-50个字符
user.email.not.valid=邮箱格式错误
user.mobile.phone.number.not.valid=手机号格式错误
user.login.success=登录成功
user.register.success=注册成功
user.notfound=请重新登录
user.forcelogout=管理员强制退出,请重新登录
user.unknown.error=未知错误,请重新登录
##文件上传消息
upload.exceed.maxSize=上传的文件大小超出限制的文件大小!<br/>允许的文件最大大小是:{0}MB!
upload.filename.exceed.length=上传的文件名最长{0}个字符
##权限
no.permission=您没有数据的权限,请联系管理员添加权限 [{0}]
no.create.permission=您没有创建数据的权限,请联系管理员添加权限 [{0}]
no.update.permission=您没有修改数据的权限,请联系管理员添加权限 [{0}]
no.delete.permission=您没有删除数据的权限,请联系管理员添加权限 [{0}]
no.export.permission=您没有导出数据的权限,请联系管理员添加权限 [{0}]
no.view.permission=您没有查看数据的权限,请联系管理员添加权限 [{0}]
================================================
FILE: ruoyi-admin/src/main/resources/logback.xml
================================================
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 -->
<property name="log.path" value="/data/logs/mall" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] [%logger:%L] [%X{spanId}]: %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/mall.current.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/mall.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 10天 -->
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 过滤的级别 -->
<level>DEBUG</level>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/mall-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/mall-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 10天 -->
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 10天 -->
<maxHistory>10</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="console" />
</root>
<logger name="org.springframework" level="warn" />
<logger name="com.cyl.manager.aws.mapper" level="debug" />
<logger name="com.cyl.manager.act.mapper" level="debug" />
<logger name="com.cyl.manager.oms.mapper" level="debug" />
<logger name="com.cyl.manager.pms.mapper" level="debug" />
<logger name="com.cyl.manager.ums.mapper" level="debug" />
<logger name="com.ruoyi.framework.aspectj.LoggingAspect" level="info" />
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>
================================================
FILE: ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml
================================================
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<settings>
<setting name="cacheEnabled" value="true" /> <!-- 全局映射器启用缓存 -->
<setting name="useGeneratedKeys" value="true" /> <!-- 允许 JDBC 支持自动生成主键 -->
<setting name="defaultExecutorType" value="REUSE" /> <!-- 配置默认的执行器 -->
<setting name="logImpl" value="SLF4J" /> <!-- 指定 MyBatis 所用日志的具体实现 -->
<setting name="mapUnderscoreToCamelCase" value="true"/> <!-- 驼峰式命名 -->
</settings>
</configuration>
================================================
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java
================================================
package com.fjp.lc.test.common;
import cn.hutool.core.img.Img;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Test;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.web.client.RestTemplate;
import java.io.File;
import java.io.IOException;
import java.security.NoSuchAlgorithmException;
import java.time.Instant;
import java.util.HashMap;
import java.util.Map;
@Slf4j
public class CommonTest {
/* @Test
public void test3() throws IOException {
Long start = System.currentTimeMillis();
log.info("start {}", start);
Thumbnails.of("D:/build/tt.jpg")
.scale(1f)
.outputQuality(0.5f)
.toFile("D:/build/tt1.jpg");
log.info("end {}", System.currentTimeMillis() - start);
}*/
@Test
public void testEquals(){
Integer num1 = 100;
Integer num2 = 100;
System.out.println(num1 == num2); // true,因为对于 Integer 类型,-128 到 127 之间的值会被缓存
System.out.println(num1.equals(num2)); // true,因为它们的值相同
Integer num3 = 200;
Integer num4 = 200;
System.out.println(num3 == num4); // false,因为超出了缓存范围,会创建新的对象实例
System.out.println(num3.equals(num4)); // true,因为它们的值相同
}
@Test
public void test4() throws IOException {
String f1 = "D:/build/tt.jpg";
String f2 = "D:/build/tt2.jpg";
Long start = System.currentTimeMillis();
log.info("start {}", start);
ImgUtil.scale(new File(f1), new File(f2), .1f);
log.info("end {}", System.currentTimeMillis() - start);
}
@Test
public void test5() throws IOException {
String f1 = "D:/build/tt.jpg";
String f2 = "D:/build/tt3.jpg";
Long start = System.currentTimeMillis();
log.info("start {}", start);
Img.from(FileUtil.file(f1))
.setQuality(1)//压缩比率
.write(FileUtil.file(f2));
log.info("end {}", System.currentTimeMillis() - start);
}
@Test
public void testTimestampt(){
Instant tsObj = Instant.now();
long secs = tsObj.getEpochSecond();
System.out.println(secs);
}
@Test
public void test() throws NoSuchAlgorithmException {
RestTemplate restTemplate = new RestTemplate();
String url = "http://bmfw.www.gov.cn/bjww/interface/interfaceJson";
String key = "3C502C97ABDA40D0A60FBEE50FAAD1DA";
Long timestamp = Instant.now().getEpochSecond();
String token = "23y0ufFl5YxIyGrI8hWRUZmKkvtSjLQA";
String nonce ="123456789abcdefg";
String passid = "zdww";
String tempString = timestamp + token + nonce + timestamp;
String signatureHeader = DigestUtils.sha256Hex(tempString).toUpperCase();
System.out.println(signatureHeader);
tempString = timestamp + "fTN2pfuisxTavbTuYVSsNJHetwq5bJvC" + "QkjjtiLM2dCratiA" + timestamp;
String zdwwsignature = DigestUtils.sha256Hex(tempString).toUpperCase();
System.out.println(zdwwsignature);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("x-wif-nonce","QkjjtiLM2dCratiA");
headers.set("x-wif-paasid","smt-application");
headers.set("x-wif-signature",zdwwsignature);
headers.set("x-wif-timestamp",timestamp.toString());
headers.set("Origin","http://bmfw.www.gov.cn");
headers.set("Referer","http://bmfw.www.gov.cn/yqfxdjcx/risk.html");
Map<String,String> map = new HashMap<String,String>();
map.put("appId","NcApplication");
map.put("paasHeader",passid);
map.put("timestampHeader",timestamp.toString());
map.put("nonceHeader",nonce);
map.put("signatureHeader",signatureHeader);
map.put("key",key);
String json= JSON.toJSONString(map);
System.out.println(json);
HttpEntity<String> entity = new HttpEntity<String>(json,headers);
String ans = restTemplate.postForObject(url, entity, String.class);
System.out.println(ans);
}
}
================================================
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/ControllerTest.java
================================================
package com.fjp.lc.test.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.cyl.h5.controller.H5OrderController;
import com.cyl.h5.domain.form.ApplyRefundForm;
import com.cyl.manager.oms.domain.entity.Order;
import com.cyl.manager.oms.domain.entity.OrderItem;
import com.cyl.manager.oms.mapper.OrderMapper;
import com.cyl.manager.oms.service.OrderService;
import com.ruoyi.RuoYiApplication;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
@RunWith(SpringRunner.class)
@SpringBootTest(classes = RuoYiApplication.class)
@ActiveProfiles("dev")
@Slf4j
public class ControllerTest {
@Autowired
private H5OrderController h5OrderController;
@Autowired
private OrderMapper orderMapper;
@Test
public void test() {
ApplyRefundForm applyRefundForm = new ApplyRefundForm();
QueryWrapper<Order> queryWrapper = new QueryWrapper();
queryWrapper.eq("pay_id", 6226229322123265l);
Order order = orderMapper.selectOne(queryWrapper);
applyRefundForm.setOrderId(order.getId());
applyRefundForm.setApplyRefundType(1);
applyRefundForm.setReason("不要了");
applyRefundForm.setQuantity(1);
applyRefundForm.setRefundAmount(new BigDecimal(0.01));
h5OrderController.applyRefund(applyRefundForm);
}
}
================================================
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/OssTest.java
================================================
package com.fjp.lc.test.service;
import com.ruoyi.RuoYiApplication;
import com.ruoyi.common.utils.OssUtils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class)
@ActiveProfiles("dev")
public class OssTest {
@Autowired
private OssUtils ossUtils;
@Test
public void download() {
ossUtils.downloadFile("2022/12/306da8f7f6491046ba86633e4de8240b84微信图片_20220606114231.jpg");
ossUtils.downloadFile("2022/12/29543652b023af4caeb5d9d74c2f98bdfb微信图片_20220606114231.jpg");
ossUtils.downloadFile("2022/12/30237d83af8f8e494f98caff9ac87d8eed微信图片_20220801215429.png");
ossUtils.downloadFile("2023/03/119682c2bb40d54639b51f9819cb127f44400x400.png");
ossUtils.downloadFile("2023/03/11a67b86d4dd6b4fc687f9044155c34083400x400blue.png");
ossUtils.downloadFile("2023/07/26975a5546e4e14baca40ffde696ee3ffb微信图片_202304151221202.jpg");
ossUtils.downloadFile("2023/07/26e89dd1d370b74598aba6dd7cced81f72微信图片_20230415121747.jpg");
ossUtils.downloadFile("2023/07/2625f4fc4576974035990f35ffae4cbe89微信图片_202305311200104.jpg");
ossUtils.downloadFile("2023/07/269436b74dd01f45a09e0d63c02bc2bc20微信图片_202207241638361.jpg");
ossUtils.downloadFile("2023/07/2609fb7c7b52f04b29893fb7034d5488eb微信图片_20220822144529.jpg");
ossUtils.downloadFile("2023/07/26561982918fbd4269abc1a87ea7c2f09b微信图片_20230518014301.jpg");
ossUtils.downloadFile("2023/05/26572ddcb26dd64ea9aef1615c518311f2main.jpg");
ossUtils.downloadFile("2023/07/26b0e6d79409c047afbf435c2e45b2864e微信图片_202305070430094.jpg");
ossUtils.downloadFile("2023/07/268673a92f29ea4ed9a3503587c658fb7d微信图片_20230304190516.jpg");
ossUtils.downloadFile("2023/08/14ff4bde97153a416e9cdde8035bc7e0f326db1efa38167a4cd5ab392cd7bb6b8fc9ed5b46ef3e460fe27f73aa280993004.jpg.png");
ossUtils.downloadFile("2023/07/269922ae58ef074304a907f6524d13401c微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/12/03847a4833090f40de9c6b49f7d553608a微信图片_202303082336274.jpg");
ossUtils.downloadFile("2023/12/034459c85e71e3402aba5eb7e0531201fd微信图片_202303082336273.jpg");
ossUtils.downloadFile("2023/12/03d3e5fc569e7d42529c8a3b504ae4d92c微信图片_202303082336271.jpg");
ossUtils.downloadFile("2023/12/0383e8c4d2be284355a07233bc1c38e6d7微信图片_202303082336272.jpg");
ossUtils.downloadFile("2023/06/12539d8d04c72247c4bd4ac3820ae939a3227ddfae236d5a4adca97541f7937488dc033fc965331ca74b3a9d6daa9fd0e48225sy_content_good_stuff@2x.png");
ossUtils.downloadFile("2023/03/113d7ab00580e44f9ab2d274c0e3f9cd89400x400.png");
ossUtils.downloadFile("2023/03/11a1e8bc35653044d2a2012ef1a30dc5d9blue.png");
ossUtils.downloadFile("2023/03/11ca202adcbef54a97879e3b6ca9214729red.png");
ossUtils.downloadFile("2023/03/113be968d872ca4a0bb0d8fc08e13bb81fgrey.png");
ossUtils.downloadFile("2023/03/112f186945ad444e71a6fdaf5a634577d0yellow.png");
ossUtils.downloadFile("2023/03/11703d301ec87448a8ad8c754ca7c043e5blue.png");
ossUtils.downloadFile("2023/06/126850de7100594b2cbe67ba10ac30315e227ddfae236d5a4adca97541f7937488dc033fc965331ca74b3a9d6daa9fd0e48225sy_content_good_stuff@2x.png");
ossUtils.downloadFile("2023/06/1297a4dd69e5b14fe0bc8da968c0b2043f22dea3ccb9cd45412da6300c5ac7d8f68903bae3d53cef7f4dfeb38bbafe109a3755sy_content_digital@2x.png");
ossUtils.downloadFile("2023/06/1261979f808cb04d108727cf3709ffa355226569ab1688ec4eb8a7a2d879f3cd36b303df12b214f50f49928b53ad113e11170bsy_content_apparel@2x.png");
ossUtils.downloadFile("2023/06/123c2915e18c604f3290ff4876954f6aa32213fbf4b69d9041d68da50fdd71aa6b5403afbad6ea2bce46db8108e48eb2bed9d3sy_content_care@2x.png");
ossUtils.downloadFile("2023/06/12beec9af7400c44deb3951fa5be95b0ae22e0ce080252874dd4b22e7559ac1478bf036ce7046f48eb4faba7f43849d2d7814dsy_content_rice@2x.png");
ossUtils.downloadFile("2023/06/12cbeee94461d44d13bba3503682286e382231e1747caf7a4f9f9d54af5789d1d538033d7aaef21b2b4984abd8a07a2b97c49csy_content_drinks@2x.png");
ossUtils.downloadFile("2023/06/121dde34bbb8024ac99e09af20e380d78822b62a9a9f2e8349cc9e0321a53e27bf780322d4a84f6c334c7d984484f04e87dbb1sy_content_sports@2x.png");
ossUtils.downloadFile("2023/06/129a33a0881f4e4d279cc067e592b588612253d01aa5f365420e8b96cd93ee1893f6035a69224ec7904e2b94047f22ddfb5d19sy_content_other@2x.png");
ossUtils.downloadFile("2023/03/119682c2bb40d54639b51f9819cb127f44400x400.png");
ossUtils.downloadFile("2023/03/11a67b86d4dd6b4fc687f9044155c34083400x400blue.png");
ossUtils.downloadFile("2023/07/26975a5546e4e14baca40ffde696ee3ffb微信图片_202304151221202.jpg");
ossUtils.downloadFile("2023/07/26e89dd1d370b74598aba6dd7cced81f72微信图片_20230415121747.jpg");
ossUtils.downloadFile("2023/07/2625f4fc4576974035990f35ffae4cbe89微信图片_202305311200104.jpg");
ossUtils.downloadFile("2023/07/269436b74dd01f45a09e0d63c02bc2bc20微信图片_202207241638361.jpg");
ossUtils.downloadFile("2023/07/2609fb7c7b52f04b29893fb7034d5488eb微信图片_20220822144529.jpg");
ossUtils.downloadFile("2023/07/26561982918fbd4269abc1a87ea7c2f09b微信图片_20230518014301.jpg");
ossUtils.downloadFile("2023/05/26572ddcb26dd64ea9aef1615c518311f2main.jpg");
ossUtils.downloadFile("2023/07/26b0e6d79409c047afbf435c2e45b2864e微信图片_202305070430094.jpg");
ossUtils.downloadFile("2023/07/268673a92f29ea4ed9a3503587c658fb7d微信图片_20230304190516.jpg");
ossUtils.downloadFile("2023/08/14ff4bde97153a416e9cdde8035bc7e0f326db1efa38167a4cd5ab392cd7bb6b8fc9ed5b46ef3e460fe27f73aa280993004.jpg.png");
ossUtils.downloadFile("2023/07/269922ae58ef074304a907f6524d13401c微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/26ecce066aa266490b9462dd6326ad1718微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/264d37c9c96f464a3c9a25cca77312e2a6微信图片_20220801215429.png");
ossUtils.downloadFile("2023/07/263ab3be7a6bb24ad7b809f550e0948939微信图片_20220801215429.png");
ossUtils.downloadFile("2023/06/16f6c3727142d4486089a09dbd19762c39266fb233a90ba449bf9c082ebd592078dd1679204678mm5.jpg");
ossUtils.downloadFile("2023/06/1654b558f7bbc241a8aecd5f017227a3e4266fb233a90ba449bf9c082ebd592078dd1679204678mm5.jpg");
ossUtils.downloadFile("2023/06/1638b241a1b12d4a4ebf8c5eb08bc9986d266fb233a90ba449bf9c082ebd592078dd1679204678mm5.jpg");
ossUtils.downloadFile("2023/06/16da593a9165834cabb4ab5ed2ba580cbd266fb233a90ba449bf9c082ebd592078dd1679204678mm5.jpg");
ossUtils.downloadFile("2023/12/03847a4833090f40de9c6b49f7d553608a微信图片_202303082336274.jpg");
ossUtils.downloadFile("2023/12/034459c85e71e3402aba5eb7e0531201fd微信图片_202303082336273.jpg");
ossUtils.downloadFile("2023/12/03d3e5fc569e7d42529c8a3b504ae4d92c微信图片_202303082336271.jpg");
ossUtils.downloadFile("2023/12/0383e8c4d2be284355a07233bc1c38e6d7微信图片_202303082336272.jpg");
ossUtils.downloadFile("2023/08/148a3892f617f04af3ab2da2dbf50b2219269922ae58ef074304a907f6524d13401c微信图片_20220801215429.png.png");
ossUtils.downloadFile("2023/05/266fb233a90ba449bf9c082ebd592078dd1679204678mm5.jpg");
ossUtils.downloadFile("2023/05/2602dc3dc1e02f44289c89a5426b3922femain.jpg");
ossUtils.downloadFile("2023/05/2688e9a4a5a22847eda09c555a0f16f3a52222.png");
ossUtils.downloadFile("2023/07/26db1efa38167a4cd5ab392cd7bb6b8fc9ed5b46ef3e460fe27f73aa280993004.jpg");
ossUtils.downloadFile("2023/07/26079a8b93ec924d44b11915cc17dfd53e微信图片_20230415122120.jpg");
ossUtils.downloadFile("2023/07/267eaa27402fd44f2ea12801cd263b6a41微信图片_20230507043009.jpg");
ossUtils.downloadFile("2023/07/26d9a42d98a1a244d094b39516be0241c9微信图片_20230415121747.jpg");
ossUtils.downloadFile("2023/07/263c45b789fb254c2fbc6bb639357b3f5f微信图片_202305311200104.jpg");
ossUtils.downloadFile("2023/07/269436b74dd01f45a09e0d63c02bc2bc20微信图片_202207241638361.jpg");
ossUtils.downloadFile("2023/07/2609fb7c7b52f04b29893fb7034d5488eb微信图片_20220822144529.jpg");
ossUtils.downloadFile("2023/07/268673a92f29ea4ed9a3503587c658fb7d微信图片_20230304190516.jpg");
ossUtils.downloadFile("2023/07/26561982918fbd4269abc1a87ea7c2f09b微信图片_20230518014301.jpg");
ossUtils.downloadFile("2023/12/187be2528584434a488b4580c363bc559d作品.jpg");
ossUtils.downloadFile("2023/07/26f73d933b547a4574979ee7ae3ede47f4微信图片_202304151217474.jpg");
ossUtils.downloadFile("2023/05/26972c7a98b6df49dab1fe839232bff5c31679204678mm5.jpg");
ossUtils.downloadFile("2023/05/267c68f6226f2a443485699c8411e299d4main.jpg");
ossUtils.downloadFile("2023/05/26db36f518447d4df98957285931c83d7c1r.jpg");
ossUtils.downloadFile("2023/05/2629464fb14f79418985a99ba3238b8db624.jpg");
ossUtils.downloadFile("2023/05/267c89e30b8f8c45d58161a4e78800d4813.jpg");
ossUtils.downloadFile("2023/05/263a48cd980e5546f8b2db583f1753c6f64.jpg");
ossUtils.downloadFile("2023/05/263252d6187d1647c186b5c3e703615e352222.png");
ossUtils.downloadFile("2023/07/26fb45128fd4e44b049148db359ff53c01a82772585ab081455e14bbe92afbc64.jpg");
ossUtils.downloadFile("2023/07/2619a2b65b4ac54d10a8ccd1078d800a7bc46ad9eba9cd72a0995a1ea0c3f06dd.jpg");
ossUtils.downloadFile("2023/07/26d43585cc52dd43e7b33d29a8812bf766微信图片_202303292142191.jpg");
ossUtils.downloadFile("2023/07/2636761e811dfb4c1192cf3aeaf6c32a78微信图片_20230329214219.jpg");
ossUtils.downloadFile("2023/07/26af858c07e28044baabf4670f0a18d759微信图片_202303292142192.jpg");
ossUtils.downloadFile("2023/07/2681376357d7ae42a5b78f318c23d57e14微信图片_202304151221203.jpg");
ossUtils.downloadFile("2023/07/261e8252d98a2f46698ca78f15107cc49f微信图片_202304151221204.jpg");
ossUtils.downloadFile("2023/07/26abbd8208878349669e0fb7ea6df11350微信图片_202304151221201.jpg");
ossUtils.downloadFile("2023/07/267008c38e1fd54ea593693eed573963f7微信图片_20230415122120.jpg");
ossUtils.downloadFile("2023/07/2635b63ed15d1345d08e6a685701cc58f1微信图片_202304151221202.jpg");
ossUtils.downloadFile("2023/07/260c209bf387f6490db6505aee72e620f5微信图片_20230507043009.jpg");
ossUtils.downloadFile("2023/07/268dcb6126ad73407eabb54baa2fb0ec80微信图片_202305070430091.jpg");
ossUtils.downloadFile("2023/07/262df759a436784bc481080e25a2d9d708微信图片_202305070430092.jpg");
ossUtils.downloadFile("2023/07/26666593a296a64088af4eb0647a4e2f20微信图片_202305070430094.jpg");
ossUtils.downloadFile("2023/07/26e1c4d225037746bea54766d2d947aae2微信图片_202305070430093.jpg");
ossUtils.downloadFile("2023/07/265d82761866ec44a1891a03dc079951de微信图片_20230415121747.jpg");
ossUtils.downloadFile("2023/07/266b3a6d093bc344409937958a83422c4e微信图片_202304151217471.jpg");
ossUtils.downloadFile("2023/07/26c681b61d879d48a8a50f219bf0b45423微信图片_202304151217474.jpg");
ossUtils.downloadFile("2023/07/26c92bd48e55634ed18ce7a49f3488a5e5微信图片_202304151217472.jpg");
ossUtils.downloadFile("2023/07/26160d66ecfa6d4e4480936c0627ab6168微信图片_202304151217473.jpg");
ossUtils.downloadFile("2023/07/26e91ff64478f8405a817964730d35f645微信图片_20230531120010.jpg");
ossUtils.downloadFile("2023/07/262d7e659fc9044a35a00717d927eb6201微信图片_202305311200101.jpg");
ossUtils.downloadFile("2023/07/26b6d799a3e30e43c4900bd726f1d87c39微信图片_202305311200103.jpg");
ossUtils.downloadFile("2023/07/26555fabd98cdf46a58c391898c63f62f2微信图片_202305311200102.jpg");
ossUtils.downloadFile("2023/07/26f44d84cea13f4276b92c75d072aabeea微信图片_202305311200104.jpg");
ossUtils.downloadFile("2023/07/2627916262b7c442a08c04f1b3738a1ccc微信图片_20220724163836.jpg");
ossUtils.downloadFile("2023/07/26ef9876f509e14e0985fb045ea4f8d02f微信图片_202207241638361.jpg");
ossUtils.downloadFile("2023/07/26f2ac39fef9d7491a8a3908df9695ab51微信图片_202207241638362.jpg");
ossUtils.downloadFile("2023/07/2676b97cc6b45a43ba96756e9b21dcf2cb微信图片_202207241638363.jpg");
ossUtils.downloadFile("2023/07/263867f3bf67f248ce9c31fe0985f40523微信图片_202208221445291.jpg");
ossUtils.downloadFile("2023/07/26feafa3cc0e584620855759538098bc4f微信图片_202208221445292.jpg");
ossUtils.downloadFile("2023/07/268699fd3e13bb42c5a941784fe85ff366微信图片_202208221445294.jpg");
ossUtils.downloadFile("2023/07/26b717d87954914c60893fdff0bc6eb83d微信图片_202208221445293.jpg");
ossUtils.downloadFile("2023/07/267af6e46a2119467ab7baf569f57e0136微信图片_202303041905163.jpg");
ossUtils.downloadFile("2023/07/26386743e26a594bdcaaf4d481d5d34b0a微信图片_202303041905164.jpg");
ossUtils.downloadFile("2023/07/26e258e26755474d12967277e16281c0f6微信图片_202303041905165.jpg");
ossUtils.downloadFile("2023/07/267a9d29bb17a3403e84edc968fb2a5133微信图片_202305180143012.jpg");
ossUtils.downloadFile("2023/07/26a1f38481c8784e2782f1857b35dfacc1微信图片_202305180143014.jpg");
ossUtils.downloadFile("2023/07/267bc956e7bb97441e98af9d07aee71f1c微信图片_202305180143013.jpg");
ossUtils.downloadFile("2023/07/26ee7b2f3365a848c6a952a7b9c4582023微信图片_2022080121");
ossUtils.downloadFile("2023/05/268ee9e13df1fb499697550eec576b08af1.png");
ossUtils.downloadFile("2023/05/26795e6f86285a4cc99c21d79f3ad06e1e2.jpg");
ossUtils.downloadFile("2023/05/26772b2920bfd04a1faf85fe6a9ff5bb953.jpg");
ossUtils.downloadFile("2023/05/2600944930702a442583d92c3bd6ba6af94.jpg");
ossUtils.downloadFile("2023/05/26b6ba13ad4ade4ba881466c58cb21bfd8main.jpg");
ossUtils.downloadFile("2023/05/262961530966aa48c5a5f13860b446a0df24.jpg");
ossUtils.downloadFile("2023/05/26d678b548b96b437cb1ca4402771525c23.jpg");
ossUtils.downloadFile("2023/05/264d31c21f18924e02bd386dd7be61809e4.jpg");
ossUtils.downloadFile("2023/05/26ba2304c124294ff6b47e3b7bb9faa900a.jpg");
ossUtils.downloadFile("2023/05/26dcc01da95cb7466095ee4be3e8e57943b.jpg");
ossUtils.downloadFile("2023/05/266a1c5e16e05b45cfbe152af9ca558b70c.png");
ossUtils.downloadFile("2023/07/2665647ec5442d4e72960fa1772b5a2befa82772585ab081455e14bbe92afbc64.jpg");
ossUtils.downloadFile("2023/07/26759113e01b5f4230be78447d733de531微信图片_202304151221205.jpg");
ossUtils.downloadFile("2023/07/264e6e7ee82cb144b498757c8c2b65bf83微信图片_20230507043009.jpg");
ossUtils.downloadFile("2023/07/26898650b538c34de399e831417c4bb69a微信图片_202304151217474.jpg");
ossUtils.downloadFile("2023/07/269e8efd18c2784fe29898d8f0885cc688微信图片_202305311200101.jpg");
ossUtils.downloadFile("2023/07/2688d0c5787ae54b158b88a03a3f874c68微信图片_202305311200102.jpg");
ossUtils.downloadFile("2023/07/26596a8e6b207a474fa4e7cf5560da251d微信图片_202207241638366.jpg");
ossUtils.downloadFile("2023/07/26832713b49dd4488eaf3c3d46b9dfe83d微信图片_202207241638367.jpg");
ossUtils.downloadFile("2023/07/26e9928d05666e47e488491e63d8d4c7d5微信图片_20220822144529.jpg");
ossUtils.downloadFile("2023/07/26c442b5df35c140228dde498ef4b6c1d2微信图片_202303041905161.jpg");
ossUtils.downloadFile("2023/07/26779b5452701140d9927c698825eb93e0微信图片_202305180143011.jpg");
ossUtils.downloadFile("2023/07/26405414f3d4134af1a786585c6780f88c微信图片_202305180143014.jpg");
}
}
================================================
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java
================================================
package com.fjp.lc.test.service;
import cn.hutool.core.lang.Snowflake;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.AES;
import com.alibaba.fastjson.JSON;
import com.cyl.h5.domain.dto.PayNotifyMessageDTO;
import com.cyl.h5.service.H5OrderService;
import com.cyl.job.OrderJob;
import com.cyl.manager.act.service.IntegralHistoryService;
import com.cyl.manager.oms.service.AftersaleService;
import com.cyl.manager.ums.service.MemberCartService;
import com.ruoyi.RuoYiApplication;
import com.ruoyi.common.config.properties.SmsProperties;
import com.ruoyi.common.core.sms.AliyunSmsTemplate;
import com.ruoyi.common.core.sms.SmsTemplate;
import com.ruoyi.common.utils.SecurityUtils;
import com.wechat.pay.java.service.partnerpayments.jsapi.model.Transaction;
import com.wechat.pay.java.service.refund.model.RefundNotification;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.ResponseEntity;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class)
@ActiveProfiles("dev")
@Slf4j
public class ServiceTest {
@Autowired
private AftersaleService aftersaleService;
@Autowired
private MemberCartService memberCartService;
@Autowired
private SmsProperties smsProperties;
@Value("${aes.key}")
private String key;
@Autowired
private IntegralHistoryService integralHistoryService;
@Autowired
private OrderJob orderJob;
@Test
public void testOrderJob(){
orderJob.batchCompleteOrder();
}
@Test
public void test12(){
integralHistoryService.handleIntegral(5405053175810048L,new BigDecimal("2.89"),29L);
}
@Test
public void t(){
String a = "{\"amount\":{\"currency\":\"CNY\",\"discountRefund\":0,\"from\":[],\"payerRefund\":2,\"payerTotal\":2,\"refund\":2,\"refundFee\":0,\"settlementRefund\":2,\"settlementTotal\":2,\"total\":2},\"channel\":\"ORIGINAL\",\"createTime\":\"2024-04-26T18:17:56+08:00\",\"fundsAccount\":\"UNAVAILABLE\",\"outRefundNo\":\"5773276988819456\",\"outTradeNo\":\"5773274485622785\",\"promotionDetail\":[],\"refundId\":\"50303909472024042683046217485\",\"refundStatus\":\"SUCCESS\",\"transactionId\":\"4200002186202404266125196354\",\"userReceivedAccount\":\"支付用户零钱通\"}";
RefundNotification params = JSON.parseObject(a,RefundNotification.class);
aftersaleService.refundOrderExc(params);
}
@Test
public void test1() {
memberCartService.mineCartNum();
}
@Test
public void encryptPassword() {
String newPwd = "admin123";
System.out.println("新密码:"+ SecurityUtils.encryptPassword(newPwd));
}
@Test
public void test2(){
System.out.println(smsProperties);
if (!smsProperties.getEnabled()) {
throw new RuntimeException("没有开启短信服务");
}
Map<String, String> map = new HashMap<>(1);
map.put("code", "1234");
SmsTemplate smsTemplate = new AliyunSmsTemplate(smsProperties);
Object send = smsTemplate.send("15706259078", "SMS_146125046", map);
log.info("短信发送结果:" + send);
}
@Test
public void test3(){
String content = "test中文";
AES aes = SecureUtil.aes(key.getBytes());
byte[] encrypt = aes.encrypt(content);
byte[] decrypt = aes.decrypt(encrypt);
String encryptHex = aes.encryptHex(content);
System.out.println("加密后16进制:" + encryptHex);
String decryptStr = aes.decryptStr(encryptHex, CharsetUtil.CHARSET_UTF_8);
System.out.println("解密:" + decryptStr);
}
@Test
public void test4(){
//参数1为终端ID
//参数2为数据中心ID
Snowflake snowflake = IdUtil.createSnowflake(1, 1);
long id = snowflake.nextId();
System.out.println("id:" + id);
}
@Autowired
private H5OrderService h5OrderService;
@Test
public void test6(){
PayNotifyMessageDTO messageDTO = new PayNotifyMessageDTO();
messageDTO.setPayTime(new Date());
messageDTO.setOutTradeNo(5365581195495425L);
messageDTO.setMemberId(22L);
messageDTO.setTradeStatus(Transaction.TradeStateEnum.SUCCESS);
messageDTO.setTradeNo("");
ResponseEntity<String> stringResponseEntity = h5OrderService.payCallBack(messageDTO);
System.out.println(stringResponseEntity.getBody());
}
}
================================================
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java
================================================
package com.fjp.lc.test.service;
import com.cyl.h5.domain.form.WechatLoginForm;
import com.cyl.manager.ums.service.MemberWechatService;
import com.ruoyi.RuoYiApplication;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE, classes = RuoYiApplication.class)
@ActiveProfiles("dev")
public class WechatTest {
@Autowired
private MemberWechatService memberWechatService;
@Test
public void testAuth() {
WechatLoginForm f = new WechatLoginForm();
f.setCode("081zPgHa1FbRQE0wGIIa1lgb1C1zPgHi");
memberWechatService.login(f);
}
}
================================================
FILE: ruoyi-common/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</artifactId>
<groupId>com.ruoyi</groupId>
<version>3.7.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>ruoyi-common</artifactId>
<description>
common通用工具
</description>
<dependencies>
<!-- Spring框架基本的核心工具 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<!-- SpringWeb模块 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
<!-- spring security 安全认证 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<!-- pagehelper 分页插件 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!--常用工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- JSON工具类 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<!-- 阿里JSON解析器 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<!-- io常用工具类 -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
<!-- 文件上传工具类 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
</dependency>
<!-- excel工具 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- yml解析器 -->
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
</dependency>
<!-- Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!-- Jaxb -->
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<!-- redis 缓存操作 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- pool 对象池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
</dependency>
<!-- servlet包 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
</dependency>
<!-- aliyun sms -->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
</project>
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 数据权限过滤注解
*
* @author ruoyi
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface DataScope
{
/**
* 部门表的别名
*/
public String deptAlias() default "";
/**
* 用户表的别名
*/
public String userAlias() default "";
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.ruoyi.common.enums.DataSourceType;
/**
* 自定义多数据源切换注解
*
* 优先级:先方法,后类,如果方法覆盖了类上的数据源类型,以方法的为准,否则以类上的为准
*
* @author ruoyi
*/
@Target({ ElementType.METHOD, ElementType.TYPE })
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface DataSource
{
/**
* 切换数据源名称
*/
public DataSourceType value() default DataSourceType.MASTER;
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
import com.ruoyi.common.utils.poi.ExcelHandlerAdapter;
/**
* 自定义导出Excel数据注解
*
* @author ruoyi
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface Excel
{
/**
* 导出时在excel中排序
*/
public int sort() default Integer.MAX_VALUE;
/**
* 导出到Excel中的名字.
*/
public String name() default "";
/**
* 日期格式, 如: yyyy-MM-dd
*/
public String dateFormat() default "";
/**
* 如果是字典类型,请设置字典的type值 (如: sys_user_sex)
*/
public String dictType() default "";
/**
* 读取内容转表达式 (如: 0=男,1=女,2=未知)
*/
public String readConverterExp() default "";
/**
* 分隔符,读取字符串组内容
*/
public String separator() default ",";
/**
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
*/
public int scale() default -1;
/**
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
*/
public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
/**
* 导出类型(0数字 1字符串)
*/
public ColumnType cellType() default ColumnType.STRING;
/**
* 导出时在excel中每个列的高度 单位为字符
*/
public double height() default 14;
/**
* 导出时在excel中每个列的宽 单位为字符
*/
public double width() default 16;
/**
* 文字后缀,如% 90 变成90%
*/
public String suffix() default "";
/**
* 当值为空时,字段的默认值
*/
public String defaultValue() default "";
/**
* 提示信息
*/
public String prompt() default "";
/**
* 设置只能选择不能输入的列内容.
*/
public String[] combo() default {};
/**
* 是否导出数据,应对需求:有时我们需要导出一份模板,这是标题需要但内容需要用户手工填写.
*/
public boolean isExport() default true;
/**
* 另一个类中的属性名称,支持多级获取,以小数点隔开
*/
public String targetAttr() default "";
/**
* 是否自动统计数据,在最后追加一行统计数据总和
*/
public boolean isStatistics() default false;
/**
* 导出字段对齐方式(0:默认;1:靠左;2:居中;3:靠右)
*/
public Align align() default Align.AUTO;
/**
* 自定义数据处理器
*/
public Class<?> handler() default ExcelHandlerAdapter.class;
/**
* 自定义数据处理器参数
*/
public String[] args() default {};
public enum Align
{
AUTO(0), LEFT(1), CENTER(2), RIGHT(3);
private final int value;
Align(int value)
{
this.value = value;
}
public int value()
{
return this.value;
}
}
/**
* 字段类型(0:导出导入;1:仅导出;2:仅导入)
*/
Type type() default Type.ALL;
public enum Type
{
ALL(0), EXPORT(1), IMPORT(2);
private final int value;
Type(int value)
{
this.value = value;
}
public int value()
{
return this.value;
}
}
public enum ColumnType
{
NUMERIC(0), STRING(1), IMAGE(2);
private final int value;
ColumnType(int value)
{
this.value = value;
}
public int value()
{
return this.value;
}
}
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excels.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Excel注解集
*
* @author ruoyi
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Excels
{
public Excel[] value();
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.enums.OperatorType;
/**
* 自定义操作日志记录注解
*
* @author ruoyi
*
*/
@Target({ ElementType.PARAMETER, ElementType.METHOD })
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Log
{
/**
* 模块
*/
public String title() default "";
/**
* 功能
*/
public BusinessType businessType() default BusinessType.OTHER;
/**
* 操作人类别
*/
public OperatorType operatorType() default OperatorType.MANAGE;
/**
* 是否保存请求的参数
*/
public boolean isSaveRequestData() default true;
/**
* 是否保存响应的参数
*/
public boolean isSaveResponseData() default true;
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.ruoyi.common.constant.Constants;
import com.ruoyi.common.enums.LimitType;
/**
* 限流注解
*
* @author ruoyi
*/
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RateLimiter
{
/**
* 限流key
*/
public String key() default Constants.RATE_LIMIT_KEY;
/**
* 限流时间,单位秒
*/
public int time() default 60;
/**
* 限流次数
*/
public int count() default 100;
/**
* 限流类型
*/
public LimitType limitType() default LimitType.DEFAULT;
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java
================================================
package com.ruoyi.common.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* 自定义注解防止表单重复提交
*
* @author ruoyi
*
*/
@Inherited
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RepeatSubmit
{
/**
* 间隔时间(ms),小于此时间视为重复提交
*/
public int interval() default 5000;
/**
* 提示消息
*/
public String message() default "不允许重复提交,请稍候再试";
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
================================================
package com.ruoyi.common.config;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* 读取项目相关配置
*
* @author ruoyi
*/
@Component
@ConfigurationProperties(prefix = "ruoyi")
public class RuoYiConfig
{
/** 项目名称 */
private String name;
/** 版本 */
private String version;
/** 版权年份 */
private String copyrightYear;
/** 实例演示开关 */
private boolean demoEnabled;
/** 上传路径 */
private static String profile;
/** 获取地址开关 */
private static boolean addressEnabled;
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
public String getVersion()
{
return version;
}
public void setVersion(String version)
{
this.version = version;
}
public String getCopyrightYear()
{
return copyrightYear;
}
public void setCopyrightYear(String copyrightYear)
{
this.copyrightYear = copyrightYear;
}
public boolean isDemoEnabled()
{
return demoEnabled;
}
public void setDemoEnabled(boolean demoEnabled)
{
this.demoEnabled = demoEnabled;
}
public static String getProfile()
{
return profile;
}
public void setProfile(String profile)
{
RuoYiConfig.profile = profile;
}
public static boolean isAddressEnabled()
{
return addressEnabled;
}
public void setAddressEnabled(boolean addressEnabled)
{
RuoYiConfig.addressEnabled = addressEnabled;
}
/**
* 获取导入上传路径
*/
public static String getImportPath()
{
return getProfile() + "/import";
}
/**
* 获取头像上传路径
*/
public static String getAvatarPath()
{
return getProfile() + "/avatar";
}
/**
* 获取下载路径
*/
public static String getDownloadPath()
{
return getProfile() + "/download/";
}
/**
* 获取上传路径
*/
public static String getUploadPath()
{
return getProfile() + "/upload";
}
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java
================================================
package com.ruoyi.common.config;
import com.ruoyi.common.config.properties.SmsProperties;
import com.ruoyi.common.core.sms.AliyunSmsTemplate;
import com.ruoyi.common.core.sms.SmsTemplate;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
/**
* 短信配置类
*
* @author Lion Li
* @version 4.2.0
*/
@EnableConfigurationProperties(SmsProperties.class)
public class SmsConfig {
@Configuration
@ConditionalOnProperty(value = "sms.enabled", havingValue = "true")
@ConditionalOnClass(com.aliyun.dysmsapi20170525.Client.class)
static class AliyunSmsConfig {
@Bean
public SmsTemplate aliyunSmsTemplate(SmsProperties smsProperties) {
return new AliyunSmsTemplate(smsProperties);
}
}
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java
================================================
package com.ruoyi.common.config.properties;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
/**
* SMS短信 配置属性
*
* @author Lion Li
* @version 4.2.0
*/
@Data
@ConfigurationProperties(prefix = "sms")
@Component
public class SmsProperties {
private Boolean enabled;
/**
* 配置节点
* 阿里云 dysmsapi.aliyuncs.com
*/
private String endpoint;
/**
* key
*/
private String accessKeyId;
/**
* 密匙
*/
private String accessKeySecret;
/*
* 短信签名
*/
private String signName;
/**
* 短信应用ID (腾讯专属)
*/
private String sdkAppId;
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
================================================
package com.ruoyi.common.constant;
/**
* 缓存的key 常量
*
* @author ruoyi
*/
public class CacheConstants
{
/**
* 登录用户 redis key
*/
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
/**
* 验证码 redis key
*/
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
/**
* 参数管理 cache key
*/
public static final String SYS_CONFIG_KEY = "sys_config:";
/**
* 字典管理 cache key
*/
public static final String SYS_DICT_KEY = "sys_dict:";
/**
* 防重提交 redis key
*/
public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";
/**
* 限流 redis key
*/
public static final String RATE_LIMIT_KEY = "rate_limit:";
/**
* 登录账户密码错误次数 redis key
*/
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java
================================================
package com.ruoyi.common.constant;
public interface CommonConstant {
int BATCH_SIZE = 100;
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
================================================
package com.ruoyi.common.constant;
import io.jsonwebtoken.Claims;
/**
* 通用常量信息
*
* @author ruoyi
*/
public class Constants
{
/**
* UTF-8 字符集
*/
public static final String UTF8 = "UTF-8";
/**
* GBK 字符集
*/
public static final String GBK = "GBK";
/**
* http请求
*/
public static final String HTTP = "http://";
/**
* https请求
*/
public static final String HTTPS = "https://";
/**
* 通用成功标识
*/
public static final String SUCCESS = "0";
/**
* 通用失败标识
*/
public static final String FAIL = "1";
/**
* 登录成功
*/
public static final String LOGIN_SUCCESS = "Success";
/**
* 注销
*/
public static final String LOGOUT = "Logout";
/**
* 注册
*/
public static final String REGISTER = "Register";
/**
* 登录失败
*/
public static final String LOGIN_FAIL = "Error";
/**
* 验证码 redis key
*/
public static final String CAPTCHA_CODE_KEY = "captcha_codes:";
/**
* 登录用户 redis key
*/
public static final String LOGIN_TOKEN_KEY = "login_tokens:";
public static final String LOGIN_MEMBER_TOKEN_KEY = "login_member_tokens:";
public static final String MEMBER_INFO = "member_info";
/**
* 防重提交 redis key
*/
public static final String REPEAT_SUBMIT_KEY = "repeat_submit:";
/**
* 限流 redis key
*/
public static final String RATE_LIMIT_KEY = "rate_limit:";
/**
* 验证码有效期(分钟)
*/
public static final Integer CAPTCHA_EXPIRATION = 2;
/**
* 令牌
*/
public static final String TOKEN = "token";
/**
* 令牌前缀
*/
public static final String TOKEN_PREFIX = "Bearer ";
/**
* 令牌前缀
*/
public static final String LOGIN_USER_KEY = "login_user_key";
public static final String LOGIN_MEMBER_KEY = "login_member_key";
/**
* 用户ID
*/
public static final String JWT_USERID = "userid";
/**
* 用户名称
*/
public static final String JWT_USERNAME = Claims.SUBJECT;
/**
* 用户头像
*/
public static final String JWT_AVATAR = "avatar";
/**
* 创建时间
*/
public static final String JWT_CREATED = "created";
/**
* 用户权限
*/
public static final String JWT_AUTHORITIES = "authorities";
/**
* 参数管理 cache key
*/
public static final String SYS_CONFIG_KEY = "sys_config:";
public static final String INTEGRAL_RULE_KEY = "activity-integral-income-set-key";
/**
* 字典管理 cache key
*/
public static final String SYS_DICT_KEY = "sys_dict:";
/**
* 资源映射路径 前缀
*/
public static final String RESOURCE_PREFIX = "/profile";
/**
* RMI 远程方法调用
*/
public static final String LOOKUP_RMI = "rmi://";
/**
* LDAP 远程方法调用
*/
public static final String LOOKUP_LDAP = "ldap://";
public static final String SPAN_ID = "spanId";
/**
* 会员账号状态
*/
public static class MEMBER_ACCOUNT_STATUS {
public static final Integer FORBIDDEN = 0;
public static final Integer NORMAL = 1;
}
/**
* 登录提示信息
*/
public static class LOGIN_INFO {
public static final String WRONG = "账号或密码错误";
public static final String FORBIDDEN = "您的账号被禁用,请联系管理员";
public static final String SUCCESS = "登录成功";
public static final String TO_REGISTER = "请先注册";
}
/**
* 验证码相关提示信息
*/
public static class VERIFY_CODE_INFO {
public static final String EXPIRED = "验证码已过期";
public static final String WRONG = "验证码错误";
}
/**
* 上架状态:0->下架;1->上架
*/
public static class PublishStatus {
public static final Integer GROUNDING = 1;
public static final Integer UNDERCARRIAGE = 0;
}
/**
* 0->未支付;1->支付宝;2->微信
*/
public static class PayType {
public static final Integer NO_PAY = 0;
public static final Integer ALIPAY = 1;
public static final Integer WECHAT = 2;
}
/**
* 订单来源 购物车:cart
*/
public static class OrderFrom {
public static final String CART = "cart";
}
/**
* 订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单
*/
public static class OrderStatus {
public static final Integer NOTPAID = 0;
public static final Integer SEND = 1;
public static final Integer GET = 2;
public static final Integer CONFIRM = 3;
public static final Integer CLOSED = 4;
public static final Integer UNVAILD = 5;
}
/**
* H5订单查询状态
* -1->全部 0->待付款;1->待发货;2->待收货;3->已完成;4->已关闭;5->无效订单 -2->售后单
*/
public static class H5OrderStatus{
public static final Integer ALL = -1;
public static final Integer UN_PAY = 0;
public static final Integer NOT_DELIVERED = 1;
public static final Integer DELIVERED = 2;
public static final Integer COMPLETED = 3;
public static final Integer CLOSED = 4;
public static final Integer INVALID = 5;
public static final Integer REFUND = -2;
}
/**
* 交易类型(1为支付 2为提现 3为退款)
*/
public static class PaymentOpType {
public static final Integer PAY = 1;
public static final Integer WITHDRAWAL = 2;
public static final Integer REFUND = 3;
}
/**
* 状态(0:未完成交易 1:完成关键交易)
*/
public static class PaymentStatus {
public static final Integer INCOMPLETE = 0;
public static final Integer COMPLETE = 1;
}
public static class OptType {
public static final Integer AGREE = 1;
public static final Integer REFUSE = 2;
public static final Integer GIVING = 3;
}
/**
* 自动识别json对象白名单配置(仅允许解析的包名,范围越小越安全)
*/
public static final String[] JSON_WHITELIST_STR = { "org.springframework", "com.ruoyi","com.cyl" };
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java
================================================
package com.ruoyi.common.constant;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* 代码生成通用常量
*
* @author ruoyi
*/
public class GenConstants {
/** 单表(增删改查) */
public static final String TPL_CRUD = "crud";
/** 树表(增删改查) */
public static final String TPL_TREE = "tree";
/** 主子表(增删改查) */
public static final String TPL_SUB = "sub";
/** 树编码字段 */
public static final String TREE_CODE = "treeCode";
/** 树父编码字段 */
public static final String TREE_PARENT_CODE = "treeParentCode";
/** 树名称字段 */
public static final String TREE_NAME = "treeName";
/** 上级菜单ID字段 */
public static final String PARENT_MENU_ID = "parentMenuId";
/** 上级菜单名称字段 */
public static final String PARENT_MENU_NAME = "parentMenuName";
/** 是否开启审计字段 */
public static final String AUDIT = "audit";
/** 数据库字符串类型 */
public static final String[] COLUMNTYPE_STR = { "char", "varchar", "nvarchar", "varchar2" };
/** 数据库文本类型 */
public static final String[] COLUMNTYPE_TEXT = { "tinytext", "text", "mediumtext", "longtext" };
/** 数据库时间类型 */
public static final String[] COLUMNTYPE_TIME = { "datetime", "time", "date", "timestamp" };
/** 数据库数字类型 */
public static final String[] COLUMNTYPE_NUMBER = { "tinyint", "smallint", "mediumint", "int", "number", "integer",
"bit", "bigint", "float", "double", "decimal" };
public static final String[] COLUMNTYPE_INT = { "tinyint", "smallint", "mediumint", "int", "integer"};
public static final String[] COLUMNTYPE_DECIMAL = { "float", "double", "decimal"};
/** 页面不需要编辑字段 */
public static final String[] COLUMNNAME_NOT_EDIT = { "id", "create_by", "create_time", "del_flag" };
/** 页面不需要显示的列表字段 */
public static final String[] COLUMNNAME_NOT_LIST = { "id", "create_by", "create_time", "del_flag", "update_by",
"update_time" };
/** 页面不需要查询字段 */
public static final String[] COLUMNNAME_NOT_QUERY = { "id", "create_by", "create_time", "del_flag", "update_by",
"update_time", "remark" };
/** Entity基类字段 */
public static final String[] BASE_ENTITY = { "createBy", "createTime", "updateBy", "updateTime" };
/** Tree基类字段 */
public static final String[] TREE_ENTITY = { "parentName", "parentId", "orderNum", "ancestors", "children" };
/** 文本框 */
public static final String HTML_INPUT = "input";
/** 文本域 */
public static final String HTML_TEXTAREA = "textarea";
/** 下拉框 */
public static final String HTML_SELECT = "select";
/** 单选框 */
public static final String HTML_RADIO = "radio";
/** 复选框 */
public static final String HTML_CHECKBOX = "checkbox";
/** 日期控件 */
public static final String HTML_DATETIME = "datetime";
/** 图片上传控件 */
public static final String HTML_IMAGE_UPLOAD = "imageUpload";
/** 文件上传控件 */
public static final String HTML_FILE_UPLOAD = "fileUpload";
/** 富文本控件 */
public static final String HTML_EDITOR = "editor";
/** 字符串类型 */
public static final String TYPE_STRING = "String";
/** 整型 */
public static final String TYPE_INTEGER = "Integer";
/** 长整型 */
public static final String TYPE_LONG = "Long";
/**
* 浮点型
*/
public static final String TYPE_DOUBLE = "Double";
/**
* 高精度计算类型
*/
public static final String TYPE_BIGDECIMAL = "BigDecimal";
/**
* 时间类型
*/
public static final String TYPE_DATE = "Date";
public static final String TYPE_LOCAL_DATE = "LocalDate";
public static final String TYPE_LOCAL_DATE_TIME = "LocalDateTime";
public static final String TYPE_LOCAL_TIME = "LocalTime";
public static final List<String> TYPE_DATE_ARR = new ArrayList<>(
Arrays.asList(TYPE_LOCAL_DATE, TYPE_LOCAL_DATE_TIME, TYPE_LOCAL_TIME, TYPE_DATE)
);
/**
* 模糊查询
*/
public static final String QUERY_LIKE = "LIKE";
/**
* 需要
*/
public static final String REQUIRE = "1";
}
================================================
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
================================================
package com.ruoyi.common.constant;
/**
* 返回状态码
*
* @author ruoyi
*/
public class HttpStatus
{
/**
* 操作成功
*/
public static final int SUCCESS = 200;
/**
* 对象创建成功
*/
public static final int CREATED = 201;
/**
* 请求已经被接受
*/
public static final int ACCEPTED = 202;
/**
* 操作已经执行成功,但是没有返回数据
*/
public static final int NO_CONTENT = 204;
/**
* 资源已被移除
*/
public static final int MOVED_PERM = 301;
/**
* 重定向
*/
public static final int SEE_OTHER = 303;
/**
* 资源没有被修改
*/
public static final int NOT_MODIFIED = 304;
/**
* 参数列表错误(缺少,格式不匹配)
*/
public static final int BAD_REQUEST = 400;
/**
* 未授权
*/
pub
gitextract_hjh0math/
├── .gitignore
├── LICENSE
├── README.md
├── bin/
│ ├── clean.bat
│ ├── package.bat
│ └── run.bat
├── pom.xml
├── ruoyi-admin/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── ruoyi/
│ │ │ ├── RuoYiApplication.java
│ │ │ ├── RuoYiServletInitializer.java
│ │ │ └── web/
│ │ │ ├── controller/
│ │ │ │ ├── common/
│ │ │ │ │ ├── CaptchaController.java
│ │ │ │ │ ├── CodeController.java
│ │ │ │ │ ├── CommonController.java
│ │ │ │ │ └── OssController.java
│ │ │ │ ├── monitor/
│ │ │ │ │ ├── CacheController.java
│ │ │ │ │ ├── ServerController.java
│ │ │ │ │ ├── SysLogininforController.java
│ │ │ │ │ ├── SysOperlogController.java
│ │ │ │ │ └── SysUserOnlineController.java
│ │ │ │ ├── system/
│ │ │ │ │ ├── ConfigController.java
│ │ │ │ │ ├── SysConfigController.java
│ │ │ │ │ ├── SysDeptController.java
│ │ │ │ │ ├── SysDictDataController.java
│ │ │ │ │ ├── SysDictTypeController.java
│ │ │ │ │ ├── SysIndexController.java
│ │ │ │ │ ├── SysLoginController.java
│ │ │ │ │ ├── SysMenuController.java
│ │ │ │ │ ├── SysNoticeController.java
│ │ │ │ │ ├── SysPostController.java
│ │ │ │ │ ├── SysProfileController.java
│ │ │ │ │ ├── SysRegisterController.java
│ │ │ │ │ ├── SysRoleController.java
│ │ │ │ │ └── SysUserController.java
│ │ │ │ └── tool/
│ │ │ │ ├── SwaggerController.java
│ │ │ │ └── TestController.java
│ │ │ └── core/
│ │ │ └── config/
│ │ │ ├── H5MemberInterceptor.java
│ │ │ ├── MvcConfig.java
│ │ │ └── SwaggerConfig.java
│ │ └── resources/
│ │ ├── META-INF/
│ │ │ └── spring-devtools.properties
│ │ ├── application-druid.yml
│ │ ├── application.yml
│ │ ├── banner.txt
│ │ ├── i18n/
│ │ │ └── messages.properties
│ │ ├── logback.xml
│ │ └── mybatis/
│ │ └── mybatis-config.xml
│ └── test/
│ └── java/
│ └── com/
│ └── fjp/
│ └── lc/
│ └── test/
│ ├── common/
│ │ └── CommonTest.java
│ └── service/
│ ├── ControllerTest.java
│ ├── OssTest.java
│ ├── ServiceTest.java
│ └── WechatTest.java
├── ruoyi-common/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── ruoyi/
│ └── common/
│ ├── annotation/
│ │ ├── DataScope.java
│ │ ├── DataSource.java
│ │ ├── Excel.java
│ │ ├── Excels.java
│ │ ├── Log.java
│ │ ├── RateLimiter.java
│ │ └── RepeatSubmit.java
│ ├── config/
│ │ ├── RuoYiConfig.java
│ │ ├── SmsConfig.java
│ │ └── properties/
│ │ └── SmsProperties.java
│ ├── constant/
│ │ ├── CacheConstants.java
│ │ ├── CommonConstant.java
│ │ ├── Constants.java
│ │ ├── GenConstants.java
│ │ ├── HttpStatus.java
│ │ ├── ScheduleConstants.java
│ │ └── UserConstants.java
│ ├── core/
│ │ ├── controller/
│ │ │ └── BaseController.java
│ │ ├── domain/
│ │ │ ├── AjaxResult.java
│ │ │ ├── BaseAudit.java
│ │ │ ├── BaseEntity.java
│ │ │ ├── IQuery.java
│ │ │ ├── TreeEntity.java
│ │ │ ├── TreeSelect.java
│ │ │ ├── entity/
│ │ │ │ ├── SysDept.java
│ │ │ │ ├── SysDictData.java
│ │ │ │ ├── SysDictType.java
│ │ │ │ ├── SysMenu.java
│ │ │ │ ├── SysRole.java
│ │ │ │ └── SysUser.java
│ │ │ └── model/
│ │ │ ├── ExtraUserBody.java
│ │ │ ├── LoginBody.java
│ │ │ ├── LoginMember.java
│ │ │ ├── LoginUser.java
│ │ │ ├── PhoneLoginBody.java
│ │ │ ├── RegisterBody.java
│ │ │ └── SmsResult.java
│ │ ├── mybatis/
│ │ │ ├── BaseAuditInterceptor.java
│ │ │ ├── MybatisAutoSetUserAuditInfoInterceptor.java
│ │ │ └── MybatisId.java
│ │ ├── page/
│ │ │ ├── PageDomain.java
│ │ │ ├── TableDataInfo.java
│ │ │ └── TableSupport.java
│ │ ├── redis/
│ │ │ ├── RedisCache.java
│ │ │ └── RedisService.java
│ │ ├── sms/
│ │ │ ├── AliyunSmsTemplate.java
│ │ │ └── SmsTemplate.java
│ │ └── text/
│ │ ├── CharsetKit.java
│ │ ├── Convert.java
│ │ └── StrFormatter.java
│ ├── enums/
│ │ ├── AftersaleStatus.java
│ │ ├── BusinessStatus.java
│ │ ├── BusinessType.java
│ │ ├── DataSourceType.java
│ │ ├── HttpMethod.java
│ │ ├── LimitType.java
│ │ ├── OperatorType.java
│ │ ├── OrderRefundStatus.java
│ │ ├── OrderStatus.java
│ │ ├── TradeStatusEnum.java
│ │ └── UserStatus.java
│ ├── exception/
│ │ ├── DemoModeException.java
│ │ ├── GlobalException.java
│ │ ├── ServiceException.java
│ │ ├── UtilException.java
│ │ ├── base/
│ │ │ └── BaseException.java
│ │ ├── file/
│ │ │ ├── FileException.java
│ │ │ ├── FileNameLengthLimitExceededException.java
│ │ │ ├── FileSizeLimitExceededException.java
│ │ │ └── InvalidExtensionException.java
│ │ ├── job/
│ │ │ └── TaskException.java
│ │ ├── sms/
│ │ │ └── SmsException.java
│ │ └── user/
│ │ ├── CaptchaException.java
│ │ ├── CaptchaExpireException.java
│ │ ├── UserException.java
│ │ └── UserPasswordNotMatchException.java
│ ├── filter/
│ │ ├── RepeatableFilter.java
│ │ ├── RepeatedlyRequestWrapper.java
│ │ ├── XssFilter.java
│ │ └── XssHttpServletRequestWrapper.java
│ └── utils/
│ ├── AesCryptoUtils.java
│ ├── Arith.java
│ ├── DateUtils.java
│ ├── DictUtils.java
│ ├── ExceptionUtil.java
│ ├── IDGenerator.java
│ ├── JsonUtils.java
│ ├── LogUtils.java
│ ├── MessageUtils.java
│ ├── OssUtils.java
│ ├── PhoneUtils.java
│ ├── ResponseUtils.java
│ ├── SecurityUtils.java
│ ├── ServletUtils.java
│ ├── SmsUtils.java
│ ├── SortUtil.java
│ ├── StringUtils.java
│ ├── Threads.java
│ ├── VerifyCodeUtils.java
│ ├── bean/
│ │ └── BeanUtils.java
│ ├── file/
│ │ ├── FileTypeUtils.java
│ │ ├── FileUploadUtils.java
│ │ ├── FileUtils.java
│ │ ├── ImageUtils.java
│ │ └── MimeTypeUtils.java
│ ├── html/
│ │ ├── EscapeUtil.java
│ │ └── HTMLFilter.java
│ ├── http/
│ │ ├── HttpHelper.java
│ │ └── HttpUtils.java
│ ├── ip/
│ │ ├── AddressUtils.java
│ │ └── IpUtils.java
│ ├── poi/
│ │ ├── ExcelHandlerAdapter.java
│ │ └── ExcelUtil.java
│ ├── reflect/
│ │ └── ReflectUtils.java
│ ├── sign/
│ │ ├── Base64.java
│ │ └── Md5Utils.java
│ ├── spring/
│ │ └── SpringUtils.java
│ ├── sql/
│ │ └── SqlUtil.java
│ └── uuid/
│ ├── IdUtils.java
│ └── UUID.java
├── ruoyi-framework/
│ ├── pom.xml
│ └── src/
│ └── main/
│ └── java/
│ └── com/
│ └── ruoyi/
│ └── framework/
│ ├── aspectj/
│ │ ├── DataScopeAspect.java
│ │ ├── DataSourceAspect.java
│ │ ├── LogAspect.java
│ │ ├── LoggingAspect.java
│ │ └── RateLimiterAspect.java
│ ├── config/
│ │ ├── ApplicationConfig.java
│ │ ├── CaptchaConfig.java
│ │ ├── DruidConfig.java
│ │ ├── FastJson2JsonRedisSerializer.java
│ │ ├── FilterConfig.java
│ │ ├── KaptchaTextCreator.java
│ │ ├── LocalDataUtil.java
│ │ ├── MyBatisConfig.java
│ │ ├── MybatisPlusConfig.java
│ │ ├── PaginationConfiguration.java
│ │ ├── RedisConfig.java
│ │ ├── ResourcesConfig.java
│ │ ├── SecurityConfig.java
│ │ ├── ServerConfig.java
│ │ ├── ThreadPoolConfig.java
│ │ └── properties/
│ │ └── DruidProperties.java
│ ├── datasource/
│ │ ├── DynamicDataSource.java
│ │ └── DynamicDataSourceContextHolder.java
│ ├── interceptor/
│ │ ├── RepeatSubmitInterceptor.java
│ │ └── impl/
│ │ └── SameUrlDataInterceptor.java
│ ├── manager/
│ │ ├── AsyncManager.java
│ │ ├── ShutdownManager.java
│ │ └── factory/
│ │ └── AsyncFactory.java
│ ├── security/
│ │ ├── filter/
│ │ │ └── JwtAuthenticationTokenFilter.java
│ │ └── handle/
│ │ ├── AuthenticationEntryPointImpl.java
│ │ └── LogoutSuccessHandlerImpl.java
│ └── web/
│ ├── domain/
│ │ ├── Server.java
│ │ └── server/
│ │ ├── Cpu.java
│ │ ├── Jvm.java
│ │ ├── Mem.java
│ │ ├── Sys.java
│ │ └── SysFile.java
│ ├── exception/
│ │ └── GlobalExceptionHandler.java
│ └── service/
│ ├── PermissionService.java
│ ├── SysLoginService.java
│ ├── SysPermissionService.java
│ ├── SysRegisterService.java
│ ├── TokenService.java
│ └── UserDetailsServiceImpl.java
├── ruoyi-generator/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── ruoyi/
│ │ │ └── generator/
│ │ │ ├── config/
│ │ │ │ ├── GenConfig.java
│ │ │ │ └── GenPathConfig.java
│ │ │ ├── constant/
│ │ │ │ └── ProjectPathConstant.java
│ │ │ ├── controller/
│ │ │ │ └── GenController.java
│ │ │ ├── domain/
│ │ │ │ ├── GenTable.java
│ │ │ │ └── GenTableColumn.java
│ │ │ ├── mapper/
│ │ │ │ ├── GenTableColumnMapper.java
│ │ │ │ └── GenTableMapper.java
│ │ │ ├── service/
│ │ │ │ ├── GenTableColumnServiceImpl.java
│ │ │ │ ├── GenTableServiceImpl.java
│ │ │ │ ├── IGenTableColumnService.java
│ │ │ │ └── IGenTableService.java
│ │ │ └── util/
│ │ │ ├── GenUtils.java
│ │ │ ├── VelocityInitializer.java
│ │ │ └── VelocityUtils.java
│ │ └── resources/
│ │ ├── generator.yml
│ │ ├── mapper/
│ │ │ └── generator/
│ │ │ ├── GenTableColumnMapper.xml
│ │ │ └── GenTableMapper.xml
│ │ └── vm/
│ │ ├── java/
│ │ │ ├── controller.java.vm
│ │ │ ├── convert.java.vm
│ │ │ ├── domain.java.vm
│ │ │ ├── dto.java.vm
│ │ │ ├── example.java.vm
│ │ │ ├── mapper.java.vm
│ │ │ ├── query.java.vm
│ │ │ ├── service.java.vm
│ │ │ ├── serviceImpl.java.vm
│ │ │ ├── sub-domain.java.vm
│ │ │ └── vo.java.vm
│ │ ├── js/
│ │ │ └── api.js.vm
│ │ ├── sql/
│ │ │ └── sql.vm
│ │ ├── vue/
│ │ │ ├── index-tree.vue.vm
│ │ │ └── index.vue.vm
│ │ └── xml/
│ │ └── mapper.xml.vm
│ └── test/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── generator/
│ │ ├── ApplicationTest.java
│ │ ├── CommonTest.java
│ │ ├── SingleComponentTest.java
│ │ └── SpringAppTest.java
│ └── resources/
│ ├── application.yml
│ ├── generator.properties
│ ├── generatorConfig.xml
│ ├── logback.xml
│ └── vm2/
│ ├── java/
│ │ ├── controller.java.vm
│ │ ├── convert.java.vm
│ │ ├── domain.java.vm
│ │ ├── example.java.vm
│ │ ├── mapper.java.vm
│ │ ├── query.java.vm
│ │ ├── service.java.vm
│ │ ├── serviceImpl.java.vm
│ │ └── vo.java.vm
│ ├── js/
│ │ └── api.js.vm
│ ├── sql/
│ │ └── sql.vm
│ ├── vue/
│ │ ├── index-tree.vue.vm
│ │ └── index.vue.vm
│ └── xml/
│ └── mapper.xml.vm
├── ruoyi-mall/
│ ├── pom.xml
│ └── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── cyl/
│ │ │ ├── config/
│ │ │ │ ├── AESForWeixinGetPhoneNumber.java
│ │ │ │ ├── RestTemplateConfig.java
│ │ │ │ └── WechatConfig.java
│ │ │ ├── external/
│ │ │ │ ├── ExternalException.java
│ │ │ │ ├── WechatUtil.java
│ │ │ │ └── resp/
│ │ │ │ ├── AccessTokenResp.java
│ │ │ │ ├── BaseResp.java
│ │ │ │ └── UserInfoResp.java
│ │ │ ├── h5/
│ │ │ │ ├── config/
│ │ │ │ │ └── SecurityUtil.java
│ │ │ │ ├── controller/
│ │ │ │ │ ├── CategoryController.java
│ │ │ │ │ ├── H5CommonController.java
│ │ │ │ │ ├── H5MemberAddressController.java
│ │ │ │ │ ├── H5MemberCartController.java
│ │ │ │ │ ├── H5MemberController.java
│ │ │ │ │ ├── H5OrderController.java
│ │ │ │ │ ├── H5ProductController.java
│ │ │ │ │ ├── NoAuthController.java
│ │ │ │ │ ├── PayNotifyController.java
│ │ │ │ │ ├── UserController.java
│ │ │ │ │ └── WechatController2.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ ├── CategoryDTO.java
│ │ │ │ │ │ ├── DeliveryReq.java
│ │ │ │ │ │ ├── OrderProductListDTO.java
│ │ │ │ │ │ └── PayNotifyMessageDTO.java
│ │ │ │ │ ├── form/
│ │ │ │ │ │ ├── ApplyRefundForm.java
│ │ │ │ │ │ ├── BindOpenIDForm.java
│ │ │ │ │ │ ├── CancelOrderForm.java
│ │ │ │ │ │ ├── H5AccountLoginForm.java
│ │ │ │ │ │ ├── H5LoginForm.java
│ │ │ │ │ │ ├── H5SmsLoginForm.java
│ │ │ │ │ │ ├── OrderCreateForm.java
│ │ │ │ │ │ ├── OrderPayForm.java
│ │ │ │ │ │ ├── OrderSubmitForm.java
│ │ │ │ │ │ ├── RegisterForm.java
│ │ │ │ │ │ └── WechatLoginForm.java
│ │ │ │ │ ├── query/
│ │ │ │ │ │ └── OrderH5Query.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── AftersaleRefundInfoVO.java
│ │ │ │ │ ├── CountOrderVO.java
│ │ │ │ │ ├── H5LoginVO.java
│ │ │ │ │ ├── H5OrderVO.java
│ │ │ │ │ ├── H5ProductVO.java
│ │ │ │ │ ├── HomeConfigVO.java
│ │ │ │ │ ├── OrderCalcVO.java
│ │ │ │ │ ├── OrderPayVO.java
│ │ │ │ │ ├── ProductDetailVO.java
│ │ │ │ │ ├── RegisterVO.java
│ │ │ │ │ ├── SkuViewVO.java
│ │ │ │ │ ├── ValidatePhoneVO.java
│ │ │ │ │ └── WechatLoginVO.java
│ │ │ │ └── service/
│ │ │ │ ├── H5MemberAddressService.java
│ │ │ │ ├── H5MemberCartService.java
│ │ │ │ ├── H5MemberService.java
│ │ │ │ └── H5OrderService.java
│ │ │ ├── job/
│ │ │ │ ├── OrderJob.java
│ │ │ │ └── StatisticsJob.java
│ │ │ ├── manager/
│ │ │ │ ├── act/
│ │ │ │ │ ├── constant/
│ │ │ │ │ │ └── IntegralRule.java
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── CouponActivityController.java
│ │ │ │ │ │ ├── H5CouponController.java
│ │ │ │ │ │ ├── H5IntegralHistoryController.java
│ │ │ │ │ │ ├── IntegralHistoryController.java
│ │ │ │ │ │ └── MemberCouponController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── CouponActivityConvert.java
│ │ │ │ │ │ ├── IntegralHistoryConvert.java
│ │ │ │ │ │ └── MemberCouponConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── CouponActivity.java
│ │ │ │ │ │ │ ├── IntegralHistory.java
│ │ │ │ │ │ │ └── MemberCoupon.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── CouponActivityQuery.java
│ │ │ │ │ │ │ ├── IntegralHistoryQuery.java
│ │ │ │ │ │ │ └── MemberCouponQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── CouponActivityVO.java
│ │ │ │ │ │ ├── IntegralHistoryVO.java
│ │ │ │ │ │ ├── IntegralStatVO.java
│ │ │ │ │ │ └── MemberCouponVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── CouponActivityMapper.java
│ │ │ │ │ │ ├── IntegralHistoryMapper.java
│ │ │ │ │ │ └── MemberCouponMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── CouponActivityService.java
│ │ │ │ │ ├── IntegralHistoryService.java
│ │ │ │ │ └── MemberCouponService.java
│ │ │ │ ├── aws/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ └── SystemStatisticsController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ └── SystemStatisticsConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ └── SystemStatistics.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ └── SystemStatisticsQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ └── SystemStatisticsVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ └── SystemStatisticsMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ └── SystemStatisticsService.java
│ │ │ │ ├── oms/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── AftersaleController.java
│ │ │ │ │ │ ├── AftersaleItemController.java
│ │ │ │ │ │ ├── OrderController.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryController.java
│ │ │ │ │ │ ├── OrderItemController.java
│ │ │ │ │ │ ├── OrderOperateHistoryController.java
│ │ │ │ │ │ └── WechatPaymentHistoryController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── AftersaleConvert.java
│ │ │ │ │ │ ├── AftersaleItemConvert.java
│ │ │ │ │ │ ├── OrderConvert.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryConvert.java
│ │ │ │ │ │ ├── OrderItemConvert.java
│ │ │ │ │ │ ├── OrderOperateHistoryConvert.java
│ │ │ │ │ │ └── WechatPaymentHistoryConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── Aftersale.java
│ │ │ │ │ │ │ ├── AftersaleItem.java
│ │ │ │ │ │ │ ├── Order.java
│ │ │ │ │ │ │ ├── OrderDeliveryHistory.java
│ │ │ │ │ │ │ ├── OrderItem.java
│ │ │ │ │ │ │ ├── OrderOperateHistory.java
│ │ │ │ │ │ │ └── WechatPaymentHistory.java
│ │ │ │ │ │ ├── form/
│ │ │ │ │ │ │ ├── DealWithAftersaleForm.java
│ │ │ │ │ │ │ ├── DeliverProductForm.java
│ │ │ │ │ │ │ ├── ManagerAftersaleOrderForm.java
│ │ │ │ │ │ │ └── ManagerOrderQueryForm.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── AftersaleItemQuery.java
│ │ │ │ │ │ │ ├── AftersaleQuery.java
│ │ │ │ │ │ │ ├── OrderDeliveryHistoryQuery.java
│ │ │ │ │ │ │ ├── OrderItemQuery.java
│ │ │ │ │ │ │ ├── OrderOperateHistoryQuery.java
│ │ │ │ │ │ │ ├── OrderQuery.java
│ │ │ │ │ │ │ └── WechatPaymentHistoryQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── AftersaleItemVO.java
│ │ │ │ │ │ ├── AftersaleVO.java
│ │ │ │ │ │ ├── ManagerOrderAddressVo.java
│ │ │ │ │ │ ├── ManagerOrderDetailVO.java
│ │ │ │ │ │ ├── ManagerOrderProductVO.java
│ │ │ │ │ │ ├── ManagerOrderVO.java
│ │ │ │ │ │ ├── ManagerRefundOrderDetailVO.java
│ │ │ │ │ │ ├── ManagerRefundOrderVO.java
│ │ │ │ │ │ ├── OrderAddressVO.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryVO.java
│ │ │ │ │ │ ├── OrderItemVO.java
│ │ │ │ │ │ ├── OrderOperateHistoryVO.java
│ │ │ │ │ │ ├── OrderVO.java
│ │ │ │ │ │ ├── RefundInfoVO.java
│ │ │ │ │ │ └── WechatPaymentHistoryVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── AftersaleItemMapper.java
│ │ │ │ │ │ ├── AftersaleMapper.java
│ │ │ │ │ │ ├── OrderDeliveryHistoryMapper.java
│ │ │ │ │ │ ├── OrderItemMapper.java
│ │ │ │ │ │ ├── OrderMapper.java
│ │ │ │ │ │ ├── OrderOperateHistoryMapper.java
│ │ │ │ │ │ └── WechatPaymentHistoryMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── AftersaleItemService.java
│ │ │ │ │ ├── AftersaleService.java
│ │ │ │ │ ├── OrderDeliveryHistoryService.java
│ │ │ │ │ ├── OrderItemService.java
│ │ │ │ │ ├── OrderOperateHistoryService.java
│ │ │ │ │ ├── OrderService.java
│ │ │ │ │ └── WechatPaymentHistoryService.java
│ │ │ │ ├── pms/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ ├── BrandController.java
│ │ │ │ │ │ ├── ProductCategoryController.java
│ │ │ │ │ │ ├── ProductController.java
│ │ │ │ │ │ └── SkuController.java
│ │ │ │ │ ├── convert/
│ │ │ │ │ │ ├── BrandConvert.java
│ │ │ │ │ │ ├── ProductCategoryConvert.java
│ │ │ │ │ │ ├── ProductConvert.java
│ │ │ │ │ │ └── SkuConvert.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── entity/
│ │ │ │ │ │ │ ├── Brand.java
│ │ │ │ │ │ │ ├── Product.java
│ │ │ │ │ │ │ ├── ProductCategory.java
│ │ │ │ │ │ │ └── Sku.java
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── BrandQuery.java
│ │ │ │ │ │ │ ├── ProductCategoryQuery.java
│ │ │ │ │ │ │ ├── ProductQuery.java
│ │ │ │ │ │ │ └── SkuQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── BrandVO.java
│ │ │ │ │ │ ├── ProductCategoryVO.java
│ │ │ │ │ │ ├── ProductVO.java
│ │ │ │ │ │ └── SkuVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ ├── BrandMapper.java
│ │ │ │ │ │ ├── ProductCategoryMapper.java
│ │ │ │ │ │ ├── ProductMapper.java
│ │ │ │ │ │ └── SkuMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ ├── BrandService.java
│ │ │ │ │ ├── ProductCategoryService.java
│ │ │ │ │ ├── ProductService.java
│ │ │ │ │ └── SkuService.java
│ │ │ │ ├── statistics/
│ │ │ │ │ ├── controller/
│ │ │ │ │ │ └── IndexStatisticsManagerController.java
│ │ │ │ │ ├── domain/
│ │ │ │ │ │ ├── query/
│ │ │ │ │ │ │ ├── GoodsStatisticsQuery.java
│ │ │ │ │ │ │ └── OrderStatisticsQuery.java
│ │ │ │ │ │ └── vo/
│ │ │ │ │ │ ├── MemberAndCartStatisticsVO.java
│ │ │ │ │ │ ├── OrderAndAftersaleStatisticsVO.java
│ │ │ │ │ │ ├── OrderStatisticsVO.java
│ │ │ │ │ │ └── ProductTopVO.java
│ │ │ │ │ ├── mapper/
│ │ │ │ │ │ └── IndexStatisticsMapper.java
│ │ │ │ │ └── service/
│ │ │ │ │ └── IndexStatisticsService.java
│ │ │ │ └── ums/
│ │ │ │ ├── controller/
│ │ │ │ │ ├── FeedbackController.java
│ │ │ │ │ ├── MemberAccountController.java
│ │ │ │ │ ├── MemberAddressController.java
│ │ │ │ │ ├── MemberCartController.java
│ │ │ │ │ ├── MemberController.java
│ │ │ │ │ ├── MemberLogininforController.java
│ │ │ │ │ ├── MemberWechatController.java
│ │ │ │ │ └── PlatformVerifyController.java
│ │ │ │ ├── convert/
│ │ │ │ │ ├── FeedbackConvert.java
│ │ │ │ │ ├── MemberAccountConvert.java
│ │ │ │ │ ├── MemberAddressConvert.java
│ │ │ │ │ ├── MemberCartConvert.java
│ │ │ │ │ ├── MemberConvert.java
│ │ │ │ │ ├── MemberLogininforConvert.java
│ │ │ │ │ └── MemberWechatConvert.java
│ │ │ │ ├── domain/
│ │ │ │ │ ├── dto/
│ │ │ │ │ │ └── AddressDTO.java
│ │ │ │ │ ├── entity/
│ │ │ │ │ │ ├── Address.java
│ │ │ │ │ │ ├── Feedback.java
│ │ │ │ │ │ ├── Member.java
│ │ │ │ │ │ ├── MemberAccount.java
│ │ │ │ │ │ ├── MemberAddress.java
│ │ │ │ │ │ ├── MemberCart.java
│ │ │ │ │ │ ├── MemberLogininfor.java
│ │ │ │ │ │ └── MemberWechat.java
│ │ │ │ │ ├── form/
│ │ │ │ │ │ ├── AddMemberCartForm.java
│ │ │ │ │ │ ├── ChangeMemberStatusForm.java
│ │ │ │ │ │ ├── MemberAddressForm.java
│ │ │ │ │ │ └── UpdateMemberCartForm.java
│ │ │ │ │ ├── query/
│ │ │ │ │ │ ├── FeedbackQuery.java
│ │ │ │ │ │ ├── MemberAccountQuery.java
│ │ │ │ │ │ ├── MemberAddressQuery.java
│ │ │ │ │ │ ├── MemberCartQuery.java
│ │ │ │ │ │ ├── MemberLogininforQuery.java
│ │ │ │ │ │ ├── MemberQuery.java
│ │ │ │ │ │ └── MemberWechatQuery.java
│ │ │ │ │ └── vo/
│ │ │ │ │ ├── FeedbackVO.java
│ │ │ │ │ ├── MemberAccountVO.java
│ │ │ │ │ ├── MemberAddressVO.java
│ │ │ │ │ ├── MemberCartVO.java
│ │ │ │ │ ├── MemberDataStatisticsVO.java
│ │ │ │ │ ├── MemberLogininforVO.java
│ │ │ │ │ ├── MemberVO.java
│ │ │ │ │ └── MemberWechatVO.java
│ │ │ │ ├── mapper/
│ │ │ │ │ ├── AddressMapper.java
│ │ │ │ │ ├── FeedbackMapper.java
│ │ │ │ │ ├── MemberAccountMapper.java
│ │ │ │ │ ├── MemberAddressMapper.java
│ │ │ │ │ ├── MemberCartMapper.java
│ │ │ │ │ ├── MemberLogininforMapper.java
│ │ │ │ │ ├── MemberMapper.java
│ │ │ │ │ └── MemberWechatMapper.java
│ │ │ │ └── service/
│ │ │ │ ├── FeedbackService.java
│ │ │ │ ├── MemberAccountService.java
│ │ │ │ ├── MemberAddressService.java
│ │ │ │ ├── MemberCartService.java
│ │ │ │ ├── MemberLogininforService.java
│ │ │ │ ├── MemberService.java
│ │ │ │ └── MemberWechatService.java
│ │ │ ├── sms/
│ │ │ │ ├── controller/
│ │ │ │ │ └── SmsController.java
│ │ │ │ └── service/
│ │ │ │ └── SmsService.java
│ │ │ └── wechat/
│ │ │ ├── WechatAuthService.java
│ │ │ ├── WechatController.java
│ │ │ ├── WechatPayConfig.java
│ │ │ ├── WechatPayData.java
│ │ │ ├── WechatPayService.java
│ │ │ ├── WechatPayUtil.java
│ │ │ └── response/
│ │ │ ├── JssdkConfigResponse.java
│ │ │ ├── WeChatAmount.java
│ │ │ ├── WeChatPayNotify.java
│ │ │ ├── WeChatPayer.java
│ │ │ └── WechatUserAuth.java
│ │ └── resources/
│ │ ├── application.properties
│ │ └── mapper/
│ │ ├── act/
│ │ │ ├── CouponActivityMapper.xml
│ │ │ ├── IntegralHistoryMapper.xml
│ │ │ └── MemberCouponMapper.xml
│ │ ├── aws/
│ │ │ └── SystemStatisticsMapper.xml
│ │ ├── oms/
│ │ │ ├── AftersaleItemMapper.xml
│ │ │ ├── AftersaleMapper.xml
│ │ │ ├── OrderDeliveryHistoryMapper.xml
│ │ │ ├── OrderItemMapper.xml
│ │ │ ├── OrderMapper.xml
│ │ │ ├── OrderOperateHistoryMapper.xml
│ │ │ └── WechatPaymentHistoryMapper.xml
│ │ ├── pms/
│ │ │ ├── BrandMapper.xml
│ │ │ ├── ProductCategoryMapper.xml
│ │ │ ├── ProductMapper.xml
│ │ │ └── SkuMapper.xml
│ │ ├── statistics/
│ │ │ └── IndexStatisticsMapper.xml
│ │ └── ums/
│ │ ├── AddressMapper.xml
│ │ ├── FeedbackMapper.xml
│ │ ├── MemberAccountMapper.xml
│ │ ├── MemberAddressMapper.xml
│ │ ├── MemberCartMapper.xml
│ │ ├── MemberLogininforMapper.xml
│ │ ├── MemberMapper.xml
│ │ └── MemberWechatMapper.xml
│ └── test/
│ └── java/
│ └── com/
│ └── example/
│ └── ruoyimall/
│ └── RuoyiMallApplicationTests.java
├── ruoyi-quartz/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── quartz/
│ │ ├── config/
│ │ │ └── ScheduleConfig.java
│ │ ├── controller/
│ │ │ ├── SysJobController.java
│ │ │ └── SysJobLogController.java
│ │ ├── domain/
│ │ │ ├── SysJob.java
│ │ │ └── SysJobLog.java
│ │ ├── mapper/
│ │ │ ├── SysJobLogMapper.java
│ │ │ └── SysJobMapper.java
│ │ ├── service/
│ │ │ ├── ISysJobLogService.java
│ │ │ ├── ISysJobService.java
│ │ │ └── impl/
│ │ │ ├── SysJobLogServiceImpl.java
│ │ │ └── SysJobServiceImpl.java
│ │ ├── task/
│ │ │ └── RyTask.java
│ │ └── util/
│ │ ├── AbstractQuartzJob.java
│ │ ├── CronUtils.java
│ │ ├── JobInvokeUtil.java
│ │ ├── QuartzDisallowConcurrentExecution.java
│ │ ├── QuartzJobExecution.java
│ │ └── ScheduleUtils.java
│ └── resources/
│ └── mapper/
│ └── quartz/
│ ├── SysJobLogMapper.xml
│ └── SysJobMapper.xml
├── ruoyi-system/
│ ├── pom.xml
│ └── src/
│ └── main/
│ ├── java/
│ │ └── com/
│ │ └── ruoyi/
│ │ └── system/
│ │ ├── domain/
│ │ │ ├── SysCache.java
│ │ │ ├── SysConfig.java
│ │ │ ├── SysLogininfor.java
│ │ │ ├── SysNotice.java
│ │ │ ├── SysOperLog.java
│ │ │ ├── SysPost.java
│ │ │ ├── SysRoleDept.java
│ │ │ ├── SysRoleMenu.java
│ │ │ ├── SysUserOnline.java
│ │ │ ├── SysUserPost.java
│ │ │ ├── SysUserRole.java
│ │ │ └── vo/
│ │ │ ├── MetaVo.java
│ │ │ ├── RouterVo.java
│ │ │ └── SysConfigVo.java
│ │ ├── mapper/
│ │ │ ├── SysConfigMapper.java
│ │ │ ├── SysDeptMapper.java
│ │ │ ├── SysDictDataMapper.java
│ │ │ ├── SysDictTypeMapper.java
│ │ │ ├── SysLogininforMapper.java
│ │ │ ├── SysMenuMapper.java
│ │ │ ├── SysNoticeMapper.java
│ │ │ ├── SysOperLogMapper.java
│ │ │ ├── SysPostMapper.java
│ │ │ ├── SysRoleDeptMapper.java
│ │ │ ├── SysRoleMapper.java
│ │ │ ├── SysRoleMenuMapper.java
│ │ │ ├── SysUserMapper.java
│ │ │ ├── SysUserPostMapper.java
│ │ │ └── SysUserRoleMapper.java
│ │ └── service/
│ │ ├── ISysConfigService.java
│ │ ├── ISysDeptService.java
│ │ ├── ISysDictDataService.java
│ │ ├── ISysDictTypeService.java
│ │ ├── ISysLogininforService.java
│ │ ├── ISysMenuService.java
│ │ ├── ISysNoticeService.java
│ │ ├── ISysOperLogService.java
│ │ ├── ISysPostService.java
│ │ ├── ISysRoleService.java
│ │ ├── ISysUserOnlineService.java
│ │ ├── ISysUserService.java
│ │ ├── PhoneCodeService.java
│ │ └── impl/
│ │ ├── SysConfigServiceImpl.java
│ │ ├── SysDeptServiceImpl.java
│ │ ├── SysDictDataServiceImpl.java
│ │ ├── SysDictTypeServiceImpl.java
│ │ ├── SysLogininforServiceImpl.java
│ │ ├── SysMenuServiceImpl.java
│ │ ├── SysNoticeServiceImpl.java
│ │ ├── SysOperLogServiceImpl.java
│ │ ├── SysPostServiceImpl.java
│ │ ├── SysRoleServiceImpl.java
│ │ ├── SysUserOnlineServiceImpl.java
│ │ └── SysUserServiceImpl.java
│ └── resources/
│ └── mapper/
│ └── system/
│ ├── SysConfigMapper.xml
│ ├── SysDeptMapper.xml
│ ├── SysDictDataMapper.xml
│ ├── SysDictTypeMapper.xml
│ ├── SysLogininforMapper.xml
│ ├── SysMenuMapper.xml
│ ├── SysNoticeMapper.xml
│ ├── SysOperLogMapper.xml
│ ├── SysPostMapper.xml
│ ├── SysRoleDeptMapper.xml
│ ├── SysRoleMapper.xml
│ ├── SysRoleMenuMapper.xml
│ ├── SysUserMapper.xml
│ ├── SysUserPostMapper.xml
│ └── SysUserRoleMapper.xml
├── ry.bat
├── ry.sh
└── sql/
├── address.sql
└── 数据和结构.sql
Showing preview only (291K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (3267 symbols across 542 files)
FILE: ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java
class RuoYiApplication (line 15) | @SpringBootApplication(
method main (line 22) | public static void main(String[] args) {
FILE: ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java
class RuoYiServletInitializer (line 11) | public class RuoYiServletInitializer extends SpringBootServletInitializer
method configure (line 13) | @Override
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java
class CaptchaController (line 27) | @RestController
method getCode (line 48) | @GetMapping("/captchaImage")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java
class CodeController (line 15) | @RestController
method getCode (line 23) | @GetMapping("/get")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java
class CommonController (line 36) | @RestController
method fileDownload (line 56) | @GetMapping("common/download")
method uploadFile (line 85) | @PostMapping("/common/upload")
method resourceDownload (line 109) | @GetMapping("/common/download/resource")
method getAddressList (line 135) | @GetMapping("/common/area")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java
class OssController (line 15) | @RestController
method uploadFile (line 22) | @PostMapping("upload")
method uploadArrayFile (line 32) | @PostMapping("uploadArrayFile")
method deleteFile (line 38) | @PostMapping("deleteFile")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java
class CacheController (line 20) | @RestController
method getInfo (line 38) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method cache (line 62) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method getCacheKeys (line 69) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method getCacheValue (line 77) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method clearCacheName (line 86) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method clearCacheKey (line 95) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
method clearCacheAll (line 103) | @PreAuthorize("@ss.hasPermi('monitor:cache:list')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java
class ServerController (line 15) | @RestController
method getInfo (line 19) | @PreAuthorize("@ss.hasPermi('monitor:server:list')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java
class SysLogininforController (line 25) | @RestController
method list (line 32) | @PreAuthorize("@ss.hasPermi('monitor:logininfor:list')")
method export (line 41) | @Log(title = "登录日志", businessType = BusinessType.EXPORT)
method remove (line 51) | @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
method clean (line 59) | @PreAuthorize("@ss.hasPermi('monitor:logininfor:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java
class SysOperlogController (line 25) | @RestController
method list (line 32) | @PreAuthorize("@ss.hasPermi('monitor:operlog:list')")
method export (line 41) | @Log(title = "操作日志", businessType = BusinessType.EXPORT)
method remove (line 51) | @Log(title = "操作日志", businessType = BusinessType.DELETE)
method clean (line 59) | @Log(title = "操作日志", businessType = BusinessType.CLEAN)
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java
class SysUserOnlineController (line 31) | @RestController
method list (line 41) | @PreAuthorize("@ss.hasPermi('monitor:online:list')")
method forceLogout (line 84) | @PreAuthorize("@ss.hasPermi('monitor:online:forceLogout')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java
class ConfigController (line 13) | @RestController
method getConfigKey2 (line 20) | @PreAuthorize("@ss.hasAnyRoles('admin,viewer')")
method addOrUpdate (line 26) | @PreAuthorize("@ss.hasAnyRoles(admin)")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java
class SysConfigController (line 34) | @RestController
method list (line 43) | @PreAuthorize("@ss.hasPermi('system:config:list')")
method export (line 51) | @Log(title = "参数管理", businessType = BusinessType.EXPORT)
method getInfo (line 63) | @PreAuthorize("@ss.hasPermi('system:config:query')")
method getConfigKey (line 72) | @GetMapping(value = "/configKey/{configKey}")
method add (line 82) | @PreAuthorize("@ss.hasPermi('system:config:add')")
method edit (line 97) | @PreAuthorize("@ss.hasPermi('system:config:edit')")
method remove (line 114) | @PreAuthorize("@ss.hasPermi('system:config:remove')")
method refreshCache (line 125) | @PreAuthorize("@ss.hasPermi('system:config:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java
class SysDeptController (line 31) | @RestController
method list (line 41) | @PreAuthorize("@ss.hasPermi('system:dept:list')")
method excludeChild (line 52) | @PreAuthorize("@ss.hasPermi('system:dept:list')")
method getInfo (line 73) | @PreAuthorize("@ss.hasPermi('system:dept:query')")
method treeselect (line 84) | @GetMapping("/treeselect")
method roleDeptTreeselect (line 94) | @GetMapping(value = "/roleDeptTreeselect/{roleId}")
method add (line 107) | @PreAuthorize("@ss.hasPermi('system:dept:add')")
method edit (line 123) | @PreAuthorize("@ss.hasPermi('system:dept:edit')")
method remove (line 148) | @PreAuthorize("@ss.hasPermi('system:dept:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java
class SysDictDataController (line 32) | @RestController
method list (line 42) | @PreAuthorize("@ss.hasPermi('system:dict:list')")
method export (line 51) | @Log(title = "字典数据", businessType = BusinessType.EXPORT)
method getInfo (line 64) | @PreAuthorize("@ss.hasPermi('system:dict:query')")
method dictType (line 74) | @GetMapping(value = "/type/{dictType}")
method allByTypes (line 88) | @PostMapping(value = "/all-by-types")
method add (line 104) | @PreAuthorize("@ss.hasPermi('system:dict:add')")
method edit (line 116) | @PreAuthorize("@ss.hasPermi('system:dict:edit')")
method remove (line 128) | @PreAuthorize("@ss.hasPermi('system:dict:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java
class SysDictTypeController (line 30) | @RestController
method list (line 37) | @PreAuthorize("@ss.hasPermi('system:dict:list')")
method export (line 46) | @Log(title = "字典类型", businessType = BusinessType.EXPORT)
method getInfo (line 59) | @PreAuthorize("@ss.hasPermi('system:dict:query')")
method add (line 69) | @PreAuthorize("@ss.hasPermi('system:dict:add')")
method edit (line 85) | @PreAuthorize("@ss.hasPermi('system:dict:edit')")
method remove (line 101) | @PreAuthorize("@ss.hasPermi('system:dict:remove')")
method refreshCache (line 113) | @PreAuthorize("@ss.hasPermi('system:dict:remove')")
method optionselect (line 125) | @GetMapping("/optionselect")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java
class SysIndexController (line 14) | @RestController
method index (line 24) | @RequestMapping("/")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java
class SysLoginController (line 27) | @RestController
method login (line 42) | @PostMapping("/login")
method login (line 58) | @PostMapping("/login/phone")
method getInfo (line 71) | @GetMapping("getInfo")
method getRouters (line 90) | @GetMapping("getRouters")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java
class SysMenuController (line 29) | @RestController
method list (line 39) | @PreAuthorize("@ss.hasPermi('system:menu:list')")
method getInfo (line 50) | @PreAuthorize("@ss.hasPermi('system:menu:query')")
method treeselect (line 60) | @GetMapping("/treeselect")
method roleMenuTreeselect (line 70) | @GetMapping(value = "/roleMenuTreeselect/{roleId}")
method add (line 83) | @PreAuthorize("@ss.hasPermi('system:menu:add')")
method edit (line 103) | @PreAuthorize("@ss.hasPermi('system:menu:edit')")
method remove (line 127) | @PreAuthorize("@ss.hasPermi('system:menu:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java
class SysNoticeController (line 28) | @RestController
method list (line 38) | @PreAuthorize("@ss.hasPermi('system:notice:list')")
method getInfo (line 50) | @PreAuthorize("@ss.hasPermi('system:notice:query')")
method add (line 60) | @PreAuthorize("@ss.hasPermi('system:notice:add')")
method edit (line 72) | @PreAuthorize("@ss.hasPermi('system:notice:edit')")
method remove (line 84) | @PreAuthorize("@ss.hasPermi('system:notice:remove')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java
class SysPostController (line 30) | @RestController
method list (line 40) | @PreAuthorize("@ss.hasPermi('system:post:list')")
method export (line 49) | @Log(title = "岗位管理", businessType = BusinessType.EXPORT)
method getInfo (line 62) | @PreAuthorize("@ss.hasPermi('system:post:query')")
method add (line 72) | @PreAuthorize("@ss.hasPermi('system:post:add')")
method edit (line 92) | @PreAuthorize("@ss.hasPermi('system:post:edit')")
method remove (line 112) | @PreAuthorize("@ss.hasPermi('system:post:remove')")
method optionselect (line 123) | @GetMapping("/optionselect")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java
class SysProfileController (line 32) | @RestController
method profile (line 45) | @GetMapping
method updateProfile (line 59) | @Log(title = "个人信息", businessType = BusinessType.UPDATE)
method updatePwd (line 93) | @Log(title = "个人信息", businessType = BusinessType.UPDATE)
method avatar (line 121) | @Log(title = "用户头像", businessType = BusinessType.UPDATE)
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java
class SysRegisterController (line 19) | @RestController
method register (line 28) | @PostMapping("/register")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java
class SysRoleController (line 37) | @RestController
method list (line 53) | @PreAuthorize("@ss.hasPermi('system:role:list')")
method export (line 62) | @Log(title = "角色管理", businessType = BusinessType.EXPORT)
method getInfo (line 75) | @PreAuthorize("@ss.hasPermi('system:role:query')")
method add (line 86) | @PreAuthorize("@ss.hasPermi('system:role:add')")
method edit (line 107) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
method dataScope (line 141) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
method changeStatus (line 153) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
method remove (line 166) | @PreAuthorize("@ss.hasPermi('system:role:remove')")
method optionselect (line 177) | @PreAuthorize("@ss.hasPermi('system:role:query')")
method allocatedList (line 187) | @PreAuthorize("@ss.hasPermi('system:role:list')")
method unallocatedList (line 199) | @PreAuthorize("@ss.hasPermi('system:role:list')")
method cancelAuthUser (line 211) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
method cancelAuthUserAll (line 222) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
method selectAuthUserAll (line 233) | @PreAuthorize("@ss.hasPermi('system:role:edit')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java
class SysUserController (line 38) | @RestController
method list (line 54) | @PreAuthorize("@ss.hasPermi('system:user:list')")
method export (line 63) | @Log(title = "用户管理", businessType = BusinessType.EXPORT)
method importData (line 73) | @Log(title = "用户管理", businessType = BusinessType.IMPORT)
method importTemplate (line 84) | @GetMapping("/importTemplate")
method getInfo (line 94) | @PreAuthorize("@ss.hasPermi('system:user:query')")
method add (line 115) | @PreAuthorize("@ss.hasPermi('system:user:add')")
method edit (line 142) | @PreAuthorize("@ss.hasPermi('system:user:edit')")
method remove (line 165) | @PreAuthorize("@ss.hasPermi('system:user:remove')")
method resetPwd (line 180) | @PreAuthorize("@ss.hasPermi('system:user:resetPwd')")
method changeStatus (line 194) | @PreAuthorize("@ss.hasPermi('system:user:edit')")
method authRole (line 207) | @PreAuthorize("@ss.hasPermi('system:user:query')")
method insertAuthRole (line 222) | @PreAuthorize("@ss.hasPermi('system:user:edit')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java
class SwaggerController (line 14) | @Controller
method index (line 18) | @PreAuthorize("@ss.hasPermi('tool:swagger:view')")
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java
class TestController (line 30) | @Api("用户信息管理")
method userList (line 41) | @ApiOperation("获取用户列表")
method getUser (line 49) | @ApiOperation("获取用户详细")
method save (line 64) | @ApiOperation("新增用户")
method update (line 81) | @ApiOperation("更新用户")
method delete (line 97) | @ApiOperation("删除用户信息")
class UserEntity (line 114) | @ApiModel(value = "UserEntity", description = "用户实体")
method UserEntity (line 129) | public UserEntity()
method UserEntity (line 134) | public UserEntity(Integer userId, String username, String password, St...
method getUserId (line 142) | public Integer getUserId()
method setUserId (line 147) | public void setUserId(Integer userId)
method getUsername (line 152) | public String getUsername()
method setUsername (line 157) | public void setUsername(String username)
method getPassword (line 162) | public String getPassword()
method setPassword (line 167) | public void setPassword(String password)
method getMobile (line 172) | public String getMobile()
method setMobile (line 177) | public void setMobile(String mobile)
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java
class H5MemberInterceptor (line 18) | @Configuration
method preHandle (line 34) | @Override
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java
class MvcConfig (line 9) | @Configuration
method memberInterceptor (line 13) | @Bean
method addInterceptors (line 19) | @Override
FILE: ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java
class SwaggerConfig (line 26) | @Configuration
method createRestApi (line 44) | @Bean
method securitySchemes (line 70) | private List<SecurityScheme> securitySchemes()
method securityContexts (line 80) | private List<SecurityContext> securityContexts()
method defaultAuth (line 94) | private List<SecurityReference> defaultAuth()
method apiInfo (line 107) | private ApiInfo apiInfo()
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java
class CommonTest (line 22) | @Slf4j
method testEquals (line 35) | @Test
method test4 (line 50) | @Test
method test5 (line 59) | @Test
method testTimestampt (line 71) | @Test
method test (line 80) | @Test
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/ControllerTest.java
class ControllerTest (line 21) | @RunWith(SpringRunner.class)
method test (line 32) | @Test
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/OssTest.java
class OssTest (line 12) | @RunWith(SpringRunner.class)
method download (line 19) | @Test
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java
class ServiceTest (line 37) | @RunWith(SpringRunner.class)
method testOrderJob (line 60) | @Test
method test12 (line 65) | @Test
method t (line 71) | @Test
method test1 (line 77) | @Test
method encryptPassword (line 82) | @Test
method test2 (line 88) | @Test
method test3 (line 101) | @Test
method test4 (line 113) | @Test
method test6 (line 125) | @Test
FILE: ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java
class WechatTest (line 13) | @RunWith(SpringRunner.class)
method testAuth (line 19) | @Test
FILE: ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java
type Align (line 124) | public enum Align
method Align (line 129) | Align(int value)
method value (line 134) | public int value()
type Type (line 145) | public enum Type
method Type (line 150) | Type(int value)
method value (line 155) | public int value()
type ColumnType (line 161) | public enum ColumnType
method ColumnType (line 166) | ColumnType(int value)
method value (line 171) | public int value()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java
class RuoYiConfig (line 11) | @Component
method getName (line 33) | public String getName()
method setName (line 38) | public void setName(String name)
method getVersion (line 43) | public String getVersion()
method setVersion (line 48) | public void setVersion(String version)
method getCopyrightYear (line 53) | public String getCopyrightYear()
method setCopyrightYear (line 58) | public void setCopyrightYear(String copyrightYear)
method isDemoEnabled (line 63) | public boolean isDemoEnabled()
method setDemoEnabled (line 68) | public void setDemoEnabled(boolean demoEnabled)
method getProfile (line 73) | public static String getProfile()
method setProfile (line 78) | public void setProfile(String profile)
method isAddressEnabled (line 83) | public static boolean isAddressEnabled()
method setAddressEnabled (line 88) | public void setAddressEnabled(boolean addressEnabled)
method getImportPath (line 96) | public static String getImportPath()
method getAvatarPath (line 104) | public static String getAvatarPath()
method getDownloadPath (line 112) | public static String getDownloadPath()
method getUploadPath (line 120) | public static String getUploadPath()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java
class SmsConfig (line 19) | @EnableConfigurationProperties(SmsProperties.class)
class AliyunSmsConfig (line 22) | @Configuration
method aliyunSmsTemplate (line 27) | @Bean
FILE: ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java
class SmsProperties (line 13) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java
class CacheConstants (line 8) | public class CacheConstants
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java
type CommonConstant (line 3) | public interface CommonConstant {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
class Constants (line 10) | public class Constants
class MEMBER_ACCOUNT_STATUS (line 162) | public static class MEMBER_ACCOUNT_STATUS {
class LOGIN_INFO (line 170) | public static class LOGIN_INFO {
class VERIFY_CODE_INFO (line 180) | public static class VERIFY_CODE_INFO {
class PublishStatus (line 188) | public static class PublishStatus {
class PayType (line 196) | public static class PayType {
class OrderFrom (line 205) | public static class OrderFrom {
class OrderStatus (line 212) | public static class OrderStatus {
class H5OrderStatus (line 225) | public static class H5OrderStatus{
class PaymentOpType (line 239) | public static class PaymentOpType {
class PaymentStatus (line 248) | public static class PaymentStatus {
class OptType (line 253) | public static class OptType {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java
class GenConstants (line 12) | public class GenConstants {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java
class HttpStatus (line 8) | public class HttpStatus
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java
class ScheduleConstants (line 8) | public class ScheduleConstants
type Status (line 27) | public enum Status
method Status (line 40) | private Status(String value)
method getValue (line 45) | public String getValue()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
class UserConstants (line 8) | public class UserConstants
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java
class BaseController (line 30) | public class BaseController
method initBinder (line 37) | @InitBinder
method startPage (line 54) | protected void startPage()
method startOrderBy (line 70) | protected void startOrderBy()
method getDataTable (line 83) | @SuppressWarnings({"rawtypes", "unchecked"})
method getDataTable (line 93) | protected TableDataInfo getDataTable(Page<?> page) {
method success (line 105) | public AjaxResult success() {
method error (line 112) | public AjaxResult error()
method success (line 120) | public AjaxResult success(String message)
method error (line 128) | public AjaxResult error(String message)
method toAjax (line 139) | protected AjaxResult toAjax(int rows)
method toAjax (line 150) | protected AjaxResult toAjax(boolean result)
method redirect (line 158) | public String redirect(String url)
method getLoginUser (line 166) | public LoginUser getLoginUser()
method getUserId (line 174) | public Long getUserId()
method getDeptId (line 182) | public Long getDeptId()
method getUsername (line 190) | public String getUsername()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java
class AjaxResult (line 12) | public class AjaxResult extends HashMap<String, Object>
method AjaxResult (line 28) | public AjaxResult()
method AjaxResult (line 38) | public AjaxResult(int code, String msg)
method AjaxResult (line 51) | public AjaxResult(int code, String msg, Object data)
method success (line 66) | public static AjaxResult success()
method success (line 76) | public static AjaxResult success(Object data)
method successData (line 80) | public static AjaxResult successData(Object data)
method success (line 91) | public static AjaxResult success(String msg)
method success (line 103) | public static AjaxResult success(String msg, Object data)
method error (line 113) | public static AjaxResult error()
method error (line 124) | public static AjaxResult error(String msg)
method error (line 136) | public static AjaxResult error(String msg, Object data)
method error (line 148) | public static AjaxResult error(int code, String msg)
method put (line 160) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseAudit.java
class BaseAudit (line 8) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java
class BaseEntity (line 12) | public abstract class BaseEntity extends BaseAudit implements Serializab...
method getSearchValue (line 30) | @Override
method setSearchValue (line 35) | public void setSearchValue(String searchValue) {
method getRemark (line 39) | public String getRemark() {
method setRemark (line 43) | public void setRemark(String remark) {
method getParams (line 47) | @Override
method setParams (line 55) | public void setParams(Map<String, Object> params) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/IQuery.java
type IQuery (line 5) | public interface IQuery {
method getSearchValue (line 9) | String getSearchValue();
method getParams (line 14) | Map<String, Object> getParams();
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java
class TreeEntity (line 11) | public class TreeEntity extends BaseEntity
method getParentName (line 30) | public String getParentName()
method setParentName (line 35) | public void setParentName(String parentName)
method getParentId (line 40) | public Long getParentId()
method setParentId (line 45) | public void setParentId(Long parentId)
method getOrderNum (line 50) | public Integer getOrderNum()
method setOrderNum (line 55) | public void setOrderNum(Integer orderNum)
method getAncestors (line 60) | public String getAncestors()
method setAncestors (line 65) | public void setAncestors(String ancestors)
method getChildren (line 70) | public List<?> getChildren()
method setChildren (line 75) | public void setChildren(List<?> children)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java
class TreeSelect (line 15) | public class TreeSelect implements Serializable
method TreeSelect (line 29) | public TreeSelect()
method TreeSelect (line 34) | public TreeSelect(SysDept dept)
method TreeSelect (line 41) | public TreeSelect(SysMenu menu)
method getId (line 48) | public Long getId()
method setId (line 53) | public void setId(Long id)
method getLabel (line 58) | public String getLabel()
method setLabel (line 63) | public void setLabel(String label)
method getChildren (line 68) | public List<TreeSelect> getChildren()
method setChildren (line 73) | public void setChildren(List<TreeSelect> children)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java
class SysDept (line 17) | public class SysDept extends BaseEntity
method getDeptId (line 57) | public Long getDeptId()
method setDeptId (line 62) | public void setDeptId(Long deptId)
method getParentId (line 67) | public Long getParentId()
method setParentId (line 72) | public void setParentId(Long parentId)
method getAncestors (line 77) | public String getAncestors()
method setAncestors (line 82) | public void setAncestors(String ancestors)
method getDeptName (line 87) | @NotBlank(message = "部门名称不能为空")
method setDeptName (line 94) | public void setDeptName(String deptName)
method getOrderNum (line 99) | @NotBlank(message = "显示顺序不能为空")
method setOrderNum (line 105) | public void setOrderNum(String orderNum)
method getLeader (line 110) | public String getLeader()
method setLeader (line 115) | public void setLeader(String leader)
method getPhone (line 120) | @Size(min = 0, max = 11, message = "联系电话长度不能超过11个字符")
method setPhone (line 126) | public void setPhone(String phone)
method getEmail (line 131) | @Email(message = "邮箱格式不正确")
method setEmail (line 138) | public void setEmail(String email)
method getStatus (line 143) | public String getStatus()
method setStatus (line 148) | public void setStatus(String status)
method getDelFlag (line 153) | public String getDelFlag()
method setDelFlag (line 158) | public void setDelFlag(String delFlag)
method getParentName (line 163) | public String getParentName()
method setParentName (line 168) | public void setParentName(String parentName)
method getChildren (line 173) | public List<SysDept> getChildren()
method setChildren (line 178) | public void setChildren(List<SysDept> children)
method toString (line 183) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java
class SysDictData (line 17) | public class SysDictData extends BaseEntity
method getDictCode (line 55) | public Long getDictCode()
method setDictCode (line 60) | public void setDictCode(Long dictCode)
method getDictSort (line 65) | public Long getDictSort()
method setDictSort (line 70) | public void setDictSort(Long dictSort)
method getDictLabel (line 75) | @NotBlank(message = "字典标签不能为空")
method setDictLabel (line 82) | public void setDictLabel(String dictLabel)
method getDictValue (line 87) | @NotBlank(message = "字典键值不能为空")
method setDictValue (line 94) | public void setDictValue(String dictValue)
method getDictType (line 99) | @NotBlank(message = "字典类型不能为空")
method setDictType (line 106) | public void setDictType(String dictType)
method getCssClass (line 111) | @Size(min = 0, max = 100, message = "样式属性长度不能超过100个字符")
method setCssClass (line 117) | public void setCssClass(String cssClass)
method getListClass (line 122) | public String getListClass()
method setListClass (line 127) | public void setListClass(String listClass)
method getDefault (line 132) | public boolean getDefault()
method getIsDefault (line 137) | public String getIsDefault()
method setIsDefault (line 142) | public void setIsDefault(String isDefault)
method getStatus (line 147) | public String getStatus()
method setStatus (line 152) | public void setStatus(String status)
method toString (line 157) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java
class SysDictType (line 16) | public class SysDictType extends BaseEntity
method getDictId (line 36) | public Long getDictId()
method setDictId (line 41) | public void setDictId(Long dictId)
method getDictName (line 46) | @NotBlank(message = "字典名称不能为空")
method setDictName (line 53) | public void setDictName(String dictName)
method getDictType (line 58) | @NotBlank(message = "字典类型不能为空")
method setDictType (line 65) | public void setDictType(String dictType)
method getStatus (line 70) | public String getStatus()
method setStatus (line 75) | public void setStatus(String status)
method toString (line 80) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java
class SysMenu (line 16) | public class SysMenu extends BaseEntity
method getMenuId (line 68) | public Long getMenuId()
method setMenuId (line 73) | public void setMenuId(Long menuId)
method getMenuName (line 78) | @NotBlank(message = "菜单名称不能为空")
method setMenuName (line 85) | public void setMenuName(String menuName)
method getParentName (line 90) | public String getParentName()
method setParentName (line 95) | public void setParentName(String parentName)
method getParentId (line 100) | public Long getParentId()
method setParentId (line 105) | public void setParentId(Long parentId)
method getOrderNum (line 110) | @NotBlank(message = "显示顺序不能为空")
method setOrderNum (line 116) | public void setOrderNum(String orderNum)
method getPath (line 121) | @Size(min = 0, max = 200, message = "路由地址不能超过200个字符")
method setPath (line 127) | public void setPath(String path)
method getComponent (line 132) | @Size(min = 0, max = 200, message = "组件路径不能超过255个字符")
method setComponent (line 138) | public void setComponent(String component)
method getQuery (line 143) | public String getQuery()
method setQuery (line 148) | public void setQuery(String query)
method getIsFrame (line 153) | public String getIsFrame()
method setIsFrame (line 158) | public void setIsFrame(String isFrame)
method getIsCache (line 163) | public String getIsCache()
method setIsCache (line 168) | public void setIsCache(String isCache)
method getMenuType (line 173) | @NotBlank(message = "菜单类型不能为空")
method setMenuType (line 179) | public void setMenuType(String menuType)
method getVisible (line 184) | public String getVisible()
method setVisible (line 189) | public void setVisible(String visible)
method getStatus (line 194) | public String getStatus()
method setStatus (line 199) | public void setStatus(String status)
method getPerms (line 204) | @Size(min = 0, max = 100, message = "权限标识长度不能超过100个字符")
method setPerms (line 210) | public void setPerms(String perms)
method getIcon (line 215) | public String getIcon()
method setIcon (line 220) | public void setIcon(String icon)
method getChildren (line 225) | public List<SysMenu> getChildren()
method setChildren (line 230) | public void setChildren(List<SysMenu> children)
method toString (line 235) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java
class SysRole (line 16) | public class SysRole extends BaseEntity
method SysRole (line 62) | public SysRole()
method SysRole (line 67) | public SysRole(Long roleId)
method getRoleId (line 72) | public Long getRoleId()
method setRoleId (line 77) | public void setRoleId(Long roleId)
method isAdmin (line 82) | public boolean isAdmin()
method isAdmin (line 87) | public static boolean isAdmin(Long roleId)
method getRoleName (line 92) | @NotBlank(message = "角色名称不能为空")
method setRoleName (line 99) | public void setRoleName(String roleName)
method getRoleKey (line 104) | @NotBlank(message = "权限字符不能为空")
method setRoleKey (line 111) | public void setRoleKey(String roleKey)
method getRoleSort (line 116) | @NotBlank(message = "显示顺序不能为空")
method setRoleSort (line 122) | public void setRoleSort(String roleSort)
method getDataScope (line 127) | public String getDataScope()
method setDataScope (line 132) | public void setDataScope(String dataScope)
method isMenuCheckStrictly (line 137) | public boolean isMenuCheckStrictly()
method setMenuCheckStrictly (line 142) | public void setMenuCheckStrictly(boolean menuCheckStrictly)
method isDeptCheckStrictly (line 147) | public boolean isDeptCheckStrictly()
method setDeptCheckStrictly (line 152) | public void setDeptCheckStrictly(boolean deptCheckStrictly)
method getStatus (line 157) | public String getStatus()
method setStatus (line 162) | public void setStatus(String status)
method getDelFlag (line 167) | public String getDelFlag()
method setDelFlag (line 172) | public void setDelFlag(String delFlag)
method isFlag (line 177) | public boolean isFlag()
method setFlag (line 182) | public void setFlag(boolean flag)
method getMenuIds (line 187) | public Long[] getMenuIds()
method setMenuIds (line 192) | public void setMenuIds(Long[] menuIds)
method getDeptIds (line 197) | public Long[] getDeptIds()
method setDeptIds (line 202) | public void setDeptIds(Long[] deptIds)
method toString (line 207) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java
class SysUser (line 23) | public class SysUser extends BaseEntity
method SysUser (line 98) | public SysUser()
method SysUser (line 103) | public SysUser(Long userId)
method getUserId (line 108) | public Long getUserId()
method setUserId (line 113) | public void setUserId(Long userId)
method isAdmin (line 118) | public boolean isAdmin()
method isAdmin (line 123) | public static boolean isAdmin(Long userId)
method getDeptId (line 128) | public Long getDeptId()
method setDeptId (line 133) | public void setDeptId(Long deptId)
method getNickName (line 138) | @Size(min = 0, max = 30, message = "用户昵称长度不能超过30个字符")
method setNickName (line 144) | public void setNickName(String nickName)
method getUserName (line 149) | @NotBlank(message = "用户账号不能为空")
method setUserName (line 156) | public void setUserName(String userName)
method getEmail (line 161) | @Email(message = "邮箱格式不正确")
method setEmail (line 168) | public void setEmail(String email)
method getPhonenumber (line 173) | @Size(min = 0, max = 11, message = "手机号码长度不能超过11个字符")
method setPhonenumber (line 179) | public void setPhonenumber(String phonenumber)
method getSex (line 184) | public String getSex()
method setSex (line 189) | public void setSex(String sex)
method getAvatar (line 194) | public String getAvatar()
method setAvatar (line 199) | public void setAvatar(String avatar)
method getPassword (line 204) | @JsonIgnore
method setPassword (line 211) | public void setPassword(String password)
method getSalt (line 216) | public String getSalt()
method setSalt (line 221) | public void setSalt(String salt)
method getStatus (line 226) | public String getStatus()
method setStatus (line 231) | public void setStatus(String status)
method getDelFlag (line 236) | public String getDelFlag()
method setDelFlag (line 241) | public void setDelFlag(String delFlag)
method getLoginIp (line 246) | public String getLoginIp()
method setLoginIp (line 251) | public void setLoginIp(String loginIp)
method getLoginDate (line 256) | public Date getLoginDate()
method setLoginDate (line 261) | public void setLoginDate(Date loginDate)
method getDept (line 266) | public SysDept getDept()
method setDept (line 271) | public void setDept(SysDept dept)
method getRoles (line 276) | public List<SysRole> getRoles()
method setRoles (line 281) | public void setRoles(List<SysRole> roles)
method getRoleIds (line 286) | public Long[] getRoleIds()
method setRoleIds (line 291) | public void setRoleIds(Long[] roleIds)
method getPostIds (line 296) | public Long[] getPostIds()
method setPostIds (line 301) | public void setPostIds(Long[] postIds)
method getRoleId (line 306) | public Long getRoleId()
method setRoleId (line 311) | public void setRoleId(Long roleId)
method toString (line 316) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/ExtraUserBody.java
class ExtraUserBody (line 6) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java
class LoginBody (line 10) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginMember.java
class LoginMember (line 5) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java
class LoginUser (line 15) | public class LoginUser implements UserDetails
method getUserId (line 74) | public Long getUserId()
method setUserId (line 79) | public void setUserId(Long userId)
method getDeptId (line 84) | public Long getDeptId()
method setDeptId (line 89) | public void setDeptId(Long deptId)
method getToken (line 94) | public String getToken()
method setToken (line 99) | public void setToken(String token)
method LoginUser (line 104) | public LoginUser()
method LoginUser (line 108) | public LoginUser(SysUser user, Set<String> permissions)
method LoginUser (line 114) | public LoginUser(Long userId, Long deptId, SysUser user, Set<String> p...
method getPassword (line 122) | @JSONField(serialize = false)
method getUsername (line 129) | @Override
method isAccountNonExpired (line 138) | @JSONField(serialize = false)
method isAccountNonLocked (line 150) | @JSONField(serialize = false)
method isCredentialsNonExpired (line 162) | @JSONField(serialize = false)
method isEnabled (line 174) | @JSONField(serialize = false)
method getLoginTime (line 181) | public Long getLoginTime()
method setLoginTime (line 186) | public void setLoginTime(Long loginTime)
method getIpaddr (line 191) | public String getIpaddr()
method setIpaddr (line 196) | public void setIpaddr(String ipaddr)
method getLoginLocation (line 201) | public String getLoginLocation()
method setLoginLocation (line 206) | public void setLoginLocation(String loginLocation)
method getBrowser (line 211) | public String getBrowser()
method setBrowser (line 216) | public void setBrowser(String browser)
method getOs (line 221) | public String getOs()
method setOs (line 226) | public void setOs(String os)
method getExpireTime (line 231) | public Long getExpireTime()
method setExpireTime (line 236) | public void setExpireTime(Long expireTime)
method getPermissions (line 241) | public Set<String> getPermissions()
method setPermissions (line 246) | public void setPermissions(Set<String> permissions)
method getUser (line 251) | public SysUser getUser()
method setUser (line 256) | public void setUser(SysUser user)
method getAuthorities (line 261) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/PhoneLoginBody.java
class PhoneLoginBody (line 7) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java
class RegisterBody (line 8) | public class RegisterBody extends LoginBody {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsResult.java
class SmsResult (line 11) | @Data
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/BaseAuditInterceptor.java
class BaseAuditInterceptor (line 26) | @Slf4j
method intercept (line 31) | @Override
method fillField (line 39) | private void fillField(Invocation invocation) {
method dealItem (line 67) | private void dealItem(BaseAudit parameter) {
method getUserId (line 108) | private Long getUserId() {
method getIdMethod (line 123) | private Method getIdMethod(Class c) throws NoSuchMethodException, NoSu...
method dealList (line 161) | private void dealList(List<? extends BaseAudit> real) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisAutoSetUserAuditInfoInterceptor.java
class MybatisAutoSetUserAuditInfoInterceptor (line 15) | @Component
method intercept (line 23) | @Override
method autoSetUserAuditInfo (line 29) | private void autoSetUserAuditInfo(Invocation invocation){
method dealItem (line 66) | private void dealItem(BaseAudit parameter,SqlCommandType sqlCommandType){
method dealList (line 83) | private void dealList(List<? extends BaseAudit> list,SqlCommandType sq...
method plugin (line 89) | @Override
method setProperties (line 94) | @Override
method getUserId (line 99) | private Long getUserId() {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java
class PageDomain (line 10) | public class PageDomain
method getOrderBy (line 27) | public String getOrderBy()
method getPageNum (line 36) | public Integer getPageNum()
method setPageNum (line 41) | public void setPageNum(Integer pageNum)
method getPageSize (line 46) | public Integer getPageSize()
method setPageSize (line 51) | public void setPageSize(Integer pageSize)
method getOrderByColumn (line 56) | public String getOrderByColumn()
method setOrderByColumn (line 61) | public void setOrderByColumn(String orderByColumn)
method getIsAsc (line 66) | public String getIsAsc()
method setIsAsc (line 71) | public void setIsAsc(String isAsc)
method getReasonable (line 88) | public Boolean getReasonable()
method setReasonable (line 97) | public void setReasonable(Boolean reasonable)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java
class TableDataInfo (line 11) | public class TableDataInfo implements Serializable
method TableDataInfo (line 30) | public TableDataInfo()
method TableDataInfo (line 40) | public TableDataInfo(List<?> list, int total)
method getTotal (line 46) | public long getTotal()
method setTotal (line 51) | public void setTotal(long total)
method getRows (line 56) | public List<?> getRows()
method setRows (line 61) | public void setRows(List<?> rows)
method getCode (line 66) | public int getCode()
method setCode (line 71) | public void setCode(int code)
method getMsg (line 76) | public String getMsg()
method setMsg (line 81) | public void setMsg(String msg)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java
class TableSupport (line 10) | public class TableSupport
method getPageDomain (line 40) | public static PageDomain getPageDomain()
method buildPageRequest (line 51) | public static PageDomain buildPageRequest()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java
class RedisCache (line 21) | @SuppressWarnings(value = { "unchecked", "rawtypes" })
method setCacheObject (line 34) | public <T> void setCacheObject(final String key, final T value)
method setCacheObject (line 47) | public <T> void setCacheObject(final String key, final T value, final ...
method expire (line 59) | public boolean expire(final String key, final long timeout)
method expire (line 72) | public boolean expire(final String key, final long timeout, final Time...
method getCacheObject (line 83) | public <T> T getCacheObject(final String key)
method deleteObject (line 94) | public boolean deleteObject(final String key)
method deleteObject (line 105) | public long deleteObject(final Collection collection)
method setCacheList (line 117) | public <T> long setCacheList(final String key, final List<T> dataList)
method getCacheList (line 129) | public <T> List<T> getCacheList(final String key)
method setCacheSet (line 141) | public <T> BoundSetOperations<String, T> setCacheSet(final String key,...
method getCacheSet (line 158) | public <T> Set<T> getCacheSet(final String key)
method setCacheMap (line 169) | public <T> void setCacheMap(final String key, final Map<String, T> dat...
method getCacheMap (line 182) | public <T> Map<String, T> getCacheMap(final String key)
method setCacheMapValue (line 194) | public <T> void setCacheMapValue(final String key, final String hKey, ...
method getCacheMapValue (line 206) | public <T> T getCacheMapValue(final String key, final String hKey)
method getMultiCacheMapValue (line 219) | public <T> List<T> getMultiCacheMapValue(final String key, final Colle...
method keys (line 230) | public Collection<String> keys(final String pattern)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java
class RedisService (line 11) | @Service
method setMatchList (line 17) | public void setMatchList(Long userId, List<Long> userIds) {
method getMatchList (line 23) | public List<Long> getMatchList(Long userId) {
method getAddressList (line 28) | public String getAddressList() {
method setAddressList (line 33) | public void setAddressList(String list) {
method setVerifyCode (line 38) | public void setVerifyCode(String code) {
method deleteVerifyCode (line 44) | public void deleteVerifyCode(String code) {
method getVerifyCode (line 48) | public String getVerifyCode(String code) {
method getWechatToken (line 52) | public String getWechatToken() {
method setWechatToken (line 56) | public void setWechatToken(String token) {
method setQrCode (line 60) | public void setQrCode(String code, String scene) {
method getQrCode (line 64) | public String getQrCode(String scene) {
type RedisKeys (line 68) | interface RedisKeys {
method lock (line 86) | public void lock(String key, String jobInfo, Integer lockSecond) throw...
method unLock (line 102) | public void unLock(String key, String jobInfo) throws Exception {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsTemplate.java
class AliyunSmsTemplate (line 26) | public class AliyunSmsTemplate implements SmsTemplate {
method AliyunSmsTemplate (line 33) | @SneakyThrows(Exception.class)
method send (line 46) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/sms/SmsTemplate.java
type SmsTemplate (line 13) | public interface SmsTemplate {
method send (line 24) | SmsResult send(String phones, String templateId, Map<String, String> p...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java
class CharsetKit (line 12) | public class CharsetKit
method charset (line 34) | public static Charset charset(String charset)
method convert (line 47) | public static String convert(String source, String srcCharset, String ...
method convert (line 60) | public static String convert(String source, Charset srcCharset, Charse...
method systemCharset (line 82) | public static String systemCharset()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java
class Convert (line 17) | public class Convert
method toStr (line 28) | public static String toStr(Object value, String defaultValue)
method toStr (line 49) | public static String toStr(Object value)
method toChar (line 63) | public static Character toChar(Object value, Character defaultValue)
method toChar (line 86) | public static Character toChar(Object value)
method toByte (line 100) | public static Byte toByte(Object value, Byte defaultValue)
method toByte (line 137) | public static Byte toByte(Object value)
method toShort (line 151) | public static Short toShort(Object value, Short defaultValue)
method toShort (line 188) | public static Short toShort(Object value)
method toNumber (line 202) | public static Number toNumber(Object value, Number defaultValue)
method toNumber (line 235) | public static Number toNumber(Object value)
method toInt (line 249) | public static Integer toInt(Object value, Integer defaultValue)
method toInt (line 286) | public static Integer toInt(Object value)
method toIntArray (line 297) | public static Integer[] toIntArray(String str)
method toLongArray (line 308) | public static Long[] toLongArray(String str)
method toIntArray (line 320) | public static Integer[] toIntArray(String split, String str)
method toLongArray (line 343) | public static Long[] toLongArray(String split, String str)
method toStrArray (line 365) | public static String[] toStrArray(String str)
method toStrArray (line 377) | public static String[] toStrArray(String split, String str)
method toLong (line 391) | public static Long toLong(Object value, Long defaultValue)
method toLong (line 429) | public static Long toLong(Object value)
method toDouble (line 443) | public static Double toDouble(Object value, Double defaultValue)
method toDouble (line 481) | public static Double toDouble(Object value)
method toFloat (line 495) | public static Float toFloat(Object value, Float defaultValue)
method toFloat (line 532) | public static Float toFloat(Object value)
method toBool (line 546) | public static Boolean toBool(Object value, Boolean defaultValue)
method toBool (line 591) | public static Boolean toBool(Object value)
method toEnum (line 605) | public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object valu...
method toEnum (line 640) | public static <E extends Enum<E>> E toEnum(Class<E> clazz, Object value)
method toBigInteger (line 654) | public static BigInteger toBigInteger(Object value, BigInteger default...
method toBigInteger (line 691) | public static BigInteger toBigInteger(Object value)
method toBigDecimal (line 705) | public static BigDecimal toBigDecimal(Object value, BigDecimal default...
method toBigDecimal (line 750) | public static BigDecimal toBigDecimal(Object value)
method utf8Str (line 762) | public static String utf8Str(Object obj)
method str (line 775) | public static String str(Object obj, String charsetName)
method str (line 788) | public static String str(Object obj, Charset charset)
method str (line 822) | public static String str(byte[] bytes, String charset)
method str (line 834) | public static String str(byte[] data, Charset charset)
method str (line 855) | public static String str(ByteBuffer data, String charset)
method str (line 872) | public static String str(ByteBuffer data, Charset charset)
method toSBC (line 888) | public static String toSBC(String input)
method toSBC (line 900) | public static String toSBC(String input, Set<Character> notConvertSet)
method toDBC (line 930) | public static String toDBC(String input)
method toDBC (line 942) | public static String toDBC(String text, Set<Character> notConvertSet)
method digitUppercase (line 973) | public static String digitUppercase(double n)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java
class StrFormatter (line 10) | public class StrFormatter
method format (line 30) | public static String format(final String strPattern, final Object... a...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/AftersaleStatus.java
type AftersaleStatus (line 8) | public enum AftersaleStatus
method AftersaleStatus (line 19) | private AftersaleStatus(Integer type, String msg) {
method getType (line 24) | public Integer getType() {
method getMsg (line 28) | public String getMsg() {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java
type BusinessStatus (line 9) | public enum BusinessStatus
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java
type BusinessType (line 8) | public enum BusinessType
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java
type DataSourceType (line 8) | public enum DataSourceType
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java
type HttpMethod (line 12) | public enum HttpMethod
method resolve (line 26) | @Nullable
method matches (line 32) | public boolean matches(String method)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java
type LimitType (line 9) | public enum LimitType
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java
type OperatorType (line 8) | public enum OperatorType
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderRefundStatus.java
type OrderRefundStatus (line 8) | public enum OrderRefundStatus
method OrderRefundStatus (line 19) | private OrderRefundStatus(Integer type, String msg) {
method getType (line 24) | public Integer getType() {
method getMsg (line 28) | public String getMsg() {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderStatus.java
type OrderStatus (line 8) | public enum OrderStatus
method OrderStatus (line 22) | private OrderStatus(Integer type, String msg) {
method getType (line 27) | public Integer getType() {
method getMsg (line 31) | public String getMsg() {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/TradeStatusEnum.java
type TradeStatusEnum (line 6) | public enum TradeStatusEnum {
method dealTradeStatus (line 22) | public static int dealTradeStatus(String code) {
method TradeStatusEnum (line 31) | TradeStatusEnum(String code, Integer status) {
method getCode (line 40) | public String getCode() {
method setCode (line 44) | public TradeStatusEnum setCode(String code) {
method getStatus (line 49) | public Integer getStatus() {
method setStatus (line 53) | public TradeStatusEnum setStatus(Integer status) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java
type UserStatus (line 8) | public enum UserStatus
method UserStatus (line 15) | UserStatus(String code, String info)
method getCode (line 21) | public String getCode()
method getInfo (line 26) | public String getInfo()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java
class DemoModeException (line 8) | public class DemoModeException extends RuntimeException
method DemoModeException (line 12) | public DemoModeException()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java
class GlobalException (line 8) | public class GlobalException extends RuntimeException
method GlobalException (line 28) | public GlobalException()
method GlobalException (line 32) | public GlobalException(String message)
method getDetailMessage (line 37) | public String getDetailMessage()
method setDetailMessage (line 42) | public GlobalException setDetailMessage(String detailMessage)
method getMessage (line 48) | public String getMessage()
method setMessage (line 53) | public GlobalException setMessage(String message)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java
class ServiceException (line 8) | public final class ServiceException extends RuntimeException
method ServiceException (line 32) | public ServiceException()
method ServiceException (line 36) | public ServiceException(String message)
method ServiceException (line 41) | public ServiceException(String message, Integer code)
method getDetailMessage (line 47) | public String getDetailMessage()
method getMessage (line 52) | public String getMessage()
method getCode (line 57) | public Integer getCode()
method setMessage (line 62) | public ServiceException setMessage(String message)
method setDetailMessage (line 68) | public ServiceException setDetailMessage(String detailMessage)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/UtilException.java
class UtilException (line 8) | public class UtilException extends RuntimeException
method UtilException (line 12) | public UtilException(Throwable e)
method UtilException (line 17) | public UtilException(String message)
method UtilException (line 22) | public UtilException(String message, Throwable throwable)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/base/BaseException.java
class BaseException (line 12) | @Slf4j
method BaseException (line 37) | public BaseException(String module, String code, Object[] args, String...
method BaseException (line 45) | public BaseException(String module, String code, Object[] args)
method BaseException (line 50) | public BaseException(String module, String defaultMessage)
method BaseException (line 55) | public BaseException(String code, Object[] args)
method BaseException (line 60) | public BaseException(String defaultMessage)
method getMessage (line 65) | @Override
method getModule (line 84) | public String getModule()
method getCode (line 89) | public String getCode()
method getArgs (line 94) | public Object[] getArgs()
method getDefaultMessage (line 99) | public String getDefaultMessage()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileException.java
class FileException (line 10) | public class FileException extends BaseException
method FileException (line 14) | public FileException(String code, Object[] args)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java
class FileNameLengthLimitExceededException (line 8) | public class FileNameLengthLimitExceededException extends FileException
method FileNameLengthLimitExceededException (line 12) | public FileNameLengthLimitExceededException(int defaultFileNameLength)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java
class FileSizeLimitExceededException (line 8) | public class FileSizeLimitExceededException extends FileException
method FileSizeLimitExceededException (line 12) | public FileSizeLimitExceededException(long defaultMaxSize)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java
class InvalidExtensionException (line 11) | public class InvalidExtensionException extends FileUploadException
method InvalidExtensionException (line 19) | public InvalidExtensionException(String[] allowedExtension, String ext...
method getAllowedExtension (line 27) | public String[] getAllowedExtension()
method getExtension (line 32) | public String getExtension()
method getFilename (line 37) | public String getFilename()
class InvalidImageExtensionException (line 42) | public static class InvalidImageExtensionException extends InvalidExte...
method InvalidImageExtensionException (line 46) | public InvalidImageExtensionException(String[] allowedExtension, Str...
class InvalidFlashExtensionException (line 52) | public static class InvalidFlashExtensionException extends InvalidExte...
method InvalidFlashExtensionException (line 56) | public InvalidFlashExtensionException(String[] allowedExtension, Str...
class InvalidMediaExtensionException (line 62) | public static class InvalidMediaExtensionException extends InvalidExte...
method InvalidMediaExtensionException (line 66) | public InvalidMediaExtensionException(String[] allowedExtension, Str...
class InvalidVideoExtensionException (line 72) | public static class InvalidVideoExtensionException extends InvalidExte...
method InvalidVideoExtensionException (line 76) | public InvalidVideoExtensionException(String[] allowedExtension, Str...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java
class TaskException (line 8) | public class TaskException extends Exception
method TaskException (line 14) | public TaskException(String msg, Code code)
method TaskException (line 19) | public TaskException(String msg, Code code, Exception nestedEx)
method getCode (line 25) | public Code getCode()
type Code (line 30) | public enum Code
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/sms/SmsException.java
class SmsException (line 9) | public class SmsException extends RuntimeException {
method SmsException (line 13) | public SmsException(String msg) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java
class CaptchaException (line 8) | public class CaptchaException extends UserException
method CaptchaException (line 12) | public CaptchaException()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaExpireException.java
class CaptchaExpireException (line 8) | public class CaptchaExpireException extends UserException
method CaptchaExpireException (line 12) | public CaptchaExpireException()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java
class UserException (line 10) | public class UserException extends BaseException
method UserException (line 14) | public UserException(String code, Object[] args)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java
class UserPasswordNotMatchException (line 8) | public class UserPasswordNotMatchException extends UserException
method UserPasswordNotMatchException (line 12) | public UserPasswordNotMatchException()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java
class RepeatableFilter (line 19) | public class RepeatableFilter implements Filter
method init (line 21) | @Override
method doFilter (line 27) | @Override
method destroy (line 47) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java
class RepeatedlyRequestWrapper (line 19) | public class RepeatedlyRequestWrapper extends HttpServletRequestWrapper
method RepeatedlyRequestWrapper (line 23) | public RepeatedlyRequestWrapper(HttpServletRequest request, ServletRes...
method getReader (line 32) | @Override
method getInputStream (line 38) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java
class XssFilter (line 21) | public class XssFilter implements Filter
method init (line 28) | @Override
method doFilter (line 42) | @Override
method handleExcludeURL (line 57) | private boolean handleExcludeURL(HttpServletRequest request, HttpServl...
method destroy (line 69) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java
class XssHttpServletRequestWrapper (line 20) | public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper
method XssHttpServletRequestWrapper (line 25) | public XssHttpServletRequestWrapper(HttpServletRequest request)
method getParameterValues (line 30) | @Override
method getInputStream (line 48) | @Override
method isJsonRequest (line 106) | public boolean isJsonRequest()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/AesCryptoUtils.java
class AesCryptoUtils (line 10) | public class AesCryptoUtils {
method encrypt (line 12) | public static String encrypt(String key, String content){
method decrypt (line 22) | public static String decrypt(String key, String content){
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/Arith.java
class Arith (line 11) | public class Arith
method Arith (line 18) | private Arith()
method add (line 28) | public static double add(double v1, double v2)
method sub (line 41) | public static double sub(double v1, double v2)
method mul (line 54) | public static double mul(double v1, double v2)
method div (line 68) | public static double div(double v1, double v2)
method div (line 81) | public static double div(double v1, double v2, int scale)
method round (line 103) | public static double round(double v, int scale)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java
class DateUtils (line 21) | public class DateUtils extends org.apache.commons.lang3.time.DateUtils
method getNowDate (line 43) | public static Date getNowDate()
method getDate (line 53) | public static String getDate()
method getTime (line 58) | public static final String getTime()
method dateTimeNow (line 63) | public static final String dateTimeNow()
method dateTimeNow (line 68) | public static final String dateTimeNow(final String format)
method dateTime (line 73) | public static final String dateTime(final Date date)
method parseDateToStr (line 78) | public static final String parseDateToStr(final String format, final D...
method dateTime (line 83) | public static final Date dateTime(final String format, final String ts)
method datePath (line 98) | public static final String datePath()
method dateTime (line 107) | public static final String dateTime()
method parseDate (line 116) | public static Date parseDate(Object str)
method getServerStartDate (line 135) | public static Date getServerStartDate()
method getDatePoor (line 144) | public static String getDatePoor(Date endDate, Date nowDate)
method betweenDay (line 169) | public static Long betweenDay(LocalDateTime beginTime, LocalDateTime e...
method getTimeDiff (line 173) | public static List<LocalDateTime> getTimeDiff(int days){
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java
class DictUtils (line 15) | public class DictUtils
method setDictCache (line 28) | public static void setDictCache(String key, List<SysDictData> dictDatas)
method getDictCache (line 39) | public static List<SysDictData> getDictCache(String key)
method getDictLabel (line 57) | public static String getDictLabel(String dictType, String dictValue)
method getDictValue (line 69) | public static String getDictValue(String dictType, String dictLabel)
method getDictLabel (line 82) | public static String getDictLabel(String dictType, String dictValue, S...
method getDictValue (line 122) | public static String getDictValue(String dictType, String dictLabel, S...
method removeDictCache (line 159) | public static void removeDictCache(String key)
method clearDictCache (line 167) | public static void clearDictCache()
method getCacheKey (line 179) | public static String getCacheKey(String configKey)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java
class ExceptionUtil (line 12) | public class ExceptionUtil
method getExceptionMessage (line 17) | public static String getExceptionMessage(Throwable e)
method getRootErrorMessage (line 25) | public static String getRootErrorMessage(Exception e)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/IDGenerator.java
class IDGenerator (line 10) | public class IDGenerator {
method IDGenerator (line 25) | private IDGenerator(final long workerId) {
method generateMinId (line 30) | public static long generateMinId(int wid, long time) {
method nextId (line 34) | public synchronized long nextId() {
method generateMaxId (line 61) | public static long generateMaxId(long wid, long time) {
method tilNextMillis (line 65) | private long tilNextMillis(final long lastTimestamp) {
method timeGen (line 73) | private long timeGen() {
method init (line 79) | public static synchronized void init(Long workerId) throws Exception {
method generateId (line 90) | public static Long generateId() {
FILE: ruoyi-common/src/main/java/com/ruoyi/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/com/ruoyi/common/utils/LogUtils.java
class LogUtils (line 8) | public class LogUtils
method getBlock (line 10) | public static String getBlock(Object msg)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java
class MessageUtils (line 12) | public class MessageUtils
method message (line 21) | public static String message(String code, Object... args)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/OssUtils.java
class OssUtils (line 18) | @Slf4j
method downloadFile (line 34) | public void downloadFile(String objectName){
method uploadOneFile (line 48) | public String uploadOneFile(MultipartFile file) {
method uploadArrayFile (line 73) | public List<String> uploadArrayFile(MultipartFile[] files) {
method deleteFile (line 104) | public boolean deleteFile(String fileUrl) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneUtils.java
class PhoneUtils (line 6) | public class PhoneUtils {
method hidePhone (line 8) | public static String hidePhone(String phone){
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/ResponseUtils.java
class ResponseUtils (line 11) | public class ResponseUtils {
method ResponseUtils (line 17) | private ResponseUtils(){}
method getEntity (line 19) | private static ResponseEntity<Object> getEntity(Object body, HttpStatu...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java
class SecurityUtils (line 15) | public class SecurityUtils
method getUserId (line 21) | public static Long getUserId()
method getDeptId (line 36) | public static Long getDeptId()
method getUsername (line 51) | public static String getUsername()
method getLoginUser (line 66) | public static LoginUser getLoginUser()
method getAuthentication (line 81) | public static Authentication getAuthentication()
method encryptPassword (line 92) | public static String encryptPassword(String password) {
method matchesPassword (line 103) | public static boolean matchesPassword(String rawPassword, String encod...
method isAdmin (line 115) | public static boolean isAdmin(Long userId)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java
class ServletUtils (line 17) | public class ServletUtils
method getParameter (line 22) | public static String getParameter(String name)
method getParameter (line 30) | public static String getParameter(String name, String defaultValue)
method getParameterToInt (line 38) | public static Integer getParameterToInt(String name)
method getParameterToInt (line 46) | public static Integer getParameterToInt(String name, Integer defaultVa...
method getParameterToBool (line 54) | public static Boolean getParameterToBool(String name)
method getParameterToBool (line 62) | public static Boolean getParameterToBool(String name, Boolean defaultV...
method getRequest (line 70) | public static HttpServletRequest getRequest()
method getResponse (line 78) | public static HttpServletResponse getResponse()
method getSession (line 86) | public static HttpSession getSession()
method getRequestAttributes (line 91) | public static ServletRequestAttributes getRequestAttributes()
method renderString (line 104) | public static String renderString(HttpServletResponse response, String...
method isAjaxRequest (line 125) | public static boolean isAjaxRequest(HttpServletRequest request)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java
class SmsUtils (line 8) | public class SmsUtils {
method createRandom (line 10) | public static String createRandom(boolean numberFlag, int length) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/SortUtil.java
class SortUtil (line 9) | public class SortUtil {
method sort2string (line 12) | public static String sort2string(Sort sort) {
method sort2stringOrDefault (line 16) | public static String sort2stringOrDefault(Sort sort) {
method sort2string (line 20) | public static String sort2string(Sort sort, String defaultSort) {
method sort2string (line 25) | public static String sort2string(Sort sort, Map<String, String> sortCo...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java
class StringUtils (line 18) | public class StringUtils extends org.apache.commons.lang3.StringUtils
method nvl (line 32) | public static <T> T nvl(T value, T defaultValue)
method isEmpty (line 43) | public static boolean isEmpty(Collection<?> coll)
method isNotEmpty (line 54) | public static boolean isNotEmpty(Collection<?> coll)
method isEmpty (line 65) | public static boolean isEmpty(Object[] objects)
method isNotEmpty (line 76) | public static boolean isNotEmpty(Object[] objects)
method isEmpty (line 87) | public static boolean isEmpty(Map<?, ?> map)
method isNotEmpty (line 98) | public static boolean isNotEmpty(Map<?, ?> map)
method isEmpty (line 109) | public static boolean isEmpty(String str)
method isNotEmpty (line 120) | public static boolean isNotEmpty(String str)
method isNull (line 131) | public static boolean isNull(Object object)
method isNotNull (line 142) | public static boolean isNotNull(Object object)
method isArray (line 153) | public static boolean isArray(Object object)
method trim (line 161) | public static String trim(String str)
method substring (line 173) | public static String substring(final String str, int start)
method substring (line 205) | public static String substring(final String str, int start, int end)
method format (line 256) | public static String format(String template, Object... params)
method ishttp (line 271) | public static boolean ishttp(String link)
method str2Set (line 283) | public static final Set<String> str2Set(String str, String sep)
method str2List (line 297) | public static final List<String> str2List(String str, String sep, bool...
method containsAnyIgnoreCase (line 334) | public static boolean containsAnyIgnoreCase(CharSequence cs, CharSeque...
method toUnderScoreCase (line 353) | public static String toUnderScoreCase(String str)
method inStringIgnoreCase (line 406) | public static boolean inStringIgnoreCase(String str, String... strs)
method convertToCamelCase (line 427) | public static String convertToCamelCase(String name)
method toCamelCase (line 460) | public static String toCamelCase(String s)
method matches (line 497) | public static boolean matches(String str, List<String> strs)
method isMatch (line 523) | public static boolean isMatch(String pattern, String url)
method cast (line 529) | @SuppressWarnings("unchecked")
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java
class Threads (line 16) | public class Threads
method sleep (line 23) | public static void sleep(long milliseconds)
method shutdownAndAwaitTermination (line 42) | public static void shutdownAndAwaitTermination(ExecutorService pool)
method printException (line 69) | public static void printException(Runnable r, Throwable t)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java
class VerifyCodeUtils (line 22) | public class VerifyCodeUtils
method generateVerifyCode (line 35) | public static String generateVerifyCode(int verifySize)
method generateVerifyCode (line 47) | public static String generateVerifyCode(int verifySize, String sources)
method outputImage (line 72) | public static void outputImage(int w, int h, OutputStream os, String c...
method getRandColor (line 140) | private static Color getRandColor(int fc, int bc)
method getRandomIntColor (line 154) | private static int getRandomIntColor()
method getRandomRgb (line 166) | private static int[] getRandomRgb()
method shear (line 176) | private static void shear(Graphics g, int w1, int h1, Color color)
method shearX (line 182) | private static void shearX(Graphics g, int w1, int h1, Color color)
method shearY (line 206) | private static void shearY(Graphics g, int w1, int h1, Color color)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java
class BeanUtils (line 14) | public class BeanUtils extends org.springframework.beans.BeanUtils
method copyBeanProp (line 31) | public static void copyBeanProp(Object dest, Object src)
method getSetterMethods (line 49) | public static List<Method> getSetterMethods(Object obj)
method getGetterMethods (line 78) | public static List<Method> getGetterMethods(Object obj)
method isMethodPropEquals (line 106) | public static boolean isMethodPropEquals(String m1, String m2)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java
class FileTypeUtils (line 11) | public class FileTypeUtils
method getFileType (line 21) | public static String getFileType(File file)
method getFileType (line 38) | public static String getFileType(String fileName)
method getFileExtendName (line 54) | public static String getFileExtendName(byte[] photoByte)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java
class FileUploadUtils (line 23) | public class FileUploadUtils
method setDefaultBaseDir (line 41) | public static void setDefaultBaseDir(String defaultBaseDir)
method getDefaultBaseDir (line 46) | public static String getDefaultBaseDir()
method upload (line 58) | public static final String upload(MultipartFile file) throws IOException
method upload (line 78) | public static final String upload(String baseDir, MultipartFile file) ...
method upload (line 94) | public static final String upload(String baseDir, MultipartFile file, ...
method upload (line 115) | public static final String upload(String baseDir, MultipartFile file, ...
method extractFilename (line 143) | public static final String extractFilename(MultipartFile file)
method getAbsoluteFile (line 151) | public static final File getAbsoluteFile(String uploadDir, String file...
method getPathFileName (line 165) | public static final String getPathFileName(String uploadDir, String fi...
method assertAllowed (line 181) | public static final void assertAllowed(MultipartFile file, String[] al...
method isAllowedExtension (line 229) | public static final boolean isAllowedExtension(String extension, Strin...
method getExtension (line 247) | public static final String getExtension(MultipartFile file)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java
class FileUtils (line 26) | public class FileUtils
method writeBytes (line 37) | public static void writeBytes(String filePath, OutputStream os) throws...
method writeImportBytes (line 73) | public static String writeImportBytes(byte[] data) throws IOException
method writeBytes (line 86) | public static String writeBytes(byte[] data, String uploadDir) throws ...
method deleteFile (line 111) | public static boolean deleteFile(String filePath)
method isValidFilename (line 130) | public static boolean isValidFilename(String filename)
method checkAllowDownload (line 141) | public static boolean checkAllowDownload(String resource)
method setFileDownloadHeader (line 166) | public static String setFileDownloadHeader(HttpServletRequest request,...
method setAttachmentResponseHeader (line 201) | public static void setAttachmentResponseHeader(HttpServletResponse res...
method percentEncode (line 225) | public static String percentEncode(String s) throws UnsupportedEncodin...
method getFileExtendName (line 237) | public static String getFileExtendName(byte[] photoByte)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java
class ImageUtils (line 22) | public class ImageUtils
method getImage (line 26) | public static byte[] getImage(String imagePath)
method getFile (line 44) | public static InputStream getFile(String imagePath)
method readFile (line 65) | public static byte[] readFile(String url)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java
class MimeTypeUtils (line 10) | public class MimeTypeUtils
method getExtension (line 43) | public static String getExtension(String prefix)
method isImg (line 61) | public static boolean isImg(String contentType) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java
class EscapeUtil (line 10) | public class EscapeUtil
method escape (line 37) | public static String escape(String text)
method unescape (line 48) | public static String unescape(String content)
method clean (line 59) | public static String clean(String content)
method encode (line 70) | private static String encode(String text)
method decode (line 100) | public static String decode(String content)
method main (line 145) | public static void main(String[] args)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java
class HTMLFilter (line 18) | public final class HTMLFilter
method HTMLFilter (line 103) | public HTMLFilter()
method HTMLFilter (line 142) | @SuppressWarnings("unchecked")
method reset (line 168) | private void reset()
method chr (line 175) | public static String chr(final int decimal)
method htmlSpecialChars (line 180) | public static String htmlSpecialChars(final String s)
method filter (line 198) | public String filter(final String input)
method isAlwaysMakeTags (line 216) | public boolean isAlwaysMakeTags()
method isStripComments (line 221) | public boolean isStripComments()
method escapeComments (line 226) | private String escapeComments(final String s)
method balanceHTML (line 240) | private String balanceHTML(String s)
method checkTags (line 272) | private String checkTags(String s)
method processRemoveBlanks (line 300) | private String processRemoveBlanks(final String s)
method regexReplace (line 320) | private static String regexReplace(final Pattern regex_pattern, final ...
method processTag (line 326) | private String processTag(final String s)
method processParamProtocol (line 437) | private String processParamProtocol(String s)
method decodeEntities (line 458) | private String decodeEntities(String s)
method validateEntities (line 498) | private String validateEntities(final String s)
method encodeQuotes (line 515) | private String encodeQuotes(final String s)
method checkEntity (line 538) | private String checkEntity(final String preamble, final String term)
method isValidEntity (line 544) | private boolean isValidEntity(final String entity)
method inArray (line 549) | private static boolean inArray(final String s, final String[] array)
method allowed (line 561) | private boolean allowed(final String name)
method allowedAttribute (line 566) | private boolean allowedAttribute(final String name, final String param...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java
class HttpHelper (line 18) | public class HttpHelper
method getBodyString (line 22) | public static String getBodyString(ServletRequest request)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java
class HttpUtils (line 21) | public class HttpUtils
method sendGet (line 32) | public static String sendGet(String url, String param)
method sendGet (line 45) | public static String sendGet(String url, String param, String contentT...
method sendPost (line 107) | public static String sendPost(String url, String param)
method sendSSLPost (line 173) | public static String sendSSLPost(String url, String param)
class TrustAnyTrustManager (line 228) | private static class TrustAnyTrustManager implements X509TrustManager
method checkClientTrusted (line 230) | @Override
method checkServerTrusted (line 235) | @Override
method getAcceptedIssuers (line 240) | @Override
class TrustAnyHostnameVerifier (line 247) | private static class TrustAnyHostnameVerifier implements HostnameVerifier
method verify (line 249) | @Override
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java
class AddressUtils (line 16) | public class AddressUtils
method getRealAddressByIP (line 26) | public static String getRealAddressByIP(String ip)
method main (line 58) | public static void main(String[] args) {
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java
class IpUtils (line 14) | public class IpUtils
method getIpAddr (line 16) | public static String getIpAddr(HttpServletRequest request)
method internalIp (line 47) | public static boolean internalIp(String ip)
method internalIp (line 53) | private static boolean internalIp(byte[] addr)
method textToNumericFormatV4 (line 96) | public static byte[] textToNumericFormatV4(String text)
method getHostIp (line 172) | public static String getHostIp()
method getHostName (line 184) | public static String getHostName()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java
type ExcelHandlerAdapter (line 8) | public interface ExcelHandlerAdapter
method format (line 18) | Object format(Object value, String[] args);
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java
class ExcelUtil (line 85) | public class ExcelUtil<T>
method ExcelUtil (line 159) | public ExcelUtil(Class<T> clazz)
method init (line 164) | public void init(List<T> list, String sheetName, String title, Type type)
method createTitle (line 182) | public void createTitle()
method importExcel (line 202) | public List<T> importExcel(InputStream is) throws Exception
method importExcel (line 214) | public List<T> importExcel(InputStream is, int titleNum) throws Exception
method importExcel (line 227) | public List<T> importExcel(String sheetName, InputStream is, int title...
method exportExcel (line 406) | public AjaxResult exportExcel(List<T> list, String sheetName)
method writeExcel (line 410) | public String writeExcel(List<T> list, String sheetName)
method exportExcel (line 424) | public AjaxResult exportExcel(List<T> list, String sheetName, String t...
method exportExcel (line 439) | public void exportExcel(HttpServletResponse response, List<T> list, St...
method exportExcel (line 454) | public void exportExcel(HttpServletResponse response, List<T> list, St...
method importTemplateExcel (line 468) | public AjaxResult importTemplateExcel(String sheetName)
method importTemplateExcel (line 480) | public AjaxResult importTemplateExcel(String sheetName, String title)
method importTemplateExcel (line 492) | public void importTemplateExcel(HttpServletResponse response, String s...
method importTemplateExcel (line 504) | public void importTemplateExcel(HttpServletResponse response, String s...
method exportExcel (line 517) | public void exportExcel(OutputStream out)
method exportExcel (line 540) | public String exportExcel()
method writeSheet (line 566) | public void writeSheet()
method fillExcelData (line 597) | public void fillExcelData(int index, Row row)
method createStyles (line 622) | private Map<String, CellStyle> createStyles(Workbook wb)
method createCell (line 697) | public Cell createCell(Excel attr, Row row, int column)
method setCellVo (line 715) | public void setCellVo(Object value, Excel attr, Cell cell)
method getDrawingPatriarch (line 744) | public static Drawing<?> getDrawingPatriarch(Sheet sheet)
method getImageType (line 756) | public int getImageType(byte[] value)
method setDataValidation (line 773) | public void setDataValidation(Excel attr, Row row, int column)
method addCell (line 801) | public Cell addCell(Excel attr, Row row, T vo, Field field, int column)
method setXSSFPrompt (line 868) | public void setXSSFPrompt(Sheet sheet, String promptTitle, String prom...
method setXSSFValidation (line 891) | public void setXSSFValidation(Sheet sheet, String[] textlist, int firs...
method convertByExp (line 922) | public static String convertByExp(String propertyValue, String convert...
method reverseByExp (line 959) | public static String reverseByExp(String propertyValue, String convert...
method convertDictByExp (line 996) | public static String convertDictByExp(String dictValue, String dictTyp...
method reverseDictByExp (line 1009) | public static String reverseDictByExp(String dictLabel, String dictTyp...
method dataFormatHandlerAdapter (line 1021) | public String dataFormatHandlerAdapter(Object value, Excel excel)
method addStatisticsData (line 1039) | private void addStatisticsData(Integer index, String text, Excel entity)
method addStatisticsRow (line 1062) | public void addStatisticsRow()
method encodingFilename (line 1085) | public String encodingFilename(String filename)
method getAbsoluteFile (line 1096) | public String getAbsoluteFile(String filename)
method getTargetValue (line 1116) | private Object getTargetValue(T vo, Field field, Excel excel) throws E...
method getValue (line 1146) | private Object getValue(Object o, String name) throws Exception
method createExcelField (line 1161) | private void createExcelField()
method getFields (line 1171) | public List<Object[]> getFields()
method getRowHeight (line 1211) | public short getRowHeight()
method createWorkbook (line 1225) | public void createWorkbook()
method createSheet (line 1239) | public void createSheet(int sheetNo, int index)
method getCellValue (line 1257) | public Object getCellValue(Row row, int column)
method isRowEmpty (line 1316) | private boolean isRowEmpty(Row row)
method getSheetPictures03 (line 1340) | public static Map<String, PictureData> getSheetPictures03(HSSFSheet sh...
method getSheetPictures07 (line 1373) | public static Map<String, PictureData> getSheetPictures07(XSSFSheet sh...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java
class ReflectUtils (line 23) | @SuppressWarnings("rawtypes")
method invokeGetter (line 38) | @SuppressWarnings("unchecked")
method invokeSetter (line 54) | public static <E> void invokeSetter(Object obj, String propertyName, E...
method getFieldValue (line 76) | @SuppressWarnings("unchecked")
method setFieldValue (line 100) | public static <E> void setFieldValue(final Object obj, final String fi...
method invokeMethod (line 124) | @SuppressWarnings("unchecked")
method invokeMethodByName (line 154) | @SuppressWarnings("unchecked")
method getAccessibleField (line 226) | public static Field getAccessibleField(final Object obj, final String ...
method getAccessibleMethod (line 256) | public static Method getAccessibleMethod(final Object obj, final Strin...
method getAccessibleMethodByName (line 287) | public static Method getAccessibleMethodByName(final Object obj, final...
method makeAccessible (line 313) | public static void makeAccessible(Method method)
method makeAccessible (line 325) | public static void makeAccessible(Field field)
method getClassGenricType (line 338) | @SuppressWarnings("unchecked")
method getClassGenricType (line 348) | public static Class getClassGenricType(final Class clazz, final int in...
method getUserClass (line 375) | public static Class<?> getUserClass(Object instance)
method convertReflectionExceptionToUnchecked (line 397) | public static RuntimeException convertReflectionExceptionToUnchecked(S...
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java
class Base64 (line 8) | public final class Base64
method isWhiteSpace (line 62) | private static boolean isWhiteSpace(char octect)
method isPad (line 67) | private static boolean isPad(char octect)
method isData (line 72) | private static boolean isData(char octect)
method encode (line 83) | public static String encode(byte[] binaryData)
method decode (line 162) | public static byte[] decode(String encoded)
method removeWhiteSpace (line 272) | private static int removeWhiteSpace(char[] data)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java
class Md5Utils (line 12) | public class Md5Utils
method md5 (line 16) | private static byte[] md5(String s)
method toHex (line 34) | private static final String toHex(byte hash[])
method hash (line 54) | public static String hash(String s)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java
class SpringUtils (line 18) | @Component
method postProcessBeanFactory (line 26) | @Override
method setApplicationContext (line 32) | @Override
method getBean (line 46) | @SuppressWarnings("unchecked")
method getBean (line 60) | public static <T> T getBean(Class<T> clz) throws BeansException
method containsBean (line 72) | public static boolean containsBean(String name)
method isSingleton (line 85) | public static boolean isSingleton(String name) throws NoSuchBeanDefini...
method getType (line 96) | public static Class<?> getType(String name) throws NoSuchBeanDefinitio...
method getAliases (line 109) | public static String[] getAliases(String name) throws NoSuchBeanDefini...
method getAopProxy (line 120) | @SuppressWarnings("unchecked")
method getActiveProfiles (line 131) | public static String[] getActiveProfiles()
method getActiveProfile (line 141) | public static String getActiveProfile()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java
class SqlUtil (line 11) | public class SqlUtil
method escapeOrderBySql (line 21) | public static String escapeOrderBySql(String value)
method isValidOrderBySql (line 33) | public static boolean isValidOrderBySql(String value)
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/IdUtils.java
class IdUtils (line 8) | public class IdUtils
method randomUUID (line 15) | public static String randomUUID()
method simpleUUID (line 25) | public static String simpleUUID()
method fastUUID (line 35) | public static String fastUUID()
method fastSimpleUUID (line 45) | public static String fastSimpleUUID()
FILE: ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java
class UUID (line 15) | public final class UUID implements java.io.Serializable, Comparable<UUID>
class Holder (line 23) | private static class Holder
method UUID (line 39) | private UUID(byte[] data)
method UUID (line 62) | public UUID(long mostSigBits, long leastSigBits)
method fastUUID (line 73) | public static UUID fastUUID()
method randomUUID (line 83) | public static UUID randomUUID()
method randomUUID (line 94) | public static UUID randomUUID(boolean isSecure)
method nameUUIDFromBytes (line 114) | public static UUID nameUUIDFromBytes(byte[] name)
method fromString (line 141) | public static UUID fromString(String name)
method getLeastSignificantBits (line 171) | public long getLeastSignificantBits()
method getMostSignificantBits (line 181) | public long getMostSignificantBits()
method version (line 199) | public int version()
method variant (line 218) | public int variant()
method timestamp (line 241) | public long timestamp() throws UnsupportedOperationException
method clockSequence (line 262) | public int clockSequence() throws UnsupportedOperationException
method node (line 281) | public long node() throws UnsupportedOperationException
method toString (line 311) | @Override
method toString (line 341) | public String toString(boolean isSimple)
method hashCode (line 379) | @Override
method equals (line 395) | @Override
method compareTo (line 419) | @Override
method digits (line 440) | private static String digits(long val, int digits)
method checkTimeBase (line 449) | private void checkTimeBase()
method getSecureRandom (line 462) | public static SecureRandom getSecureRandom()
method getRandom (line 480) | public static ThreadLocalRandom getRandom()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java
class DataScopeAspect (line 20) | @Aspect
method doBefore (line 54) | @Before("@annotation(controllerDataScope)")
method handleDataScope (line 61) | protected void handleDataScope(final JoinPoint joinPoint, DataScope co...
method dataScopeFilter (line 84) | public static void dataScopeFilter(JoinPoint joinPoint, SysUser user, ...
method clearDataScope (line 140) | private void clearDataScope(final JoinPoint joinPoint)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java
class DataSourceAspect (line 23) | @Aspect
method dsPointCut (line 30) | @Pointcut("@annotation(com.ruoyi.common.annotation.DataSource)"
method around (line 37) | @Around("dsPointCut()")
method getDataSource (line 61) | public DataSource getDataSource(ProceedingJoinPoint point)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java
class LogAspect (line 35) | @Aspect
method doAfterReturning (line 46) | @AfterReturning(pointcut = "@annotation(controllerLog)", returning = "...
method doAfterThrowing (line 58) | @AfterThrowing(value = "@annotation(controllerLog)", throwing = "e")
method handleLog (line 64) | protected void handleLog(final JoinPoint joinPoint, Log controllerLog,...
method getControllerMethodDescription (line 116) | public void getControllerMethodDescription(JoinPoint joinPoint, Log lo...
method setRequestValue (line 143) | private void setRequestValue(JoinPoint joinPoint, SysOperLog operLog) ...
method argsArrayToString (line 161) | private String argsArrayToString(Object[] paramsArray)
method isFilterObject (line 190) | @SuppressWarnings("rawtypes")
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LoggingAspect.java
class LoggingAspect (line 26) | @Aspect
method LoggingAspect (line 32) | public LoggingAspect(Environment env) {
method springBeanPointcut (line 39) | @Pointcut("within(@org.springframework.stereotype.Repository *)" +
method scheduledJob (line 46) | @Pointcut("@annotation(org.springframework.scheduling.annotation.Sched...
method springBeanResourcePointcut (line 54) | @Pointcut("within(@org.springframework.web.bind.annotation.RestControl...
method logAfterThrowing (line 65) | @AfterThrowing(pointcut = "springBeanPointcut() && scheduledJob()", th...
method scheduledJobAround (line 78) | @Around("scheduledJob()")
method logAround (line 90) | @Around("springBeanResourcePointcut()")
method convertString (line 108) | private String convertString(Object[] args) {
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java
class RateLimiterAspect (line 28) | @Aspect
method setRedisTemplate1 (line 38) | @Autowired
method setLimitScript (line 44) | @Autowired
method doBefore (line 50) | @Before("@annotation(rateLimiter)")
method getCombineKey (line 78) | public String getCombineKey(RateLimiter rateLimiter, JoinPoint point)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java
class ApplicationConfig (line 16) | @Configuration
method jacksonObjectMapperCustomization (line 26) | @Bean
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java
class CaptchaConfig (line 15) | @Configuration
method getKaptchaBean (line 18) | @Bean(name = "captchaProducer")
method getKaptchaBeanMath (line 46) | @Bean(name = "captchaProducerMath")
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java
class DruidConfig (line 32) | @Configuration
method masterDataSource (line 35) | @Bean
method slaveDataSource (line 43) | @Bean
method dataSource (line 52) | @Bean(name = "dynamicDataSource")
method setDataSource (line 69) | public void setDataSource(Map<Object, Object> targetDataSources, Strin...
method removeDruidFilterRegistrationBean (line 84) | @SuppressWarnings({ "rawtypes", "unchecked" })
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java
class FastJson2JsonRedisSerializer (line 18) | public class FastJson2JsonRedisSerializer<T> implements RedisSerializer<T>
method FastJson2JsonRedisSerializer (line 26) | public FastJson2JsonRedisSerializer(Class<T> clazz)
method serialize (line 32) | @Override
method deserialize (line 42) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java
class FilterConfig (line 20) | @Configuration
method xssFilterRegistration (line 30) | @SuppressWarnings({ "rawtypes", "unchecked" })
method someFilterRegistration (line 46) | @SuppressWarnings({ "rawtypes", "unchecked" })
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java
class KaptchaTextCreator (line 11) | public class KaptchaTextCreator extends DefaultTextCreator
method getText (line 15) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDataUtil.java
class LocalDataUtil (line 9) | public class LocalDataUtil {
method setVar (line 13) | public static void setVar(String key, Object obj) {
method getVar (line 22) | public static Object getVar(String key) {
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java
class MyBatisConfig (line 28) | @Configuration
method setTypeAliasesPackage (line 36) | public static String setTypeAliasesPackage(String typeAliasesPackage)
method resolveMapperLocations (line 90) | public Resource[] resolveMapperLocations(String[] mapperLocations)
method myInterceptor (line 130) | @Bean
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java
class MybatisPlusConfig (line 8) | @Configuration
method mybatisPlusInterceptor (line 10) | @Bean
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/PaginationConfiguration.java
class PaginationConfiguration (line 6) | @Configuration
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java
class RedisConfig (line 17) | @Configuration
method redisTemplate (line 21) | @Bean
method limitScript (line 42) | @Bean
method limitScriptText (line 54) | private String limitScriptText()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java
class ResourcesConfig (line 24) | @Configuration
method addResourceHandlers (line 30) | @Override
method addInterceptors (line 44) | @Override
method corsFilter (line 53) | @Bean
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
class SecurityConfig (line 26) | @EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
method authenticationManagerBean (line 65) | @Bean
method configure (line 87) | @Override
method bCryptPasswordEncoder (line 134) | @Bean
method configure (line 143) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java
class ServerConfig (line 12) | @Component
method getUrl (line 20) | public String getUrl()
method getDomain (line 26) | public static String getDomain(HttpServletRequest request)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java
class ThreadPoolConfig (line 17) | @Configuration
method threadPoolTaskExecutor (line 32) | @Bean(name = "threadPoolTaskExecutor")
method scheduledExecutorService (line 48) | @Bean(name = "scheduledExecutorService")
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java
class DruidProperties (line 12) | @Configuration
method dataSource (line 48) | public DruidDataSource dataSource(DruidDataSource datasource)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java
class DynamicDataSource (line 12) | public class DynamicDataSource extends AbstractRoutingDataSource
method DynamicDataSource (line 14) | public DynamicDataSource(DataSource defaultTargetDataSource, Map<Objec...
method determineCurrentLookupKey (line 21) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java
class DynamicDataSourceContextHolder (line 11) | public class DynamicDataSourceContextHolder
method setDataSourceType (line 24) | public static void setDataSourceType(String dsType)
method getDataSourceType (line 33) | public static String getDataSourceType()
method clearDataSourceType (line 41) | public static void clearDataSourceType()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java
class RepeatSubmitInterceptor (line 19) | @Component
method preHandle (line 22) | @Override
method isRepeatSubmit (line 54) | public abstract boolean isRepeatSubmit(HttpServletRequest request, Rep...
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java
class SameUrlDataInterceptor (line 25) | @Component
method isRepeatSubmit (line 39) | @SuppressWarnings("unchecked")
method compareParams (line 94) | private boolean compareParams(Map<String, Object> nowMap, Map<String, ...
method compareTime (line 104) | private boolean compareTime(Map<String, Object> nowMap, Map<String, Ob...
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java
class AsyncManager (line 14) | public class AsyncManager
method AsyncManager (line 29) | private AsyncManager(){}
method me (line 33) | public static AsyncManager me()
method execute (line 43) | public void execute(TimerTask task)
method shutdown (line 51) | public void shutdown()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/manager/ShutdownManager.java
class ShutdownManager (line 13) | @Component
method destroy (line 18) | @PreDestroy
method shutdownAsyncManager (line 27) | private void shutdownAsyncManager()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java
class AsyncFactory (line 24) | public class AsyncFactory
method recordLogininfor (line 37) | public static TimerTask recordLogininfor(final String username, final ...
method recordOper (line 89) | public static TimerTask recordOper(final SysOperLog operLog)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/security/filter/JwtAuthenticationTokenFilter.java
class JwtAuthenticationTokenFilter (line 31) | @Component
method doFilterInternal (line 37) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/AuthenticationEntryPointImpl.java
class AuthenticationEntryPointImpl (line 21) | @Component
method commence (line 26) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/security/handle/LogoutSuccessHandlerImpl.java
class LogoutSuccessHandlerImpl (line 27) | @Configuration
method onLogoutSuccess (line 38) | @Override
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/Server.java
class Server (line 29) | public class Server
method getCpu (line 58) | public Cpu getCpu()
method setCpu (line 63) | public void setCpu(Cpu cpu)
method getMem (line 68) | public Mem getMem()
method setMem (line 73) | public void setMem(Mem mem)
method getJvm (line 78) | public Jvm getJvm()
method setJvm (line 83) | public void setJvm(Jvm jvm)
method getSys (line 88) | public Sys getSys()
method setSys (line 93) | public void setSys(Sys sys)
method getSysFiles (line 98) | public List<SysFile> getSysFiles()
method setSysFiles (line 103) | public void setSysFiles(List<SysFile> sysFiles)
method copyTo (line 108) | public void copyTo() throws Exception
method setCpuInfo (line 127) | private void setCpuInfo(CentralProcessor processor)
method setMemInfo (line 153) | private void setMemInfo(GlobalMemory memory)
method setSysInfo (line 163) | private void setSysInfo()
method setJvmInfo (line 176) | private void setJvmInfo() throws UnknownHostException
method setSysFiles (line 189) | private void setSysFiles(OperatingSystem os)
method convertFileSize (line 216) | public String convertFileSize(long size)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Cpu.java
class Cpu (line 10) | public class Cpu
method getCpuNum (line 42) | public int getCpuNum()
method setCpuNum (line 47) | public void setCpuNum(int cpuNum)
method getTotal (line 52) | public double getTotal()
method setTotal (line 57) | public void setTotal(double total)
method getSys (line 62) | public double getSys()
method setSys (line 67) | public void setSys(double sys)
method getUsed (line 72) | public double getUsed()
method setUsed (line 77) | public void setUsed(double used)
method getWait (line 82) | public double getWait()
method setWait (line 87) | public void setWait(double wait)
method getFree (line 92) | public double getFree()
method setFree (line 97) | public void setFree(double free)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Jvm.java
class Jvm (line 12) | public class Jvm
method getTotal (line 39) | public double getTotal()
method setTotal (line 44) | public void setTotal(double total)
method getMax (line 49) | public double getMax()
method setMax (line 54) | public void setMax(double max)
method getFree (line 59) | public double getFree()
method setFree (line 64) | public void setFree(double free)
method getUsed (line 69) | public double getUsed()
method getUsage (line 74) | public double getUsage()
method getName (line 82) | public String getName()
method getVersion (line 87) | public String getVersion()
method setVersion (line 92) | public void setVersion(String version)
method getHome (line 97) | public String getHome()
method setHome (line 102) | public void setHome(String home)
method getStartTime (line 110) | public String getStartTime()
method getRunTime (line 118) | public String getRunTime()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Mem.java
class Mem (line 10) | public class Mem
method getTotal (line 27) | public double getTotal()
method setTotal (line 32) | public void setTotal(long total)
method getUsed (line 37) | public double getUsed()
method setUsed (line 42) | public void setUsed(long used)
method getFree (line 47) | public double getFree()
method setFree (line 52) | public void setFree(long free)
method getUsage (line 57) | public double getUsage()
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/Sys.java
class Sys (line 8) | public class Sys
method getComputerName (line 35) | public String getComputerName()
method setComputerName (line 40) | public void setComputerName(String computerName)
method getComputerIp (line 45) | public String getComputerIp()
method setComputerIp (line 50) | public void setComputerIp(String computerIp)
method getUserDir (line 55) | public String getUserDir()
method setUserDir (line 60) | public void setUserDir(String userDir)
method getOsName (line 65) | public String getOsName()
method setOsName (line 70) | public void setOsName(String osName)
method getOsArch (line 75) | public String getOsArch()
method setOsArch (line 80) | public void setOsArch(String osArch)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/domain/server/SysFile.java
class SysFile (line 8) | public class SysFile
method getDirName (line 45) | public String getDirName()
method setDirName (line 50) | public void setDirName(String dirName)
method getSysTypeName (line 55) | public String getSysTypeName()
method setSysTypeName (line 60) | public void setSysTypeName(String sysTypeName)
method getTypeName (line 65) | public String getTypeName()
method setTypeName (line 70) | public void setTypeName(String typeName)
method getTotal (line 75) | public String getTotal()
method setTotal (line 80) | public void setTotal(String total)
method getFree (line 85) | public String getFree()
method setFree (line 90) | public void setFree(String free)
method getUsed (line 95) | public String getUsed()
method setUsed (line 100) | public void setUsed(String used)
method getUsage (line 105) | public double getUsage()
method setUsage (line 110) | public void setUsage(double usage)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/exception/GlobalExceptionHandler.java
class GlobalExceptionHandler (line 25) | @RestControllerAdvice
method handleAccessDeniedException (line 33) | @ExceptionHandler(AccessDeniedException.class)
method handleHttpRequestMethodNotSupported (line 44) | @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
method handleMethodArgumentNotValidException (line 55) | @ExceptionHandler(MethodArgumentNotValidException.class)
method handleBindException (line 65) | @ExceptionHandler(BindException.class)
method handleServiceException (line 75) | @ExceptionHandler(ServiceException.class)
method handleBaseException (line 85) | @ExceptionHandler(BaseException.class)
method handleDemoModeException (line 94) | @ExceptionHandler(DemoModeException.class)
method handleRuntimeException (line 103) | @ExceptionHandler(RuntimeException.class)
method handleException (line 113) | @ExceptionHandler(Exception.class)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/PermissionService.java
class PermissionService (line 16) | @Service("ss")
method hasPermi (line 35) | public boolean hasPermi(String permission)
method lacksPermi (line 55) | public boolean lacksPermi(String permission)
method hasAnyPermi (line 66) | public boolean hasAnyPermi(String permissions)
method hasRole (line 94) | public boolean hasRole(String role)
method lacksRole (line 122) | public boolean lacksRole(String role)
method hasAnyRoles (line 133) | public boolean hasAnyRoles(String roles)
method hasPermissions (line 161) | private boolean hasPermissions(Set<String> permissions, String permiss...
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
class SysLoginService (line 44) | @Component
method login (line 72) | public String login(String username, String password, String code, Str...
method loginH5 (line 106) | public LoginUser loginH5(String username, String password, String uuid) {
method validateCaptcha (line 141) | public void validateCaptcha(String username, String code, String uuid)
method recordLoginInfo (line 161) | public void recordLoginInfo(SysUser user) {
method phoneLogin (line 167) | public SysUser phoneLogin(String phone, String code, String uuid) {
method initVipUser (line 201) | public SysUser initVipUser(ExtraUserBody body) {
method createToken (line 224) | public String createToken(SysUser user) {
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysPermissionService.java
class SysPermissionService (line 16) | @Component
method getRolePermission (line 31) | public Set<String> getRolePermission(SysUser user)
method getMenuPermission (line 52) | public Set<String> getMenuPermission(SysUser user)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysRegisterService.java
class SysRegisterService (line 25) | @Component
method register (line 40) | public String register(RegisterBody registerBody)
method register (line 80) | public SysUser register(String username, String nickname, String phone...
method validateCaptcha (line 103) | public void validateCaptcha(String username, String code, String uuid)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/TokenService.java
class TokenService (line 30) | @Component
method getLoginUser (line 63) | public LoginUser getLoginUser(HttpServletRequest request)
method getLoginMember (line 85) | public LoginMember getLoginMember(HttpServletRequest request) {
method setLoginUser (line 104) | public void setLoginUser(LoginUser loginUser)
method delLoginUser (line 115) | public void delLoginUser(String token)
method createToken (line 130) | public String createToken(LoginUser loginUser)
method createMemberToken (line 142) | public String createMemberToken(LoginMember loginMember){
method verifyToken (line 157) | public void verifyToken(LoginUser loginUser)
method verifyMemberToken (line 167) | public void verifyMemberToken(LoginMember loginUser) {
method refreshToken (line 180) | public void refreshToken(LoginUser loginUser)
method refreshMemberToken (line 189) | public void refreshMemberToken(LoginMember loginUser) {
method setUserAgent (line 202) | public void setUserAgent(LoginUser loginUser)
method createToken (line 218) | private String createToken(Map<String, Object> claims)
method parseToken (line 232) | private Claims parseToken(String token)
method getUsernameFromToken (line 246) | public String getUsernameFromToken(String token)
method getToken (line 258) | private String getToken(HttpServletRequest request)
method getTokenKey (line 268) | private String getTokenKey(String uuid)
FILE: ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/UserDetailsServiceImpl.java
class UserDetailsServiceImpl (line 22) | @Service
method loadUserByUsername (line 33) | @Override
method createLoginUser (line 56) | public UserDetails createLoginUser(SysUser user)
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenConfig.java
class GenConfig (line 15) | @Data
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/config/GenPathConfig.java
class GenPathConfig (line 8) | @Data
method setBackPath (line 20) | public void setBackPath(String backPath) {
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/constant/ProjectPathConstant.java
type ProjectPathConstant (line 3) | public interface ProjectPathConstant {
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/controller/GenController.java
class GenController (line 31) | @RestController
method genList (line 44) | @PreAuthorize("@ss.hasPermi('tool:gen:list')")
method getInfo (line 56) | @PreAuthorize("@ss.hasPermi('tool:gen:query')")
method dataList (line 73) | @PreAuthorize("@ss.hasPermi('tool:gen:list')")
method columnList (line 85) | @PreAuthorize("@ss.hasPermi('tool:gen:list')")
method importTableSave (line 99) | @PreAuthorize("@ss.hasPermi('tool:gen:import')")
method editSave (line 114) | @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
method remove (line 127) | @PreAuthorize("@ss.hasPermi('tool:gen:remove')")
method preview (line 139) | @PreAuthorize("@ss.hasPermi('tool:gen:preview')")
method download (line 150) | @PreAuthorize("@ss.hasPermi('tool:gen:code')")
method genCode (line 162) | @PreAuthorize("@ss.hasPermi('tool:gen:code')")
method synchDb (line 174) | @PreAuthorize("@ss.hasPermi('tool:gen:edit')")
method batchGenCode (line 186) | @PreAuthorize("@ss.hasPermi('tool:gen:code')")
method genCode (line 199) | private void genCode(HttpServletResponse response, byte[] data) throws...
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTable.java
class GenTable (line 21) | public class GenTable extends BaseEntity
method getAudit (line 107) | public Integer getAudit() {
method calcAudit (line 114) | private int calcAudit() {
method hasPct (line 132) | public boolean hasPct() {
method hasRichText (line 141) | public boolean hasRichText() {
method setAudit (line 149) | public void setAudit(Integer audit) {
method getTableId (line 153) | public Long getTableId()
method setTableId (line 158) | public void setTableId(Long tableId)
method getTableName (line 163) | public String getTableName()
method setTableName (line 168) | public void setTableName(String tableName)
method getTableComment (line 173) | public String getTableComment()
method setTableComment (line 178) | public void setTableComment(String tableComment)
method getSubTableName (line 183) | public String getSubTableName()
method setSubTableName (line 188) | public void setSubTableName(String subTableName)
method getSubTableFkName (line 193) | public String getSubTableFkName()
method setSubTableFkName (line 198) | public void setSubTableFkName(String subTableFkName)
method getClassName (line 203) | public String getClassName()
method setClassName (line 208) | public void setClassName(String className)
method getTplCategory (line 213) | public String getTplCategory()
method setTplCategory (line 218) | public void setTplCategory(String tplCategory)
method getPackageName (line 223) | public String getPackageName()
method setPackageName (line 228) | public void setPackageName(String packageName)
method getModuleName (line 233) | public String getModuleName()
method setModuleName (line 238) | public void setModuleName(String moduleName)
method getBusinessName (line 243) | public String getBusinessName()
method setBusinessName (line 248) | public void setBusinessName(String businessName)
method getFunctionName (line 253) | public String getFunctionName()
method setFunctionName (line 258) | public void setFunctionName(String functionName)
method getFunctionAuthor (line 263) | public String getFunctionAuthor()
method setFunctionAuthor (line 268) | public void setFunctionAuthor(String functionAuthor)
method getGenType (line 273) | public String getGenType()
method setGenType (line 278) | public void setGenType(String genType)
method getGenPath (line 283) | public String getGenPath()
method setGenPath (line 288) | public void setGenPath(String genPath)
method getPkColumn (line 293) | public GenTableColumn getPkColumn()
method setPkColumn (line 298) | public void setPkColumn(GenTableColumn pkColumn)
method getSubTable (line 303) | public GenTable getSubTable()
method setSubTable (line 308) | public void setSubTable(GenTable subTable)
method getColumns (line 313) | public List<GenTableColumn> getColumns()
method setColumns (line 318) | public void setColumns(List<GenTableColumn> columns)
method getOptions (line 323) | public String getOptions()
method setOptions (line 328) | public void setOptions(String options)
method getTreeCode (line 333) | public String getTreeCode()
method setTreeCode (line 338) | public void setTreeCode(String treeCode)
method getTreeParentCode (line 343) | public String getTreeParentCode()
method setTreeParentCode (line 348) | public void setTreeParentCode(String treeParentCode)
method getTreeName (line 353) | public String getTreeName()
method setTreeName (line 358) | public void setTreeName(String treeName)
method getParentMenuId (line 363) | public String getParentMenuId()
method setParentMenuId (line 368) | public void setParentMenuId(String parentMenuId)
method getParentMenuName (line 373) | public String getParentMenuName()
method setParentMenuName (line 378) | public void setParentMenuName(String parentMenuName)
method isSub (line 383) | public boolean isSub()
method isSub (line 388) | public static boolean isSub(String tplCategory)
method isTree (line 393) | public boolean isTree()
method isTree (line 398) | public static boolean isTree(String tplCategory)
method isCrud (line 403) | public boolean isCrud()
method isCrud (line 408) | public static boolean isCrud(String tplCategory)
method isSuperColumn (line 413) | public boolean isSuperColumn(String javaField)
method isSuperColumn (line 418) | public boolean isSuperColumn(String tplCategory, String javaField)
method hasDate (line 432) | public boolean hasDate() {
method dateImports (line 436) | public List<String> dateImports() {
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/domain/GenTableColumn.java
class GenTableColumn (line 17) | public class GenTableColumn extends BaseEntity {
method setColumnId (line 112) | public void setColumnId(Long columnId) {
method getColumnId (line 116) | public Long getColumnId() {
method setTableId (line 120) | public void setTableId(Long tableId) {
method getTableId (line 124) | public Long getTableId() {
method setColumnName (line 128) | public void setColumnName(String columnName) {
method getColumnName (line 132) | public String getColumnName() {
method setColumnComment (line 136) | public void setColumnComment(String columnComment) {
method getColumnComment (line 140) | public String getColumnComment() {
method setColumnType (line 144) | public void setColumnType(String columnType) {
method getColumnType (line 148) | public String getColumnType() {
method getCapColumnType (line 152) | public String getCapColumnType() {
method isPct (line 175) | public boolean isPct() {
method setJavaType (line 179) | public void setJavaType(String javaType) {
method getJavaType (line 183) | public String getJavaType() {
method setJavaField (line 187) | public void setJavaField(String javaField) {
method getJavaField (line 191) | public String getJavaField() {
method getCapJavaField (line 195) | public String getCapJavaField() {
method getQueryField (line 199) | public String getQueryField() {
method getQueryMethod (line 204) | public String getQueryMethod() {
method setIsPk (line 209) | public void setIsPk(String isPk) {
method getIsPk (line 213) | public String getIsPk() {
method isPk (line 217) | public boolean isPk() {
method isPk (line 221) | public boolean isPk(String isPk) {
method getIsIncrement (line 225) | public String getIsIncrement() {
method setIsIncrement (line 229) | public void setIsIncrement(String isIncrement) {
method isIncrement (line 233) | public boolean isIncrement() {
method isIncrement (line 237) | public boolean isIncrement(String isIncrement) {
method setIsRequired (line 241) | public void setIsRequired(String isRequired) {
method getIsRequired (line 245) | public String getIsRequired() {
method isRequired (line 249) | public boolean isRequired() {
method isRequired (line 253) | public boolean isRequired(String isRequired) {
method setIsInsert (line 257) | public void setIsInsert(String isInsert) {
method getIsInsert (line 261) | public String getIsInsert() {
method isInsert (line 265) | public boolean isInsert() {
method isInsert (line 269) | public boolean isInsert(String isInsert) {
method setIsEdit (line 273) | public void setIsEdit(String isEdit) {
method getIsEdit (line 277) | public String getIsEdit() {
method isEdit (line 281) | public boolean isEdit() {
method isEdit (line 285) | public boolean isEdit(String isEdit) {
method setIsList (line 289) | public void setIsList(String isList) {
method getIsList (line 293) | public String getIsList() {
method isList (line 297) | public boolean isList() {
method isList (line 301) | public boolean isList(String isList) {
method setIsQuery (line 305) | public void setIsQuery(String isQuery) {
method getIsQuery (line 309) | public String getIsQuery() {
method isQuery (line 313) | public boolean isQuery() {
method isQuery (line 317) | public boolean isQuery(String isQuery) {
method setQueryType (line 321) | public void setQueryType(String queryType) {
method getQueryType (line 325) | public String getQueryType() {
method getHtmlType (line 329) | public String getHtmlType() {
method setHtmlType (line 333) | public void setHtmlType(String htmlType) {
method setDictType (line 337) | public void setDictType(String dictType) {
method getDictType (line 341) | public String getDictType() {
method setSort (line 345) | public void setSort(Integer sort) {
method getSort (line 349) | public Integer getSort() {
method isSuperColumn (line 353) | public boolean isSuperColumn() {
method isSuperColumn (line 357) | public static boolean isSuperColumn(String javaField) {
method isUsableColumn (line 365) | public boolean isUsableColumn() {
method isUsableColumn (line 369) | public static boolean isUsableColumn(String javaField) {
method readConverterExp (line 374) | public String readConverterExp() {
method isDate (line 391) | public boolean isDate() {
method getDateFormat (line 395) | public String getDateFormat() {
method genLabel (line 408) | public String genLabel() {
method genComponent (line 416) | public String genComponent() {
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableColumnMapper.java
type GenTableColumnMapper (line 11) | public interface GenTableColumnMapper
method selectDbTableColumnsByName (line 19) | public List<GenTableColumn> selectDbTableColumnsByName(String tableName);
method selectGenTableColumnListByTableId (line 27) | public List<GenTableColumn> selectGenTableColumnListByTableId(Long tab...
method insertGenTableColumn (line 35) | public int insertGenTableColumn(GenTableColumn genTableColumn);
method updateGenTableColumn (line 43) | public int updateGenTableColumn(GenTableColumn genTableColumn);
method deleteGenTableColumns (line 51) | public int deleteGenTableColumns(List<GenTableColumn> genTableColumns);
method deleteGenTableColumnByIds (line 59) | public int deleteGenTableColumnByIds(Long[] ids);
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/mapper/GenTableMapper.java
type GenTableMapper (line 12) | public interface GenTableMapper
method selectGenTableList (line 20) | public List<GenTable> selectGenTableList(GenTable genTable);
method selectDbTableList (line 28) | public List<GenTable> selectDbTableList(GenTable genTable);
method selectDbTableListByNames (line 36) | public List<GenTable> selectDbTableListByNames(String[] tableNames);
method selectGenTableAll (line 43) | public List<GenTable> selectGenTableAll();
method selectGenTableById (line 51) | public GenTable selectGenTableById(Long id);
method selectGenTableByName (line 59) | public GenTable selectGenTableByName(String tableName);
method insertGenTable (line 67) | public int insertGenTable(GenTable genTable);
method updateGenTable (line 75) | public int updateGenTable(GenTable genTable);
method deleteGenTableByIds (line 83) | public int deleteGenTableByIds(Long[] ids);
method selectGenTableByNameIn (line 85) | List<GenTable> selectGenTableByNameIn(@Param("names") List<String> nam...
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableColumnServiceImpl.java
class GenTableColumnServiceImpl (line 15) | @Service
method selectGenTableColumnListByTableId (line 27) | @Override
method insertGenTableColumn (line 39) | @Override
method updateGenTableColumn (line 51) | @Override
method deleteGenTableColumnByIds (line 63) | @Override
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/service/GenTableServiceImpl.java
class GenTableServiceImpl (line 51) | @Service
method selectGenTableById (line 67) | @Override
method selectGenTableList (line 80) | @Override
method selectDbTableList (line 91) | @Override
method selectDbTableListByNames (line 102) | @Override
method selectGenTableAll (line 112) | @Override
method updateGenTable (line 123) | @Override
method deleteGenTableByIds (line 142) | @Override
method importGenTable (line 154) | @Override
method previewCode (line 182) | @Override
method downloadCode (line 213) | @Override
method generatorCode (line 227) | @Override
method getFullPackage (line 275) | private String getFullPackage(String template) {
method generatePath (line 293) | private String generatePath(String template, GenTable table) {
method fillHolder (line 306) | public Map<String, String> fillHolder(GenTable table, Map<String, Stri...
method replaceholder (line 314) | private String replaceholder(String packageName, Map<String, String>.....
method initNullValue (line 333) | private void initNullValue(GenTable table) {
method synchDb (line 344) | @Override
method downloadCode (line 376) | @Override
method generatorCode (line 390) | private void generatorCode(String tableName, ZipOutputStream zip) {
method validateEdit (line 427) | @Override
method selectGenTableByName (line 448) | @Override
method setPkColumn (line 464) | public void setPkColumn(GenTable table) {
method setSubTable (line 492) | public void setSubTable(GenTable table) {
method setTableFromOptions (line 504) | public void setTableFromOptions(GenTable genTable) {
class GenContext (line 521) | @Data
method init (line 545) | @PostConstruct
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableColumnService.java
type IGenTableColumnService (line 11) | public interface IGenTableColumnService
method selectGenTableColumnListByTableId (line 19) | public List<GenTableColumn> selectGenTableColumnListByTableId(Long tab...
method insertGenTableColumn (line 27) | public int insertGenTableColumn(GenTableColumn genTableColumn);
method updateGenTableColumn (line 35) | public int updateGenTableColumn(GenTableColumn genTableColumn);
method deleteGenTableColumnByIds (line 43) | public int deleteGenTableColumnByIds(String ids);
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/service/IGenTableService.java
type IGenTableService (line 12) | public interface IGenTableService
method selectGenTableList (line 20) | public List<GenTable> selectGenTableList(GenTable genTable);
method selectDbTableList (line 28) | public List<GenTable> selectDbTableList(GenTable genTable);
method selectDbTableListByNames (line 36) | public List<GenTable> selectDbTableListByNames(String[] tableNames);
method selectGenTableAll (line 43) | public List<GenTable> selectGenTableAll();
method selectGenTableById (line 51) | public GenTable selectGenTableById(Long id);
method updateGenTable (line 59) | public void updateGenTable(GenTable genTable);
method deleteGenTableByIds (line 67) | public void deleteGenTableByIds(Long[] tableIds);
method importGenTable (line 74) | public void importGenTable(List<GenTable> tableList, Long userId);
method previewCode (line 82) | public Map<String, String> previewCode(Long tableId);
method downloadCode (line 90) | public byte[] downloadCode(String tableName);
method generatorCode (line 98) | public void generatorCode(String tableName);
method synchDb (line 105) | public void synchDb(String tableName);
method downloadCode (line 113) | public byte[] downloadCode(String[] tableNames);
method validateEdit (line 120) | public void validateEdit(GenTable genTable);
method selectGenTableByName (line 122) | List<GenTable> selectGenTableByName(List<String> tableNames);
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/util/GenUtils.java
class GenUtils (line 20) | public class GenUtils {
method setGenConfig (line 44) | public static void setGenConfig(GenConfig genConfig) {
method initTable (line 51) | public static void initTable(GenTable genTable, Long userId) {
method initColumnField (line 64) | public static void initColumnField(GenTableColumn column, GenTable tab...
method arraysContains (line 170) | public static boolean arraysContains(String[] arr, String targetValue) {
method getModuleName (line 180) | public static String getModuleName(String packageName) {
method getBusinessName (line 193) | public static String getBusinessName(String tableName) {
method convertClassName (line 209) | public static String convertClassName(String tableName) {
method replaceFirst (line 226) | public static String replaceFirst(String replacementm, String[] search...
method replaceText (line 243) | public static String replaceText(String text) {
method getDbType (line 253) | public static String getDbType(String columnType) {
method getColumnLength (line 269) | public static Integer getColumnLength(String columnType) {
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityInitializer.java
class VelocityInitializer (line 12) | public class VelocityInitializer
method initVelocity (line 17) | public static void initVelocity()
FILE: ruoyi-generator/src/main/java/com/ruoyi/generator/util/VelocityUtils.java
class VelocityUtils (line 24) | public class VelocityUtils {
method setGenConfig (line 41) | public static void setGenConfig(GenConfig genConfig) {
method prepareContext (line 50) | public static VelocityContext prepareContext(GenTable genTable) {
method setMenuVelocityContext (line 89) | public static void setMenuVelocityContext(VelocityContext context, Gen...
method setTreeVelocityContext (line 96) | public static void setTreeVelocityContext(VelocityContext context, Gen...
method setSubVelocityContext (line 115) | public static void setSubVelocityContext(VelocityContext context, GenT...
method getTemplateList (line 137) | public static List<String> getTemplateList(String tplCategory) {
method getFileName (line 157) | public static String getFileName(String template, GenTable genTable) {
method getPackagePrefix (line 237) | public static String getPackagePrefix(String packageName) {
method getImportList (line 249) | public static HashSet<String> getImportList(GenTable genTable) {
method getDicts (line 277) | public static String getDicts(GenTable genTable) {
method getPermissionPrefix (line 296) | public static String getPermissionPrefix(String moduleName, String bus...
method getParentMenuId (line 306) | public static String getParentMenuId(JSONObject paramsObj) {
method getTreecode (line 320) | public static String getTreecode(JSONObject paramsObj) {
method getTreeParentCode (line 333) | public static String getTreeParentCode(JSONObject paramsObj) {
method getTreeName (line 346) | public static String getTreeName(JSONObject paramsObj) {
method getExpandColumn (line 359) | public static int getExpandColumn(GenTable genTable) {
FILE: ruoyi-generator/src/test/java/com/ruoyi/generator/ApplicationTest.java
class ApplicationTest (line 17) | @RunWith(SpringRunner.class)
method test2 (line 25) | @Test
FILE: ruoyi-generator/src/test/java/com/ruoyi/generator/CommonTest.java
class CommonTest (line 8) | public class CommonTest {
method testPath (line 9) | @Test
FILE: ruoyi-generator/src/test/java/com/ruoyi/generator/SingleComponentTest.java
class SingleComponentTest (line 18) | @RunWith(SpringRunner.class)
class EmployeeServiceImplTestContextConfiguration (line 20) | @TestConfiguration
method employeeService (line 22) | @Bean
method setUp (line 38) | @Before
method test1 (line 46) | @Test
FILE: ruoyi-generator/src/test/java/com/ruoyi/generator/SpringAppTest.java
class SpringAppTest (line 7) | @SpringBootApplication(
method main (line 12) | public static void main(String[] args) {
FILE: ruoyi-mall/src/main/java/com/cyl/config/AESForWeixinGetPhoneNumber.java
class AESForWeixinGetPhoneNumber (line 18) | public class AESForWeixinGetPhoneNumber {
method AESForWeixinGetPhoneNumber (line 34) | public AESForWeixinGetPhoneNumber(String originalContent, String encry...
method decrypt (line 47) | public JSONObject decrypt() {
method initialize (line 66) | private static void initialize() {
method generateIV (line 75) | private static AlgorithmParameters generateIV(byte[] iv) throws NoSuch...
FILE: ruoyi-mall/src/main/java/com/cyl/config/RestTemplateConfig.java
class RestTemplateConfig (line 20) | @Configuration
method restTemplate (line 42) | @Bean
method httpRequestFactory (line 47) | @Bean
method httpClient (line 52) | @Bean
FILE: ruoyi-mall/src/main/java/com/cyl/config/WechatConfig.java
class WechatConfig (line 11) | @Configuration
method jsapiService (line 16) | @Bean
method refundService (line 21) | @Bean
FILE: ruoyi-mall/src/main/java/com/cyl/external/ExternalException.java
class ExternalException (line 5) | @Data
method ExternalException (line 9) | public ExternalException(String code, String message) {
FILE: ruoyi-mall/src/main/java/com/cyl/external/WechatUtil.java
class WechatUtil (line 16) | @Component
method setAppId (line 21) | public void setAppId(String appId) {
method setSecret (line 24) | public void setSecret(String secret) {
method validParam (line 27) | public static boolean validParam(String signature, String... arr) {
method getAccessToken (line 42) | public static AccessTokenResp getAccessToken(String code) {
method getUserInfo (line 50) | public static UserInfoResp getUserInfo(String accessToken, String open...
method validResp (line 57) | public static void validResp(BaseResp resp) {
FILE: ruoyi-mall/src/main/java/com/cyl/external/resp/AccessTokenResp.java
class AccessTokenResp (line 6) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/external/resp/BaseResp.java
class BaseResp (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/external/resp/UserInfoResp.java
class UserInfoResp (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/config/SecurityUtil.java
class SecurityUtil (line 8) | @Service
method getLocalMember (line 11) | public static Member getLocalMember() {
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/CategoryController.java
class CategoryController (line 14) | @RestController
method allCategories (line 20) | @GetMapping("/all-categories")
method getBrotherAndChild (line 25) | @GetMapping("/category-by-id")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5CommonController.java
class H5CommonController (line 26) | @RestController
method add (line 41) | @ApiOperation("新增意见反馈")
method getAddressList (line 49) | @GetMapping("/h5/area")
method uploadFile (line 98) | @PostMapping("/h5/file/upload")
method getSysConfig (line 104) | @GetMapping("/no-auth/config/get")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberAddressController.java
class H5MemberAddressController (line 12) | @RestController
method getList (line 19) | @GetMapping("/list")
method getDefault (line 24) | @GetMapping("/default")
method create (line 29) | @PostMapping("/create")
method update (line 34) | @PutMapping("/update")
method getInfo (line 39) | @GetMapping("/{id}")
method remove (line 44) | @DeleteMapping("/{id}")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberCartController.java
class H5MemberCartController (line 18) | @RestController
method goodscount (line 31) | @GetMapping("goodscount")
method cartIds (line 40) | @GetMapping("cart-ids")
method add (line 50) | @PostMapping("add")
method modify (line 60) | @PostMapping("modify")
method remove (line 70) | @DeleteMapping("remove")
method remove (line 80) | @GetMapping("list")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5MemberController.java
class H5MemberController (line 22) | @RestController
method register (line 32) | @ApiOperation("会员注册")
method validate (line 38) | @ApiOperation("注册登录验证码校验手机号")
method accountLogin (line 44) | @ApiOperation("手机号密码登录")
method wechatLogin (line 50) | @PostMapping("/wechat/login")
method smsLogin (line 59) | @ApiOperation("sms登录")
method getMemberInfo (line 65) | @ApiOperation("获取会员信息")
method setWechatInfo (line 71) | @ApiOperation("设置会员微信信息")
method add (line 77) | @ApiOperation("新增会员登录记录")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5OrderController.java
class H5OrderController (line 30) | @RestController
method submit (line 43) | @ApiOperation("下单")
method addOrderCheck (line 65) | @ApiOperation("下单前校验")
method orderPage (line 71) | @ApiOperation("订单列表")
method orderDetail (line 78) | @ApiOperation("订单详情")
method orderComplete (line 87) | @ApiOperation("确认收货")
method orderNumCount (line 108) | @ApiOperation("订单数量统计")
method orderCancel (line 116) | @ApiOperation("取消订单")
method orderPay (line 137) | @ApiOperation("订单支付")
method applyRefund (line 161) | @ApiOperation("申请售后")
method cancelRefund (line 189) | @ApiOperation("取消售后")
method refundOrderDetail (line 210) | @ApiOperation("售后订单详情")
method delivery (line 216) | @ApiOperation("用户提交退货单号")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/H5ProductController.java
class H5ProductController (line 18) | @RestController
method queryGoodByPage (line 26) | @PostMapping("/list")
method queryDetail (line 31) | @GetMapping("/detail/{id}")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/NoAuthController.java
class NoAuthController (line 20) | @RestController
method getHomeConfig (line 37) | @GetMapping("/home/home-cfg")
method productCount (line 49) | @GetMapping("/home/product-count")
method getAppAccount (line 60) | @GetMapping("/app/account/{type}")
method createCode (line 67) | @GetMapping("/verified/code/generate")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/PayNotifyController.java
class PayNotifyController (line 40) | @Api(description ="微信回调接口列表")
method weChatPayNotify (line 58) | @PostMapping("/notify")
method weChatRefundNotify (line 104) | @ApiOperation(value = "微信退款回调")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/UserController.java
class UserController (line 13) | @RequestMapping("ucenter")
method queryPageOfAddress (line 19) | @GetMapping("user-address")
method addOrUpdateAddress (line 26) | @PostMapping("add-update-user-address")
method deleteUserAddress (line 38) | @DeleteMapping("delete-user-address")
method detailUserAddress (line 43) | @GetMapping("detail-user-address")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/controller/WechatController2.java
class WechatController2 (line 21) | @RestController
method getHomeConfig (line 30) | @GetMapping("/no-auth/wechat-server-auth")
method h5Login (line 45) | @PostMapping("/no-auth/wechat/h5-login")
method getSessionId (line 52) | @GetMapping("/no-auth/wechat/getSessionId")
method getSessionId2 (line 66) | @GetMapping("/no-auth/wechat/getSessionId2")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/dto/CategoryDTO.java
class CategoryDTO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/dto/DeliveryReq.java
class DeliveryReq (line 15) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/dto/OrderProductListDTO.java
class OrderProductListDTO (line 19) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/dto/PayNotifyMessageDTO.java
class PayNotifyMessageDTO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/ApplyRefundForm.java
class ApplyRefundForm (line 9) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/BindOpenIDForm.java
class BindOpenIDForm (line 7) | @ApiModel("绑定openId请求对象")
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/CancelOrderForm.java
class CancelOrderForm (line 9) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/H5AccountLoginForm.java
class H5AccountLoginForm (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/H5LoginForm.java
class H5LoginForm (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/H5SmsLoginForm.java
class H5SmsLoginForm (line 6) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/OrderCreateForm.java
class OrderCreateForm (line 16) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/OrderPayForm.java
class OrderPayForm (line 7) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/OrderSubmitForm.java
class OrderSubmitForm (line 10) | @Data
class SkuParam (line 22) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/RegisterForm.java
class RegisterForm (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/form/WechatLoginForm.java
class WechatLoginForm (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/query/OrderH5Query.java
class OrderH5Query (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/AftersaleRefundInfoVO.java
class AftersaleRefundInfoVO (line 19) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/CountOrderVO.java
class CountOrderVO (line 7) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/H5LoginVO.java
class H5LoginVO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/H5OrderVO.java
class H5OrderVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/H5ProductVO.java
class H5ProductVO (line 6) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/HomeConfigVO.java
class HomeConfigVO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/OrderCalcVO.java
class OrderCalcVO (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/OrderPayVO.java
class OrderPayVO (line 10) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/ProductDetailVO.java
class ProductDetailVO (line 10) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/RegisterVO.java
class RegisterVO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/SkuViewVO.java
class SkuViewVO (line 15) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/ValidatePhoneVO.java
class ValidatePhoneVO (line 8) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/domain/vo/WechatLoginVO.java
class WechatLoginVO (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberAddressService.java
class H5MemberAddressService (line 30) | @Service
method selectById (line 46) | public MemberAddressVO selectById(Long id) {
method selectList (line 54) | public List<MemberAddressVO> selectList() {
method insert (line 73) | public int insert(MemberAddressForm memberAddressForm) {
method update (line 95) | public int update(MemberAddressForm memberAddressForm) {
method deleteByIds (line 117) | public int deleteByIds(Long[] ids) {
method deleteById (line 128) | public int deleteById(Long id) {
method getDefault (line 132) | public MemberAddressVO getDefault() {
FILE: ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberCartService.java
class H5MemberCartService (line 38) | @Service
method selectById (line 55) | public MemberCart selectById(Long id) {
method selectList (line 66) | public List<MemberCartVO> selectList(MemberCartQuery query, Pageable p...
method insert (line 106) | public int insert(MemberCart memberCart) {
method update (line 133) | public int update(MemberCart memberCart) {
method update (line 143) | public int update(UpdateMemberCartForm form) {
method deleteById (line 165) | public int deleteById(Long id) {
method deleteByIds (line 175) | public int deleteByIds(String ids) {
method mineCartNum (line 180) | public Integer mineCartNum() {
method mineCartIds (line 193) | public List<Long> mineCartIds() {
FILE: ruoyi-mall/src/main/java/com/cyl/h5/service/H5MemberService.java
class H5MemberService (line 47) | @Service
method register (line 81) | @Transactional
method validate (line 123) | public ValidatePhoneVO validate(String phone) {
method accountLogin (line 143) | public H5LoginVO accountLogin(String data) {
method smsLogin (line 164) | public H5LoginVO smsLogin(String data){
method validateMemberStatus (line 239) | private void validateMemberStatus(Member member) {
method validateVerifyCode (line 251) | private void validateVerifyCode(String uuid, String phone, String inpu...
method getLoginResponse (line 268) | public H5LoginVO getLoginResponse(Long memberId){
method getMemberInfo (line 279) | public MemberVO getMemberInfo() {
method getWechatUserAuth (line 291) | public WechatUserAuth getWechatUserAuth(String data) {
method setWechatInfo (line 310) | public void setWechatInfo(String data) {
method insert (line 330) | public void insert(Long memberId) {
method wechatLogin (line 344) | public H5LoginVO wechatLogin(WechatLoginVO params) throws Exception {
method createOrUpdateMember (line 356) | private Member createOrUpdateMember(String openId,String mobile){
method getMobile (line 395) | private String getMobile(String sessionKey, String key, String data) {
method selectById (line 404) | public Member selectById(Long memberId) {
FILE: ruoyi-mall/src/main/java/com/cyl/h5/service/H5OrderService.java
class H5OrderService (line 67) | @Service
method submit (line 128) | @Transactional
method addOrderCheck (line 288) | public OrderCalcVO addOrderCheck(OrderCreateForm orderCreateForm) {
method getOrderIdPrefix (line 360) | private String getOrderIdPrefix() {
method orderPage (line 373) | public PageImpl<H5OrderVO> orderPage(Integer status, Long memberId, Pa...
method orderDetail (line 408) | public H5OrderVO orderDetail(Long orderId) {
method orderCompleteByJob (line 430) | @Transactional
method orderComplete (line 455) | @Transactional
method orderNumCount (line 495) | public CountOrderVO orderNumCount(Long memberId) {
method orderBatchCancel (line 499) | @Transactional
method orderPay (line 569) | public OrderPayVO orderPay(OrderPayForm req) {
method payCallBack (line 669) | @Transactional
method applyRefund (line 736) | @Transactional
method checkIfCanApplyRefund (line 818) | private void checkIfCanApplyRefund(Order order) {
method cancelRefund (line 844) | @Transactional
method refundOrderDetail (line 892) | public AftersaleRefundInfoVO refundOrderDetail(Long orderId) {
method selectById (line 917) | public Order selectById(Long orderId) {
FILE: ruoyi-mall/src/main/java/com/cyl/job/OrderJob.java
class OrderJob (line 19) | @Component
method cancelOrder (line 32) | @Scheduled(cron = "20 20 1 * * ?")
method batchCompleteOrder (line 52) | @Scheduled(cron = "20 20 2 * * ?")
FILE: ruoyi-mall/src/main/java/com/cyl/job/StatisticsJob.java
class StatisticsJob (line 17) | @Component
method cancelOrder (line 27) | @Async
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/constant/IntegralRule.java
class IntegralRule (line 7) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/controller/CouponActivityController.java
class CouponActivityController (line 36) | @Api(description ="优惠券活动表接口列表")
method list (line 45) | @ApiOperation("查询优惠券活动表列表")
method getInfo (line 51) | @ApiOperation("获取优惠券活动表详细信息")
method add (line 57) | @ApiOperation("新增优惠券活动表")
method edit (line 64) | @ApiOperation("修改优惠券活动表")
method remove (line 71) | @ApiOperation("删除优惠券活动表")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/controller/H5CouponController.java
class H5CouponController (line 21) | @Api(description = "优惠券接口列表")
method list (line 33) | @ApiOperation("优惠券活动列表")
method getDetail (line 40) | @GetMapping("/activity/get")
method receiveCoupon (line 46) | @PostMapping("/receive")
method list (line 65) | @ApiOperation("优惠券活动列表")
method getCanUseList (line 79) | @PostMapping("/can/use/list")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/controller/H5IntegralHistoryController.java
class H5IntegralHistoryController (line 31) | @Api(description ="积分流水表接口列表")
method list (line 38) | @ApiOperation("查询积分流水表列表")
method add (line 52) | @ApiOperation("新增积分流水表")
method list (line 66) | @ApiOperation("积分流水")
method statIntegral (line 73) | @ApiOperation("积分统计")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/controller/IntegralHistoryController.java
class IntegralHistoryController (line 29) | @Api(description ="积分流水表接口列表")
method list (line 38) | @ApiOperation("查询积分流水表列表")
method export (line 46) | @ApiOperation("导出积分流水表列表")
method getInfo (line 56) | @ApiOperation("获取积分流水表详细信息")
method add (line 63) | @ApiOperation("新增积分流水表")
method edit (line 71) | @ApiOperation("修改积分流水表")
method remove (line 79) | @ApiOperation("删除积分流水表")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/controller/MemberCouponController.java
class MemberCouponController (line 36) | @Api(description ="用户领券记录接口列表")
method list (line 45) | @ApiOperation("查询用户领券记录列表")
method getInfo (line 51) | @ApiOperation("获取用户领券记录详细信息")
method add (line 57) | @ApiOperation("新增用户领券记录")
method edit (line 64) | @ApiOperation("修改用户领券记录")
method remove (line 71) | @ApiOperation("删除用户领券记录")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/convert/CouponActivityConvert.java
type CouponActivityConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<CouponActivityVO> dos2vos(List<CouponActivity> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/convert/IntegralHistoryConvert.java
type IntegralHistoryConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<IntegralHistoryVO> dos2vos(List<IntegralHistory> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/convert/MemberCouponConvert.java
type MemberCouponConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<MemberCouponVO> dos2vos(List<MemberCoupon> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/entity/CouponActivity.java
class CouponActivity (line 17) | @ApiModel(description="优惠券活动表对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/entity/IntegralHistory.java
class IntegralHistory (line 17) | @ApiModel(description="积分流水表对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/entity/MemberCoupon.java
class MemberCoupon (line 17) | @ApiModel(description="用户领券记录对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/query/CouponActivityQuery.java
class CouponActivityQuery (line 14) | @ApiModel(description="优惠券活动表 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/query/IntegralHistoryQuery.java
class IntegralHistoryQuery (line 16) | @ApiModel(description="积分流水表 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/query/MemberCouponQuery.java
class MemberCouponQuery (line 17) | @ApiModel(description="用户领券记录 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/vo/CouponActivityVO.java
class CouponActivityVO (line 17) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/vo/IntegralHistoryVO.java
class IntegralHistoryVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/vo/IntegralStatVO.java
class IntegralStatVO (line 7) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/domain/vo/MemberCouponVO.java
class MemberCouponVO (line 13) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/mapper/CouponActivityMapper.java
type CouponActivityMapper (line 14) | public interface CouponActivityMapper extends BaseMapper<CouponActivity> {
method selectByEntity (line 21) | List<CouponActivity> selectByEntity(CouponActivity couponActivity);
method receiveCoupon (line 23) | void receiveCoupon(@Param("id") Long id);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/mapper/IntegralHistoryMapper.java
type IntegralHistoryMapper (line 14) | public interface IntegralHistoryMapper extends BaseMapper<IntegralHistor...
method selectByEntity (line 21) | List<IntegralHistory> selectByEntity(IntegralHistory integralHistory);
method statIntegral (line 23) | IntegralStatVO statIntegral(LocalDateTime start, LocalDateTime end, Lo...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/mapper/MemberCouponMapper.java
type MemberCouponMapper (line 18) | public interface MemberCouponMapper extends BaseMapper<MemberCoupon> {
method selectByEntity (line 25) | List<MemberCoupon> selectByEntity(MemberCoupon memberCoupon);
method countUseCoupon (line 27) | List<CouponActivityVO> countUseCoupon(@Param("couponIds") Collection<L...
method countGetCoupon (line 29) | List<CouponActivityVO> countGetCoupon(@Param("couponIds") Set<Long> id...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/service/CouponActivityService.java
class CouponActivityService (line 40) | @Service
method selectById (line 59) | public CouponActivity selectById(Long id) {
method selectList (line 70) | public Page<CouponActivityVO> selectList(CouponActivityQuery query, Pa...
method getDetail (line 125) | public CouponActivityVO getDetail(Long id) {
method insert (line 148) | public int insert(CouponActivity couponActivity) {
method update (line 160) | public int update(CouponActivity couponActivity) {
method deleteById (line 176) | public int deleteById(Long id) {
method selectListByH5 (line 180) | public Page<CouponActivityVO> selectListByH5(Pageable page) {
method receiveCoupon (line 212) | @Transactional
method saveMemberCoupon (line 257) | private int saveMemberCoupon(CouponActivity activity, Long memberId) {
method insertIntegralHistory (line 274) | private void insertIntegralHistory(BigDecimal amount, BigDecimal coupo...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/service/IntegralHistoryService.java
class IntegralHistoryService (line 33) | @Service
method selectById (line 50) | public IntegralHistory selectById(Long id) {
method selectList (line 61) | public List<IntegralHistory> selectList(IntegralHistoryQuery query, Pa...
method selectList2 (line 93) | public List<IntegralHistory> selectList2(IntegralHistoryQuery query) {
method insert (line 122) | public int insert(IntegralHistory integralHistory) {
method insert2 (line 127) | public int insert2(IntegralHistory history) {
method handleIntegral (line 144) | public void handleIntegral(Long orderId, BigDecimal amount, Long membe...
method update (line 179) | public int update(IntegralHistory integralHistory) {
method deleteById (line 189) | public int deleteById(Long id) {
method selectListByH5 (line 193) | public List<IntegralHistory> selectListByH5(IntegralHistoryQuery query...
method statIntegral (line 213) | public IntegralStatVO statIntegral(IntegralHistoryQuery query) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/act/service/MemberCouponService.java
class MemberCouponService (line 32) | @Service
method selectById (line 45) | public MemberCoupon selectById(Long id) {
method selectValidCoupon (line 49) | public MemberCoupon selectValidCoupon(Long id) {
method selectList (line 74) | public Page<MemberCouponVO> selectList(MemberCouponQuery query, Pageab...
method insert (line 121) | public int insert(MemberCoupon memberCoupon) {
method update (line 132) | public int update(MemberCoupon memberCoupon) {
method deleteById (line 142) | public int deleteById(Long id) {
method selectListByH5 (line 146) | public Page<MemberCoupon> selectListByH5(MemberCouponQuery query, Page...
method getCanUseList (line 176) | public List<MemberCoupon> getCanUseList(Collection<Product> products) {
method judgeCouponCanUse (line 197) | public Boolean judgeCouponCanUse(MemberCoupon item, Collection<Product...
method calcMinAmount (line 221) | private BigDecimal calcMinAmount(Collection<Product> products, MemberC...
method updateCouponStatus (line 240) | public void updateCouponStatus(Long memberCouponId, Long orderId) {
method backCoupon (line 249) | public void backCoupon(List<Long> couponIdList) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/controller/SystemStatisticsController.java
class SystemStatisticsController (line 32) | @Api(description ="系统数据统计接口列表")
method list (line 41) | @ApiOperation("查询系统数据统计列表")
method export (line 48) | @ApiOperation("导出系统数据统计列表")
method getInfo (line 59) | @ApiOperation("获取系统数据统计详细信息")
method add (line 66) | @ApiOperation("新增系统数据统计")
method edit (line 74) | @ApiOperation("修改系统数据统计")
method remove (line 82) | @ApiOperation("删除系统数据统计")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/convert/SystemStatisticsConvert.java
type SystemStatisticsConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<SystemStatisticsVO> dos2vos(List<SystemStatistics> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/entity/SystemStatistics.java
class SystemStatistics (line 15) | @ApiModel(description="系统数据统计对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/query/SystemStatisticsQuery.java
class SystemStatisticsQuery (line 16) | @ApiModel(description="系统数据统计 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/domain/vo/SystemStatisticsVO.java
class SystemStatisticsVO (line 13) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/mapper/SystemStatisticsMapper.java
type SystemStatisticsMapper (line 12) | public interface SystemStatisticsMapper extends BaseMapper<SystemStatist...
method selectByEntity (line 19) | List<SystemStatistics> selectByEntity(SystemStatistics systemStatistics);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/aws/service/SystemStatisticsService.java
class SystemStatisticsService (line 36) | @Service
method selectById (line 62) | public SystemStatistics selectById(Long id) {
method selectList (line 73) | public PageImpl<SystemStatistics> selectList(SystemStatisticsQuery que...
method insert (line 99) | public int insert(SystemStatistics systemStatistics) {
method update (line 109) | public int update(SystemStatistics systemStatistics) {
method deleteById (line 119) | public int deleteById(Long id) {
method stat (line 123) | public SystemStatistics stat(LocalDateTime startTime, LocalDateTime en...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java
class AftersaleController (line 44) | @Api(description ="订单售后接口列表")
method list (line 56) | @ApiOperation("查询订单售后列表")
method export (line 64) | @ApiOperation("导出订单售后列表")
method getInfo (line 75) | @ApiOperation("获取订单售后详细信息")
method add (line 82) | @ApiOperation("新增订单售后")
method edit (line 90) | @ApiOperation("修改订单售后")
method remove (line 98) | @ApiOperation("删除订单售后")
method updateStatus (line 106) | @ApiOperation("售后订单操作")
method log (line 128) | @ApiOperation("查看日志")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleItemController.java
class AftersaleItemController (line 36) | @Api(description ="订单售后接口列表")
method list (line 45) | @ApiOperation("查询订单售后列表")
method export (line 53) | @ApiOperation("导出订单售后列表")
method getInfo (line 63) | @ApiOperation("获取订单售后详细信息")
method add (line 70) | @ApiOperation("新增订单售后")
method edit (line 78) | @ApiOperation("修改订单售后")
method remove (line 86) | @ApiOperation("删除订单售后")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderController.java
class OrderController (line 34) | @Api(description ="订单表接口列表")
method list (line 46) | @ApiOperation("查询订单表列表")
method updateReceiver (line 53) | @ApiOperation("修改收件人信息")
method export (line 59) | @ApiOperation("导出订单表列表")
method getInfo (line 70) | @ApiOperation("获取订单表详细信息")
method add (line 77) | @ApiOperation("新增订单表")
method edit (line 85) | @ApiOperation("修改订单表")
method remove (line 93) | @ApiOperation("删除订单表")
method saveMerchantNote (line 101) | @ApiOperation("添加备注")
method delivery (line 109) | @ApiOperation("管理后台订单发货")
method log (line 131) | @ApiOperation("订单日志")
method decryptPhone (line 137) | @PreAuthorize("@ss.hasAnyRoles('admin')")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderDeliveryHistoryController.java
class OrderDeliveryHistoryController (line 36) | @Api(description ="订单发货记录接口列表")
method list (line 45) | @ApiOperation("查询订单发货记录列表")
method export (line 53) | @ApiOperation("导出订单发货记录列表")
method getInfo (line 63) | @ApiOperation("获取订单发货记录详细信息")
method add (line 70) | @ApiOperation("新增订单发货记录")
method edit (line 78) | @ApiOperation("修改订单发货记录")
method remove (line 86) | @ApiOperation("删除订单发货记录")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderItemController.java
class OrderItemController (line 36) | @Api(description ="订单中所包含的商品接口列表")
method list (line 45) | @ApiOperation("查询订单中所包含的商品列表")
method export (line 53) | @ApiOperation("导出订单中所包含的商品列表")
method getInfo (line 63) | @ApiOperation("获取订单中所包含的商品详细信息")
method add (line 70) | @ApiOperation("新增订单中所包含的商品")
method edit (line 78) | @ApiOperation("修改订单中所包含的商品")
method remove (line 86) | @ApiOperation("删除订单中所包含的商品")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/OrderOperateHistoryController.java
class OrderOperateHistoryController (line 36) | @Api(description ="订单操作历史记录接口列表")
method list (line 45) | @ApiOperation("查询订单操作历史记录列表")
method export (line 53) | @ApiOperation("导出订单操作历史记录列表")
method getInfo (line 63) | @ApiOperation("获取订单操作历史记录详细信息")
method add (line 70) | @ApiOperation("新增订单操作历史记录")
method edit (line 78) | @ApiOperation("修改订单操作历史记录")
method remove (line 86) | @ApiOperation("删除订单操作历史记录")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/WechatPaymentHistoryController.java
class WechatPaymentHistoryController (line 36) | @Api(description ="微信订单表接口列表")
method list (line 45) | @ApiOperation("查询微信订单表列表")
method export (line 53) | @ApiOperation("导出微信订单表列表")
method getInfo (line 63) | @ApiOperation("获取微信订单表详细信息")
method add (line 70) | @ApiOperation("新增微信订单表")
method edit (line 78) | @ApiOperation("修改微信订单表")
method remove (line 86) | @ApiOperation("删除微信订单表")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleConvert.java
type AftersaleConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<AftersaleVO> dos2vos(List<Aftersale> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/AftersaleItemConvert.java
type AftersaleItemConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<AftersaleItemVO> dos2vos(List<AftersaleItem> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderConvert.java
type OrderConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<OrderVO> dos2vos(List<Order> list);
method do2vo (line 17) | OrderVO do2vo(Order order);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderDeliveryHistoryConvert.java
type OrderDeliveryHistoryConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<OrderDeliveryHistoryVO> dos2vos(List<OrderDeliveryHistory> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderItemConvert.java
type OrderItemConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<OrderItemVO> dos2vos(List<OrderItem> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/OrderOperateHistoryConvert.java
type OrderOperateHistoryConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<OrderOperateHistoryVO> dos2vos(List<OrderOperateHistory> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/convert/WechatPaymentHistoryConvert.java
type WechatPaymentHistoryConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<WechatPaymentHistoryVO> dos2vos(List<WechatPaymentHistory> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/Aftersale.java
class Aftersale (line 19) | @ApiModel(description="订单售后对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/AftersaleItem.java
class AftersaleItem (line 15) | @ApiModel(description="订单售后对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/Order.java
class Order (line 19) | @ApiModel(description="订单表对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/OrderDeliveryHistory.java
class OrderDeliveryHistory (line 14) | @ApiModel(description="订单发货记录对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/OrderItem.java
class OrderItem (line 18) | @ApiModel(description="订单中所包含的商品对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/OrderOperateHistory.java
class OrderOperateHistory (line 14) | @ApiModel(description="订单操作历史记录对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/entity/WechatPaymentHistory.java
class WechatPaymentHistory (line 15) | @ApiModel(description="微信订单表对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/form/DealWithAftersaleForm.java
class DealWithAftersaleForm (line 10) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/form/DeliverProductForm.java
class DeliverProductForm (line 9) | @Getter
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/form/ManagerAftersaleOrderForm.java
class ManagerAftersaleOrderForm (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/form/ManagerOrderQueryForm.java
class ManagerOrderQueryForm (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/AftersaleItemQuery.java
class AftersaleItemQuery (line 13) | @ApiModel(description="订单售后 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/AftersaleQuery.java
class AftersaleQuery (line 14) | @ApiModel(description="订单售后 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/OrderDeliveryHistoryQuery.java
class OrderDeliveryHistoryQuery (line 12) | @ApiModel(description="订单发货记录 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/OrderItemQuery.java
class OrderItemQuery (line 13) | @ApiModel(description="订单中所包含的商品 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/OrderOperateHistoryQuery.java
class OrderOperateHistoryQuery (line 12) | @ApiModel(description="订单操作历史记录 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/OrderQuery.java
class OrderQuery (line 14) | @ApiModel(description="订单表 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/query/WechatPaymentHistoryQuery.java
class WechatPaymentHistoryQuery (line 13) | @ApiModel(description="微信订单表 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/AftersaleItemVO.java
class AftersaleItemVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/AftersaleVO.java
class AftersaleVO (line 14) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerOrderAddressVo.java
class ManagerOrderAddressVo (line 13) | @Getter
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerOrderDetailVO.java
class ManagerOrderDetailVO (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerOrderProductVO.java
class ManagerOrderProductVO (line 9) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerOrderVO.java
class ManagerOrderVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerRefundOrderDetailVO.java
class ManagerRefundOrderDetailVO (line 16) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/ManagerRefundOrderVO.java
class ManagerRefundOrderVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/OrderAddressVO.java
class OrderAddressVO (line 13) | @Getter
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/OrderDeliveryHistoryVO.java
class OrderDeliveryHistoryVO (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/OrderItemVO.java
class OrderItemVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/OrderOperateHistoryVO.java
class OrderOperateHistoryVO (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/OrderVO.java
class OrderVO (line 17) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/RefundInfoVO.java
class RefundInfoVO (line 16) | @Getter
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/domain/vo/WechatPaymentHistoryVO.java
class WechatPaymentHistoryVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleItemMapper.java
type AftersaleItemMapper (line 13) | public interface AftersaleItemMapper extends BaseMapper<AftersaleItem> {
method selectByEntity (line 20) | List<AftersaleItem> selectByEntity(AftersaleItem aftersaleItem);
method insertBatch (line 22) | Integer insertBatch(@Param("list") List<AftersaleItem> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java
type AftersaleMapper (line 15) | public interface AftersaleMapper extends BaseMapper<Aftersale> {
method selectByEntity (line 22) | List<Aftersale> selectByEntity(Aftersale aftersale);
method selectManagerRefundOrder (line 24) | List<ManagerRefundOrderVO> selectManagerRefundOrder(ManagerAftersaleOr...
method countByMemberId (line 26) | int countByMemberId(Long memberId);
method statPendingAndProcessing (line 28) | OrderAndAftersaleStatisticsVO statPendingAndProcessing();
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderDeliveryHistoryMapper.java
type OrderDeliveryHistoryMapper (line 12) | public interface OrderDeliveryHistoryMapper extends BaseMapper<OrderDeli...
method selectByEntity (line 19) | List<OrderDeliveryHistory> selectByEntity(OrderDeliveryHistory orderDe...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderItemMapper.java
type OrderItemMapper (line 12) | public interface OrderItemMapper extends BaseMapper<OrderItem> {
method selectByEntity (line 19) | List<OrderItem> selectByEntity(OrderItem orderItem);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java
type OrderMapper (line 21) | public interface OrderMapper extends BaseMapper<Order> {
method selectByEntity (line 28) | List<Order> selectByEntity(Order order);
method selectManagerOrderPage (line 30) | List<ManagerOrderVO> selectManagerOrderPage(ManagerOrderQueryForm requ...
method orderPage (line 32) | List<H5OrderVO> orderPage(@Param("status") Integer status, @Param("mem...
method selectOrderDetail (line 34) | H5OrderVO selectOrderDetail(Long orderId);
method countByStatusAndMemberId (line 36) | CountOrderVO countByStatusAndMemberId(Long memberId);
method cancelBatch (line 38) | Integer cancelBatch(@Param("list") List<Order> orderList);
method statOrderCountAndAmount (line 40) | MemberDataStatisticsVO statOrderCountAndAmount(Long memberId);
method statWaitDelivered (line 43) | Integer statWaitDelivered();
method statTodayData (line 45) | OrderAndAftersaleStatisticsVO statTodayData(@Param("startTime") LocalD...
method statNewAndDeal (line 47) | SystemStatistics statNewAndDeal(@Param("startTime") LocalDateTime star...
method statDealMember (line 49) | int statDealMember(@Param("startTime") LocalDateTime startTime,@Param(...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderOperateHistoryMapper.java
type OrderOperateHistoryMapper (line 12) | public interface OrderOperateHistoryMapper extends BaseMapper<OrderOpera...
method selectByEntity (line 19) | List<OrderOperateHistory> selectByEntity(OrderOperateHistory orderOper...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/WechatPaymentHistoryMapper.java
type WechatPaymentHistoryMapper (line 12) | public interface WechatPaymentHistoryMapper extends BaseMapper<WechatPay...
method selectByEntity (line 19) | List<WechatPaymentHistory> selectByEntity(WechatPaymentHistory wechatP...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleItemService.java
class AftersaleItemService (line 21) | @Service
method selectById (line 32) | public AftersaleItem selectById(Long id) {
method selectList (line 43) | public List<AftersaleItem> selectList(AftersaleItemQuery query, Pageab...
method insert (line 77) | public int insert(AftersaleItem aftersaleItem) {
method update (line 88) | public int update(AftersaleItem aftersaleItem) {
method deleteById (line 98) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java
class AftersaleService (line 51) | @Service
method selectById (line 90) | public ManagerRefundOrderDetailVO selectById(Long id) {
method selectList (line 168) | public List<ManagerRefundOrderVO> selectList(ManagerAftersaleOrderForm...
method insert (line 214) | public int insert(Aftersale aftersale) {
method update (line 225) | public int update(Aftersale aftersale) {
method deleteById (line 235) | public int deleteById(Long id) {
method dealWith (line 246) | @Transactional(rollbackFor = Exception.class)
method tradeRefund (line 336) | public void tradeRefund(Aftersale returnApply, Order order, LocalDateT...
method refundOrderExc (line 395) | @Transactional
method log (line 461) | public List<OrderOperateHistoryVO> log(Long orderId) {
method queryAfterSale (line 470) | public Aftersale queryAfterSale(Long orderId) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderDeliveryHistoryService.java
class OrderDeliveryHistoryService (line 21) | @Service
method selectById (line 32) | public OrderDeliveryHistory selectById(Long id) {
method selectList (line 43) | public List<OrderDeliveryHistory> selectList(OrderDeliveryHistoryQuery...
method insert (line 69) | public int insert(OrderDeliveryHistory orderDeliveryHistory) {
method update (line 80) | public int update(OrderDeliveryHistory orderDeliveryHistory) {
method deleteById (line 90) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderItemService.java
class OrderItemService (line 28) | @Service
method selectById (line 39) | public OrderItem selectById(Long id) {
method selectList (line 50) | public List<OrderItem> selectList(OrderItemQuery query, Pageable page) {
method insert (line 120) | public int insert(OrderItem orderItem) {
method update (line 131) | public int update(OrderItem orderItem) {
method deleteById (line 141) | public int deleteById(Long id) {
method saveOrderItem (line 145) | @Transactional
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderOperateHistoryService.java
class OrderOperateHistoryService (line 24) | @Service
method selectById (line 35) | public OrderOperateHistory selectById(Long id) {
method selectList (line 46) | public List<OrderOperateHistory> selectList(OrderOperateHistoryQuery q...
method insert (line 77) | public int insert(OrderOperateHistory orderOperateHistory) {
method update (line 88) | public int update(OrderOperateHistory orderOperateHistory) {
method deleteById (line 98) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/OrderService.java
class OrderService (line 54) | @Service
method selectById (line 91) | public ManagerOrderDetailVO selectById(Long id) {
method selectList (line 152) | public PageImpl<ManagerOrderVO> selectList(ManagerOrderQueryForm query...
method insert (line 197) | public int insert(Order order) {
method update (line 208) | public int update(Order order) {
method deleteById (line 218) | public int deleteById(Long id) {
method queryOrderPage (line 222) | public Page<OrderVO> queryOrderPage(OrderH5Query query, Pageable pageR...
method saveMerchantNote (line 267) | public Integer saveMerchantNote(Order order) {
method deliverProduct (line 285) | @Transactional
method createDeliveryHistory (line 325) | private void createDeliveryHistory(DeliverProductForm request, Long us...
method createOrderOptHistory (line 345) | private void createOrderOptHistory(Long orderId, String orderSn, Integ...
method log (line 366) | public List<OrderOperateHistoryVO> log(Long orderId) {
method decryptPhone (line 375) | public String decryptPhone(Long orderId) {
method updateReceiver (line 385) | public Boolean updateReceiver(Order order) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/oms/service/WechatPaymentHistoryService.java
class WechatPaymentHistoryService (line 22) | @Service
method selectById (line 33) | public WechatPaymentHistory selectById(Long id) {
method selectList (line 44) | public List<WechatPaymentHistory> selectList(WechatPaymentHistoryQuery...
method insert (line 102) | public int insert(WechatPaymentHistory wechatPaymentHistory) {
method update (line 113) | public int update(WechatPaymentHistory wechatPaymentHistory) {
method deleteById (line 123) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/BrandController.java
class BrandController (line 36) | @Api(description ="品牌管理接口列表")
method list (line 45) | @ApiOperation("查询品牌管理列表")
method all (line 52) | @ApiOperation("所有品牌管理列表")
method export (line 59) | @ApiOperation("导出品牌管理列表")
method getInfo (line 69) | @ApiOperation("获取品牌管理详细信息")
method add (line 76) | @ApiOperation("新增品牌管理")
method edit (line 84) | @ApiOperation("修改品牌管理")
method remove (line 92) | @ApiOperation("删除品牌管理")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductCategoryController.java
class ProductCategoryController (line 33) | @Api(description ="商品分类接口列表")
method list (line 42) | @ApiOperation("查询商品分类列表")
method getInfo (line 50) | @ApiOperation("获取商品分类详细信息")
method add (line 57) | @ApiOperation("新增商品分类")
method edit (line 65) | @ApiOperation("修改商品分类")
method remove (line 73) | @ApiOperation("删除商品分类")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/ProductController.java
class ProductController (line 36) | @Api(description ="商品信息接口列表")
method list (line 45) | @ApiOperation("查询商品信息列表")
method export (line 53) | @ApiOperation("导出商品信息列表")
method getInfo (line 63) | @ApiOperation("获取商品信息详细信息")
method add (line 70) | @ApiOperation("新增商品信息")
method edit (line 78) | @ApiOperation("修改商品信息")
method remove (line 86) | @ApiOperation("删除商品信息")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/controller/SkuController.java
class SkuController (line 36) | @Api(description ="sku信息接口列表")
method list (line 45) | @ApiOperation("查询sku信息列表")
method export (line 53) | @ApiOperation("导出sku信息列表")
method getInfo (line 63) | @ApiOperation("获取sku信息详细信息")
method add (line 70) | @ApiOperation("新增sku信息")
method edit (line 78) | @ApiOperation("修改sku信息")
method remove (line 86) | @ApiOperation("删除sku信息")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/BrandConvert.java
type BrandConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<BrandVO> dos2vos(List<Brand> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductCategoryConvert.java
type ProductCategoryConvert (line 13) | @Mapper(componentModel = "spring")
method dos2vos (line 16) | List<ProductCategoryVO> dos2vos(List<ProductCategory> list);
method do2dto (line 18) | CategoryDTO do2dto(ProductCategory it);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/ProductConvert.java
type ProductConvert (line 14) | @Mapper(componentModel = "spring")
method dos2vos (line 17) | List<ProductVO> dos2vos(List<Product> list);
method vo2do (line 18) | Product vo2do(ProductVO productVO);
method do2vo (line 19) | ProductVO do2vo(Product product);
method dos2dtos (line 21) | List<H5ProductVO> dos2dtos(List<Product> products);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/convert/SkuConvert.java
type SkuConvert (line 12) | @Mapper(componentModel = "spring")
method dos2vos (line 15) | List<SkuVO> dos2vos(List<Sku> list);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/entity/Brand.java
class Brand (line 14) | @ApiModel(description="品牌管理对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/entity/Product.java
class Product (line 15) | @ApiModel(description="商品信息对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/entity/ProductCategory.java
class ProductCategory (line 14) | @ApiModel(description="商品分类对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/entity/Sku.java
class Sku (line 15) | @ApiModel(description="sku信息对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/query/BrandQuery.java
class BrandQuery (line 12) | @ApiModel(description="品牌管理 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/query/ProductCategoryQuery.java
class ProductCategoryQuery (line 12) | @ApiModel(description="商品分类 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/query/ProductQuery.java
class ProductQuery (line 15) | @ApiModel(description="商品信息 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/query/SkuQuery.java
class SkuQuery (line 13) | @ApiModel(description="sku信息 查询 对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/vo/BrandVO.java
class BrandVO (line 11) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/vo/ProductCategoryVO.java
class ProductCategoryVO (line 13) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/vo/ProductVO.java
class ProductVO (line 15) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/domain/vo/SkuVO.java
class SkuVO (line 12) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/BrandMapper.java
type BrandMapper (line 12) | public interface BrandMapper extends BaseMapper<Brand> {
method selectByEntity (line 19) | List<Brand> selectByEntity(Brand brand);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductCategoryMapper.java
type ProductCategoryMapper (line 12) | public interface ProductCategoryMapper extends BaseMapper<ProductCategor...
method selectByEntity (line 19) | List<ProductCategory> selectByEntity(ProductCategory productCategory);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/ProductMapper.java
type ProductMapper (line 13) | public interface ProductMapper extends BaseMapper<Product> {
method selectByEntity (line 20) | List<Product> selectByEntity(Product product);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/mapper/SkuMapper.java
type SkuMapper (line 14) | public interface SkuMapper extends BaseMapper<Sku> {
method selectByEntity (line 21) | List<Sku> selectByEntity(Sku sku);
method updateStockById (line 23) | int updateStockById(@Param("skuId")Long skuId, @Param("optDate")LocalD...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/service/BrandService.java
class BrandService (line 21) | @Service
method selectById (line 32) | public Brand selectById(Long id) {
method selectList (line 43) | public List<Brand> selectList(BrandQuery query, Pageable page) {
method insert (line 74) | public int insert(Brand brand) {
method update (line 85) | public int update(Brand brand) {
method deleteById (line 95) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductCategoryService.java
class ProductCategoryService (line 35) | @Service
method selectById (line 52) | public ProductCategory selectById(Long id) {
method selectList (line 63) | public List<ProductCategoryVO> selectList(ProductCategoryQuery query, ...
method formatTree (line 100) | private List<ProductCategoryVO> formatTree(List<ProductCategoryVO> nod...
method recur (line 119) | private void recur(ProductCategoryVO rootNode, List<ProductCategoryVO>...
method insert (line 141) | public int insert(ProductCategory productCategory) {
method update (line 152) | public int update(ProductCategory productCategory) {
method deleteById (line 162) | public int deleteById(Long id) {
method queryCategoryWithProductsForH5 (line 166) | public List<CategoryDTO> queryCategoryWithProductsForH5() {
method queryAllChildCate (line 193) | private List<Long> queryAllChildCate(List<Long> categoryIds, int level) {
method h5Categories (line 214) | public List<ProductCategory> h5Categories() {
method getBrotherAndChild (line 222) | public List<ProductCategory> getBrotherAndChild(Long id, boolean withC...
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/service/ProductService.java
class ProductService (line 35) | @Service
method selectById (line 54) | public ProductVO selectById(Long id) {
method selectList (line 71) | public List<Product> selectList(ProductQuery query, Pageable page) {
method insert (line 113) | @Transactional
method update (line 136) | @Transactional
method deleteById (line 194) | public int deleteById(Long id) {
method queryDetail (line 198) | public ProductDetailVO queryDetail(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/pms/service/SkuService.java
class SkuService (line 22) | @Service
method selectById (line 33) | public Sku selectById(Long id) {
method selectList (line 44) | public List<Sku> selectList(SkuQuery query, Pageable page) {
method insert (line 78) | public int insert(Sku sku) {
method update (line 89) | public int update(Sku sku) {
method deleteById (line 99) | public int deleteById(Long id) {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/controller/IndexStatisticsManagerController.java
class IndexStatisticsManagerController (line 27) | @Slf4j
method goodsStatistics (line 39) | @ApiOperation(value = "获取首页查询热卖商品TOP10")
method orderStatistics (line 46) | @ApiOperation(value = "订单信息")
method statMemberAndCart (line 52) | @ApiOperation(value = "会员数,加购数")
method orderAndAftersaleStatistics (line 58) | @ApiOperation(value = "订单与售后单统计")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/query/GoodsStatisticsQuery.java
class GoodsStatisticsQuery (line 14) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/query/OrderStatisticsQuery.java
class OrderStatisticsQuery (line 7) | @ApiModel("订单统计查询条件对象")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/vo/MemberAndCartStatisticsVO.java
class MemberAndCartStatisticsVO (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/vo/OrderAndAftersaleStatisticsVO.java
class OrderAndAftersaleStatisticsVO (line 7) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/vo/OrderStatisticsVO.java
class OrderStatisticsVO (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/domain/vo/ProductTopVO.java
class ProductTopVO (line 5) | @Data
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/mapper/IndexStatisticsMapper.java
type IndexStatisticsMapper (line 11) | public interface IndexStatisticsMapper {
method goodsSkuStatistics (line 12) | List<ProductTopVO> goodsSkuStatistics(GoodsStatisticsQuery goodsStatis...
method goodsStatistics (line 14) | List<ProductTopVO> goodsStatistics(GoodsStatisticsQuery goodsStatistic...
method orderStatistics (line 15) | List<OrderStatisticsVO> orderStatistics(OrderStatisticsQuery param);
FILE: ruoyi-mall/src/main/java/com/cyl/manager/statistics/service/IndexStatisticsService.java
class IndexStatisticsService (line 28) | @Service
method goodsStatistics (line 42) | public List<ProductTopVO> goodsStatistics(GoodsStatisticsQuery goodsSt...
method orderStatistics (line 50) | public List<OrderStatisticsVO> orderStatistics(OrderStatisticsQuery pa...
method statMemberAndCart (line 54) | public MemberAndCartStatisticsVO statMemberAndCart() {
method orderAndAftersaleStatistics (line 61) | public OrderAndAftersaleStatisticsVO orderAndAftersaleStatistics() {
FILE: ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/FeedbackController.java
class FeedbackController (line 33) | @Api(description ="意见反馈接口列表")
method list (line 42) | @ApiOperation("查询意见反馈列表")
method editMark (line 51) | @ApiOperation("修改意见反馈备注信息")
method changeStatus (line 58) | @ApiOperation(("修改状态"))
method remove (line 66) | @ApiOperation("删除意见反馈")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberAccountController.java
class MemberAccountController (line 36) | @Api(description ="会员账户表接口列表")
method list (line 45) | @ApiOperation("查询会员账户表列表")
method export (line 53) | @ApiOperation("导出会员账户表列表")
method getInfo (line 63) | @ApiOperation("获取会员账户表详细信息")
method add (line 70) | @ApiOperation("新增会员账户表")
method edit (line 78) | @ApiOperation("修改会员账户表")
method remove (line 86) | @ApiOperation("删除会员账户表")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberAddressController.java
class MemberAddressController (line 36) | @Api(description ="会员收货地址接口列表")
method list (line 45) | @ApiOperation("查询会员收货地址列表")
method export (line 54) | @ApiOperation("导出会员收货地址列表")
method getInfo (line 65) | @ApiOperation("获取会员收货地址详细信息")
method add (line 72) | @ApiOperation("新增会员收货地址")
method edit (line 80) | @ApiOperation("修改会员收货地址")
method remove (line 88) | @ApiOperation("删除会员收货地址")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberCartController.java
class MemberCartController (line 33) | @Api(description ="购物车接口列表")
method list (line 42) | @ApiOperation("查询购物车列表")
method export (line 49) | @ApiOperation("导出购物车列表")
method getInfo (line 60) | @ApiOperation("获取购物车详细信息")
method add (line 67) | @ApiOperation("新增购物车")
method edit (line 75) | @ApiOperation("修改购物车")
method remove (line 83) | @ApiOperation("删除购物车")
FILE: ruoyi-mall/src/main/java/com/cyl/manager/ums/controller/MemberController.java
class MemberController (line 33) | @Api(description ="会员信息接口列表")
method getWechatCode (line 43) | @RequestMapping(path ={"/ums/member/wechat/code","/h5/member/wechat/co...
method list (line 48) | @ApiOperation("查询会员信息列表")
method export (line 56) | @ApiOperation("导出会员信息列表")
method getInfo (line 66) | @ApiOperation("获取会员信息详细信息")
method add (line 73) | @ApiOperation("新增会员信息")
method edit (line 81) | @ApiOperation("修改会员信息")
method editMark (line 89) | @ApiOperation("修改会员备注信息")
method remove (line 97) | @ApiOperation("删除会员信息")
method changeStatus (line 105) | @ApiOperation(("修改会员账户状态"))
Condensed preview — 651 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (9,498K chars).
[
{
"path": ".gitignore",
"chars": 779,
"preview": "######################################################################\n# Build Tools\n\n.gradle\n/build/\n!gradle/wrapper/gr"
},
{
"path": "LICENSE",
"chars": 1661,
"preview": "# Open Source License\n\nruoyi-mall is licensed under a modified version of the Apache License 2.0, with the following add"
},
{
"path": "README.md",
"chars": 1701,
"preview": "## 平台简介\n\n若依是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。我们在此基础上开发了ruoyi-mall,希望能给做商城的朋友减轻工作量。\n\n* 前端采用Vue、Element UI。\n* 后端采用Spring Boot、"
},
{
"path": "bin/clean.bat",
"chars": 82,
"preview": "@echo off\necho.\necho [Ϣ] target·\necho.\n\n%~d0\ncd %~dp0\n\ncd ..\ncall mvn clean\n\npause"
},
{
"path": "bin/package.bat",
"chars": 118,
"preview": "@echo off\necho.\necho [Ϣ] Weḅwar/jarļ\necho.\n\n%~d0\ncd %~dp0\n\ncd ..\ncall mvn clean package -Dmaven.test.skip=true\n\npause"
},
{
"path": "bin/run.bat",
"chars": 210,
"preview": "@echo off\necho.\necho [Ϣ] ʹJarWeb̡\necho.\n\ncd %~dp0\ncd ../ruoyi-admin/target\n\nset JAVA_OPTS=-Xms256m -Xmx1024m -XX:Metaspa"
},
{
"path": "pom.xml",
"chars": 11933,
"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": "ruoyi-admin/pom.xml",
"chars": 4396,
"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": "ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java",
"chars": 1459,
"preview": "package com.ruoyi;\n\nimport com.cyl.wechat.WechatPayData;\nimport org.springframework.boot.SpringApplication;\nimport org.s"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/RuoYiServletInitializer.java",
"chars": 463,
"preview": "package com.ruoyi;\n\nimport org.springframework.boot.builder.SpringApplicationBuilder;\nimport org.springframework.boot.we"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CaptchaController.java",
"chars": 2932,
"preview": "package com.ruoyi.web.controller.common;\n\nimport java.awt.image.BufferedImage;\nimport java.io.IOException;\nimport java.u"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CodeController.java",
"chars": 1115,
"preview": "package com.ruoyi.web.controller.common;\n\nimport com.ruoyi.common.core.controller.BaseController;\nimport com.ruoyi.commo"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/CommonController.java",
"chars": 7120,
"preview": "package com.ruoyi.web.controller.common;\n\nimport com.alibaba.fastjson.JSON;\nimport com.baomidou.mybatisplus.core.conditi"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/OssController.java",
"chars": 1357,
"preview": "package com.ruoyi.web.controller.common;\n\nimport com.ruoyi.common.core.domain.AjaxResult;\nimport com.ruoyi.common.utils."
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/CacheController.java",
"chars": 4264,
"preview": "package com.ruoyi.web.controller.monitor;\n\nimport com.ruoyi.common.constant.CacheConstants;\nimport com.ruoyi.common.core"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/ServerController.java",
"chars": 753,
"preview": "package com.ruoyi.web.controller.monitor;\n\nimport org.springframework.security.access.prepost.PreAuthorize;\nimport org.s"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysLogininforController.java",
"chars": 2433,
"preview": "package com.ruoyi.web.controller.monitor;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Au"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java",
"chars": 2346,
"preview": "package com.ruoyi.web.controller.monitor;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Au"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysUserOnlineController.java",
"chars": 3442,
"preview": "package com.ruoyi.web.controller.monitor;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.Col"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/ConfigController.java",
"chars": 1445,
"preview": "package com.ruoyi.web.controller.system;\n\nimport com.ruoyi.common.core.controller.BaseController;\nimport com.ruoyi.commo"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysConfigController.java",
"chars": 4452,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\n\nimport com.ruoyi.system.domain.vo.SysConfigVo;\nimport "
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDeptController.java",
"chars": 5406,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.Iterator;\nimport java.util.List;\nimport org.apache.commons.la"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictDataController.java",
"chars": 4405,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport org.springframework."
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysDictTypeController.java",
"chars": 4316,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Aut"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysIndexController.java",
"chars": 691,
"preview": "package com.ruoyi.web.controller.system;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.spri"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysLoginController.java",
"chars": 2955,
"preview": "package com.ruoyi.web.controller.system;\n\nimport com.ruoyi.common.constant.Constants;\nimport com.ruoyi.common.core.domai"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysMenuController.java",
"chars": 4813,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Aut"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysNoticeController.java",
"chars": 2881,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Aut"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysPostController.java",
"chars": 4247,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Aut"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysProfileController.java",
"chars": 5062,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.io.IOException;\nimport org.springframework.beans.factory.annotatio"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRegisterController.java",
"chars": 1222,
"preview": "package com.ruoyi.web.controller.system;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.spri"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysRoleController.java",
"chars": 7860,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport org.springframework.beans.factory.annotation.Aut"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/SysUserController.java",
"chars": 8329,
"preview": "package com.ruoyi.web.controller.system;\n\nimport java.util.List;\nimport java.util.stream.Collectors;\nimport org.apache.c"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/SwaggerController.java",
"chars": 636,
"preview": "package com.ruoyi.web.controller.tool;\n\nimport org.springframework.security.access.prepost.PreAuthorize;\nimport org.spri"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/controller/tool/TestController.java",
"chars": 4965,
"preview": "package com.ruoyi.web.controller.tool;\n\nimport java.util.ArrayList;\nimport java.util.LinkedHashMap;\nimport java.util.Lis"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/core/config/H5MemberInterceptor.java",
"chars": 2200,
"preview": "package com.ruoyi.web.core.config;\n\nimport com.cyl.manager.ums.domain.entity.Member;\nimport com.cyl.manager.ums.service."
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/core/config/MvcConfig.java",
"chars": 657,
"preview": "package com.ruoyi.web.core.config;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.springframework.context.annotation.Bean"
},
{
"path": "ruoyi-admin/src/main/java/com/ruoyi/web/core/config/SwaggerConfig.java",
"chars": 3915,
"preview": "package com.ruoyi.web.core.config;\n\nimport com.ruoyi.common.config.RuoYiConfig;\nimport io.swagger.annotations.ApiOperati"
},
{
"path": "ruoyi-admin/src/main/resources/META-INF/spring-devtools.properties",
"chars": 48,
"preview": "restart.include.json=/com.alibaba.fastjson.*.jar"
},
{
"path": "ruoyi-admin/src/main/resources/application-druid.yml",
"chars": 1932,
"preview": "# 数据源配置\nspring:\n datasource:\n type: com.alibaba.druid.pool.DruidDataSource\n driverClassName: com.mysql."
},
{
"path": "ruoyi-admin/src/main/resources/application.yml",
"chars": 6545,
"preview": "# 项目相关配置\nruoyi:\n # 名称\n name: RuoYi\n # 版本\n version: 3.7.0\n # 版权年份\n copyrightYear: 2022\n # 实例演示开关\n demoEnabled: tr"
},
{
"path": "ruoyi-admin/src/main/resources/banner.txt",
"chars": 1589,
"preview": "Application Version: ${ruoyi.version}\nSpring Boot Version: ${spring-boot.version}\n//////////////////////////////////////"
},
{
"path": "ruoyi-admin/src/main/resources/i18n/messages.properties",
"chars": 1087,
"preview": "#错误消息\nnot.null=* 必须填写\nuser.jcaptcha.error=验证码错误\nuser.jcaptcha.expire=验证码已失效\nuser.not.exists=用户不存在/密码错误\nuser.password.not"
},
{
"path": "ruoyi-admin/src/main/resources/logback.xml",
"chars": 3109,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<configuration>\n <!-- 日志存放路径 -->\n\t<property name=\"log.path\" value=\"/data/logs/"
},
{
"path": "ruoyi-admin/src/main/resources/mybatis/mybatis-config.xml",
"chars": 624,
"preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n<!DOCTYPE configuration\nPUBLIC \"-//mybatis.org//DTD Config 3.0//EN\"\n\"http://myba"
},
{
"path": "ruoyi-admin/src/test/java/com/fjp/lc/test/common/CommonTest.java",
"chars": 4338,
"preview": "package com.fjp.lc.test.common;\n\nimport cn.hutool.core.img.Img;\nimport cn.hutool.core.img.ImgUtil;\nimport cn.hutool.core"
},
{
"path": "ruoyi-admin/src/test/java/com/fjp/lc/test/service/ControllerTest.java",
"chars": 1631,
"preview": "package com.fjp.lc.test.service;\n\nimport com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;\nimport com.cyl.h5."
},
{
"path": "ruoyi-admin/src/test/java/com/fjp/lc/test/service/OssTest.java",
"chars": 16245,
"preview": "package com.fjp.lc.test.service;\n\nimport com.ruoyi.RuoYiApplication;\nimport com.ruoyi.common.utils.OssUtils;\nimport org."
},
{
"path": "ruoyi-admin/src/test/java/com/fjp/lc/test/service/ServiceTest.java",
"chars": 4916,
"preview": "package com.fjp.lc.test.service;\n\nimport cn.hutool.core.lang.Snowflake;\nimport cn.hutool.core.util.CharsetUtil;\nimport c"
},
{
"path": "ruoyi-admin/src/test/java/com/fjp/lc/test/service/WechatTest.java",
"chars": 910,
"preview": "package com.fjp.lc.test.service;\n\nimport com.cyl.h5.domain.form.WechatLoginForm;\nimport com.cyl.manager.ums.service.Memb"
},
{
"path": "ruoyi-common/pom.xml",
"chars": 4080,
"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": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataScope.java",
"chars": 534,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.Documented;\nimport java.lang.annotation.ElementType;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/DataSource.java",
"chars": 655,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.Documented;\nimport java.lang.annotation.ElementType;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excel.java",
"chars": 3228,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nim"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/Excels.java",
"chars": 361,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\nim"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/Log.java",
"chars": 936,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.Documented;\nimport java.lang.annotation.ElementType;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/RateLimiter.java",
"chars": 780,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.Documented;\nimport java.lang.annotation.ElementType;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/annotation/RepeatSubmit.java",
"chars": 616,
"preview": "package com.ruoyi.common.annotation;\n\nimport java.lang.annotation.Documented;\nimport java.lang.annotation.ElementType;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/config/RuoYiConfig.java",
"chars": 2144,
"preview": "package com.ruoyi.common.config;\n\nimport org.springframework.boot.context.properties.ConfigurationProperties;\nimport org"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/config/SmsConfig.java",
"chars": 1084,
"preview": "package com.ruoyi.common.config;\n\nimport com.ruoyi.common.config.properties.SmsProperties;\nimport com.ruoyi.common.core."
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/config/properties/SmsProperties.java",
"chars": 711,
"preview": "package com.ruoyi.common.config.properties;\n\nimport lombok.Data;\nimport org.springframework.boot.context.properties.Conf"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/CacheConstants.java",
"chars": 838,
"preview": "package com.ruoyi.common.constant;\n\n/**\n * 缓存的key 常量\n * \n * @author ruoyi\n */\npublic class CacheConstants\n{\n /**\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/CommonConstant.java",
"chars": 98,
"preview": "package com.ruoyi.common.constant;\n\npublic interface CommonConstant {\n int BATCH_SIZE = 100;\n}\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java",
"chars": 5909,
"preview": "package com.ruoyi.common.constant;\n\nimport io.jsonwebtoken.Claims;\n\n/**\n * 通用常量信息\n * \n * @author ruoyi\n */\npublic class "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/GenConstants.java",
"chars": 4021,
"preview": "package com.ruoyi.common.constant;\n\nimport java.util.ArrayList;\nimport java.util.Arrays;\nimport java.util.List;\n\n/**\n * "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/HttpStatus.java",
"chars": 1364,
"preview": "package com.ruoyi.common.constant;\n\n/**\n * 返回状态码\n * \n * @author ruoyi\n */\npublic class HttpStatus\n{\n /**\n * 操作成功\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/ScheduleConstants.java",
"chars": 931,
"preview": "package com.ruoyi.common.constant;\n\n/**\n * 任务调度通用常量\n * \n * @author ruoyi\n */\npublic class ScheduleConstants\n{\n public"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java",
"chars": 1720,
"preview": "package com.ruoyi.common.constant;\n\n/**\n * 用户常量信息\n * \n * @author ruoyi\n */\npublic class UserConstants\n{\n /**\n * 平"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/controller/BaseController.java",
"chars": 4540,
"preview": "package com.ruoyi.common.core.controller;\n\nimport com.github.pagehelper.PageHelper;\nimport com.github.pagehelper.PageInf"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/AjaxResult.java",
"chars": 3076,
"preview": "package com.ruoyi.common.core.domain;\n\nimport java.util.HashMap;\nimport com.ruoyi.common.constant.HttpStatus;\nimport com"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseAudit.java",
"chars": 519,
"preview": "package com.ruoyi.common.core.domain;\n\nimport com.fasterxml.jackson.annotation.JsonFormat;\nimport lombok.Data;\n\nimport j"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/BaseEntity.java",
"chars": 1068,
"preview": "package com.ruoyi.common.core.domain;\n\nimport java.io.Serializable;\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/IQuery.java",
"chars": 228,
"preview": "package com.ruoyi.common.core.domain;\n\nimport java.util.Map;\n\npublic interface IQuery {\n /**\n * @return 搜索值\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeEntity.java",
"chars": 1312,
"preview": "package com.ruoyi.common.core.domain;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Tree基类\n * \n * @author "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/TreeSelect.java",
"chars": 1567,
"preview": "package com.ruoyi.common.core.domain;\n\nimport java.io.Serializable;\nimport java.util.List;\nimport java.util.stream.Colle"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java",
"chars": 4083,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport javax.validation"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictData.java",
"chars": 4077,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport javax.validation.constraints.NotBlank;\nimport javax.validation.cons"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDictType.java",
"chars": 2281,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport javax.validation.constraints.NotBlank;\nimport javax.validation.cons"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysMenu.java",
"chars": 5093,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport java.util.ArrayList;\nimport java.util.List;\nimport javax.validation"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysRole.java",
"chars": 4897,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport javax.validation.constraints.NotBlank;\nimport javax.validation.cons"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysUser.java",
"chars": 6923,
"preview": "package com.ruoyi.common.core.domain.entity;\n\nimport java.util.Date;\nimport java.util.List;\nimport javax.validation.cons"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/ExtraUserBody.java",
"chars": 268,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport lombok.Builder;\nimport lombok.Data;\n\n@Data\n@Builder\npublic class Ext"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginBody.java",
"chars": 364,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport lombok.Data;\n\n/**\n * 用户登录对象\n * \n * @author ruoyi\n */\n@Data\npublic cl"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginMember.java",
"chars": 205,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport lombok.Data;\n\n@Data\npublic class LoginMember {\n\n private Long membe"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/LoginUser.java",
"chars": 4291,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport java.util.Collection;\nimport java.util.Set;\nimport org.springframewo"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/PhoneLoginBody.java",
"chars": 182,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport lombok.Data;\n\n\n\n@Data\npublic class PhoneLoginBody {\n private Stri"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/RegisterBody.java",
"chars": 133,
"preview": "package com.ruoyi.common.core.domain.model;\n\n/**\n * 用户注册对象\n * \n * @author ruoyi\n */\npublic class RegisterBody extends Lo"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/domain/model/SmsResult.java",
"chars": 448,
"preview": "package com.ruoyi.common.core.domain.model;\n\nimport lombok.Builder;\nimport lombok.Data;\n\n/**\n * 上传返回体\n *\n * @author Lion"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/BaseAuditInterceptor.java",
"chars": 5716,
"preview": "package com.ruoyi.common.core.mybatis;\n\nimport cn.hutool.core.util.StrUtil;\nimport com.ruoyi.common.core.domain.BaseAudi"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisAutoSetUserAuditInfoInterceptor.java",
"chars": 3614,
"preview": "package com.ruoyi.common.core.mybatis;\n\nimport com.ruoyi.common.core.domain.BaseAudit;\nimport com.ruoyi.common.exception"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/mybatis/MybatisId.java",
"chars": 391,
"preview": "package com.ruoyi.common.core.mybatis;\n\nimport java.lang.annotation.ElementType;\nimport java.lang.annotation.Retention;\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/page/PageDomain.java",
"chars": 1857,
"preview": "package com.ruoyi.common.core.page;\n\nimport com.ruoyi.common.utils.StringUtils;\n\n/**\n * 分页数据\n * \n * @author ruoyi\n */\npu"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableDataInfo.java",
"chars": 1218,
"preview": "package com.ruoyi.common.core.page;\n\nimport java.io.Serializable;\nimport java.util.List;\n\n/**\n * 表格分页数据对象\n * \n * @author"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/page/TableSupport.java",
"chars": 1233,
"preview": "package com.ruoyi.common.core.page;\n\nimport com.ruoyi.common.utils.ServletUtils;\n\n/**\n * 表格数据处理\n * \n * @author ruoyi\n */"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisCache.java",
"chars": 5309,
"preview": "package com.ruoyi.common.core.redis;\n\nimport java.util.Collection;\nimport java.util.Iterator;\nimport java.util.List;\nimp"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/redis/RedisService.java",
"chars": 3421,
"preview": "package com.ruoyi.common.core.redis;\n\nimport lombok.extern.slf4j.Slf4j;\nimport org.apache.commons.lang3.StringUtils;\nimp"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/sms/AliyunSmsTemplate.java",
"chars": 2404,
"preview": "package com.ruoyi.common.core.sms;\n\nimport com.aliyun.dysmsapi20170525.Client;\nimport com.aliyun.dysmsapi20170525.models"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/sms/SmsTemplate.java",
"chars": 542,
"preview": "package com.ruoyi.common.core.sms;\n\nimport com.ruoyi.common.core.domain.model.SmsResult;\n\nimport java.util.Map;\n\n/**\n * "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/text/CharsetKit.java",
"chars": 2154,
"preview": "package com.ruoyi.common.core.text;\n\nimport java.nio.charset.Charset;\nimport java.nio.charset.StandardCharsets;\nimport c"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/text/Convert.java",
"chars": 22433,
"preview": "package com.ruoyi.common.core.text;\n\nimport java.math.BigDecimal;\nimport java.math.BigInteger;\nimport java.nio.ByteBuffe"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/core/text/StrFormatter.java",
"chars": 3130,
"preview": "package com.ruoyi.common.core.text;\n\nimport com.ruoyi.common.utils.StringUtils;\n\n/**\n * 字符串格式化\n * \n * @author ruoyi\n */\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/AftersaleStatus.java",
"chars": 511,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 售后状态\n * \n * @author ruoyi\n */\npublic enum AftersaleStatus\n{\n APPLY(0, \"待处理\"),"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessStatus.java",
"chars": 180,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 操作状态\n * \n * @author ruoyi\n *\n */\npublic enum BusinessStatus\n{\n /**\n * 成功\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/BusinessType.java",
"chars": 495,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 业务操作类型\n * \n * @author ruoyi\n */\npublic enum BusinessType\n{\n /**\n * 其它\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/DataSourceType.java",
"chars": 175,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 数据源\n * \n * @author ruoyi\n */\npublic enum DataSourceType\n{\n /**\n * 主库\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/HttpMethod.java",
"chars": 721,
"preview": "package com.ruoyi.common.enums;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport org.springframework.lang.Nullabl"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/LimitType.java",
"chars": 184,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 限流类型\n *\n * @author ruoyi\n */\n\npublic enum LimitType\n{\n /**\n * 默认策略全局限流\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/OperatorType.java",
"chars": 219,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 操作人类别\n * \n * @author ruoyi\n */\npublic enum OperatorType\n{\n /**\n * 其它\n "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderRefundStatus.java",
"chars": 517,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 用户状态\n * \n * @author ruoyi\n */\npublic enum OrderRefundStatus\n{\n NO_REFUND(1, \""
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/OrderStatus.java",
"chars": 591,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 用户状态\n * \n * @author ruoyi\n */\npublic enum OrderStatus\n{\n ALL_DATA(-1,\"全部订单\"),"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/TradeStatusEnum.java",
"chars": 1199,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 支付状态\n */\npublic enum TradeStatusEnum {\n\n // 交易成功\n TRADE_SUCCESS(\"TRADE_SUC"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/enums/UserStatus.java",
"chars": 449,
"preview": "package com.ruoyi.common.enums;\n\n/**\n * 用户状态\n * \n * @author ruoyi\n */\npublic enum UserStatus\n{\n OK(\"0\", \"正常\"), DISABL"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/DemoModeException.java",
"chars": 233,
"preview": "package com.ruoyi.common.exception;\n\n/**\n * 演示模式异常\n * \n * @author ruoyi\n */\npublic class DemoModeException extends Runti"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/GlobalException.java",
"chars": 954,
"preview": "package com.ruoyi.common.exception;\n\n/**\n * 全局异常\n * \n * @author ruoyi\n */\npublic class GlobalException extends RuntimeEx"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/ServiceException.java",
"chars": 1210,
"preview": "package com.ruoyi.common.exception;\n\n/**\n * 业务异常\n * \n * @author ruoyi\n */\npublic final class ServiceException extends Ru"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/UtilException.java",
"chars": 475,
"preview": "package com.ruoyi.common.exception;\n\n/**\n * 工具类异常\n * \n * @author ruoyi\n */\npublic class UtilException extends RuntimeExc"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/base/BaseException.java",
"chars": 1983,
"preview": "package com.ruoyi.common.exception.base;\n\nimport com.ruoyi.common.utils.MessageUtils;\nimport com.ruoyi.common.utils.Stri"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileException.java",
"chars": 351,
"preview": "package com.ruoyi.common.exception.file;\n\nimport com.ruoyi.common.exception.base.BaseException;\n\n/**\n * 文件信息异常类\n * \n * @"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileNameLengthLimitExceededException.java",
"chars": 391,
"preview": "package com.ruoyi.common.exception.file;\n\n/**\n * 文件名称超长限制异常类\n * \n * @author ruoyi\n */\npublic class FileNameLengthLimitEx"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/file/FileSizeLimitExceededException.java",
"chars": 357,
"preview": "package com.ruoyi.common.exception.file;\n\n/**\n * 文件名大小限制异常类\n * \n * @author ruoyi\n */\npublic class FileSizeLimitExceededE"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/file/InvalidExtensionException.java",
"chars": 2383,
"preview": "package com.ruoyi.common.exception.file;\n\nimport java.util.Arrays;\nimport org.apache.commons.fileupload.FileUploadExcept"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/job/TaskException.java",
"chars": 634,
"preview": "package com.ruoyi.common.exception.job;\n\n/**\n * 计划策略异常\n * \n * @author ruoyi\n */\npublic class TaskException extends Excep"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/sms/SmsException.java",
"chars": 257,
"preview": "package com.ruoyi.common.exception.sms;\n\n\n/**\n * Sms异常类\n *\n * @author Lion Li\n */\npublic class SmsException extends Runt"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaException.java",
"chars": 279,
"preview": "package com.ruoyi.common.exception.user;\n\n/**\n * 验证码错误异常类\n * \n * @author ruoyi\n */\npublic class CaptchaException extends"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/user/CaptchaExpireException.java",
"chars": 292,
"preview": "package com.ruoyi.common.exception.user;\n\n/**\n * 验证码失效异常类\n * \n * @author ruoyi\n */\npublic class CaptchaExpireException e"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserException.java",
"chars": 350,
"preview": "package com.ruoyi.common.exception.user;\n\nimport com.ruoyi.common.exception.base.BaseException;\n\n/**\n * 用户信息异常类\n * \n * @"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/exception/user/UserPasswordNotMatchException.java",
"chars": 317,
"preview": "package com.ruoyi.common.exception.user;\n\n/**\n * 用户密码不正确或不符合规范异常类\n * \n * @author ruoyi\n */\npublic class UserPasswordNotM"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatableFilter.java",
"chars": 1347,
"preview": "package com.ruoyi.common.filter;\n\nimport java.io.IOException;\nimport javax.servlet.Filter;\nimport javax.servlet.FilterCh"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/filter/RepeatedlyRequestWrapper.java",
"chars": 1923,
"preview": "package com.ruoyi.common.filter;\n\nimport java.io.BufferedReader;\nimport java.io.ByteArrayInputStream;\nimport java.io.IOE"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/filter/XssFilter.java",
"chars": 2101,
"preview": "package com.ruoyi.common.filter;\n\nimport java.io.IOException;\nimport java.util.ArrayList;\nimport java.util.List;\nimport "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/filter/XssHttpServletRequestWrapper.java",
"chars": 2855,
"preview": "package com.ruoyi.common.filter;\n\nimport java.io.ByteArrayInputStream;\nimport java.io.IOException;\nimport javax.servlet."
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/AesCryptoUtils.java",
"chars": 930,
"preview": "package com.ruoyi.common.utils;\n\nimport cn.hutool.core.util.CharsetUtil;\nimport cn.hutool.crypto.SecureUtil;\nimport cn.h"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/Arith.java",
"chars": 2757,
"preview": "package com.ruoyi.common.utils;\n\nimport java.math.BigDecimal;\nimport java.math.RoundingMode;\n\n/**\n * 精确的浮点数运算\n * \n * @au"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/DateUtils.java",
"chars": 4594,
"preview": "package com.ruoyi.common.utils;\n\nimport java.lang.management.ManagementFactory;\nimport java.text.ParseException;\nimport "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/DictUtils.java",
"chars": 4748,
"preview": "package com.ruoyi.common.utils;\n\nimport java.util.Collection;\nimport java.util.List;\nimport com.ruoyi.common.constant.Co"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/ExceptionUtil.java",
"chars": 887,
"preview": "package com.ruoyi.common.utils;\n\nimport java.io.PrintWriter;\nimport java.io.StringWriter;\nimport org.apache.commons.lang"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/IDGenerator.java",
"chars": 3411,
"preview": "package com.ruoyi.common.utils;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\n/**\n * Created by yangyincong"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/JsonUtils.java",
"chars": 3334,
"preview": "package com.ruoyi.common.utils;\n\nimport cn.hutool.core.lang.Dict;\nimport cn.hutool.core.util.ArrayUtil;\nimport cn.hutool"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/LogUtils.java",
"chars": 269,
"preview": "package com.ruoyi.common.utils;\n\n/**\n * 处理并记录日志文件\n * \n * @author ruoyi\n */\npublic class LogUtils\n{\n public static Str"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/MessageUtils.java",
"chars": 645,
"preview": "package com.ruoyi.common.utils;\n\nimport org.springframework.context.MessageSource;\nimport org.springframework.context.i1"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/OssUtils.java",
"chars": 4061,
"preview": "package com.ruoyi.common.utils;\n\nimport cn.hutool.core.date.DateTime;\nimport com.aliyun.oss.OSS;\nimport com.aliyun.oss.O"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/PhoneUtils.java",
"chars": 333,
"preview": "package com.ruoyi.common.utils;\n\n/**\n * 手机号工具类\n */\npublic class PhoneUtils {\n\n public static String hidePhone(String "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/ResponseUtils.java",
"chars": 878,
"preview": "package com.ruoyi.common.utils;\n\nimport org.springframework.http.HttpHeaders;\nimport org.springframework.http.HttpStatus"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/SecurityUtils.java",
"chars": 2665,
"preview": "package com.ruoyi.common.utils;\n\nimport org.springframework.security.core.Authentication;\nimport org.springframework.sec"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/ServletUtils.java",
"chars": 3660,
"preview": "package com.ruoyi.common.utils;\n\nimport java.io.IOException;\nimport javax.servlet.http.HttpServletRequest;\nimport javax."
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java",
"chars": 945,
"preview": "package com.ruoyi.common.utils;\n\n/**\n * @Author: czc\n * @Description: TODO\n * @DateTime: 2023/6/16 17:50\n **/\npublic cla"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/SortUtil.java",
"chars": 1899,
"preview": "package com.ruoyi.common.utils;\n\nimport com.ruoyi.common.exception.base.BaseException;\nimport org.springframework.data.d"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/StringUtils.java",
"chars": 11768,
"preview": "package com.ruoyi.common.utils;\n\nimport java.util.ArrayList;\nimport java.util.Collection;\nimport java.util.HashSet;\nimpo"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/Threads.java",
"chars": 2394,
"preview": "package com.ruoyi.common.utils;\n\nimport java.util.concurrent.CancellationException;\nimport java.util.concurrent.Executio"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/VerifyCodeUtils.java",
"chars": 6570,
"preview": "package com.ruoyi.common.utils;\n\nimport java.awt.Color;\nimport java.awt.Font;\nimport java.awt.Graphics;\nimport java.awt."
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/bean/BeanUtils.java",
"chars": 2667,
"preview": "package com.ruoyi.common.utils.bean;\n\nimport java.lang.reflect.Method;\nimport java.util.ArrayList;\nimport java.util.List"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileTypeUtils.java",
"chars": 1822,
"preview": "package com.ruoyi.common.utils.file;\n\nimport java.io.File;\nimport org.apache.commons.lang3.StringUtils;\n\n/**\n * 文件类型工具类\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUploadUtils.java",
"chars": 7898,
"preview": "package com.ruoyi.common.utils.file;\n\nimport cn.hutool.core.img.Img;\nimport com.ruoyi.common.config.RuoYiConfig;\nimport "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/file/FileUtils.java",
"chars": 7057,
"preview": "package com.ruoyi.common.utils.file;\n\nimport java.io.File;\nimport java.io.FileInputStream;\nimport java.io.FileNotFoundEx"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/file/ImageUtils.java",
"chars": 2604,
"preview": "package com.ruoyi.common.utils.file;\n\nimport java.io.ByteArrayInputStream;\nimport java.io.ByteArrayOutputStream;\nimport "
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/file/MimeTypeUtils.java",
"chars": 1839,
"preview": "package com.ruoyi.common.utils.file;\n\nimport cn.hutool.core.util.StrUtil;\n\n/**\n * 媒体类型工具类\n * \n * @author ruoyi\n */\npubli"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/html/EscapeUtil.java",
"chars": 3807,
"preview": "package com.ruoyi.common.utils.html;\n\nimport com.ruoyi.common.utils.StringUtils;\n\n/**\n * 转义和反转义工具类\n * \n * @author ruoyi\n"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/html/HTMLFilter.java",
"chars": 19755,
"preview": "package com.ruoyi.common.utils.html;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.HashMap"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpHelper.java",
"chars": 1449,
"preview": "package com.ruoyi.common.utils.http;\n\nimport java.io.BufferedReader;\nimport java.io.IOException;\nimport java.io.InputStr"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/http/HttpUtils.java",
"chars": 8509,
"preview": "package com.ruoyi.common.utils.http;\n\nimport com.ruoyi.common.constant.Constants;\nimport com.ruoyi.common.utils.StringUt"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/AddressUtils.java",
"chars": 1780,
"preview": "package com.ruoyi.common.utils.ip;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport com.alibaba.fastjson"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/ip/IpUtils.java",
"chars": 5790,
"preview": "package com.ruoyi.common.utils.ip;\n\nimport java.net.InetAddress;\nimport java.net.UnknownHostException;\nimport javax.serv"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelHandlerAdapter.java",
"chars": 297,
"preview": "package com.ruoyi.common.utils.poi;\n\n/**\n * Excel数据格式处理适配器\n * \n * @author ruoyi\n */\npublic interface ExcelHandlerAdapter"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/poi/ExcelUtil.java",
"chars": 43465,
"preview": "package com.ruoyi.common.utils.poi;\n\nimport java.io.File;\nimport java.io.FileOutputStream;\nimport java.io.IOException;\ni"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/reflect/ReflectUtils.java",
"chars": 13319,
"preview": "package com.ruoyi.common.utils.reflect;\n\nimport java.lang.reflect.Field;\nimport java.lang.reflect.InvocationTargetExcept"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Base64.java",
"chars": 9170,
"preview": "package com.ruoyi.common.utils.sign;\n\n/**\n * Base64工具类\n * \n * @author ruoyi\n */\npublic final class Base64\n{\n static p"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/sign/Md5Utils.java",
"chars": 1486,
"preview": "package com.ruoyi.common.utils.sign;\n\nimport java.security.MessageDigest;\nimport org.slf4j.Logger;\nimport org.slf4j.Logg"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/spring/SpringUtils.java",
"chars": 3839,
"preview": "package com.ruoyi.common.utils.spring;\n\nimport org.springframework.aop.framework.AopContext;\nimport org.springframework."
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/sql/SqlUtil.java",
"chars": 748,
"preview": "package com.ruoyi.common.utils.sql;\n\nimport com.ruoyi.common.exception.UtilException;\nimport com.ruoyi.common.utils.Stri"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/IdUtils.java",
"chars": 827,
"preview": "package com.ruoyi.common.utils.uuid;\n\n/**\n * ID生成器工具类\n * \n * @author ruoyi\n */\npublic class IdUtils\n{\n /**\n * 获取随"
},
{
"path": "ruoyi-common/src/main/java/com/ruoyi/common/utils/uuid/UUID.java",
"chars": 12989,
"preview": "package com.ruoyi.common.utils.uuid;\n\nimport java.security.MessageDigest;\nimport java.security.NoSuchAlgorithmException;"
},
{
"path": "ruoyi-framework/pom.xml",
"chars": 2226,
"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": "ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataScopeAspect.java",
"chars": 4617,
"preview": "package com.ruoyi.framework.aspectj;\n\nimport org.aspectj.lang.JoinPoint;\nimport org.aspectj.lang.annotation.Aspect;\nimpo"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/DataSourceAspect.java",
"chars": 2014,
"preview": "package com.ruoyi.framework.aspectj;\n\nimport java.util.Objects;\nimport org.aspectj.lang.ProceedingJoinPoint;\nimport org."
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LogAspect.java",
"chars": 7101,
"preview": "package com.ruoyi.framework.aspectj;\n\nimport java.util.Collection;\nimport java.util.Map;\nimport javax.servlet.http.HttpS"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/LoggingAspect.java",
"chars": 5147,
"preview": "package com.ruoyi.framework.aspectj;\n\nimport com.alibaba.fastjson.JSON;\nimport org.aspectj.lang.JoinPoint;\nimport org.as"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/aspectj/RateLimiterAspect.java",
"chars": 2978,
"preview": "package com.ruoyi.framework.aspectj;\n\nimport java.lang.reflect.Method;\nimport java.util.Collections;\nimport java.util.Li"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/ApplicationConfig.java",
"chars": 898,
"preview": "package com.ruoyi.framework.config;\n\nimport org.mybatis.spring.annotation.MapperScan;\nimport org.springframework.boot.au"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/CaptchaConfig.java",
"chars": 3794,
"preview": "package com.ruoyi.framework.config;\n\nimport java.util.Properties;\nimport org.springframework.context.annotation.Bean;\nim"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/DruidConfig.java",
"chars": 4737,
"preview": "package com.ruoyi.framework.config;\n\nimport java.io.IOException;\nimport java.util.HashMap;\nimport java.util.Map;\nimport "
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/FastJson2JsonRedisSerializer.java",
"chars": 1438,
"preview": "package com.ruoyi.framework.config;\n\nimport com.alibaba.fastjson2.JSON;\nimport com.alibaba.fastjson2.JSONReader;\nimport "
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/FilterConfig.java",
"chars": 2039,
"preview": "package com.ruoyi.framework.config;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport javax.servlet.DispatcherType"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/KaptchaTextCreator.java",
"chars": 2073,
"preview": "package com.ruoyi.framework.config;\n\nimport java.util.Random;\nimport com.google.code.kaptcha.text.impl.DefaultTextCreato"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/LocalDataUtil.java",
"chars": 687,
"preview": "package com.ruoyi.framework.config;\n\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n *\n */\npublic class LocalDataU"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/MyBatisConfig.java",
"chars": 5511,
"preview": "package com.ruoyi.framework.config;\n\nimport com.ruoyi.common.core.mybatis.MybatisAutoSetUserAuditInfoInterceptor;\nimport"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java",
"chars": 667,
"preview": "package com.ruoyi.framework.config;\n\nimport com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;\nimport co"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/PaginationConfiguration.java",
"chars": 254,
"preview": "package com.ruoyi.framework.config;\n\nimport org.springframework.context.annotation.Configuration;\nimport org.springframe"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/RedisConfig.java",
"chars": 2445,
"preview": "package com.ruoyi.framework.config;\n\nimport org.springframework.cache.annotation.CachingConfigurerSupport;\nimport org.sp"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/ResourcesConfig.java",
"chars": 2325,
"preview": "package com.ruoyi.framework.config;\n\nimport com.ruoyi.common.config.RuoYiConfig;\nimport com.ruoyi.common.constant.Consta"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java",
"chars": 5449,
"preview": "package com.ruoyi.framework.config;\n\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springfra"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/ServerConfig.java",
"chars": 797,
"preview": "package com.ruoyi.framework.config;\n\nimport javax.servlet.http.HttpServletRequest;\nimport org.springframework.stereotype"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/ThreadPoolConfig.java",
"chars": 1873,
"preview": "package com.ruoyi.framework.config;\n\nimport java.util.concurrent.ScheduledExecutorService;\nimport java.util.concurrent.S"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/config/properties/DruidProperties.java",
"chars": 2577,
"preview": "package com.ruoyi.framework.config.properties;\n\nimport org.springframework.beans.factory.annotation.Value;\nimport org.sp"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSource.java",
"chars": 693,
"preview": "package com.ruoyi.framework.datasource;\n\nimport java.util.Map;\nimport javax.sql.DataSource;\nimport org.springframework.j"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java",
"chars": 915,
"preview": "package com.ruoyi.framework.datasource;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\n\n/**\n * 数据源切换处理\n * \n *"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/RepeatSubmitInterceptor.java",
"chars": 1787,
"preview": "package com.ruoyi.framework.interceptor;\n\nimport java.lang.reflect.Method;\nimport javax.servlet.http.HttpServletRequest;"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/interceptor/impl/SameUrlDataInterceptor.java",
"chars": 3744,
"preview": "package com.ruoyi.framework.interceptor.impl;\n\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.concurre"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/manager/AsyncManager.java",
"chars": 1027,
"preview": "package com.ruoyi.framework.manager;\n\nimport java.util.TimerTask;\nimport java.util.concurrent.ScheduledExecutorService;\n"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/manager/ShutdownManager.java",
"chars": 736,
"preview": "package com.ruoyi.framework.manager;\n\nimport org.slf4j.Logger;\nimport org.slf4j.LoggerFactory;\nimport org.springframewor"
},
{
"path": "ruoyi-framework/src/main/java/com/ruoyi/framework/manager/factory/AsyncFactory.java",
"chars": 3516,
"preview": "package com.ruoyi.framework.manager.factory;\n\nimport java.util.TimerTask;\nimport org.slf4j.Logger;\nimport org.slf4j.Logg"
}
]
// ... and 451 more files (download for full content)
About this extraction
This page contains the full source code of the zccbbg/ruoyi-mall GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 651 files (8.3 MB), approximately 2.2M tokens, and a symbol index with 3267 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.