From 3387f6754a07694dda1307849a3ab6fe8a24d7c5 Mon Sep 17 00:00:00 2001
From: leomon <2233021400@qq.com>
Date: Wed, 14 May 2025 02:53:26 +0800
Subject: [PATCH] oying消息中心message业务1.0

---
 oying-system/src/main/java/com/oying/modules/message/rest/MessageSellerController.java                   |   73 +
 oying-system/target/classes/mapper/system/UserRoleMapper.xml                                             |   25 
 oying-generator/target/classes/template/admin/QueryCriteria.ftl                                          |   43 
 oying-common/target/classes/com/oying/config/mybatis/MyMetaObjectHandler.class                           |    0 
 oying-system/target/classes/banner.txt                                                                   |   15 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.class      |    0 
 oying-system/target/classes/mapper/system/DeptMapper.xml                                                 |   70 +
 oying-system/target/classes/com/oying/modules/message/rest/MessageCustomerController.class               |    0 
 oying-system/src/main/java/com/oying/AppRun.java                                                         |    1 
 oying-system/target/classes/mapper/system/DictDetailMapper.xml                                           |   53 
 oying-generator/target/classes/gen.properties                                                            |   27 
 oying-system/target/classes/com/oying/modules/security/config/SecurityProperties.class                   |    0 
 oying-generator/target/classes/com/oying/utils/ColUtil.class                                             |    0 
 oying-common/target/classes/com/oying/config/RedissonConfiguration.class                                 |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageInfoMapper.java                       |   22 
 oying-generator/target/classes/template/admin/Controller.ftl                                             |   73 +
 oying-generator/target/classes/template/admin/Mapper.ftl                                                 |   22 
 oying-system/target/classes/com/oying/modules/system/domain/Job.class                                    |    0 
 oying-system/target/classes/mapper/message/MessageBuyerMapper.xml                                        |   22 
 oying-common/target/classes/com/oying/utils/CloseUtil.class                                              |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageCustomerMapper.class                 |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageSystemMapper.class                   |    0 
 oying-common/target/classes/com/oying/config/AuthorityConfig.class                                       |    0 
 oying-system/target/classes/mapper/system/RoleMapper.xml                                                 |  126 +
 oying-tools/target/classes/com/oying/domain/EmailConfig.class                                            |    0 
 oying-generator/target/classes/template/admin/ServiceImpl.ftl                                            |   90 +
 oying-common/target/classes/com/oying/config/RedisConfiguration$1.class                                  |    0 
 oying-system/target/classes/com/oying/modules/system/domain/User.class                                   |    0 
 oying-system/target/classes/com/oying/modules/message/rest/MessageSystemController.class                 |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl.class                  |    0 
 oying-logging/target/classes/com/oying/domain/SysLog.class                                               |    0 
 oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig.class                        |    0 
 oying-common/target/classes/com/oying/utils/SecurityUtils.class                                          |    0 
 oying-system/target/classes/com/oying/modules/system/service/DictDetailService.class                     |    0 
 oying-system/target/classes/mapper/message/MessageOrderMapper.xml                                        |   22 
 oying-system/target/classes/com/oying/modules/message/domain/MessageInfo.class                           |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageBuyerMapper.java                      |   22 
 oying-system/target/classes/com/oying/modules/quartz/utils/QuartzRunnable.class                          |    0 
 oying-system/target/classes/com/oying/modules/security/rest/AuthController$1.class                       |    0 
 oying-common/target/classes/com/oying/utils/SpringBeanHolder.class                                       |    0 
 oying-logging/target/classes/com/oying/rest/SysLogController.class                                       |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageSeller.java                           |   37 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.java            |   18 
 oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java                   |   73 +
 oying-common/target/classes/com/oying/annotation/rest/AnonymousAccess.class                              |    0 
 oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzLogMapper.class                        |    0 
 oying-tools/target/classes/com/oying/service/EmailService.class                                          |    0 
 oying-common/target/classes/com/oying/utils/RequestHolder.class                                          |    0 
 oying-generator/target/classes/template/admin/Entity.ftl                                                 |   72 +
 oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$FixedArithmeticCaptcha.class |    0 
 oying-common/target/classes/com/oying/utils/RsaUtils$RsaKeyPair.class                                    |    0 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.class         |    0 
 oying-generator/target/classes/com/oying/service/GenConfigService.class                                  |    0 
 oying-system/target/classes/com/oying/modules/quartz/utils/ExecutionJob.class                            |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.java          |   18 
 oying-tools/target/classes/mapper/LocalStorageMapper.xml                                                 |   41 
 oying-common/target/classes/com/oying/utils/enums/DataScopeEnum.class                                    |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/RoleMenuMapper.class                         |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl$1.class                |    0 
 oying-system/target/classes/mapper/system/DictMapper.xml                                                 |   31 
 oying-common/target/classes/com/oying/utils/ThrowableUtil.class                                          |    0 
 oying-generator/target/classes/com/oying/rest/GenConfigController.class                                  |    0 
 oying-common/target/classes/com/oying/config/RedisConfiguration.class                                    |    0 
 oying-common/target/classes/com/oying/config/mybatis/CustomP6SpyLogger.class                             |    0 
 oying-generator/target/classes/com/oying/service/GeneratorService.class                                  |    0 
 oying-common/target/classes/com/oying/config/RedisConfiguration$FastJsonRedisSerializer.class            |    0 
 oying-system/target/classes/template/taskAlarm.ftl                                                       |   69 
 oying-common/target/classes/com/oying/config/mybatis/MybatisPlusConfig.class                             |    0 
 oying-system/src/main/resources/mapper/message/MessageBuyerMapper.xml                                    |   22 
 oying-system/target/classes/com/oying/modules/system/domain/dto/DictDetailQueryCriteria.class            |    0 
 oying-common/target/classes/com/oying/config/properties/FileProperties$ElPath.class                      |    0 
 oying-system/target/classes/com/oying/modules/security/service/dto/OnlineUserDto.class                   |    0 
 oying-common/target/classes/com/oying/annotation/rest/AnonymousDeleteMapping.class                       |    0 
 oying-logging/target/classes/com/oying/service/SysLogService.class                                       |    0 
 oying-logging/target/classes/com/oying/annotation/Log.class                                              |    0 
 oying-system/target/classes/com/oying/modules/system/service/MenuService.class                           |    0 
 oying-system/target/classes/com/oying/modules/security/config/enums/LoginCodeEnum.class                  |    0 
 oying-system/target/classes/com/oying/modules/system/rest/UserController.class                           |    0 
 oying-system/target/classes/com/oying/modules/message/domain/MessageOrder.class                          |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl.class                  |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/DictDetailServiceImpl.class            |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/MenuServiceImpl.class                  |    0 
 oying-common/target/classes/com/oying/utils/RsaUtils.class                                               |    0 
 oying-common/target/classes/com/oying/exception/BadRequestException.class                                |    0 
 oying-tools/target/classes/com/oying/domain/dto/EmailDto.class                                           |    0 
 oying-common/target/classes/com/oying/annotation/Limit.class                                             |    0 
 oying-common/target/classes/com/oying/exception/EntityNotFoundException.class                            |    0 
 oying-system/target/classes/mapper/message/MessageInfoMapper.xml                                         |   27 
 oying-common/target/classes/com/oying/utils/DateUtil.class                                               |    0 
 oying-generator/target/classes/com/oying/domain/dto/TableInfo.class                                      |    0 
 oying-common/target/classes/com/oying/base/BaseEntity.class                                              |    0 
 oying-system/target/classes/mapper/quartz/QuartzLogMapper.xml                                            |   40 
 oying-common/target/classes/com/oying/annotation/rest/AnonymousGetMapping.class                          |    0 
 oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml                                   |   22 
 oying-system/target/classes/com/oying/modules/quartz/domain/dto/QuartzJobQueryCriteria.class             |    0 
 oying-system/src/main/java/com/oying/modules/message/service/MessageCustomerService.java                 |   60 
 oying-system/target/classes/com/oying/modules/system/rest/DictDetailController.class                     |    0 
 oying-system/target/classes/com/oying/modules/quartz/domain/QuartzLog.class                              |    0 
 oying-system/src/main/java/com/oying/modules/message/rest/MessageCustomerController.java                 |   73 +
 oying-system/target/classes/com/oying/modules/system/domain/Dict.class                                   |    0 
 oying-common/target/classes/com/oying/exception/handler/GlobalExceptionHandler.class                     |    0 
 oying-generator/target/classes/template/front/index.ftl                                                  |  169 ++
 oying-system/src/main/java/com/oying/modules/message/rest/MessageBuyerController.java                    |   73 +
 oying-system/target/classes/com/oying/modules/system/rest/VerifyController$1.class                       |    0 
 oying-tools/target/classes/com/oying/domain/enums/PayStatusEnum.class                                    |    0 
 oying-system/target/classes/mapper/message/MessageSellerMapper.xml                                       |   22 
 oying-common/target/classes/com/oying/annotation/rest/AnonymousPatchMapping.class                        |    0 
 oying-common/target/classes/com/oying/utils/BigDecimalUtils.class                                        |    0 
 oying-tools/target/classes/com/oying/domain/LocalStorage.class                                           |    0 
 oying-system/target/classes/mapper/system/UserMapper.xml                                                 |  178 ++
 oying-common/target/classes/com/oying/config/AsyncExecutor.class                                         |    0 
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.class        |    0 
 oying-tools/target/classes/com/oying/rest/EmailController.class                                          |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/VerifyServiceImpl.class                |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageCustomer.java                         |   45 
 oying-common/target/classes/com/oying/exception/EntityExistException.class                               |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageSellerMapper.class                   |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageBuyer.java                            |   37 
 oying-common/target/classes/com/oying/utils/PageResult.class                                             |    0 
 oying-generator/target/classes/template/admin/Mapper-xml.ftl                                             |   62 
 oying-system/target/classes/com/oying/modules/message/service/MessageCustomerService.class               |    0 
 oying-system/target/classes/com/oying/modules/system/domain/dto/DeptQueryCriteria.class                  |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.java           |   18 
 oying-system/target/classes/com/oying/modules/system/rest/DictController.class                           |    0 
 oying-common/target/classes/com/oying/config/RemoveDruidAdConfig$1.class                                 |    0 
 oying-system/target/classes/config/application-prod.yml                                                  |  129 +
 oying-system/src/main/resources/mapper/message/MessageCustomerMapper.xml                                 |   24 
 oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl.class                  |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderMapper.java                      |   22 
 oying-common/target/classes/com/oying/utils/enums/CodeBiEnum.class                                       |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageOrderMapper.class                    |    0 
 oying-system/target/classes/com/oying/modules/security/config/LoginProperties.class                      |    0 
 oying-common/target/classes/com/oying/utils/RedisUtils.class                                             |    0 
 oying-system/target/classes/com/oying/modules/system/service/UserService.class                           |    0 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageOrderServiceImpl.class         |    0 
 oying-system/target/classes/com/oying/modules/security/security/TokenProvider.class                      |    0 
 oying-system/target/classes/com/oying/modules/message/domain/MessageSeller.class                         |    0 
 oying-system/target/classes/com/oying/modules/security/service/UserDetailsServiceImpl.class              |    0 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.java        |   76 +
 oying-system/target/classes/com/oying/modules/system/mapper/MenuMapper.class                             |    0 
 oying-system/target/classes/mapper/system/MenuMapper.xml                                                 |   79 +
 oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl$1.class                |    0 
 oying-tools/target/classes/com/oying/rest/LocalStorageController.class                                   |    0 
 oying-system/target/classes/com/oying/modules/security/config/SpringSecurityConfig.class                 |    0 
 oying-system/target/classes/com/oying/modules/message/service/MessageOrderService.class                  |    0 
 oying-system/src/main/resources/mapper/message/MessageInfoMapper.xml                                     |   27 
 oying-generator/target/classes/com/oying/rest/GeneratorController.class                                  |    0 
 oying-generator/target/classes/mapper/ColumnInfoMapper.xml                                               |   49 
 oying-tools/target/classes/com/oying/service/impl/EmailServiceImpl.class                                 |    0 
 oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzJobMapper.class                        |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/DictMapper.class                             |    0 
 oying-system/target/classes/com/oying/modules/security/security/TokenFilter.class                        |    0 
 oying-system/target/classes/com/oying/modules/message/domain/MessageCustomer.class                       |    0 
 oying-common/target/classes/com/oying/aspect/LimitAspect.class                                           |    0 
 oying-generator/target/classes/com/oying/utils/GenUtil.class                                             |    0 
 oying-logging/target/classes/mapper/SysLogMapper.xml                                                     |   69 
 oying-common/target/classes/com/oying/exception/handler/ApiError.class                                   |    0 
 oying-common/target/classes/com/oying/base/BaseEntity$Update.class                                       |    0 
 oying-system/target/classes/com/oying/modules/message/domain/MessageSystem.class                         |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/DictDetailMapper.class                       |    0 
 oying-system/target/classes/mapper/system/RoleDeptMapper.xml                                             |   25 
 oying-system/target/classes/com/oying/modules/security/service/OnlineUserService.class                   |    0 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageInfoServiceImpl.java            |   79 +
 oying-common/target/classes/com/oying/utils/SpringBeanHolder$CallBack.class                              |    0 
 oying-generator/target/classes/com/oying/domain/ColumnInfo.class                                         |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageBuyerMapper.class                    |    0 
 oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig$QuartzJobFactory.class          |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java                           |   37 
 oying-common/target/classes/com/oying/utils/StringUtils.class                                            |    0 
 oying-tools/target/classes/com/oying/service/impl/LocalStorageServiceImpl.class                          |    0 
 oying-system/target/classes/com/oying/modules/system/domain/Role.class                                   |    0 
 oying-system/target/classes/com/oying/modules/message/service/MessageSystemService.class                 |    0 
 oying-system/target/classes/com/oying/modules/system/domain/DictDetail.class                             |    0 
 oying-system/target/classes/com/oying/modules/message/rest/MessageBuyerController.class                  |    0 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderServiceImpl.java           |   74 +
 oying-system/target/classes/com/oying/modules/message/rest/MessageInfoController.class                   |    0 
 oying-system/target/classes/com/oying/modules/system/domain/Menu.class                                   |    0 
 oying-generator/target/classes/com/oying/mapper/ColumnInfoMapper.class                                   |    0 
 oying-system/target/classes/com/oying/modules/message/service/MessageSellerService.class                 |    0 
 oying-tools/target/classes/com/oying/service/LocalStorageService.class                                   |    0 
 oying-tools/target/classes/com/oying/mapper/EmailConfigMapper.class                                      |    0 
 oying-generator/target/classes/template/front/api.ftl                                                    |   27 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.java           |   74 +
 oying-common/target/classes/com/oying/utils/enums/CodeEnum.class                                         |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java          |   18 
 oying-common/target/classes/com/oying/config/webConfig/MultipartConfig.class                             |    0 
 oying-logging/target/classes/com/oying/aspect/LogAspect.class                                            |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl$1.class                |    0 
 oying-system/target/classes/com/oying/modules/system/domain/dto/JobQueryCriteria.class                   |    0 
 oying-system/target/classes/com/oying/modules/message/rest/MessageSellerController.class                 |    0 
 oying-system/target/classes/com/oying/modules/security/service/dto/AuthorityDto.class                    |    0 
 oying-system/target/classes/com/oying/modules/security/rest/AuthController$3.class                       |    0 
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.class      |    0 
 oying-system/target/classes/config/application-dev.yml                                                   |  118 +
 oying-system/target/classes/com/oying/modules/security/service/dto/AuthUserDto.class                     |    0 
 oying-tools/target/classes/com/oying/utils/PayUtils.class                                                |    0 
 oying-generator/target/classes/com/oying/service/impl/GeneratorServiceImpl.class                         |    0 
 oying-system/target/classes/com/oying/modules/quartz/service/impl/QuartzJobServiceImpl.class             |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/UserJobMapper.class                          |    0 
 oying-system/target/classes/com/oying/modules/system/domain/dto/UserQueryCriteria.class                  |    0 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageSellerServiceImpl.class        |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java                     |   22 
 oying-system/target/classes/com/oying/modules/security/security/JwtAccessDeniedHandler.class             |    0 
 oying-system/target/classes/com/oying/modules/system/rest/JobController.class                            |    0 
 oying-common/target/classes/com/oying/utils/EncryptUtils.class                                           |    0 
 oying-system/src/main/java/com/oying/modules/message/service/MessageOrderService.java                    |   60 
 oying-common/target/classes/com/oying/utils/PageUtil.class                                               |    0 
 oying-generator/target/classes/com/oying/mapper/GenConfigMapper.class                                    |    0 
 oying-system/target/classes/mapper/quartz/QuartzJobMapper.xml                                            |   49 
 oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig.class                           |    0 
 oying-system/target/classes/com/oying/modules/system/domain/dto/MenuQueryCriteria.class                  |    0 
 oying-common/target/classes/com/oying/config/properties/FileProperties.class                             |    0 
 oying-system/src/main/java/com/oying/modules/message/service/MessageBuyerService.java                    |   60 
 oying-system/target/classes/com/oying/modules/system/domain/dto/MenuMetaVo.class                         |    0 
 oying-common/target/classes/com/oying/utils/ElConstant.class                                             |    0 
 oying-common/target/classes/com/oying/config/RemoveDruidAdConfig.class                                   |    0 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java          |   74 +
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.class         |    0 
 oying-common/target/classes/com/oying/utils/AnonTagUtils$1.class                                         |    0 
 oying-system/target/classes/com/oying/modules/system/rest/VerifyController.class                         |    0 
 oying-system/target/classes/com/oying/modules/quartz/task/TestTask.class                                 |    0 
 oying-logging/target/classes/com/oying/mapper/SysLogMapper.class                                         |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/RoleDeptMapper.class                         |    0 
 oying-system/target/classes/com/oying/modules/system/rest/MenuController.class                           |    0 
 oying-system/target/classes/com/oying/modules/system/service/RoleService.class                           |    0 
 oying-common/target/classes/com/oying/config/webConfig/QueryCustomizer.class                             |    0 
 oying-system/target/classes/com/oying/modules/security/rest/AuthController.class                         |    0 
 oying-system/target/classes/com/oying/modules/quartz/service/QuartzJobService.class                      |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/JobServiceImpl.class                   |    0 
 oying-common/target/classes/com/oying/annotation/rest/AnonymousPutMapping.class                          |    0 
 oying-logging/target/classes/com/oying/service/impl/SysLogServiceImpl.class                              |    0 
 oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSellerServiceImpl.java          |   74 +
 oying-system/target/classes/config/application.yml                                                       |   73 +
 oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderController.java                    |   73 +
 oying-system/target/classes/com/oying/modules/system/mapper/UserMapper.class                             |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageCustomerMapper.java                   |   22 
 oying-system/src/main/java/com/oying/modules/message/service/MessageInfoService.java                     |   60 
 oying-generator/target/classes/mapper/GenConfigMapper.xml                                                |   27 
 oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java                   |   60 
 oying-common/target/classes/com/oying/utils/enums/RequestMethodEnum.class                                |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageInfo.java                             |   58 
 oying-system/target/classes/logback.xml                                                                  |   29 
 oying-system/target/classes/com/oying/modules/system/rest/DeptController.class                           |    0 
 oying-system/src/main/resources/mapper/message/MessageSellerMapper.xml                                   |   22 
 oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$1.class                      |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/JobMapper.class                              |    0 
 oying-tools/target/classes/com/oying/domain/dto/LocalStorageQueryCriteria.class                          |    0 
 oying-common/target/classes/com/oying/config/webConfig/WebSocketConfig.class                             |    0 
 oying-system/target/classes/com/oying/modules/quartz/utils/QuartzManage.class                            |    0 
 oying-system/target/classes/com/oying/modules/system/service/DeptService.class                           |    0 
 oying-common/target/classes/com/oying/utils/AnonTagUtils.class                                           |    0 
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.class        |    0 
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.class          |    0 
 oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig$1.class                             |    0 
 oying-system/src/main/java/com/oying/modules/message/rest/MessageInfoController.java                     |   74 +
 oying-system/target/classes/com/oying/modules/system/mapper/DeptMapper.class                             |    0 
 oying-system/src/main/resources/mapper/message/MessageOrderMapper.xml                                    |   22 
 oying-system/target/classes/com/oying/modules/system/rest/RoleController.class                           |    0 
 oying-system/target/classes/com/oying/modules/security/rest/AuthController$2.class                       |    0 
 oying-system/target/classes/com/oying/modules/message/rest/MessageOrderController.class                  |    0 
 oying-common/target/classes/com/oying/aspect/LimitType.class                                             |    0 
 oying-system/target/classes/com/oying/modules/system/domain/dto/UserPassVo.class                         |    0 
 oying-system/target/classes/com/oying/modules/message/mapper/MessageInfoMapper.class                     |    0 
 oying-system/target/classes/com/oying/modules/system/service/DictService.class                           |    0 
 oying-system/target/classes/com/oying/modules/system/service/VerifyService.class                         |    0 
 oying-common/target/classes/com/oying/utils/CacheKey.class                                               |    0 
 oying-system/target/classes/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.class         |    0 
 oying-system/target/classes/com/oying/modules/security/service/UserCacheManager.class                    |    0 
 oying-system/target/classes/com/oying/modules/security/service/dto/JwtUserDto.class                      |    0 
 oying-system/target/classes/com/oying/modules/system/service/MonitorService.class                        |    0 
 oying-system/target/classes/mapper/system/JobMapper.xml                                                  |   36 
 oying-system/target/classes/com/oying/modules/security/security/TokenConfigurer.class                    |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/UserRoleMapper.class                         |    0 
 oying-system/target/classes/com/oying/modules/security/security/JwtAuthenticationEntryPoint.class        |    0 
 oying-system/target/classes/com/oying/modules/system/rest/MonitorController.class                        |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.java        |   18 
 oying-system/target/classes/com/oying/modules/quartz/rest/QuartzJobController.class                      |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/MessageOrder.java                            |   37 
 oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig.class                               |    0 
 oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.java           |   18 
 oying-system/target/classes/config/application-quartz.yml                                                |   29 
 oying-generator/target/classes/com/oying/domain/GenConfig.class                                          |    0 
 oying-system/target/classes/com/oying/modules/message/service/MessageBuyerService.class                  |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/RoleServiceImpl.class                  |    0 
 oying-system/target/classes/mapper/system/RoleMenuMapper.xml                                             |   30 
 oying-system/src/main/java/com/oying/modules/message/service/MessageSellerService.java                   |   60 
 oying-system/target/classes/mapper/message/MessageSystemMapper.xml                                       |   22 
 oying-generator/target/classes/com/oying/service/impl/GenConfigServiceImpl.class                         |    0 
 oying-system/target/classes/com/oying/modules/message/domain/MessageBuyer.class                          |    0 
 oying-system/target/classes/com/oying/modules/system/mapper/RoleMapper.class                             |    0 
 oying-system/src/main/java/com/oying/modules/message/mapper/MessageSellerMapper.java                     |   22 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageSystemServiceImpl.class        |    0 
 oying-system/target/classes/com/oying/modules/security/rest/OnlineController.class                       |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/MonitorServiceImpl.class               |    0 
 oying-system/target/classes/com/oying/modules/system/service/JobService.class                            |    0 
 oying-system/target/classes/template/email.ftl                                                           |   48 
 oying-common/target/classes/com/oying/annotation/rest/AnonymousPostMapping.class                         |    0 
 oying-system/target/classes/com/oying/modules/system/service/impl/DictServiceImpl.class                  |    0 
 oying-system/target/classes/com/oying/sysrunner/SystemRunner.class                                       |    0 
 oying-system/target/classes/com/oying/modules/message/service/impl/MessageInfoServiceImpl.class          |    0 
 oying-system/target/classes/spy.properties                                                               |   20 
 oying-system/target/classes/com/oying/modules/system/domain/dto/DictQueryCriteria.class                  |    0 
 oying-system/target/classes/mapper/message/MessageCustomerMapper.xml                                     |   24 
 oying-system/target/classes/com/oying/modules/system/domain/dto/RoleQueryCriteria.class                  |    0 
 oying-system/target/classes/com/oying/AppRun.class                                                       |    0 
 oying-common/target/classes/com/oying/base/BaseEntity$Create.class                                       |    0 
 oying-common/target/classes/com/oying/config/webConfig/ConfigurerAdapter.class                           |    0 
 oying-system/target/classes/com/oying/modules/system/rest/LimitController.class                          |    0 
 oying-system/target/classes/com/oying/modules/quartz/config/JobRunner.class                              |    0 
 oying-common/target/classes/com/oying/utils/FileUtil.class                                               |    0 
 oying-logging/target/classes/com/oying/domain/dto/SysLogQueryCriteria.class                              |    0 
 oying-system/target/classes/com/oying/modules/system/service/DataService.class                           |    0 
 oying-system/target/classes/mapper/system/UserJobMapper.xml                                              |   25 
 oying-system/target/classes/com/oying/modules/message/service/MessageInfoService.class                   |    0 
 oying-tools/target/classes/com/oying/mapper/LocalStorageMapper.class                                     |    0 
 oying-generator/target/classes/template/admin/Service.ftl                                                |   60 
 oying-system/target/classes/com/oying/modules/system/domain/dto/MenuVo.class                             |    0 
 oying-common/target/classes/com/oying/config/properties/RsaProperties.class                              |    0 
 oying-system/target/classes/com/oying/modules/quartz/domain/QuartzJob.class                              |    0 
 oying-system/target/classes/com/oying/modules/system/domain/Dept.class                                   |    0 
 320 files changed, 4,148 insertions(+), 0 deletions(-)

diff --git a/oying-common/target/classes/com/oying/annotation/Limit.class b/oying-common/target/classes/com/oying/annotation/Limit.class
new file mode 100644
index 0000000..f288b18
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/Limit.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousAccess.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousAccess.class
new file mode 100644
index 0000000..5586bf8
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousAccess.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousDeleteMapping.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousDeleteMapping.class
new file mode 100644
index 0000000..c0c8829
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousDeleteMapping.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousGetMapping.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousGetMapping.class
new file mode 100644
index 0000000..d38ff93
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousGetMapping.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousPatchMapping.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPatchMapping.class
new file mode 100644
index 0000000..074ff02
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPatchMapping.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousPostMapping.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPostMapping.class
new file mode 100644
index 0000000..d8dff8d
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPostMapping.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/annotation/rest/AnonymousPutMapping.class b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPutMapping.class
new file mode 100644
index 0000000..d475700
--- /dev/null
+++ b/oying-common/target/classes/com/oying/annotation/rest/AnonymousPutMapping.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/aspect/LimitAspect.class b/oying-common/target/classes/com/oying/aspect/LimitAspect.class
new file mode 100644
index 0000000..28be81d
--- /dev/null
+++ b/oying-common/target/classes/com/oying/aspect/LimitAspect.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/aspect/LimitType.class b/oying-common/target/classes/com/oying/aspect/LimitType.class
new file mode 100644
index 0000000..fa2c718
--- /dev/null
+++ b/oying-common/target/classes/com/oying/aspect/LimitType.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/base/BaseEntity$Create.class b/oying-common/target/classes/com/oying/base/BaseEntity$Create.class
new file mode 100644
index 0000000..ae0dc39
--- /dev/null
+++ b/oying-common/target/classes/com/oying/base/BaseEntity$Create.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/base/BaseEntity$Update.class b/oying-common/target/classes/com/oying/base/BaseEntity$Update.class
new file mode 100644
index 0000000..95d41ae
--- /dev/null
+++ b/oying-common/target/classes/com/oying/base/BaseEntity$Update.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/base/BaseEntity.class b/oying-common/target/classes/com/oying/base/BaseEntity.class
new file mode 100644
index 0000000..91b4b79
--- /dev/null
+++ b/oying-common/target/classes/com/oying/base/BaseEntity.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/AsyncExecutor.class b/oying-common/target/classes/com/oying/config/AsyncExecutor.class
new file mode 100644
index 0000000..7a89172
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/AsyncExecutor.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/AuthorityConfig.class b/oying-common/target/classes/com/oying/config/AuthorityConfig.class
new file mode 100644
index 0000000..2cbe1c3
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/AuthorityConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RedisConfiguration$1.class b/oying-common/target/classes/com/oying/config/RedisConfiguration$1.class
new file mode 100644
index 0000000..18cfedf
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RedisConfiguration$1.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RedisConfiguration$FastJsonRedisSerializer.class b/oying-common/target/classes/com/oying/config/RedisConfiguration$FastJsonRedisSerializer.class
new file mode 100644
index 0000000..456f7ac
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RedisConfiguration$FastJsonRedisSerializer.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RedisConfiguration.class b/oying-common/target/classes/com/oying/config/RedisConfiguration.class
new file mode 100644
index 0000000..f4de8f3
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RedisConfiguration.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RedissonConfiguration.class b/oying-common/target/classes/com/oying/config/RedissonConfiguration.class
new file mode 100644
index 0000000..ea0424c
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RedissonConfiguration.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig$1.class b/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig$1.class
new file mode 100644
index 0000000..26f6a40
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig$1.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig.class b/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig.class
new file mode 100644
index 0000000..794c499
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/RemoveDruidAdConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/mybatis/CustomP6SpyLogger.class b/oying-common/target/classes/com/oying/config/mybatis/CustomP6SpyLogger.class
new file mode 100644
index 0000000..d5866f6
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/mybatis/CustomP6SpyLogger.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/mybatis/MyMetaObjectHandler.class b/oying-common/target/classes/com/oying/config/mybatis/MyMetaObjectHandler.class
new file mode 100644
index 0000000..8838c66
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/mybatis/MyMetaObjectHandler.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/mybatis/MybatisPlusConfig.class b/oying-common/target/classes/com/oying/config/mybatis/MybatisPlusConfig.class
new file mode 100644
index 0000000..3722282
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/mybatis/MybatisPlusConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/properties/FileProperties$ElPath.class b/oying-common/target/classes/com/oying/config/properties/FileProperties$ElPath.class
new file mode 100644
index 0000000..61fc302
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/properties/FileProperties$ElPath.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/properties/FileProperties.class b/oying-common/target/classes/com/oying/config/properties/FileProperties.class
new file mode 100644
index 0000000..aaac0cf
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/properties/FileProperties.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/properties/RsaProperties.class b/oying-common/target/classes/com/oying/config/properties/RsaProperties.class
new file mode 100644
index 0000000..daa05da
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/properties/RsaProperties.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/ConfigurerAdapter.class b/oying-common/target/classes/com/oying/config/webConfig/ConfigurerAdapter.class
new file mode 100644
index 0000000..2485355
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/ConfigurerAdapter.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/MultipartConfig.class b/oying-common/target/classes/com/oying/config/webConfig/MultipartConfig.class
new file mode 100644
index 0000000..af2cc64
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/MultipartConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/QueryCustomizer.class b/oying-common/target/classes/com/oying/config/webConfig/QueryCustomizer.class
new file mode 100644
index 0000000..506942a
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/QueryCustomizer.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig$1.class b/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig$1.class
new file mode 100644
index 0000000..18cec5a
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig$1.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig.class b/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig.class
new file mode 100644
index 0000000..7bdc43f
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/SwaggerConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/config/webConfig/WebSocketConfig.class b/oying-common/target/classes/com/oying/config/webConfig/WebSocketConfig.class
new file mode 100644
index 0000000..912b7ba
--- /dev/null
+++ b/oying-common/target/classes/com/oying/config/webConfig/WebSocketConfig.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/exception/BadRequestException.class b/oying-common/target/classes/com/oying/exception/BadRequestException.class
new file mode 100644
index 0000000..041ecff
--- /dev/null
+++ b/oying-common/target/classes/com/oying/exception/BadRequestException.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/exception/EntityExistException.class b/oying-common/target/classes/com/oying/exception/EntityExistException.class
new file mode 100644
index 0000000..3a61e5f
--- /dev/null
+++ b/oying-common/target/classes/com/oying/exception/EntityExistException.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/exception/EntityNotFoundException.class b/oying-common/target/classes/com/oying/exception/EntityNotFoundException.class
new file mode 100644
index 0000000..1973113
--- /dev/null
+++ b/oying-common/target/classes/com/oying/exception/EntityNotFoundException.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/exception/handler/ApiError.class b/oying-common/target/classes/com/oying/exception/handler/ApiError.class
new file mode 100644
index 0000000..a392d8e
--- /dev/null
+++ b/oying-common/target/classes/com/oying/exception/handler/ApiError.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/exception/handler/GlobalExceptionHandler.class b/oying-common/target/classes/com/oying/exception/handler/GlobalExceptionHandler.class
new file mode 100644
index 0000000..011bfd3
--- /dev/null
+++ b/oying-common/target/classes/com/oying/exception/handler/GlobalExceptionHandler.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/AnonTagUtils$1.class b/oying-common/target/classes/com/oying/utils/AnonTagUtils$1.class
new file mode 100644
index 0000000..3413da7
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/AnonTagUtils$1.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/AnonTagUtils.class b/oying-common/target/classes/com/oying/utils/AnonTagUtils.class
new file mode 100644
index 0000000..e0a3565
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/AnonTagUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/BigDecimalUtils.class b/oying-common/target/classes/com/oying/utils/BigDecimalUtils.class
new file mode 100644
index 0000000..af2ad03
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/BigDecimalUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/CacheKey.class b/oying-common/target/classes/com/oying/utils/CacheKey.class
new file mode 100644
index 0000000..d5520a1
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/CacheKey.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/CloseUtil.class b/oying-common/target/classes/com/oying/utils/CloseUtil.class
new file mode 100644
index 0000000..211e6d3
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/CloseUtil.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/DateUtil.class b/oying-common/target/classes/com/oying/utils/DateUtil.class
new file mode 100644
index 0000000..d0b4246
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/DateUtil.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/ElConstant.class b/oying-common/target/classes/com/oying/utils/ElConstant.class
new file mode 100644
index 0000000..2e8675c
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/ElConstant.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/EncryptUtils.class b/oying-common/target/classes/com/oying/utils/EncryptUtils.class
new file mode 100644
index 0000000..421eb95
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/EncryptUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/FileUtil.class b/oying-common/target/classes/com/oying/utils/FileUtil.class
new file mode 100644
index 0000000..2003aab
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/FileUtil.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/PageResult.class b/oying-common/target/classes/com/oying/utils/PageResult.class
new file mode 100644
index 0000000..c46a8e3
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/PageResult.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/PageUtil.class b/oying-common/target/classes/com/oying/utils/PageUtil.class
new file mode 100644
index 0000000..dfb4da2
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/PageUtil.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/RedisUtils.class b/oying-common/target/classes/com/oying/utils/RedisUtils.class
new file mode 100644
index 0000000..4aa411f
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/RedisUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/RequestHolder.class b/oying-common/target/classes/com/oying/utils/RequestHolder.class
new file mode 100644
index 0000000..c7fa349
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/RequestHolder.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/RsaUtils$RsaKeyPair.class b/oying-common/target/classes/com/oying/utils/RsaUtils$RsaKeyPair.class
new file mode 100644
index 0000000..3e4daaf
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/RsaUtils$RsaKeyPair.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/RsaUtils.class b/oying-common/target/classes/com/oying/utils/RsaUtils.class
new file mode 100644
index 0000000..1d57f1b
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/RsaUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/SecurityUtils.class b/oying-common/target/classes/com/oying/utils/SecurityUtils.class
new file mode 100644
index 0000000..70ee7ab
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/SecurityUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/SpringBeanHolder$CallBack.class b/oying-common/target/classes/com/oying/utils/SpringBeanHolder$CallBack.class
new file mode 100644
index 0000000..62c8491
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/SpringBeanHolder$CallBack.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/SpringBeanHolder.class b/oying-common/target/classes/com/oying/utils/SpringBeanHolder.class
new file mode 100644
index 0000000..daf6d8f
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/SpringBeanHolder.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/StringUtils.class b/oying-common/target/classes/com/oying/utils/StringUtils.class
new file mode 100644
index 0000000..da2217c
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/StringUtils.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/ThrowableUtil.class b/oying-common/target/classes/com/oying/utils/ThrowableUtil.class
new file mode 100644
index 0000000..9f0bf37
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/ThrowableUtil.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/enums/CodeBiEnum.class b/oying-common/target/classes/com/oying/utils/enums/CodeBiEnum.class
new file mode 100644
index 0000000..e3a9c10
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/enums/CodeBiEnum.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/enums/CodeEnum.class b/oying-common/target/classes/com/oying/utils/enums/CodeEnum.class
new file mode 100644
index 0000000..648c6ef
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/enums/CodeEnum.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/enums/DataScopeEnum.class b/oying-common/target/classes/com/oying/utils/enums/DataScopeEnum.class
new file mode 100644
index 0000000..4c900f9
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/enums/DataScopeEnum.class
Binary files differ
diff --git a/oying-common/target/classes/com/oying/utils/enums/RequestMethodEnum.class b/oying-common/target/classes/com/oying/utils/enums/RequestMethodEnum.class
new file mode 100644
index 0000000..794e3f1
--- /dev/null
+++ b/oying-common/target/classes/com/oying/utils/enums/RequestMethodEnum.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/domain/ColumnInfo.class b/oying-generator/target/classes/com/oying/domain/ColumnInfo.class
new file mode 100644
index 0000000..5839f94
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/domain/ColumnInfo.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/domain/GenConfig.class b/oying-generator/target/classes/com/oying/domain/GenConfig.class
new file mode 100644
index 0000000..cb89fef
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/domain/GenConfig.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/domain/dto/TableInfo.class b/oying-generator/target/classes/com/oying/domain/dto/TableInfo.class
new file mode 100644
index 0000000..d0669b9
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/domain/dto/TableInfo.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/mapper/ColumnInfoMapper.class b/oying-generator/target/classes/com/oying/mapper/ColumnInfoMapper.class
new file mode 100644
index 0000000..8aed19b
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/mapper/ColumnInfoMapper.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/mapper/GenConfigMapper.class b/oying-generator/target/classes/com/oying/mapper/GenConfigMapper.class
new file mode 100644
index 0000000..9f165df
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/mapper/GenConfigMapper.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/rest/GenConfigController.class b/oying-generator/target/classes/com/oying/rest/GenConfigController.class
new file mode 100644
index 0000000..c816baf
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/rest/GenConfigController.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/rest/GeneratorController.class b/oying-generator/target/classes/com/oying/rest/GeneratorController.class
new file mode 100644
index 0000000..c387e8b
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/rest/GeneratorController.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/service/GenConfigService.class b/oying-generator/target/classes/com/oying/service/GenConfigService.class
new file mode 100644
index 0000000..111da5e
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/service/GenConfigService.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/service/GeneratorService.class b/oying-generator/target/classes/com/oying/service/GeneratorService.class
new file mode 100644
index 0000000..1fe20c7
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/service/GeneratorService.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/service/impl/GenConfigServiceImpl.class b/oying-generator/target/classes/com/oying/service/impl/GenConfigServiceImpl.class
new file mode 100644
index 0000000..ec46beb
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/service/impl/GenConfigServiceImpl.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/service/impl/GeneratorServiceImpl.class b/oying-generator/target/classes/com/oying/service/impl/GeneratorServiceImpl.class
new file mode 100644
index 0000000..1708c0f
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/service/impl/GeneratorServiceImpl.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/utils/ColUtil.class b/oying-generator/target/classes/com/oying/utils/ColUtil.class
new file mode 100644
index 0000000..0ad76da
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/utils/ColUtil.class
Binary files differ
diff --git a/oying-generator/target/classes/com/oying/utils/GenUtil.class b/oying-generator/target/classes/com/oying/utils/GenUtil.class
new file mode 100644
index 0000000..eb520ca
--- /dev/null
+++ b/oying-generator/target/classes/com/oying/utils/GenUtil.class
Binary files differ
diff --git a/oying-generator/target/classes/gen.properties b/oying-generator/target/classes/gen.properties
new file mode 100644
index 0000000..2ed9370
--- /dev/null
+++ b/oying-generator/target/classes/gen.properties
@@ -0,0 +1,27 @@
+#数据库类型转Java类型
+tinyint=Integer
+smallint=Integer
+mediumint=Integer
+int=Integer
+integer=Integer
+
+bigint=Long
+
+float=Float
+
+double=Double
+
+decimal=BigDecimal
+
+bit=Boolean
+
+char=String
+varchar=String
+tinytext=String
+text=String
+mediumtext=String
+longtext=String
+
+date=Timestamp
+datetime=Timestamp
+timestamp=Timestamp
\ No newline at end of file
diff --git a/oying-generator/target/classes/mapper/ColumnInfoMapper.xml b/oying-generator/target/classes/mapper/ColumnInfoMapper.xml
new file mode 100644
index 0000000..5adad43
--- /dev/null
+++ b/oying-generator/target/classes/mapper/ColumnInfoMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.mapper.ColumnInfoMapper">
+    <resultMap id="BaseResultMap" type="com.oying.domain.ColumnInfo">
+        <id column="column_id" property="id"/>
+        <result column="table_name" property="tableName"/>
+        <result column="column_name" property="columnName"/>
+        <result column="column_type" property="columnType"/>
+        <result column="key_type" property="keyType"/>
+        <result column="extra" property="extra"/>
+        <result column="remark" property="remark"/>
+        <result column="not_null" property="notNull"/>
+        <result column="list_show" property="listShow"/>
+        <result column="form_show" property="formShow"/>
+        <result column="form_type" property="formType"/>
+        <result column="query_type" property="queryType"/>
+        <result column="dict_name" property="dictName"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        column_id, table_name, column_name, column_type, key_type, extra, remark, not_null, list_show, form_show, form_type, query_type, dict_name
+    </sql>
+
+    <select id="getTables" resultType="com.oying.domain.dto.TableInfo">
+        select table_name, create_time, engine, table_collation as coding, table_comment as remark
+        from information_schema.tables
+        where table_schema = (select database())
+        and table_name like concat('%',#{tableName},'%')
+        order by create_time desc
+    </select>
+
+    <select id="findByTableNameOrderByIdAsc" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from code_column
+        where table_name = #{tableName}
+        order by column_id
+    </select>
+
+    <select id="getColumns" resultMap="BaseResultMap">
+        select column_name, if(is_nullable = 'NO', 1, 0) not_null,
+               data_type as column_type, column_comment as remark,
+               column_key key_type, extra
+        from information_schema.columns
+        where table_name = #{tableName}
+        and table_schema = (select database())
+        order by ordinal_position
+    </select>
+</mapper>
diff --git a/oying-generator/target/classes/mapper/GenConfigMapper.xml b/oying-generator/target/classes/mapper/GenConfigMapper.xml
new file mode 100644
index 0000000..6fa557e
--- /dev/null
+++ b/oying-generator/target/classes/mapper/GenConfigMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.mapper.GenConfigMapper">
+    <resultMap id="BaseResultMap" type="com.oying.domain.GenConfig">
+        <id column="config_id" property="id"/>
+        <result column="table_name" property="tableName"/>
+        <result column="api_alias" property="apiAlias"/>
+        <result column="pack" property="pack"/>
+        <result column="module_name" property="moduleName"/>
+        <result column="path" property="path"/>
+        <result column="api_path" property="apiPath"/>
+        <result column="author" property="author"/>
+        <result column="prefix" property="prefix"/>
+        <result column="cover" property="cover"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        config_id, table_name, api_alias, pack, module_name, path, api_path, author, prefix, cover
+    </sql>
+
+    <select id="findByTableName" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM code_config
+        WHERE table_name = #{tableName}
+    </select>
+</mapper>
diff --git a/oying-generator/target/classes/template/admin/Controller.ftl b/oying-generator/target/classes/template/admin/Controller.ftl
new file mode 100644
index 0000000..e62805e
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/Controller.ftl
@@ -0,0 +1,73 @@
+package ${package}.rest;
+
+import com.oying.annotation.Log;
+import ${package}.domain.${className};
+import ${package}.service.${className}Service;
+import ${package}.domain.dto.${className}QueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author ${author}
+* @date ${date}
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "${apiAlias}")
+@RequestMapping("/api/${changeClassName}")
+public class ${className}Controller {
+
+    private final ${className}Service ${changeClassName}Service;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('${changeClassName}:list')")
+    public void export${className}(HttpServletResponse response, ${className}QueryCriteria criteria) throws IOException {
+        ${changeClassName}Service.download(${changeClassName}Service.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询${apiAlias}")
+    @PreAuthorize("@el.check('${changeClassName}:list')")
+    public ResponseEntity<PageResult<${className}>> query${className}(${className}QueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(${changeClassName}Service.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增${apiAlias}")
+    @ApiOperation("新增${apiAlias}")
+    @PreAuthorize("@el.check('${changeClassName}:add')")
+    public ResponseEntity<Object> create${className}(@Validated @RequestBody ${className} resources){
+        ${changeClassName}Service.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改${apiAlias}")
+    @ApiOperation("修改${apiAlias}")
+    @PreAuthorize("@el.check('${changeClassName}:edit')")
+    public ResponseEntity<Object> update${className}(@Validated @RequestBody ${className} resources){
+        ${changeClassName}Service.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除${apiAlias}")
+    @ApiOperation("删除${apiAlias}")
+    @PreAuthorize("@el.check('${changeClassName}:del')")
+    public ResponseEntity<Object> delete${className}(@ApiParam(value = "传ID数组[]") @RequestBody List<${pkColumnType}> ids) {
+        ${changeClassName}Service.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-generator/target/classes/template/admin/Entity.ftl b/oying-generator/target/classes/template/admin/Entity.ftl
new file mode 100644
index 0000000..d2e9ac4
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/Entity.ftl
@@ -0,0 +1,72 @@
+package ${package}.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+<#if hasTimestamp>
+import java.sql.Timestamp;
+</#if>
+<#if hasBigDecimal>
+import java.math.BigDecimal;
+</#if>
+<#assign notBlankUsed = false>
+<#assign notNullUsed = false>
+<#if columns??>
+    <#list columns as column>
+        <#if column.istNotNull && column.columnKey != 'PRI'>
+            <#if column.columnType = 'String'>
+                <#assign notBlankUsed = true>
+            <#else>
+                <#assign notNullUsed = true>
+            </#if>
+        </#if>
+    </#list>
+</#if>
+<#if notBlankUsed>
+import javax.validation.constraints.NotBlank;
+</#if>
+<#if notNullUsed>
+import javax.validation.constraints.NotNull;
+</#if>
+import java.io.Serializable;
+<#if auto>
+import com.baomidou.mybatisplus.annotation.IdType;
+</#if>
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author ${author}
+* @date ${date}
+**/
+@Data
+@TableName("${tableName}")
+public class ${className} implements Serializable {
+<#if columns??>
+    <#list columns as column>
+
+    <#if column.columnKey = 'PRI'>
+    @TableId(value = "${column.columnName}"<#if auto>, type = IdType.AUTO</#if>)
+    </#if>
+    <#if column.istNotNull && column.columnKey != 'PRI'>
+        <#if column.columnType = 'String'>
+    @NotBlank
+        <#else>
+    @NotNull
+        </#if>
+    </#if>
+    <#if column.remark != ''>
+    @ApiModelProperty(value = "${column.remark}")
+    <#else>
+    @ApiModelProperty(value = "${column.changeColumnName}")
+    </#if>
+    private ${column.columnType} ${column.changeColumnName};
+    </#list>
+</#if>
+
+    public void copy(${className} source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-generator/target/classes/template/admin/Mapper-xml.ftl b/oying-generator/target/classes/template/admin/Mapper-xml.ftl
new file mode 100644
index 0000000..82bad8d
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/Mapper-xml.ftl
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="${package}.mapper.${className}Mapper">
+    <#if columns??>
+    <resultMap id="BaseResultMap" type="${package}.domain.${className}">
+        <#list columns as column>
+            <#if column.columnKey = 'PRI'>
+        <id column="${column.columnName}" property="${column.changeColumnName}"/>
+            </#if>
+            <#if column.columnKey != 'PRI'>
+        <result column="${column.columnName}" property="${column.changeColumnName}"/>
+            </#if>
+        </#list>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        <#list columns as column>${column.columnName}<#if column_has_next>, </#if></#list>
+    </sql>
+    </#if>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from ${tableName}
+        <#if queryColumns??>
+        <where>
+        <#list queryColumns as column>
+            <if test="criteria.${column.changeColumnName} != null">
+            <#if column.queryType = '='>
+                and ${column.columnName} = ${symbol}{criteria.${column.changeColumnName}}
+            </#if>
+            <#if column.queryType = 'Like'>
+                and ${column.columnName} like concat('%',${symbol}{criteria.${column.changeColumnName}},'%')
+            </#if>
+            <#if column.queryType = '!='>
+                and ${column.columnName} != ${symbol}{criteria.${column.changeColumnName}}
+            </#if>
+            <#if column.queryType = 'NotNull'>
+                and ${column.columnName} is not null
+            </#if>
+            <#if column.queryType = '>='>
+                and ${column.columnName} &gt;= ${symbol}{criteria.${column.changeColumnName}}
+            </#if>
+            <#if column.queryType = '<='>
+                and ${column.columnName} &lt;= ${symbol}{criteria.${column.changeColumnName}}
+            </#if>
+            </if>
+        </#list>
+        <#if betweens??>
+            <#list betweens as column>
+            <if test="criteria.${column.changeColumnName} != null and criteria.${column.changeColumnName}.size() > 0">
+                AND ${column.columnName} BETWEEN ${symbol}{criteria.${column.changeColumnName}[0]} AND ${symbol}{criteria.${column.changeColumnName}[1]}
+            </if>
+            </#list>
+        </#if>
+        </where>
+        </#if>
+        <#if pkIdName != 'none'>
+        order by ${pkIdName} desc
+        </#if>
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-generator/target/classes/template/admin/Mapper.ftl b/oying-generator/target/classes/template/admin/Mapper.ftl
new file mode 100644
index 0000000..8013f84
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/Mapper.ftl
@@ -0,0 +1,22 @@
+package ${package}.mapper;
+
+import ${package}.domain.${className};
+import ${package}.domain.dto.${className}QueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author ${author}
+* @date ${date}
+**/
+@Mapper
+public interface ${className}Mapper extends BaseMapper<${className}> {
+
+    IPage<${className}> findAll(@Param("criteria") ${className}QueryCriteria criteria, Page<Object> page);
+
+    List<${className}> findAll(@Param("criteria") ${className}QueryCriteria criteria);
+}
diff --git a/oying-generator/target/classes/template/admin/QueryCriteria.ftl b/oying-generator/target/classes/template/admin/QueryCriteria.ftl
new file mode 100644
index 0000000..7a2a135
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/QueryCriteria.ftl
@@ -0,0 +1,43 @@
+package ${package}.domain.dto;
+
+import lombok.Data;
+<#if queryHasTimestamp>
+import java.sql.Timestamp;
+</#if>
+<#if queryHasBigDecimal>
+import java.math.BigDecimal;
+</#if>
+<#if betweens?? && (betweens?size > 0)>
+import java.util.List;
+</#if>
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author ${author}
+* @date ${date}
+**/
+@Data
+public class ${className}QueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+<#if queryColumns??>
+    <#list queryColumns as column>
+
+        <#if column.remark != ''>
+    @ApiModelProperty(value = "${column.remark}")
+        <#else>
+    @ApiModelProperty(value = "${column.changeColumnName}")
+        </#if>
+    private ${column.columnType} ${column.changeColumnName};
+    </#list>
+</#if>
+<#if betweens??>
+    <#list betweens as column>
+    private List<${column.columnType}> ${column.changeColumnName};
+    </#list>
+</#if>
+}
diff --git a/oying-generator/target/classes/template/admin/Service.ftl b/oying-generator/target/classes/template/admin/Service.ftl
new file mode 100644
index 0000000..7fa07b2
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/Service.ftl
@@ -0,0 +1,60 @@
+package ${package}.service;
+
+import ${package}.domain.${className};
+import ${package}.domain.dto.${className}QueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author ${author}
+* @date ${date}
+**/
+public interface ${className}Service extends IService<${className}> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<${className}> queryAll(${className}QueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<${className}Dto>
+    */
+    List<${className}> queryAll(${className}QueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(${className} resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(${className} resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<${pkColumnType}> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<${className}> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-generator/target/classes/template/admin/ServiceImpl.ftl b/oying-generator/target/classes/template/admin/ServiceImpl.ftl
new file mode 100644
index 0000000..9d3de64
--- /dev/null
+++ b/oying-generator/target/classes/template/admin/ServiceImpl.ftl
@@ -0,0 +1,90 @@
+package ${package}.service.impl;
+
+import ${package}.domain.${className};
+<#if columns??>
+    <#list columns as column>
+        <#if column.columnKey = 'UNI'>
+            <#if column_index = 1>
+import com.oying.exception.EntityExistException;
+            </#if>
+        </#if>
+    </#list>
+</#if>
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import ${package}.service.${className}Service;
+import ${package}.domain.dto.${className}QueryCriteria;
+import ${package}.mapper.${className}Mapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author ${author}
+* @date ${date}
+**/
+@Service
+@RequiredArgsConstructor
+public class ${className}ServiceImpl extends ServiceImpl<${className}Mapper, ${className}> implements ${className}Service {
+
+    private final ${className}Mapper ${changeClassName}Mapper;
+
+    @Override
+    public PageResult<${className}> queryAll(${className}QueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(${changeClassName}Mapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<${className}> queryAll(${className}QueryCriteria criteria){
+        return ${changeClassName}Mapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(${className} resources) {
+        ${changeClassName}Mapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(${className} resources) {
+        ${className} ${changeClassName} = getById(resources.get${pkCapitalColName}());
+        ${changeClassName}.copy(resources);
+        ${changeClassName}Mapper.updateById(${changeClassName});
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<${pkColumnType}> ids) {
+        ${changeClassName}Mapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<${className}> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (${className} ${changeClassName} : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+        <#list columns as column>
+            <#if column.columnKey != 'PRI'>
+            <#if column.remark != ''>
+            map.put("${column.remark}", ${changeClassName}.get${column.capitalColumnName}());
+            <#else>
+            map.put(" ${column.changeColumnName}",  ${changeClassName}.get${column.capitalColumnName}());
+            </#if>
+            </#if>
+        </#list>
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-generator/target/classes/template/front/api.ftl b/oying-generator/target/classes/template/front/api.ftl
new file mode 100644
index 0000000..9587d0d
--- /dev/null
+++ b/oying-generator/target/classes/template/front/api.ftl
@@ -0,0 +1,27 @@
+import request from '@/utils/request'
+
+export function add(data) {
+  return request({
+    url: 'api/${changeClassName}',
+    method: 'post',
+    data
+  })
+}
+
+export function del(ids) {
+  return request({
+    url: 'api/${changeClassName}/',
+    method: 'delete',
+    data: ids
+  })
+}
+
+export function edit(data) {
+  return request({
+    url: 'api/${changeClassName}',
+    method: 'put',
+    data
+  })
+}
+
+export default { add, edit, del }
diff --git a/oying-generator/target/classes/template/front/index.ftl b/oying-generator/target/classes/template/front/index.ftl
new file mode 100644
index 0000000..4b9111a
--- /dev/null
+++ b/oying-generator/target/classes/template/front/index.ftl
@@ -0,0 +1,169 @@
+<#--noinspection ALL-->
+<template>
+  <div class="app-container">
+    <!--工具栏-->
+    <div class="head-container">
+    <#if hasQuery>
+      <div v-if="crud.props.searchToggle">
+        <!-- 搜索 -->
+        <#if queryColumns??>
+          <#list queryColumns as column>
+            <#if column.queryType != 'BetWeen'>
+        <label class="el-form-item-label"><#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if></label>
+        <el-input v-model="query.${column.changeColumnName}" clearable placeholder="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" style="width: 185px;" class="filter-item" @keyup.enter.native="crud.toQuery" />
+            </#if>
+          </#list>
+        </#if>
+  <#if betweens??>
+    <#list betweens as column>
+      <#if column.queryType = 'BetWeen'>
+        <date-range-picker
+          v-model="query.${column.changeColumnName}"
+          start-placeholder="${column.changeColumnName}Start"
+          end-placeholder="${column.changeColumnName}Start"
+          class="date-item"
+        />
+      </#if>
+    </#list>
+  </#if>
+        <rrOperation :crud="crud" />
+      </div>
+    </#if>
+      <!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
+      <crudOperation :permission="permission" />
+      <!--表单组件-->
+      <el-dialog :close-on-click-modal="false" :before-close="crud.cancelCU" :visible.sync="crud.status.cu > 0" :title="crud.status.title" width="500px">
+        <el-form ref="form" :model="form" <#if isNotNullColumns??>:rules="rules"</#if> size="small" label-width="80px">
+    <#if columns??>
+      <#list columns as column>
+        <#if column.formShow>
+          <el-form-item label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>"<#if column.istNotNull> prop="${column.changeColumnName}"</#if>>
+            <#if column.formType = 'Input'>
+            <el-input v-model="form.${column.changeColumnName}" style="width: 370px;" />
+            <#elseif column.formType = 'Textarea'>
+            <el-input v-model="form.${column.changeColumnName}" :rows="3" type="textarea" style="width: 370px;" />
+            <#elseif column.formType = 'Radio'>
+              <#if (column.dictName)?? && (column.dictName)!="">
+            <el-radio v-model="form.${column.changeColumnName}" v-for="item in dict.${column.dictName}" :key="item.id" :label="item.value">{{ item.label }}</el-radio>
+              <#else>
+                未设置字典,请手动设置 Radio
+              </#if>
+            <#elseif column.formType = 'Select'>
+              <#if (column.dictName)?? && (column.dictName)!="">
+            <el-select v-model="form.${column.changeColumnName}" filterable placeholder="请选择">
+              <el-option
+                v-for="item in dict.${column.dictName}"
+                :key="item.id"
+                :label="item.label"
+                :value="item.value" />
+            </el-select>
+              <#else>
+            未设置字典,请手动设置 Select
+              </#if>
+            <#else>
+            <el-date-picker v-model="form.${column.changeColumnName}" type="datetime" style="width: 370px;" />
+            </#if>
+          </el-form-item>
+        </#if>
+      </#list>
+    </#if>
+        </el-form>
+        <div slot="footer" class="dialog-footer">
+          <el-button type="text" @click="crud.cancelCU">取消</el-button>
+          <el-button :loading="crud.status.cu === 2" type="primary" @click="crud.submitCU">确认</el-button>
+        </div>
+      </el-dialog>
+      <!--表格渲染-->
+      <el-table ref="table" v-loading="crud.loading" :data="crud.data" size="small" style="width: 100%;" @selection-change="crud.selectionChangeHandler">
+        <el-table-column type="selection" width="55" />
+        <#if columns??>
+            <#list columns as column>
+            <#if column.columnShow>
+          <#if (column.dictName)?? && (column.dictName)!="">
+        <el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>">
+          <template slot-scope="scope">
+            {{ dict.label.${column.dictName}[scope.row.${column.changeColumnName}] }}
+          </template>
+        </el-table-column>
+                <#else>
+        <el-table-column prop="${column.changeColumnName}" label="<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>" />
+                </#if>
+            </#if>
+            </#list>
+        </#if>
+        <el-table-column v-if="checkPer(['admin','${changeClassName}:edit','${changeClassName}:del'])" label="操作" width="150px" align="center">
+          <template slot-scope="scope">
+            <udOperation
+              :data="scope.row"
+              :permission="permission"
+            />
+          </template>
+        </el-table-column>
+      </el-table>
+      <!--分页组件-->
+      <pagination />
+    </div>
+  </div>
+</template>
+
+<script>
+import crud${className} from '@/api/${changeClassName}'
+import CRUD, { presenter, header, form, crud } from '@crud/crud'
+import rrOperation from '@crud/RR.operation'
+import crudOperation from '@crud/CRUD.operation'
+import udOperation from '@crud/UD.operation'
+import pagination from '@crud/Pagination'
+
+const defaultForm = { <#if columns??><#list columns as column>${column.changeColumnName}: null<#if column_has_next>, </#if></#list></#if> }
+export default {
+  name: '${className}',
+  components: { pagination, crudOperation, rrOperation, udOperation },
+  mixins: [presenter(), header(), form(defaultForm), crud()],
+  <#if hasDict>
+  dicts: [<#if hasDict??><#list dicts as dict>'${dict}'<#if dict_has_next>, </#if></#list></#if>],
+  </#if>
+  cruds() {
+    return CRUD({ title: '${apiAlias}', url: 'api/${changeClassName}', idField: '${pkChangeColName}', sort: '${pkChangeColName},desc', crudMethod: { ...crud${className} }})
+  },
+  data() {
+    return {
+      permission: {
+        add: ['admin', '${changeClassName}:add'],
+        edit: ['admin', '${changeClassName}:edit'],
+        del: ['admin', '${changeClassName}:del']
+      },
+      rules: {
+        <#if isNotNullColumns??>
+        <#list isNotNullColumns as column>
+        <#if column.istNotNull>
+        ${column.changeColumnName}: [
+          { required: true, message: '<#if column.remark != ''>${column.remark}</#if>不能为空', trigger: 'blur' }
+        ]<#if column_has_next>,</#if>
+        </#if>
+        </#list>
+        </#if>
+      }<#if hasQuery>,
+      queryTypeOptions: [
+        <#if queryColumns??>
+        <#list queryColumns as column>
+        <#if column.queryType != 'BetWeen'>
+        { key: '${column.changeColumnName}', display_name: '<#if column.remark != ''>${column.remark}<#else>${column.changeColumnName}</#if>' }<#if column_has_next>,</#if>
+        </#if>
+        </#list>
+        </#if>
+      ]
+      </#if>
+    }
+  },
+  methods: {
+    // 钩子:在获取表格数据之前执行,false 则代表不获取数据
+    [CRUD.HOOK.beforeRefresh]() {
+      return true
+    }
+  }
+}
+</script>
+
+<style scoped>
+
+</style>
diff --git a/oying-logging/target/classes/com/oying/annotation/Log.class b/oying-logging/target/classes/com/oying/annotation/Log.class
new file mode 100644
index 0000000..cef864e
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/annotation/Log.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/aspect/LogAspect.class b/oying-logging/target/classes/com/oying/aspect/LogAspect.class
new file mode 100644
index 0000000..7617348
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/aspect/LogAspect.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/domain/SysLog.class b/oying-logging/target/classes/com/oying/domain/SysLog.class
new file mode 100644
index 0000000..5f54b2a
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/domain/SysLog.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/domain/dto/SysLogQueryCriteria.class b/oying-logging/target/classes/com/oying/domain/dto/SysLogQueryCriteria.class
new file mode 100644
index 0000000..a1e7f0b
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/domain/dto/SysLogQueryCriteria.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/mapper/SysLogMapper.class b/oying-logging/target/classes/com/oying/mapper/SysLogMapper.class
new file mode 100644
index 0000000..25cfca3
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/mapper/SysLogMapper.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/rest/SysLogController.class b/oying-logging/target/classes/com/oying/rest/SysLogController.class
new file mode 100644
index 0000000..a769f7f
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/rest/SysLogController.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/service/SysLogService.class b/oying-logging/target/classes/com/oying/service/SysLogService.class
new file mode 100644
index 0000000..dce4d59
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/service/SysLogService.class
Binary files differ
diff --git a/oying-logging/target/classes/com/oying/service/impl/SysLogServiceImpl.class b/oying-logging/target/classes/com/oying/service/impl/SysLogServiceImpl.class
new file mode 100644
index 0000000..c2d82ee
--- /dev/null
+++ b/oying-logging/target/classes/com/oying/service/impl/SysLogServiceImpl.class
Binary files differ
diff --git a/oying-logging/target/classes/mapper/SysLogMapper.xml b/oying-logging/target/classes/mapper/SysLogMapper.xml
new file mode 100644
index 0000000..8db7580
--- /dev/null
+++ b/oying-logging/target/classes/mapper/SysLogMapper.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.mapper.SysLogMapper">
+
+    <sql id="info_column">
+        log_id id,description,method,params,request_ip,time,username,address,browser,exception_detail,create_time
+    </sql>
+
+    <sql id="error_column">
+        log_id id,description,method,params,request_ip,username,address,browser,exception_detail,create_time
+    </sql>
+
+    <sql id="user_column">
+        log_id id,description,request_ip,time,address,browser,create_time
+    </sql>
+
+    <sql id="query">
+        from sys_log
+        <where>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                and (
+                username like concat('%',#{criteria.blurry},'%')
+                or description like concat('%',#{criteria.blurry},'%')
+                or address like concat('%',#{criteria.blurry},'%')
+                or request_ip like concat('%',#{criteria.blurry},'%')
+                or method like concat('%',#{criteria.blurry},'%')
+                or params like concat('%',#{criteria.blurry},'%')
+                )
+            </if>
+            <if test="criteria.username != null and criteria.username != ''">
+                and username like concat('%',#{criteria.username},'%')
+            </if>
+            <if test="criteria.logType != null and criteria.logType != ''">
+                and log_type = #{criteria.logType}
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+                and create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+        order by log_id desc
+    </sql>
+
+    <select id="queryAll" resultType="com.oying.domain.SysLog">
+        select
+        <choose>
+            <when test="criteria.logType == 'ERROR'">
+                <include refid="error_column"/>
+            </when>
+            <otherwise>
+                <include refid="info_column"/>
+            </otherwise>
+        </choose>
+        <include refid="query"/>
+    </select>
+
+    <select id="queryAllByUser" resultType="com.oying.domain.SysLog">
+        select
+        <include refid="user_column"/>
+        <include refid="query"/>
+    </select>
+
+    <delete id="deleteByLevel">
+        delete from sys_log where log_type = #{logType}
+    </delete>
+
+    <select id="getExceptionDetails" resultType="java.lang.String">
+        select exception_detail from sys_log where log_id = #{id}
+    </select>
+</mapper>
diff --git a/oying-system/src/main/java/com/oying/AppRun.java b/oying-system/src/main/java/com/oying/AppRun.java
index 1616dd6..d040eaf 100644
--- a/oying-system/src/main/java/com/oying/AppRun.java
+++ b/oying-system/src/main/java/com/oying/AppRun.java
@@ -5,6 +5,7 @@
 import lombok.extern.slf4j.Slf4j;
 import com.oying.annotation.rest.AnonymousGetMapping;
 import com.oying.utils.SpringBeanHolder;
+import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.context.ApplicationPidFileWriter;
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageBuyer.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageBuyer.java
new file mode 100644
index 0000000..8b6e12d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageBuyer.java
@@ -0,0 +1,37 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+@TableName("message_buyer")
+public class MessageBuyer implements Serializable {
+
+    @TableId(value = "buyer_message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键,自增")
+    private Long buyerMessageId;
+
+    @NotNull
+    @ApiModelProperty(value = "买家ID")
+    private Long buyerId;
+
+    @NotNull
+    @ApiModelProperty(value = "外键,关联 `message_info` 表")
+    private Long messageId;
+
+    public void copy(MessageBuyer source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageCustomer.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageCustomer.java
new file mode 100644
index 0000000..6a7c5a6
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageCustomer.java
@@ -0,0 +1,45 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+@TableName("message_customer")
+public class MessageCustomer implements Serializable {
+
+    @TableId(value = "customer_message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键,自增")
+    private Long customerMessageId;
+
+    @NotNull
+    @ApiModelProperty(value = "外键,关联 `message_info` 表")
+    private Long messageId;
+
+    @NotNull
+    @ApiModelProperty(value = "关联的订单ID")
+    private Long orderId;
+
+    @NotBlank
+    @ApiModelProperty(value = "顾客的评价内容")
+    private String reviewContent;
+
+    @ApiModelProperty(value = "商户的回复内容")
+    private String replyContent;
+
+    public void copy(MessageCustomer source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageInfo.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageInfo.java
new file mode 100644
index 0000000..0097aa2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageInfo.java
@@ -0,0 +1,58 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-06
+**/
+@Data
+@TableName("message_info")
+public class MessageInfo implements Serializable {
+
+    @TableId(value = "message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键自增")
+    private Long messageId;
+
+    @NotNull
+    @ApiModelProperty(value = "消息类型('SYSTEM', 'ORDER', 'CUSTOMER')")
+    private String messageType;
+
+    @NotBlank
+    @ApiModelProperty(value = "消息标题")
+    private String title;
+
+    @NotBlank
+    @ApiModelProperty(value = "消息内容")
+    private String content;
+
+    @NotNull
+    @ApiModelProperty(value = "消息状态(未读/已读)")
+    private String status;
+
+    @NotNull
+    @ApiModelProperty(value = "消息创建时间")
+    private Timestamp createdAt;
+
+    @NotNull
+    @ApiModelProperty(value = "消息更新时间")
+    private Timestamp updatedAt;
+
+    @ApiModelProperty(value = "消息跳转链接(订单详情或评价详情)")
+    private String link;
+
+    public void copy(MessageInfo source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrder.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrder.java
new file mode 100644
index 0000000..43cf9bb
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageOrder.java
@@ -0,0 +1,37 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+@TableName("message_order")
+public class MessageOrder implements Serializable {
+
+    @TableId(value = "order_message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键,自增")
+    private Long orderMessageId;
+
+    @NotNull
+    @ApiModelProperty(value = "外键,关联 `message_info` 表")
+    private Long messageId;
+
+    @NotNull
+    @ApiModelProperty(value = "关联的订单ID")
+    private Long orderId;
+
+    public void copy(MessageOrder source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSeller.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSeller.java
new file mode 100644
index 0000000..7c8cc4d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSeller.java
@@ -0,0 +1,37 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+@TableName("message_seller")
+public class MessageSeller implements Serializable {
+
+    @TableId(value = "seller_message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "sellerMessageId")
+    private Long sellerMessageId;
+
+    @NotNull
+    @ApiModelProperty(value = "sellerId")
+    private Long sellerId;
+
+    @NotNull
+    @ApiModelProperty(value = "messageId")
+    private Long messageId;
+
+    public void copy(MessageSeller source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java
new file mode 100644
index 0000000..78b5cda
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/MessageSystem.java
@@ -0,0 +1,37 @@
+package com.oying.modules.message.domain;
+
+import lombok.Data;
+import cn.hutool.core.bean.BeanUtil;
+import io.swagger.annotations.ApiModelProperty;
+import cn.hutool.core.bean.copier.CopyOptions;
+import java.sql.Timestamp;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+
+/**
+* @description /
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+@TableName("message_system")
+public class MessageSystem implements Serializable {
+
+    @TableId(value = "system_message_id", type = IdType.AUTO)
+    @ApiModelProperty(value = "主键,自增")
+    private Long systemMessageId;
+
+    @NotNull
+    @ApiModelProperty(value = "外键,关联 `message_info` 表")
+    private Long messageId;
+
+    @ApiModelProperty(value = "系统维护时间")
+    private Timestamp maintenanceTime;
+
+    public void copy(MessageSystem source){
+        BeanUtil.copyProperties(source,this, CopyOptions.create().setIgnoreNullValue(true));
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.java
new file mode 100644
index 0000000..973751b
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+public class MessageBuyerQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.java
new file mode 100644
index 0000000..59ccea8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+public class MessageCustomerQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.java
new file mode 100644
index 0000000..9d725df
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-06
+**/
+@Data
+public class MessageInfoQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.java
new file mode 100644
index 0000000..96445c4
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+public class MessageOrderQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.java
new file mode 100644
index 0000000..4865f7d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+public class MessageSellerQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java
new file mode 100644
index 0000000..c73e787
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.java
@@ -0,0 +1,18 @@
+package com.oying.modules.message.domain.dto;
+
+import lombok.Data;
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Data
+public class MessageSystemQueryCriteria{
+
+    @ApiModelProperty(value = "页码", example = "1")
+    private Integer page = 1;
+
+    @ApiModelProperty(value = "每页数据量", example = "10")
+    private Integer size = 10;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageBuyerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageBuyerMapper.java
new file mode 100644
index 0000000..dba7a94
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageBuyerMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageBuyer;
+import com.oying.modules.message.domain.dto.MessageBuyerQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Mapper
+public interface MessageBuyerMapper extends BaseMapper<MessageBuyer> {
+
+    IPage<MessageBuyer> findAll(@Param("criteria") MessageBuyerQueryCriteria criteria, Page<Object> page);
+
+    List<MessageBuyer> findAll(@Param("criteria") MessageBuyerQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageCustomerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageCustomerMapper.java
new file mode 100644
index 0000000..ad8837f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageCustomerMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageCustomer;
+import com.oying.modules.message.domain.dto.MessageCustomerQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Mapper
+public interface MessageCustomerMapper extends BaseMapper<MessageCustomer> {
+
+    IPage<MessageCustomer> findAll(@Param("criteria") MessageCustomerQueryCriteria criteria, Page<Object> page);
+
+    List<MessageCustomer> findAll(@Param("criteria") MessageCustomerQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageInfoMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageInfoMapper.java
new file mode 100644
index 0000000..2a63fb2
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageInfoMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageInfo;
+import com.oying.modules.message.domain.dto.MessageInfoQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-06
+**/
+@Mapper
+public interface MessageInfoMapper extends BaseMapper<MessageInfo> {
+
+    IPage<MessageInfo> findAll(@Param("criteria") MessageInfoQueryCriteria criteria, Page<Object> page);
+
+    List<MessageInfo> findAll(@Param("criteria") MessageInfoQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderMapper.java
new file mode 100644
index 0000000..1a809cc
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageOrderMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageOrder;
+import com.oying.modules.message.domain.dto.MessageOrderQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Mapper
+public interface MessageOrderMapper extends BaseMapper<MessageOrder> {
+
+    IPage<MessageOrder> findAll(@Param("criteria") MessageOrderQueryCriteria criteria, Page<Object> page);
+
+    List<MessageOrder> findAll(@Param("criteria") MessageOrderQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSellerMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSellerMapper.java
new file mode 100644
index 0000000..0d000e8
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSellerMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageSeller;
+import com.oying.modules.message.domain.dto.MessageSellerQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Mapper
+public interface MessageSellerMapper extends BaseMapper<MessageSeller> {
+
+    IPage<MessageSeller> findAll(@Param("criteria") MessageSellerQueryCriteria criteria, Page<Object> page);
+
+    List<MessageSeller> findAll(@Param("criteria") MessageSellerQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java
new file mode 100644
index 0000000..05bca36
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/mapper/MessageSystemMapper.java
@@ -0,0 +1,22 @@
+package com.oying.modules.message.mapper;
+
+import com.oying.modules.message.domain.MessageSystem;
+import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
+import java.util.List;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Mapper;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@Mapper
+public interface MessageSystemMapper extends BaseMapper<MessageSystem> {
+
+    IPage<MessageSystem> findAll(@Param("criteria") MessageSystemQueryCriteria criteria, Page<Object> page);
+
+    List<MessageSystem> findAll(@Param("criteria") MessageSystemQueryCriteria criteria);
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageBuyerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageBuyerController.java
new file mode 100644
index 0000000..07a8b3d
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageBuyerController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageBuyer;
+import com.oying.modules.message.service.MessageBuyerService;
+import com.oying.modules.message.domain.dto.MessageBuyerQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息_买家")
+@RequestMapping("/api/messageBuyer")
+public class MessageBuyerController {
+
+    private final MessageBuyerService messageBuyerService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageBuyer:list')")
+    public void exportMessageBuyer(HttpServletResponse response, MessageBuyerQueryCriteria criteria) throws IOException {
+        messageBuyerService.download(messageBuyerService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息_买家")
+    @PreAuthorize("@el.check('messageBuyer:list')")
+    public ResponseEntity<PageResult<MessageBuyer>> queryMessageBuyer(MessageBuyerQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageBuyerService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息_买家")
+    @ApiOperation("新增消息_买家")
+    @PreAuthorize("@el.check('messageBuyer:add')")
+    public ResponseEntity<Object> createMessageBuyer(@Validated @RequestBody MessageBuyer resources){
+        messageBuyerService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息_买家")
+    @ApiOperation("修改消息_买家")
+    @PreAuthorize("@el.check('messageBuyer:edit')")
+    public ResponseEntity<Object> updateMessageBuyer(@Validated @RequestBody MessageBuyer resources){
+        messageBuyerService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息_买家")
+    @ApiOperation("删除消息_买家")
+    @PreAuthorize("@el.check('messageBuyer:del')")
+    public ResponseEntity<Object> deleteMessageBuyer(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageBuyerService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageCustomerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageCustomerController.java
new file mode 100644
index 0000000..1c3e0d5
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageCustomerController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageCustomer;
+import com.oying.modules.message.service.MessageCustomerService;
+import com.oying.modules.message.domain.dto.MessageCustomerQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息_顾客")
+@RequestMapping("/api/messageCustomer")
+public class MessageCustomerController {
+
+    private final MessageCustomerService messageCustomerService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageCustomer:list')")
+    public void exportMessageCustomer(HttpServletResponse response, MessageCustomerQueryCriteria criteria) throws IOException {
+        messageCustomerService.download(messageCustomerService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息_顾客")
+    @PreAuthorize("@el.check('messageCustomer:list')")
+    public ResponseEntity<PageResult<MessageCustomer>> queryMessageCustomer(MessageCustomerQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageCustomerService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息_顾客")
+    @ApiOperation("新增消息_顾客")
+    @PreAuthorize("@el.check('messageCustomer:add')")
+    public ResponseEntity<Object> createMessageCustomer(@Validated @RequestBody MessageCustomer resources){
+        messageCustomerService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息_顾客")
+    @ApiOperation("修改消息_顾客")
+    @PreAuthorize("@el.check('messageCustomer:edit')")
+    public ResponseEntity<Object> updateMessageCustomer(@Validated @RequestBody MessageCustomer resources){
+        messageCustomerService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息_顾客")
+    @ApiOperation("删除消息_顾客")
+    @PreAuthorize("@el.check('messageCustomer:del')")
+    public ResponseEntity<Object> deleteMessageCustomer(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageCustomerService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageInfoController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageInfoController.java
new file mode 100644
index 0000000..19a5999
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageInfoController.java
@@ -0,0 +1,74 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageInfo;
+import com.oying.modules.message.service.MessageInfoService;
+import com.oying.modules.message.domain.dto.MessageInfoQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-06
+**/
+@RestController
+@RequiredArgsConstructor//final注入
+@Api(tags = "消息")
+@RequestMapping("/api/messageInfo")
+public class MessageInfoController {
+
+    private final MessageInfoService messageInfoService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageInfo:list')")
+    public void exportMessageInfo(HttpServletResponse response, MessageInfoQueryCriteria criteria) throws IOException {
+        messageInfoService.download(messageInfoService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息")
+    @PreAuthorize("@el.check('messageInfo:list')")
+    public ResponseEntity<PageResult<MessageInfo>> queryMessageInfo(MessageInfoQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageInfoService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息")
+    @ApiOperation("新增消息")
+    @PreAuthorize("@el.check('messageInfo:add')")
+    public ResponseEntity<Object> createMessageInfo(@Validated @RequestBody MessageInfo resources){
+        messageInfoService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息")
+    @ApiOperation("修改消息")
+    @PreAuthorize("@el.check('messageInfo:edit')")
+    public ResponseEntity<Object> updateMessageInfo(@Validated @RequestBody MessageInfo resources){
+        messageInfoService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息")
+    @ApiOperation("删除消息")
+    @PreAuthorize("@el.check('messageInfo:del')")
+    public ResponseEntity<Object> deleteMessageInfo(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageInfoService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderController.java
new file mode 100644
index 0000000..159212a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageOrderController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageOrder;
+import com.oying.modules.message.service.MessageOrderService;
+import com.oying.modules.message.domain.dto.MessageOrderQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息_订单")
+@RequestMapping("/api/messageOrder")
+public class MessageOrderController {
+
+    private final MessageOrderService messageOrderService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageOrder:list')")
+    public void exportMessageOrder(HttpServletResponse response, MessageOrderQueryCriteria criteria) throws IOException {
+        messageOrderService.download(messageOrderService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息_订单")
+    @PreAuthorize("@el.check('messageOrder:list')")
+    public ResponseEntity<PageResult<MessageOrder>> queryMessageOrder(MessageOrderQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageOrderService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息_订单")
+    @ApiOperation("新增消息_订单")
+    @PreAuthorize("@el.check('messageOrder:add')")
+    public ResponseEntity<Object> createMessageOrder(@Validated @RequestBody MessageOrder resources){
+        messageOrderService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息_订单")
+    @ApiOperation("修改消息_订单")
+    @PreAuthorize("@el.check('messageOrder:edit')")
+    public ResponseEntity<Object> updateMessageOrder(@Validated @RequestBody MessageOrder resources){
+        messageOrderService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息_订单")
+    @ApiOperation("删除消息_订单")
+    @PreAuthorize("@el.check('messageOrder:del')")
+    public ResponseEntity<Object> deleteMessageOrder(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageOrderService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSellerController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSellerController.java
new file mode 100644
index 0000000..700472f
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSellerController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageSeller;
+import com.oying.modules.message.service.MessageSellerService;
+import com.oying.modules.message.domain.dto.MessageSellerQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息_卖家")
+@RequestMapping("/api/messageSeller")
+public class MessageSellerController {
+
+    private final MessageSellerService messageSellerService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageSeller:list')")
+    public void exportMessageSeller(HttpServletResponse response, MessageSellerQueryCriteria criteria) throws IOException {
+        messageSellerService.download(messageSellerService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息_卖家")
+    @PreAuthorize("@el.check('messageSeller:list')")
+    public ResponseEntity<PageResult<MessageSeller>> queryMessageSeller(MessageSellerQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageSellerService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息_卖家")
+    @ApiOperation("新增消息_卖家")
+    @PreAuthorize("@el.check('messageSeller:add')")
+    public ResponseEntity<Object> createMessageSeller(@Validated @RequestBody MessageSeller resources){
+        messageSellerService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息_卖家")
+    @ApiOperation("修改消息_卖家")
+    @PreAuthorize("@el.check('messageSeller:edit')")
+    public ResponseEntity<Object> updateMessageSeller(@Validated @RequestBody MessageSeller resources){
+        messageSellerService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息_卖家")
+    @ApiOperation("删除消息_卖家")
+    @PreAuthorize("@el.check('messageSeller:del')")
+    public ResponseEntity<Object> deleteMessageSeller(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageSellerService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
new file mode 100644
index 0000000..04ea356
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/rest/MessageSystemController.java
@@ -0,0 +1,73 @@
+package com.oying.modules.message.rest;
+
+import com.oying.annotation.Log;
+import com.oying.modules.message.domain.MessageSystem;
+import com.oying.modules.message.service.MessageSystemService;
+import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
+import lombok.RequiredArgsConstructor;
+import java.util.List;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import io.swagger.annotations.*;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.oying.utils.PageResult;
+
+/**
+* @author 李萌
+* @date 2025-05-14
+**/
+@RestController
+@RequiredArgsConstructor
+@Api(tags = "消息_系统")
+@RequestMapping("/api/messageSystem")
+public class MessageSystemController {
+
+    private final MessageSystemService messageSystemService;
+
+    @ApiOperation("导出数据")
+    @GetMapping(value = "/download")
+    @PreAuthorize("@el.check('messageSystem:list')")
+    public void exportMessageSystem(HttpServletResponse response, MessageSystemQueryCriteria criteria) throws IOException {
+        messageSystemService.download(messageSystemService.queryAll(criteria), response);
+    }
+
+    @GetMapping
+    @ApiOperation("查询消息_系统")
+    @PreAuthorize("@el.check('messageSystem:list')")
+    public ResponseEntity<PageResult<MessageSystem>> queryMessageSystem(MessageSystemQueryCriteria criteria){
+        Page<Object> page = new Page<>(criteria.getPage(), criteria.getSize());
+        return new ResponseEntity<>(messageSystemService.queryAll(criteria,page),HttpStatus.OK);
+    }
+
+    @PostMapping
+    @Log("新增消息_系统")
+    @ApiOperation("新增消息_系统")
+    @PreAuthorize("@el.check('messageSystem:add')")
+    public ResponseEntity<Object> createMessageSystem(@Validated @RequestBody MessageSystem resources){
+        messageSystemService.create(resources);
+        return new ResponseEntity<>(HttpStatus.CREATED);
+    }
+
+    @PutMapping
+    @Log("修改消息_系统")
+    @ApiOperation("修改消息_系统")
+    @PreAuthorize("@el.check('messageSystem:edit')")
+    public ResponseEntity<Object> updateMessageSystem(@Validated @RequestBody MessageSystem resources){
+        messageSystemService.update(resources);
+        return new ResponseEntity<>(HttpStatus.NO_CONTENT);
+    }
+
+    @DeleteMapping
+    @Log("删除消息_系统")
+    @ApiOperation("删除消息_系统")
+    @PreAuthorize("@el.check('messageSystem:del')")
+    public ResponseEntity<Object> deleteMessageSystem(@ApiParam(value = "传ID数组[]") @RequestBody List<Long> ids) {
+        messageSystemService.deleteAll(ids);
+        return new ResponseEntity<>(HttpStatus.OK);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageBuyerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageBuyerService.java
new file mode 100644
index 0000000..9681547
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageBuyerService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageBuyer;
+import com.oying.modules.message.domain.dto.MessageBuyerQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-14
+**/
+public interface MessageBuyerService extends IService<MessageBuyer> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageBuyer> queryAll(MessageBuyerQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageBuyerDto>
+    */
+    List<MessageBuyer> queryAll(MessageBuyerQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageBuyer resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageBuyer resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageBuyer> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageCustomerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageCustomerService.java
new file mode 100644
index 0000000..1510f52
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageCustomerService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageCustomer;
+import com.oying.modules.message.domain.dto.MessageCustomerQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-14
+**/
+public interface MessageCustomerService extends IService<MessageCustomer> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageCustomer> queryAll(MessageCustomerQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageCustomerDto>
+    */
+    List<MessageCustomer> queryAll(MessageCustomerQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageCustomer resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageCustomer resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageCustomer> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageInfoService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageInfoService.java
new file mode 100644
index 0000000..7fe4a6e
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageInfoService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageInfo;
+import com.oying.modules.message.domain.dto.MessageInfoQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-06
+**/
+public interface MessageInfoService extends IService<MessageInfo> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageInfo> queryAll(MessageInfoQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageInfoDto>
+    */
+    List<MessageInfo> queryAll(MessageInfoQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageInfo resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageInfo resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageInfo> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderService.java
new file mode 100644
index 0000000..322f19a
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageOrderService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageOrder;
+import com.oying.modules.message.domain.dto.MessageOrderQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-14
+**/
+public interface MessageOrderService extends IService<MessageOrder> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageOrder> queryAll(MessageOrderQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageOrderDto>
+    */
+    List<MessageOrder> queryAll(MessageOrderQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageOrder resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageOrder resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageOrder> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageSellerService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageSellerService.java
new file mode 100644
index 0000000..b7a64da
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageSellerService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageSeller;
+import com.oying.modules.message.domain.dto.MessageSellerQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-14
+**/
+public interface MessageSellerService extends IService<MessageSeller> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageSeller> queryAll(MessageSellerQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageSellerDto>
+    */
+    List<MessageSeller> queryAll(MessageSellerQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageSeller resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageSeller resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageSeller> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java
new file mode 100644
index 0000000..13838d4
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/MessageSystemService.java
@@ -0,0 +1,60 @@
+package com.oying.modules.message.service;
+
+import com.oying.modules.message.domain.MessageSystem;
+import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
+import java.util.Map;
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务接口
+* @author 李萌
+* @date 2025-05-14
+**/
+public interface MessageSystemService extends IService<MessageSystem> {
+
+    /**
+    * 查询数据分页
+    * @param criteria 条件
+    * @param page 分页参数
+    * @return PageResult
+    */
+    PageResult<MessageSystem> queryAll(MessageSystemQueryCriteria criteria, Page<Object> page);
+
+    /**
+    * 查询所有数据不分页
+    * @param criteria 条件参数
+    * @return List<MessageSystemDto>
+    */
+    List<MessageSystem> queryAll(MessageSystemQueryCriteria criteria);
+
+    /**
+    * 创建
+    * @param resources /
+    */
+    void create(MessageSystem resources);
+
+    /**
+    * 编辑
+    * @param resources /
+    */
+    void update(MessageSystem resources);
+
+    /**
+    * 多选删除
+    * @param ids /
+    */
+    void deleteAll(List<Long> ids);
+
+    /**
+    * 导出数据
+    * @param all 待导出的数据
+    * @param response /
+    * @throws IOException /
+    */
+    void download(List<MessageSystem> all, HttpServletResponse response) throws IOException;
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.java
new file mode 100644
index 0000000..72cf5de
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.java
@@ -0,0 +1,74 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageBuyer;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageBuyerService;
+import com.oying.modules.message.domain.dto.MessageBuyerQueryCriteria;
+import com.oying.modules.message.mapper.MessageBuyerMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-14
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageBuyerServiceImpl extends ServiceImpl<MessageBuyerMapper, MessageBuyer> implements MessageBuyerService {
+
+    private final MessageBuyerMapper messageBuyerMapper;
+
+    @Override
+    public PageResult<MessageBuyer> queryAll(MessageBuyerQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageBuyerMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageBuyer> queryAll(MessageBuyerQueryCriteria criteria){
+        return messageBuyerMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageBuyer resources) {
+        messageBuyerMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageBuyer resources) {
+        MessageBuyer messageBuyer = getById(resources.getBuyerMessageId());
+        messageBuyer.copy(resources);
+        messageBuyerMapper.updateById(messageBuyer);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageBuyerMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageBuyer> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageBuyer messageBuyer : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("买家ID", messageBuyer.getBuyerId());
+            map.put("外键,关联 `message_info` 表", messageBuyer.getMessageId());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.java
new file mode 100644
index 0000000..2c2d81c
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.java
@@ -0,0 +1,76 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageCustomer;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageCustomerService;
+import com.oying.modules.message.domain.dto.MessageCustomerQueryCriteria;
+import com.oying.modules.message.mapper.MessageCustomerMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-14
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageCustomerServiceImpl extends ServiceImpl<MessageCustomerMapper, MessageCustomer> implements MessageCustomerService {
+
+    private final MessageCustomerMapper messageCustomerMapper;
+
+    @Override
+    public PageResult<MessageCustomer> queryAll(MessageCustomerQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageCustomerMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageCustomer> queryAll(MessageCustomerQueryCriteria criteria){
+        return messageCustomerMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageCustomer resources) {
+        messageCustomerMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageCustomer resources) {
+        MessageCustomer messageCustomer = getById(resources.getCustomerMessageId());
+        messageCustomer.copy(resources);
+        messageCustomerMapper.updateById(messageCustomer);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageCustomerMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageCustomer> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageCustomer messageCustomer : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("外键,关联 `message_info` 表", messageCustomer.getMessageId());
+            map.put("关联的订单ID", messageCustomer.getOrderId());
+            map.put("顾客的评价内容", messageCustomer.getReviewContent());
+            map.put("商户的回复内容", messageCustomer.getReplyContent());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageInfoServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageInfoServiceImpl.java
new file mode 100644
index 0000000..12baff9
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageInfoServiceImpl.java
@@ -0,0 +1,79 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageInfo;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageInfoService;
+import com.oying.modules.message.domain.dto.MessageInfoQueryCriteria;
+import com.oying.modules.message.mapper.MessageInfoMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-06
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageInfoServiceImpl extends ServiceImpl<MessageInfoMapper, MessageInfo> implements MessageInfoService {
+
+    private final MessageInfoMapper messageInfoMapper;
+
+    @Override
+    public PageResult<MessageInfo> queryAll(MessageInfoQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageInfoMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageInfo> queryAll(MessageInfoQueryCriteria criteria){
+        return messageInfoMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageInfo resources) {
+        messageInfoMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageInfo resources) {
+        MessageInfo messageInfo = getById(resources.getMessageId());
+        messageInfo.copy(resources);
+        messageInfoMapper.updateById(messageInfo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageInfoMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageInfo> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageInfo messageInfo : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("消息类型('SYSTEM', 'ORDER', 'CUSTOMER')", messageInfo.getMessageType());
+            map.put("消息标题", messageInfo.getTitle());
+            map.put("消息内容", messageInfo.getContent());
+            map.put("消息状态(未读/已读)", messageInfo.getStatus());
+            map.put("消息创建时间", messageInfo.getCreatedAt());
+            map.put("消息更新时间", messageInfo.getUpdatedAt());
+            map.put("消息跳转链接(订单详情或评价详情)", messageInfo.getLink());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderServiceImpl.java
new file mode 100644
index 0000000..dda5ee3
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageOrderServiceImpl.java
@@ -0,0 +1,74 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageOrder;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageOrderService;
+import com.oying.modules.message.domain.dto.MessageOrderQueryCriteria;
+import com.oying.modules.message.mapper.MessageOrderMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-14
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageOrderServiceImpl extends ServiceImpl<MessageOrderMapper, MessageOrder> implements MessageOrderService {
+
+    private final MessageOrderMapper messageOrderMapper;
+
+    @Override
+    public PageResult<MessageOrder> queryAll(MessageOrderQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageOrderMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageOrder> queryAll(MessageOrderQueryCriteria criteria){
+        return messageOrderMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageOrder resources) {
+        messageOrderMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageOrder resources) {
+        MessageOrder messageOrder = getById(resources.getOrderMessageId());
+        messageOrder.copy(resources);
+        messageOrderMapper.updateById(messageOrder);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageOrderMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageOrder> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageOrder messageOrder : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("外键,关联 `message_info` 表", messageOrder.getMessageId());
+            map.put("关联的订单ID", messageOrder.getOrderId());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSellerServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSellerServiceImpl.java
new file mode 100644
index 0000000..bba73a0
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSellerServiceImpl.java
@@ -0,0 +1,74 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageSeller;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageSellerService;
+import com.oying.modules.message.domain.dto.MessageSellerQueryCriteria;
+import com.oying.modules.message.mapper.MessageSellerMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-14
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageSellerServiceImpl extends ServiceImpl<MessageSellerMapper, MessageSeller> implements MessageSellerService {
+
+    private final MessageSellerMapper messageSellerMapper;
+
+    @Override
+    public PageResult<MessageSeller> queryAll(MessageSellerQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageSellerMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageSeller> queryAll(MessageSellerQueryCriteria criteria){
+        return messageSellerMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageSeller resources) {
+        messageSellerMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageSeller resources) {
+        MessageSeller messageSeller = getById(resources.getSellerMessageId());
+        messageSeller.copy(resources);
+        messageSellerMapper.updateById(messageSeller);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageSellerMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageSeller> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageSeller messageSeller : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put(" sellerId",  messageSeller.getSellerId());
+            map.put(" messageId",  messageSeller.getMessageId());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java
new file mode 100644
index 0000000..ba531dd
--- /dev/null
+++ b/oying-system/src/main/java/com/oying/modules/message/service/impl/MessageSystemServiceImpl.java
@@ -0,0 +1,74 @@
+package com.oying.modules.message.service.impl;
+
+import com.oying.modules.message.domain.MessageSystem;
+import com.oying.utils.FileUtil;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.oying.modules.message.service.MessageSystemService;
+import com.oying.modules.message.domain.dto.MessageSystemQueryCriteria;
+import com.oying.modules.message.mapper.MessageSystemMapper;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import com.oying.utils.PageUtil;
+import java.util.List;
+import java.util.Map;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
+import com.oying.utils.PageResult;
+
+/**
+* @description 服务实现
+* @author 李萌
+* @date 2025-05-14
+**/
+@Service
+@RequiredArgsConstructor
+public class MessageSystemServiceImpl extends ServiceImpl<MessageSystemMapper, MessageSystem> implements MessageSystemService {
+
+    private final MessageSystemMapper messageSystemMapper;
+
+    @Override
+    public PageResult<MessageSystem> queryAll(MessageSystemQueryCriteria criteria, Page<Object> page){
+        return PageUtil.toPage(messageSystemMapper.findAll(criteria, page));
+    }
+
+    @Override
+    public List<MessageSystem> queryAll(MessageSystemQueryCriteria criteria){
+        return messageSystemMapper.findAll(criteria);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void create(MessageSystem resources) {
+        messageSystemMapper.insert(resources);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void update(MessageSystem resources) {
+        MessageSystem messageSystem = getById(resources.getSystemMessageId());
+        messageSystem.copy(resources);
+        messageSystemMapper.updateById(messageSystem);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void deleteAll(List<Long> ids) {
+        messageSystemMapper.deleteBatchIds(ids);
+    }
+
+    @Override
+    public void download(List<MessageSystem> all, HttpServletResponse response) throws IOException {
+        List<Map<String, Object>> list = new ArrayList<>();
+        for (MessageSystem messageSystem : all) {
+            Map<String, Object> map = new LinkedHashMap<>();
+            map.put("外键,关联 `message_info` 表", messageSystem.getMessageId());
+            map.put("系统维护时间", messageSystem.getMaintenanceTime());
+            list.add(map);
+        }
+        FileUtil.downloadExcel(list, response);
+    }
+}
diff --git a/oying-system/src/main/resources/mapper/message/MessageBuyerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageBuyerMapper.xml
new file mode 100644
index 0000000..791578a
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageBuyerMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageBuyerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageBuyer">
+        <id column="buyer_message_id" property="buyerMessageId"/>
+        <result column="buyer_id" property="buyerId"/>
+        <result column="message_id" property="messageId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        buyer_message_id, buyer_id, message_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_buyer
+        <where>
+        </where>
+        order by buyer_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageCustomerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageCustomerMapper.xml
new file mode 100644
index 0000000..b8d5c4a
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageCustomerMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageCustomerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageCustomer">
+        <id column="customer_message_id" property="customerMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="order_id" property="orderId"/>
+        <result column="review_content" property="reviewContent"/>
+        <result column="reply_content" property="replyContent"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        customer_message_id, message_id, order_id, review_content, reply_content
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_customer
+        <where>
+        </where>
+        order by customer_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageInfoMapper.xml b/oying-system/src/main/resources/mapper/message/MessageInfoMapper.xml
new file mode 100644
index 0000000..ca72391
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageInfoMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageInfoMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageInfo">
+        <id column="message_id" property="messageId"/>
+        <result column="message_type" property="messageType"/>
+        <result column="title" property="title"/>
+        <result column="content" property="content"/>
+        <result column="status" property="status"/>
+        <result column="created_at" property="createdAt"/>
+        <result column="updated_at" property="updatedAt"/>
+        <result column="link" property="link"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        message_id, message_type, title, content, status, created_at, updated_at, link
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_info
+        <where>
+        </where>
+        order by message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageOrderMapper.xml b/oying-system/src/main/resources/mapper/message/MessageOrderMapper.xml
new file mode 100644
index 0000000..4b04a77
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageOrderMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageOrderMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrder">
+        <id column="order_message_id" property="orderMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="order_id" property="orderId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        order_message_id, message_id, order_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_order
+        <where>
+        </where>
+        order by order_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageSellerMapper.xml b/oying-system/src/main/resources/mapper/message/MessageSellerMapper.xml
new file mode 100644
index 0000000..523df49
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageSellerMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageSellerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSeller">
+        <id column="seller_message_id" property="sellerMessageId"/>
+        <result column="seller_id" property="sellerId"/>
+        <result column="message_id" property="messageId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        seller_message_id, seller_id, message_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_seller
+        <where>
+        </where>
+        order by seller_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml b/oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml
new file mode 100644
index 0000000..3db87d9
--- /dev/null
+++ b/oying-system/src/main/resources/mapper/message/MessageSystemMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageSystemMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSystem">
+        <id column="system_message_id" property="systemMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="maintenance_time" property="maintenanceTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        system_message_id, message_id, maintenance_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_system
+        <where>
+        </where>
+        order by system_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/banner.txt b/oying-system/target/classes/banner.txt
new file mode 100644
index 0000000..d15366e
--- /dev/null
+++ b/oying-system/target/classes/banner.txt
@@ -0,0 +1,15 @@
+                              ,--,
+           ,---.            ,--.'|         ,---,
+          '   ,'\           |  |,      ,-+-. /  |  ,----._,.
+         /   /   |      .--,`--'_     ,--.'|'   | /   /  ' /
+        .   ; ,. :    /_ ./|,' ,'|   |   |  ,"' ||   :     |
+        '   | |: : , ' , ' :'  | |   |   | /  | ||   | .\  .
+        '   | .; :/___/ \: ||  | :   |   | |  | |.   ; ';  |
+        |   :    | .  \  ' |'  : |__ |   | |  |/ '   .   . |
+         \   \  /   \  ;   :|  | '.'||   | |--'   `---`-'| |
+          `----'     \  \  ;;  :    ;|   |/       .'__/\_: |
+                      :  \  \  ,   / '---'        |   :    :
+                       \  ' ;---`-'                \   \  /
+                        `--`                        `--`-'
+
+Spring Boot Version: (${spring-boot.version}),EL-ADMIN version: (1.1)
diff --git a/oying-system/target/classes/com/oying/AppRun.class b/oying-system/target/classes/com/oying/AppRun.class
new file mode 100644
index 0000000..11c5f83
--- /dev/null
+++ b/oying-system/target/classes/com/oying/AppRun.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageBuyer.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageBuyer.class
new file mode 100644
index 0000000..cb1b8fe
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageBuyer.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageCustomer.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageCustomer.class
new file mode 100644
index 0000000..07f35ed
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageCustomer.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageInfo.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageInfo.class
new file mode 100644
index 0000000..3642416
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageInfo.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageOrder.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageOrder.class
new file mode 100644
index 0000000..20fb67d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageOrder.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageSeller.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageSeller.class
new file mode 100644
index 0000000..c30ba11
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageSeller.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/MessageSystem.class b/oying-system/target/classes/com/oying/modules/message/domain/MessageSystem.class
new file mode 100644
index 0000000..efabd7c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/MessageSystem.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.class
new file mode 100644
index 0000000..1c488d4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageBuyerQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.class
new file mode 100644
index 0000000..e3eeee2
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageCustomerQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.class
new file mode 100644
index 0000000..a798c31
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageInfoQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.class
new file mode 100644
index 0000000..7feb386
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageOrderQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.class
new file mode 100644
index 0000000..2da6e74
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSellerQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.class b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.class
new file mode 100644
index 0000000..014efec
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/domain/dto/MessageSystemQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageBuyerMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageBuyerMapper.class
new file mode 100644
index 0000000..3823ca1
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageBuyerMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageCustomerMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageCustomerMapper.class
new file mode 100644
index 0000000..af7851a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageCustomerMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageInfoMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageInfoMapper.class
new file mode 100644
index 0000000..a2d4a17
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageInfoMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageOrderMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageOrderMapper.class
new file mode 100644
index 0000000..7d161b6
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageOrderMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageSellerMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageSellerMapper.class
new file mode 100644
index 0000000..d6dfe44
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageSellerMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/mapper/MessageSystemMapper.class b/oying-system/target/classes/com/oying/modules/message/mapper/MessageSystemMapper.class
new file mode 100644
index 0000000..5765148
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/mapper/MessageSystemMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageBuyerController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageBuyerController.class
new file mode 100644
index 0000000..6db4b2d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageBuyerController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageCustomerController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageCustomerController.class
new file mode 100644
index 0000000..4e11bc7
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageCustomerController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageInfoController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageInfoController.class
new file mode 100644
index 0000000..557c773
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageInfoController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageOrderController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageOrderController.class
new file mode 100644
index 0000000..8b0d9cf
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageOrderController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageSellerController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageSellerController.class
new file mode 100644
index 0000000..a44f1b4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageSellerController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/rest/MessageSystemController.class b/oying-system/target/classes/com/oying/modules/message/rest/MessageSystemController.class
new file mode 100644
index 0000000..ebd138b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/rest/MessageSystemController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageBuyerService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageBuyerService.class
new file mode 100644
index 0000000..0b366c1
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageBuyerService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageCustomerService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageCustomerService.class
new file mode 100644
index 0000000..f972bae
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageCustomerService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageInfoService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageInfoService.class
new file mode 100644
index 0000000..2258906
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageInfoService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageOrderService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageOrderService.class
new file mode 100644
index 0000000..f12638c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageOrderService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageSellerService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageSellerService.class
new file mode 100644
index 0000000..ef2e362
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageSellerService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/MessageSystemService.class b/oying-system/target/classes/com/oying/modules/message/service/MessageSystemService.class
new file mode 100644
index 0000000..2b2e732
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/MessageSystemService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.class
new file mode 100644
index 0000000..88b9dbc
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageBuyerServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.class
new file mode 100644
index 0000000..a853db1
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageCustomerServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageInfoServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageInfoServiceImpl.class
new file mode 100644
index 0000000..3754b04
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageInfoServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageOrderServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageOrderServiceImpl.class
new file mode 100644
index 0000000..65454f6
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageOrderServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSellerServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSellerServiceImpl.class
new file mode 100644
index 0000000..5d46f09
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSellerServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSystemServiceImpl.class b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSystemServiceImpl.class
new file mode 100644
index 0000000..ba04c45
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/message/service/impl/MessageSystemServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/config/JobRunner.class b/oying-system/target/classes/com/oying/modules/quartz/config/JobRunner.class
new file mode 100644
index 0000000..62e607a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/config/JobRunner.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig$QuartzJobFactory.class b/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig$QuartzJobFactory.class
new file mode 100644
index 0000000..679ddf5
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig$QuartzJobFactory.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig.class b/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig.class
new file mode 100644
index 0000000..c68c81e
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/config/QuartzConfig.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzJob.class b/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzJob.class
new file mode 100644
index 0000000..d57c659
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzJob.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzLog.class b/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzLog.class
new file mode 100644
index 0000000..994f241
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/domain/QuartzLog.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/domain/dto/QuartzJobQueryCriteria.class b/oying-system/target/classes/com/oying/modules/quartz/domain/dto/QuartzJobQueryCriteria.class
new file mode 100644
index 0000000..7774788
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/domain/dto/QuartzJobQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzJobMapper.class b/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzJobMapper.class
new file mode 100644
index 0000000..e65ba5d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzJobMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzLogMapper.class b/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzLogMapper.class
new file mode 100644
index 0000000..e359bf8
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/mapper/QuartzLogMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/rest/QuartzJobController.class b/oying-system/target/classes/com/oying/modules/quartz/rest/QuartzJobController.class
new file mode 100644
index 0000000..8a0e56f
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/rest/QuartzJobController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/service/QuartzJobService.class b/oying-system/target/classes/com/oying/modules/quartz/service/QuartzJobService.class
new file mode 100644
index 0000000..ecf1bc8
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/service/QuartzJobService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/service/impl/QuartzJobServiceImpl.class b/oying-system/target/classes/com/oying/modules/quartz/service/impl/QuartzJobServiceImpl.class
new file mode 100644
index 0000000..398ea5f
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/service/impl/QuartzJobServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/task/TestTask.class b/oying-system/target/classes/com/oying/modules/quartz/task/TestTask.class
new file mode 100644
index 0000000..915e928
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/task/TestTask.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/utils/ExecutionJob.class b/oying-system/target/classes/com/oying/modules/quartz/utils/ExecutionJob.class
new file mode 100644
index 0000000..3352613
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/utils/ExecutionJob.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzManage.class b/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzManage.class
new file mode 100644
index 0000000..c130604
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzManage.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzRunnable.class b/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzRunnable.class
new file mode 100644
index 0000000..6bd4ed7
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/quartz/utils/QuartzRunnable.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$1.class b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$1.class
new file mode 100644
index 0000000..ed589c7
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$FixedArithmeticCaptcha.class b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$FixedArithmeticCaptcha.class
new file mode 100644
index 0000000..8035820
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig$FixedArithmeticCaptcha.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig.class b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig.class
new file mode 100644
index 0000000..d8c9dd2
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/CaptchaConfig.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/LoginProperties.class b/oying-system/target/classes/com/oying/modules/security/config/LoginProperties.class
new file mode 100644
index 0000000..deb96ed
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/LoginProperties.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/SecurityProperties.class b/oying-system/target/classes/com/oying/modules/security/config/SecurityProperties.class
new file mode 100644
index 0000000..a579da1
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/SecurityProperties.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/SpringSecurityConfig.class b/oying-system/target/classes/com/oying/modules/security/config/SpringSecurityConfig.class
new file mode 100644
index 0000000..bd6c97f
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/SpringSecurityConfig.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/config/enums/LoginCodeEnum.class b/oying-system/target/classes/com/oying/modules/security/config/enums/LoginCodeEnum.class
new file mode 100644
index 0000000..1b5acfc
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/config/enums/LoginCodeEnum.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/rest/AuthController$1.class b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$1.class
new file mode 100644
index 0000000..b9008eb
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/rest/AuthController$2.class b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$2.class
new file mode 100644
index 0000000..40e9a4b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$2.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/rest/AuthController$3.class b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$3.class
new file mode 100644
index 0000000..23fd79d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/rest/AuthController$3.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/rest/AuthController.class b/oying-system/target/classes/com/oying/modules/security/rest/AuthController.class
new file mode 100644
index 0000000..f84c721
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/rest/AuthController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/rest/OnlineController.class b/oying-system/target/classes/com/oying/modules/security/rest/OnlineController.class
new file mode 100644
index 0000000..d672e33
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/rest/OnlineController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/security/JwtAccessDeniedHandler.class b/oying-system/target/classes/com/oying/modules/security/security/JwtAccessDeniedHandler.class
new file mode 100644
index 0000000..e4de938
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/security/JwtAccessDeniedHandler.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/security/JwtAuthenticationEntryPoint.class b/oying-system/target/classes/com/oying/modules/security/security/JwtAuthenticationEntryPoint.class
new file mode 100644
index 0000000..a8b9f6a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/security/JwtAuthenticationEntryPoint.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/security/TokenConfigurer.class b/oying-system/target/classes/com/oying/modules/security/security/TokenConfigurer.class
new file mode 100644
index 0000000..71418bb
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/security/TokenConfigurer.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/security/TokenFilter.class b/oying-system/target/classes/com/oying/modules/security/security/TokenFilter.class
new file mode 100644
index 0000000..f5045c4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/security/TokenFilter.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/security/TokenProvider.class b/oying-system/target/classes/com/oying/modules/security/security/TokenProvider.class
new file mode 100644
index 0000000..0c267b0
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/security/TokenProvider.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/OnlineUserService.class b/oying-system/target/classes/com/oying/modules/security/service/OnlineUserService.class
new file mode 100644
index 0000000..557e13c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/OnlineUserService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/UserCacheManager.class b/oying-system/target/classes/com/oying/modules/security/service/UserCacheManager.class
new file mode 100644
index 0000000..bfc7cce
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/UserCacheManager.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/UserDetailsServiceImpl.class b/oying-system/target/classes/com/oying/modules/security/service/UserDetailsServiceImpl.class
new file mode 100644
index 0000000..8c4147a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/UserDetailsServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/dto/AuthUserDto.class b/oying-system/target/classes/com/oying/modules/security/service/dto/AuthUserDto.class
new file mode 100644
index 0000000..23da951
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/dto/AuthUserDto.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/dto/AuthorityDto.class b/oying-system/target/classes/com/oying/modules/security/service/dto/AuthorityDto.class
new file mode 100644
index 0000000..1469951
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/dto/AuthorityDto.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/dto/JwtUserDto.class b/oying-system/target/classes/com/oying/modules/security/service/dto/JwtUserDto.class
new file mode 100644
index 0000000..fd2efd0
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/dto/JwtUserDto.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/security/service/dto/OnlineUserDto.class b/oying-system/target/classes/com/oying/modules/security/service/dto/OnlineUserDto.class
new file mode 100644
index 0000000..0cdc0cf
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/security/service/dto/OnlineUserDto.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/Dept.class b/oying-system/target/classes/com/oying/modules/system/domain/Dept.class
new file mode 100644
index 0000000..5f24ed3
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/Dept.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/Dict.class b/oying-system/target/classes/com/oying/modules/system/domain/Dict.class
new file mode 100644
index 0000000..ac55a91
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/Dict.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/DictDetail.class b/oying-system/target/classes/com/oying/modules/system/domain/DictDetail.class
new file mode 100644
index 0000000..fe67abf
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/DictDetail.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/Job.class b/oying-system/target/classes/com/oying/modules/system/domain/Job.class
new file mode 100644
index 0000000..986e921
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/Job.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/Menu.class b/oying-system/target/classes/com/oying/modules/system/domain/Menu.class
new file mode 100644
index 0000000..1a0db92
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/Menu.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/Role.class b/oying-system/target/classes/com/oying/modules/system/domain/Role.class
new file mode 100644
index 0000000..bf1c818
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/Role.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/User.class b/oying-system/target/classes/com/oying/modules/system/domain/User.class
new file mode 100644
index 0000000..1674e2c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/User.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/DeptQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/DeptQueryCriteria.class
new file mode 100644
index 0000000..0e9ab7c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/DeptQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/DictDetailQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/DictDetailQueryCriteria.class
new file mode 100644
index 0000000..7fa073a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/DictDetailQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/DictQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/DictQueryCriteria.class
new file mode 100644
index 0000000..ef29be4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/DictQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/JobQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/JobQueryCriteria.class
new file mode 100644
index 0000000..385926a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/JobQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuMetaVo.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuMetaVo.class
new file mode 100644
index 0000000..521c644
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuMetaVo.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuQueryCriteria.class
new file mode 100644
index 0000000..ae7e35e
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuVo.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuVo.class
new file mode 100644
index 0000000..909d9fc
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/MenuVo.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/RoleQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/RoleQueryCriteria.class
new file mode 100644
index 0000000..788a913
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/RoleQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/UserPassVo.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/UserPassVo.class
new file mode 100644
index 0000000..77960af
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/UserPassVo.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/domain/dto/UserQueryCriteria.class b/oying-system/target/classes/com/oying/modules/system/domain/dto/UserQueryCriteria.class
new file mode 100644
index 0000000..5a70974
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/domain/dto/UserQueryCriteria.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/DeptMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/DeptMapper.class
new file mode 100644
index 0000000..21d70a2
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/DeptMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/DictDetailMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/DictDetailMapper.class
new file mode 100644
index 0000000..773cf17
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/DictDetailMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/DictMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/DictMapper.class
new file mode 100644
index 0000000..f7a10cd
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/DictMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/JobMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/JobMapper.class
new file mode 100644
index 0000000..9049922
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/JobMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/MenuMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/MenuMapper.class
new file mode 100644
index 0000000..866ab0d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/MenuMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/RoleDeptMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/RoleDeptMapper.class
new file mode 100644
index 0000000..db1f6de
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/RoleDeptMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/RoleMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/RoleMapper.class
new file mode 100644
index 0000000..d16a849
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/RoleMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/RoleMenuMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/RoleMenuMapper.class
new file mode 100644
index 0000000..3e1c2a8
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/RoleMenuMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/UserJobMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/UserJobMapper.class
new file mode 100644
index 0000000..1738939
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/UserJobMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/UserMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/UserMapper.class
new file mode 100644
index 0000000..c76c47a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/UserMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/mapper/UserRoleMapper.class b/oying-system/target/classes/com/oying/modules/system/mapper/UserRoleMapper.class
new file mode 100644
index 0000000..35411f3
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/mapper/UserRoleMapper.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/DeptController.class b/oying-system/target/classes/com/oying/modules/system/rest/DeptController.class
new file mode 100644
index 0000000..e55319b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/DeptController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/DictController.class b/oying-system/target/classes/com/oying/modules/system/rest/DictController.class
new file mode 100644
index 0000000..82c7a9c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/DictController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/DictDetailController.class b/oying-system/target/classes/com/oying/modules/system/rest/DictDetailController.class
new file mode 100644
index 0000000..a2453ed
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/DictDetailController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/JobController.class b/oying-system/target/classes/com/oying/modules/system/rest/JobController.class
new file mode 100644
index 0000000..d25f80a
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/JobController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/LimitController.class b/oying-system/target/classes/com/oying/modules/system/rest/LimitController.class
new file mode 100644
index 0000000..a805da4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/LimitController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/MenuController.class b/oying-system/target/classes/com/oying/modules/system/rest/MenuController.class
new file mode 100644
index 0000000..20bc683
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/MenuController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/MonitorController.class b/oying-system/target/classes/com/oying/modules/system/rest/MonitorController.class
new file mode 100644
index 0000000..cc8a76b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/MonitorController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/RoleController.class b/oying-system/target/classes/com/oying/modules/system/rest/RoleController.class
new file mode 100644
index 0000000..36536ae
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/RoleController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/UserController.class b/oying-system/target/classes/com/oying/modules/system/rest/UserController.class
new file mode 100644
index 0000000..3957cd4
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/UserController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/VerifyController$1.class b/oying-system/target/classes/com/oying/modules/system/rest/VerifyController$1.class
new file mode 100644
index 0000000..85feaf0
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/VerifyController$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/rest/VerifyController.class b/oying-system/target/classes/com/oying/modules/system/rest/VerifyController.class
new file mode 100644
index 0000000..1ddae50
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/rest/VerifyController.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/DataService.class b/oying-system/target/classes/com/oying/modules/system/service/DataService.class
new file mode 100644
index 0000000..b52d299
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/DataService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/DeptService.class b/oying-system/target/classes/com/oying/modules/system/service/DeptService.class
new file mode 100644
index 0000000..e319111
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/DeptService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/DictDetailService.class b/oying-system/target/classes/com/oying/modules/system/service/DictDetailService.class
new file mode 100644
index 0000000..36e713b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/DictDetailService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/DictService.class b/oying-system/target/classes/com/oying/modules/system/service/DictService.class
new file mode 100644
index 0000000..86e2e12
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/DictService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/JobService.class b/oying-system/target/classes/com/oying/modules/system/service/JobService.class
new file mode 100644
index 0000000..4099f6b
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/JobService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/MenuService.class b/oying-system/target/classes/com/oying/modules/system/service/MenuService.class
new file mode 100644
index 0000000..b6e4360
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/MenuService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/MonitorService.class b/oying-system/target/classes/com/oying/modules/system/service/MonitorService.class
new file mode 100644
index 0000000..77f8f41
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/MonitorService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/RoleService.class b/oying-system/target/classes/com/oying/modules/system/service/RoleService.class
new file mode 100644
index 0000000..b0f10aa
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/RoleService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/UserService.class b/oying-system/target/classes/com/oying/modules/system/service/UserService.class
new file mode 100644
index 0000000..764fdce
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/UserService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/VerifyService.class b/oying-system/target/classes/com/oying/modules/system/service/VerifyService.class
new file mode 100644
index 0000000..78b27d2
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/VerifyService.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl$1.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl$1.class
new file mode 100644
index 0000000..422a222
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl.class
new file mode 100644
index 0000000..eaac65c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DataServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl$1.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl$1.class
new file mode 100644
index 0000000..155892c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl.class
new file mode 100644
index 0000000..7fcacb7
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DeptServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DictDetailServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DictDetailServiceImpl.class
new file mode 100644
index 0000000..60b1ce3
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DictDetailServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/DictServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/DictServiceImpl.class
new file mode 100644
index 0000000..350974c
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/DictServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/JobServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/JobServiceImpl.class
new file mode 100644
index 0000000..575fb05
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/JobServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/MenuServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/MenuServiceImpl.class
new file mode 100644
index 0000000..d1eea95
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/MenuServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/MonitorServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/MonitorServiceImpl.class
new file mode 100644
index 0000000..6dcdd1d
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/MonitorServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/RoleServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/RoleServiceImpl.class
new file mode 100644
index 0000000..4f3cb77
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/RoleServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl$1.class b/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl$1.class
new file mode 100644
index 0000000..76c0c50
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl$1.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl.class
new file mode 100644
index 0000000..0f0d532
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/UserServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/modules/system/service/impl/VerifyServiceImpl.class b/oying-system/target/classes/com/oying/modules/system/service/impl/VerifyServiceImpl.class
new file mode 100644
index 0000000..956aa19
--- /dev/null
+++ b/oying-system/target/classes/com/oying/modules/system/service/impl/VerifyServiceImpl.class
Binary files differ
diff --git a/oying-system/target/classes/com/oying/sysrunner/SystemRunner.class b/oying-system/target/classes/com/oying/sysrunner/SystemRunner.class
new file mode 100644
index 0000000..6791864
--- /dev/null
+++ b/oying-system/target/classes/com/oying/sysrunner/SystemRunner.class
Binary files differ
diff --git a/oying-system/target/classes/config/application-dev.yml b/oying-system/target/classes/config/application-dev.yml
new file mode 100644
index 0000000..1880cf2
--- /dev/null
+++ b/oying-system/target/classes/config/application-dev.yml
@@ -0,0 +1,118 @@
+#配置数据源
+spring:
+  datasource:
+    druid:
+      db-type: com.alibaba.druid.pool.DruidDataSource
+      driverClassName: com.p6spy.engine.spy.P6SpyDriver
+      url: jdbc:p6spy:mysql://118.145.136.116:3306/oying?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
+      username: oying
+      password: Ik52981698
+      # 初始连接数,建议设置为与最小空闲连接数相同
+      initial-size: 20
+      # 最小空闲连接数,保持足够的空闲连接以应对请求
+      min-idle: 20
+      # 最大连接数,根据并发需求适当增加
+      max-active: 50
+      # 获取连接超时时间(毫秒),调整以满足响应时间要求
+      max-wait: 3000
+      # 启用KeepAlive机制,保持长连接
+      keep-alive: true
+      # 连接有效性检测间隔时间(毫秒),定期检查连接的健康状态
+      time-between-eviction-runs-millis: 60000
+      # 连接在池中最小生存时间(毫秒),确保连接在池中至少存在一段时间
+      min-evictable-idle-time-millis: 300000
+      # 连接在池中最大生存时间(毫秒),防止连接在池中停留过长
+      max-evictable-idle-time-millis: 900000
+      # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
+      test-while-idle: true
+      # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
+      test-on-borrow: true
+      # 是否在归还到池中前进行检验
+      test-on-return: false
+      # 停用 com_ping 探活机制
+      use-ping-method: false
+      # 检测连接是否有效
+      validation-query: SELECT 1
+      # 配置监控统计
+      webStatFilter:
+        enabled: true
+      stat-view-servlet:
+        enabled: true
+        url-pattern: /druid/*
+        reset-enable: false
+      filter:
+        stat:
+          enabled: true
+          # 记录慢SQL
+          log-slow-sql: true
+          slow-sql-millis: 2000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+
+# 登录相关配置
+login:
+  #  是否限制单用户登录
+  single-login: false
+  # Redis用户登录缓存配置
+  user-cache:
+    # 存活时间/秒
+    idle-time: 21600
+  #  验证码
+  code:
+    #  验证码类型配置 查看 LoginProperties 类
+    code-type: SPEC
+    #  登录图形验证码有效时间/分钟
+    expiration: 2
+    #  验证码高度
+    width: 111
+    #  验证码宽度
+    height: 36
+    # 内容长度
+    length: 4
+    # 字体名称,为空则使用默认字体
+    font-name:
+    # 字体大小
+    font-size: 25
+
+#jwt
+jwt:
+  header: Authorization
+  # 令牌前缀
+  token-start-with: Bearer
+  # 必须使用最少88位的Base64对该令牌进行编码
+  base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
+  # 令牌过期时间 此处单位/毫秒 ,默认4小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
+  token-validity-in-seconds: 14400000
+  # 在线用户key
+  online-key: "online_token:"
+  # 验证码
+  code-key: "captcha_code:"
+  # token 续期检查时间范围(默认30分钟,单位毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
+  detect: 1800000
+  # 续期时间范围,默认1小时,单位毫秒
+  renew: 3600000
+
+#是否允许生成代码,生产环境设置为false
+generator:
+  enabled: true
+
+#是否开启 swagger-ui
+swagger:
+  enabled: true
+
+# 文件存储路径
+file:
+  mac:
+    path: ~/file/
+    avatar: ~/avatar/
+  linux:
+    path: /opt/oying/file/
+    avatar: /opt/oying/avatar/
+  windows:
+    path: C:\oying\file\
+    avatar: C:\oying\avatar\
+  # 文件大小 /M
+  maxSize: 100
+  avatarMaxSize: 5
diff --git a/oying-system/target/classes/config/application-prod.yml b/oying-system/target/classes/config/application-prod.yml
new file mode 100644
index 0000000..f3cc9c8
--- /dev/null
+++ b/oying-system/target/classes/config/application-prod.yml
@@ -0,0 +1,129 @@
+#配置数据源
+spring:
+  datasource:
+    druid:
+      db-type: com.alibaba.druid.pool.DruidDataSource
+      driverClassName: com.mysql.cj.jdbc.Driver
+      url: jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:oying}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
+      username: ${DB_USER:root}
+      password: ${DB_PWD:123456}
+      # 初始连接数,建议设置为与最小空闲连接数相同
+      initial-size: 20
+      # 最小空闲连接数,保持足够的空闲连接以应对请求
+      min-idle: 20
+      # 最大连接数,根据并发需求适当增加
+      max-active: 50
+      # 获取连接超时时间(毫秒),调整以满足响应时间要求
+      max-wait: 3000
+      # 启用KeepAlive机制,保持长连接
+      keep-alive: true
+      # 连接有效性检测间隔时间(毫秒),定期检查连接的健康状态
+      time-between-eviction-runs-millis: 60000
+      # 连接在池中最小生存时间(毫秒),确保连接在池中至少存在一段时间
+      min-evictable-idle-time-millis: 300000
+      # 连接在池中最大生存时间(毫秒),防止连接在池中停留过长
+      max-evictable-idle-time-millis: 900000
+      # 指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除
+      test-while-idle: true
+      # 指明是否在从池中取出连接前进行检验,如果检验失败, 则从池中去除连接并尝试取出另一个
+      test-on-borrow: true
+      # 是否在归还到池中前进行检验
+      test-on-return: false
+      # 停用 com_ping 探活机制
+      use-ping-method: false
+      # 检测连接是否有效
+      validation-query: SELECT 1
+      # 配置监控统计
+      webStatFilter:
+        enabled: true
+      stat-view-servlet:
+        allow:
+        enabled: true
+        # 控制台管理用户名和密码
+        url-pattern: /druid/*
+        reset-enable: false
+        login-username: admin
+        login-password: 123456
+      filter:
+        stat:
+          enabled: true
+          # 记录慢SQL
+          log-slow-sql: true
+          slow-sql-millis: 1000
+          merge-sql: true
+        wall:
+          config:
+            multi-statement-allow: true
+
+# 登录相关配置
+login:
+  #  是否限制单用户登录
+  single-login: false
+  # Redis用户登录缓存配置
+  user-cache:
+    # 存活时间/秒
+    idle-time: 21600
+  #  验证码
+  code:
+    #  验证码类型配置 查看 LoginProperties 类
+    code-type: SPEC
+    #  登录图形验证码有效时间/分钟
+    expiration: 2
+    #  验证码高度
+    width: 111
+    #  验证码宽度
+    height: 36
+    # 内容长度
+    length: 4
+    # 字体名称,为空则使用默认字体,如遇到线上乱码,设置其他字体即可
+    font-name:
+    # 字体大小
+    font-size: 25
+
+#jwt
+jwt:
+  header: Authorization
+  # 令牌前缀
+  token-start-with: Bearer
+  # 必须使用最少88位的Base64对该令牌进行编码
+  base64-secret: ZmQ0ZGI5NjQ0MDQwY2I4MjMxY2Y3ZmI3MjdhN2ZmMjNhODViOTg1ZGE0NTBjMGM4NDA5NzYxMjdjOWMwYWRmZTBlZjlhNGY3ZTg4Y2U3YTE1ODVkZDU5Y2Y3OGYwZWE1NzUzNWQ2YjFjZDc0NGMxZWU2MmQ3MjY1NzJmNTE0MzI=
+  # 令牌过期时间 此处单位/毫秒 ,默认2小时,可在此网站生成 https://www.convertworld.com/zh-hans/time/milliseconds.html
+  token-validity-in-seconds: 7200000
+  # 在线用户key
+  online-key: "online_token:"
+  # 验证码
+  code-key: "captcha_code:"
+  # token 续期检查时间范围(默认30分钟,单位默认毫秒),在token即将过期的一段时间内用户操作了,则给用户的token续期
+  detect: 1800000
+  # 续期时间范围,默认 1小时,这里单位毫秒
+  renew: 3600000
+
+#是否允许生成代码,生产环境设置为false
+generator:
+  enabled: false
+
+#如果生产环境要开启swagger,需要配置请求地址
+#springfox:
+#  documentation:
+#    swagger:
+#      v2:
+#        host: # 接口域名或外网ip
+
+#是否开启 swagger-ui
+swagger:
+  enabled: false
+
+# 文件存储路径
+file:
+  mac:
+    path: ~/file/
+    avatar: ~/avatar/
+  linux:
+    path: /opt/oying/file/
+    avatar: /opt/oying/avatar/
+  windows:
+    path: C:\oying\file\
+    avatar: C:\oying\avatar\
+  # 文件大小 /M
+  maxSize: 100
+  avatarMaxSize: 5
diff --git a/oying-system/target/classes/config/application-quartz.yml b/oying-system/target/classes/config/application-quartz.yml
new file mode 100644
index 0000000..740462c
--- /dev/null
+++ b/oying-system/target/classes/config/application-quartz.yml
@@ -0,0 +1,29 @@
+# 配置 quartz 分布式支持, sql 文件在 sql 目录下,需要导入到数据库,并且需要修改 application.yml 文件的 active: dev 配置
+spring:
+  quartz:
+    # 必需,指定使用 JDBC 存储
+    job-store-type: jdbc
+    properties:
+      org:
+        quartz:
+          scheduler:
+            # 必需,指定调度器实例的名称
+            instanceName: oying
+            # 必需,指定调度器实例的 ID
+            instanceId: auto
+          threadPool:
+            # 可选,线程池的线程数量,可以根据需要调整
+            threadCount: 5
+          jobStore:
+            # 可选,如果你不需要集群,可以去掉
+            isClustered: true
+            # 可选,集群检查间隔时间,可以根据需要调整
+            clusterCheckinInterval: 10000
+            # 必需,指定 JDBC 驱动代理类
+            driverDelegateClass: org.quartz.impl.jdbcjobstore.StdJDBCDelegate
+            # 可选,是否使用属性存储,可以根据需要调整
+            useProperties: false
+            # 必需,指定表的前缀
+            tablePrefix: qrtz_
+            # 可选,指定误触发阈值,可以根据需要调整
+            misfireThreshold: 60000
diff --git a/oying-system/target/classes/config/application.yml b/oying-system/target/classes/config/application.yml
new file mode 100644
index 0000000..d139423
--- /dev/null
+++ b/oying-system/target/classes/config/application.yml
@@ -0,0 +1,73 @@
+server:
+  port: 8000
+  http2:
+    # 启用 HTTP/2 支持,提升传输效率
+    enabled: true
+  compression:
+    # 启用 GZIP 压缩,减少传输数据量
+    enabled: true
+    # 需要压缩的 MIME 类型
+    mime-types: text/html, text/xml, text/plain, application/json
+    # 最小压缩响应大小(字节)
+    min-response-size: 1024
+
+mybatis-plus:
+  configuration:
+    # 关闭二级缓存
+    cache-enabled: false
+    # 设置本地缓存作用域
+    local-cache-scope: SESSION
+
+spring:
+  freemarker:
+    check-template-location: false
+  profiles:
+    # 激活的环境,如果需要 quartz 分布式支持,需要修改 active: dev,quartz
+    active: dev
+  data:
+    redis:
+      repositories:
+        enabled: false
+#  pid:
+#    file: /自行指定位置/oying.pid
+
+  redis:
+    #数据库索引
+    database: ${REDIS_DB:1}
+    host: ${REDIS_HOST:127.0.0.1}
+    port: ${REDIS_PORT:6379}
+    password: ${REDIS_PWD:}
+    #连接超时时间
+    timeout: 5000
+    # 连接池配置
+    lettuce:
+      pool:
+        # 连接池最大连接数
+        max-active: 30
+        # 连接池最大阻塞等待时间(毫秒),负值表示没有限制
+        max-wait: -1
+        # 连接池中的最大空闲连接数
+        max-idle: 20
+        # 连接池中的最小空闲连接数
+        min-idle: 1
+
+task:
+  pool:
+    # 核心线程池大小
+    core-pool-size: 10
+    # 最大线程数
+    max-pool-size: 30
+    # 活跃时间
+    keep-alive-seconds: 60
+    # 队列容量
+    queue-capacity: 50
+
+#邮箱验证码有效时间/秒
+code:
+  expiration: 300
+
+#密码加密传输,前端公钥加密,后端私钥解密
+rsa:
+  private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAI1IEx2CBKbywvVmNvfRycty5uysu7ZfeLdOwJst4cACaPhhdSUq5CqdDRMcZeRbOyt8ec09Ztz5qtU6Ve+YwOHuxUPys0IGOSxrXF5U80DnI8ux4k82w8MoCjtB0myF8QsCaCF+uDBhbG1/yQbyhZ3pWrZpH2n9mjaitTtaQVdNAgMBAAECgYA6oLot+JJtpTf6FdyholEXOCtT86pB2ASELQ4IV1XjFBzzVZ4DOnVMqbePQq2VwbYgKZtx7BUPhhu6OGcI8l63v8OTAgoNovCksSA8rSPfCs593JmKFVShsHApkHAH/Klo/PsEV0QvpG9Uf0hTOdNiqbHWAorA/PnuaBr0/anygQJBAPdtuflC9JxPxaySBz2Up7g1QG9xHW459U/2M0Mn/EI+RJdd7vjITeofZ52yIElOmmgjU8XK3edncE1H1YhaLbkCQQCSLQDKcDFHIw0KRm0a51nTknoi23ZloxQEt3/86zJurzheujX3Oo9cY5FvzlvHKWqgAvAiBiivt9hGWnxeNOA1AkEAiHkpPudDbIRDj+/rtnesGtqkc9N8XDPzruspUz1W0mLuCl9xVB+Hej9gM4bwb/6/A/mYV1ySEPTo6HdavB6hYQJAJv8yks9TljLXq8IWIXNPF46gXuRFtd/H22pJDuSAU98THtJ2yzooPPGjPzzCZ2O5Om8OOUWDXT2iyUIio89fcQJAUYS2803tLFouTzaa+SR3kpuqEi6en1yrJNGDe7a4tfGjhQBLmjhCOMuZAjkYYfnN8HiN+dRdKMu/8rpPpC0NKg==
+
+
diff --git a/oying-system/target/classes/logback.xml b/oying-system/target/classes/logback.xml
new file mode 100644
index 0000000..bba005b
--- /dev/null
+++ b/oying-system/target/classes/logback.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration scan="true" scanPeriod="30 seconds" debug="false">
+    <contextName>oying</contextName>
+    <property name="log.charset" value="utf-8" />
+    <property name="log.pattern" value="%contextName- %red(%d{yyyy-MM-dd HH:mm:ss}) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{36}) - %msg%n" />
+
+    <!--输出到控制台-->
+    <appender name="console" class="ch.qos.logback.core.ConsoleAppender">
+        <encoder>
+            <pattern>${log.pattern}</pattern>
+            <charset>${log.charset}</charset>
+        </encoder>
+    </appender>
+
+    <!--普通日志输出到控制台-->
+    <root level="info">
+        <appender-ref ref="console" />
+    </root>
+
+    <!-- Spring 日志级别控制 -->
+    <logger name="org.springframework" level="warn" />
+
+    <!-- DnsServerAddressStreamProviders调整为ERROR -->
+    <logger name="io.netty.resolver.dns.DnsServerAddressStreamProviders" level="ERROR"/>
+
+    <!-- 设置其他类的日志级别为 ERROR -->
+    <logger name="org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/]" level="ERROR"/>
+    <logger name="org.springframework.web.servlet.DispatcherServlet" level="ERROR"/>
+</configuration>
diff --git a/oying-system/target/classes/mapper/message/MessageBuyerMapper.xml b/oying-system/target/classes/mapper/message/MessageBuyerMapper.xml
new file mode 100644
index 0000000..791578a
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageBuyerMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageBuyerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageBuyer">
+        <id column="buyer_message_id" property="buyerMessageId"/>
+        <result column="buyer_id" property="buyerId"/>
+        <result column="message_id" property="messageId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        buyer_message_id, buyer_id, message_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_buyer
+        <where>
+        </where>
+        order by buyer_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/message/MessageCustomerMapper.xml b/oying-system/target/classes/mapper/message/MessageCustomerMapper.xml
new file mode 100644
index 0000000..b8d5c4a
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageCustomerMapper.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageCustomerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageCustomer">
+        <id column="customer_message_id" property="customerMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="order_id" property="orderId"/>
+        <result column="review_content" property="reviewContent"/>
+        <result column="reply_content" property="replyContent"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        customer_message_id, message_id, order_id, review_content, reply_content
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_customer
+        <where>
+        </where>
+        order by customer_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/message/MessageInfoMapper.xml b/oying-system/target/classes/mapper/message/MessageInfoMapper.xml
new file mode 100644
index 0000000..ca72391
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageInfoMapper.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageInfoMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageInfo">
+        <id column="message_id" property="messageId"/>
+        <result column="message_type" property="messageType"/>
+        <result column="title" property="title"/>
+        <result column="content" property="content"/>
+        <result column="status" property="status"/>
+        <result column="created_at" property="createdAt"/>
+        <result column="updated_at" property="updatedAt"/>
+        <result column="link" property="link"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        message_id, message_type, title, content, status, created_at, updated_at, link
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_info
+        <where>
+        </where>
+        order by message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/message/MessageOrderMapper.xml b/oying-system/target/classes/mapper/message/MessageOrderMapper.xml
new file mode 100644
index 0000000..4b04a77
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageOrderMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageOrderMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageOrder">
+        <id column="order_message_id" property="orderMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="order_id" property="orderId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        order_message_id, message_id, order_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_order
+        <where>
+        </where>
+        order by order_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/message/MessageSellerMapper.xml b/oying-system/target/classes/mapper/message/MessageSellerMapper.xml
new file mode 100644
index 0000000..523df49
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageSellerMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageSellerMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSeller">
+        <id column="seller_message_id" property="sellerMessageId"/>
+        <result column="seller_id" property="sellerId"/>
+        <result column="message_id" property="messageId"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        seller_message_id, seller_id, message_id
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_seller
+        <where>
+        </where>
+        order by seller_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/message/MessageSystemMapper.xml b/oying-system/target/classes/mapper/message/MessageSystemMapper.xml
new file mode 100644
index 0000000..3db87d9
--- /dev/null
+++ b/oying-system/target/classes/mapper/message/MessageSystemMapper.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.message.mapper.MessageSystemMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.message.domain.MessageSystem">
+        <id column="system_message_id" property="systemMessageId"/>
+        <result column="message_id" property="messageId"/>
+        <result column="maintenance_time" property="maintenanceTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        system_message_id, message_id, maintenance_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from message_system
+        <where>
+        </where>
+        order by system_message_id desc
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/oying-system/target/classes/mapper/quartz/QuartzJobMapper.xml b/oying-system/target/classes/mapper/quartz/QuartzJobMapper.xml
new file mode 100644
index 0000000..5a6bcb7
--- /dev/null
+++ b/oying-system/target/classes/mapper/quartz/QuartzJobMapper.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.quartz.mapper.QuartzJobMapper">
+
+    <resultMap id="BaseResultMap" type="com.oying.modules.quartz.domain.QuartzJob">
+        <id column="job_id" property="id" jdbcType="BIGINT"/>
+        <result column="job_name" property="jobName" jdbcType="VARCHAR"/>
+        <result column="bean_name" property="beanName" jdbcType="VARCHAR"/>
+        <result column="method_name" property="methodName" jdbcType="VARCHAR"/>
+        <result column="params" property="params" jdbcType="VARCHAR"/>
+        <result column="cron_expression" property="cronExpression" jdbcType="VARCHAR"/>
+        <result column="is_pause" property="isPause" jdbcType="TINYINT"/>
+        <result column="person_in_charge" property="personInCharge" jdbcType="VARCHAR"/>
+        <result column="email" property="email" jdbcType="VARCHAR"/>
+        <result column="sub_task" property="subTask" jdbcType="VARCHAR"/>
+        <result column="pause_after_failure" property="pauseAfterFailure" jdbcType="TINYINT"/>
+        <result column="description" property="description" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="create_by" property="createBy" jdbcType="VARCHAR"/>
+        <result column="update_by" property="updateBy" jdbcType="VARCHAR"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        job_id, job_name, bean_name, method_name, params, cron_expression, is_pause, person_in_charge, email, sub_task, pause_after_failure, description, create_time, update_time, create_by, update_by
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM sys_quartz_job
+        <where>
+            <if test="criteria.jobName != null and criteria.jobName != ''">
+                AND job_name LIKE CONCAT('%',#{criteria.jobName},'%')
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+                AND update_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+            </if>
+        </where>
+        ORDER BY job_id DESC
+    </select>
+
+    <select id="findByIsPauseIsFalse" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM sys_quartz_job
+        WHERE is_pause = 0
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/quartz/QuartzLogMapper.xml b/oying-system/target/classes/mapper/quartz/QuartzLogMapper.xml
new file mode 100644
index 0000000..a7c0127
--- /dev/null
+++ b/oying-system/target/classes/mapper/quartz/QuartzLogMapper.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.quartz.mapper.QuartzLogMapper">
+
+    <resultMap id="BaseResultMap" type="com.oying.modules.quartz.domain.QuartzLog">
+        <id column="log_id" property="id" jdbcType="BIGINT"/>
+        <result column="job_name" property="jobName" jdbcType="VARCHAR"/>
+        <result column="bean_name" property="beanName" jdbcType="VARCHAR"/>
+        <result column="method_name" property="methodName" jdbcType="VARCHAR"/>
+        <result column="params" property="params" jdbcType="VARCHAR"/>
+        <result column="cron_expression" property="cronExpression" jdbcType="VARCHAR"/>
+        <result column="is_success" property="isSuccess" jdbcType="VARCHAR"/>
+        <result column="exception_detail" property="exceptionDetail" jdbcType="BIGINT"/>
+        <result column="time" property="time" jdbcType="BIGINT"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        log_id, job_name, bean_name, method_name, params, cron_expression, is_success, exception_detail, time, create_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        FROM sys_quartz_log
+        <where>
+            <if test="criteria.jobName != null and criteria.jobName != ''">
+                AND job_name LIKE CONCAT('%',#{criteria.jobName},'%')
+            </if>
+            <if test="criteria.isSuccess != null">
+                AND is_success = #{criteria.isSuccess}
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+                AND create_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+            </if>
+        </where>
+        ORDER BY log_id DESC
+    </select>
+
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/DeptMapper.xml b/oying-system/target/classes/mapper/system/DeptMapper.xml
new file mode 100644
index 0000000..10be3a2
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/DeptMapper.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.DeptMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Dept">
+        <id column="dept_id" property="id"/>
+        <result column="dept_sort" property="deptSort"/>
+        <result column="name" property="name"/>
+        <result column="enabled" property="enabled"/>
+        <result column="pid" property="pid"/>
+        <result column="sub_count" property="subCount"/>
+        <result column="create_by" property="createBy"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <sql id="BaseResultMap">
+        dept_id, name, pid, sub_count, create_time, update_time, create_by, update_by, enabled, dept_sort
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="BaseResultMap"/>
+        from sys_dept
+        <where>
+            <if test="criteria.ids != null and criteria.ids.size() > 0">
+                and dept_id in
+                <foreach collection="criteria.ids" item="id" open="(" separator="," close=")">
+                    #{id}
+                </foreach>
+            </if>
+            <if test="criteria.name != null and criteria.name != ''">
+                and name like concat('%', #{criteria.name}, '%')
+            </if>
+            <if test="criteria.enabled != null">
+                and enabled = #{criteria.enabled}
+            </if>
+            <if test="criteria.pid != null">
+                and pid = #{criteria.pid}
+            </if>
+            <if test="criteria.pidIsNull != null">
+                and pid is null
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
+                and create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+        order by dept_sort
+    </select>
+
+    <select id="findByPid" resultMap="BaseResultMap">
+        select
+        <include refid="BaseResultMap"/>
+        from sys_dept
+        where pid = #{pid}
+    </select>
+
+    <select id="findByPidIsNull" resultMap="BaseResultMap">
+        select
+        <include refid="BaseResultMap"/>
+        from sys_dept
+        where pid is null
+    </select>
+
+    <select id="findByRoleId" resultType="com.oying.modules.system.domain.Dept">
+        select d.dept_id as id, d.name, d.pid, d.sub_count, d.create_time, d.update_time, d.create_by, d.update_by, d.enabled, d.dept_sort
+        from sys_dept d, sys_roles_depts r
+        where d.dept_id = r.dept_id and r.role_id = #{roleId}
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/DictDetailMapper.xml b/oying-system/target/classes/mapper/system/DictDetailMapper.xml
new file mode 100644
index 0000000..ca3d153
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/DictDetailMapper.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.DictDetailMapper">
+<resultMap id="BaseResultMap" type="com.oying.modules.system.domain.DictDetail">
+        <id column="detail_id" property="id" jdbcType="BIGINT"/>
+        <result column="label" property="label" jdbcType="VARCHAR"/>
+        <result column="value" property="value" jdbcType="VARCHAR"/>
+        <result column="dict_sort" property="dictSort" jdbcType="INTEGER"/>
+        <result column="create_by" property="createBy" jdbcType="VARCHAR"/>
+        <result column="update_by" property="updateBy" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <association property="dict" javaType="com.oying.modules.system.domain.Dict">
+            <id column="dict_id" property="id" jdbcType="BIGINT"/>
+            <result column="name" property="name" jdbcType="VARCHAR"/>
+        </association>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        dd.detail_id, dd.label, dd.`value`, dd.`dict_sort`, dd.create_by, dd.update_by, dd.create_time, dd.update_time, d.dict_id, d.name
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select <include refid="Base_Column_List"/>
+        from sys_dict_detail dd, sys_dict d
+        where dd.dict_id = d.dict_id
+        <if test="criteria.dictName != null and criteria.dictName != ''">
+            and d.name = #{criteria.dictName}
+        </if>
+        <if test="criteria.label != null and criteria.label != ''">
+            and dd.label = #{criteria.label}
+        </if>
+        order by dd.dict_sort, dd.dict_id desc
+    </select>
+
+    <select id="findByDictName" resultMap="BaseResultMap">
+        select <include refid="Base_Column_List"/>
+        from sys_dict_detail dd, sys_dict d
+        where dd.dict_id = d.dict_id
+        <if test="name != null and name != ''">
+            and d.name = #{name}
+        </if>
+        order by dd.dict_sort
+    </select>
+
+    <delete id="deleteByDictBatchIds">
+        delete from sys_dict_detail
+        where dict_id in
+        <foreach collection="dictIds" item="item" index="index" open="(" separator="," close=")">
+            #{item}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/DictMapper.xml b/oying-system/target/classes/mapper/system/DictMapper.xml
new file mode 100644
index 0000000..355f588
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/DictMapper.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.DictMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Dict">
+        <id column="dict_id" property="id" jdbcType="BIGINT"/>
+        <result column="name" property="name" jdbcType="VARCHAR"/>
+        <result column="description" property="description" jdbcType="VARCHAR"/>
+        <result column="create_by" property="createBy" jdbcType="VARCHAR"/>
+        <result column="update_by" property="updateBy" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        d.dict_id, d.name, d.description, d.create_by, d.update_by, d.create_time, d.update_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        SELECT <include refid="Base_Column_List"/>
+        from sys_dict d
+        <where>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                and (
+                d.name like concat('%', #{criteria.blurry}, '%')
+                or d.description like concat('%', #{criteria.blurry}, '%')
+                )
+            </if>
+        </where>
+        order by d.dict_id desc
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/JobMapper.xml b/oying-system/target/classes/mapper/system/JobMapper.xml
new file mode 100644
index 0000000..d0b210d
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/JobMapper.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.JobMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Job">
+        <id column="job_id" property="id"/>
+        <result column="name" property="name"/>
+        <result column="job_sort" property="jobSort"/>
+        <result column="enabled" property="enabled"/>
+        <result column="create_by" property="createBy"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        job_id, name, job_sort, enabled, create_by, update_by, create_time, update_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_job
+        <where>
+            <if test="criteria.name != null and criteria.name != ''">
+                and name like concat('%', #{criteria.name}, '%')
+            </if>
+            <if test="criteria.enabled != null">
+                and enabled = #{criteria.enabled}
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
+                and create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+        order by job_sort, job_id desc
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/MenuMapper.xml b/oying-system/target/classes/mapper/system/MenuMapper.xml
new file mode 100644
index 0000000..65993c1
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/MenuMapper.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.MenuMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Menu">
+        <id column="menu_id" property="id"/>
+        <result column="title" property="title"/>
+        <result column="name" property="componentName"/>
+        <result column="menu_sort" property="menuSort"/>
+        <result column="component" property="component"/>
+        <result column="path" property="path"/>
+        <result column="type" property="type"/>
+        <result column="permission" property="permission"/>
+        <result column="icon" property="icon"/>
+        <result column="cache" property="cache"/>
+        <result column="hidden" property="hidden"/>
+        <result column="pid" property="pid"/>
+        <result column="sub_count" property="subCount"/>
+        <result column="i_frame" property="iFrame"/>
+        <result column="create_by" property="createBy"/>
+        <result column="update_by" property="updateBy"/>
+        <result column="create_time" property="createTime"/>
+        <result column="update_time" property="updateTime"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        menu_id, title, name, menu_sort, component, path, type, permission, icon, cache, hidden, pid, sub_count, i_frame, create_by, update_by, create_time, update_time
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from sys_menu
+        <where>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                and (
+                    title like concat('%',#{criteria.blurry},'%')
+                    or name like concat('%',#{criteria.blurry},'%')
+                    or permission like concat('%',#{criteria.blurry},'%')
+                )
+            </if>
+            <if test="criteria.pidIsNull != null">
+                and pid is null
+            </if>
+            <if test="criteria.pid != null">
+                and pid = #{criteria.pid}
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
+                and create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+        order by menu_sort
+    </select>
+
+    <select id="findByRoleIdsAndTypeNot" resultMap="BaseResultMap">
+        SELECT m.* FROM sys_menu m, sys_roles_menus r
+        WHERE m.menu_id = r.menu_id AND r.role_id IN
+        <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
+            #{roleId}
+        </foreach>
+        AND type != #{type}
+        order by m.menu_sort
+    </select>
+
+    <select id="findByPidOrderByMenuSort" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        from sys_menu
+        WHERE pid = #{pid}
+        ORDER BY menu_sort
+    </select>
+
+    <select id="findByPidIsNullOrderByMenuSort" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>
+        from sys_menu
+        where pid is null
+        order by menu_sort
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/RoleDeptMapper.xml b/oying-system/target/classes/mapper/system/RoleDeptMapper.xml
new file mode 100644
index 0000000..664c04d
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/RoleDeptMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.RoleDeptMapper">
+
+    <insert id="insertData">
+        insert into sys_roles_depts (role_id, dept_id)
+        values
+        <foreach collection="depts" item="item" open="(" separator="),(" close=")">
+            #{roleId}, #{item.id}
+        </foreach>
+    </insert>
+
+    <delete id="deleteByRoleId">
+        delete from sys_roles_depts
+        where role_id = #{roleId}
+    </delete>
+
+    <delete id="deleteByRoleIds">
+        delete from sys_roles_depts
+        where role_id in
+        <foreach collection="roleIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/RoleMapper.xml b/oying-system/target/classes/mapper/system/RoleMapper.xml
new file mode 100644
index 0000000..3134824
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/RoleMapper.xml
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.RoleMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.Role">
+        <id column="role_role_id" property="id"/>
+        <result column="role_name" property="name"/>
+        <result column="role_data_scope" property="dataScope"/>
+        <result column="role_level" property="level"/>
+        <result column="role_description" property="description"/>
+        <result column="role_create_by" property="createBy"/>
+        <result column="role_update_by" property="updateBy"/>
+        <result column="role_create_time" property="createTime"/>
+        <result column="role_update_time" property="updateTime"/>
+        <collection property="menus" ofType="com.oying.modules.system.domain.Menu">
+            <id column="menu_id" property="id"/>
+            <result column="menu_title" property="title"/>
+            <result column="menu_permission" property="permission"/>
+        </collection>
+        <collection property="depts" ofType="com.oying.modules.system.domain.Dept">
+            <id column="dept_id" property="id"/>
+            <result column="dept_name" property="name"/>
+        </collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        role.role_id as role_role_id, role.name as role_name, role.data_scope as role_data_scope,
+        role.level as role_level, role.description as role_description, role.create_by as role_create_by,
+        role.update_by as role_update_by, role.create_time as role_create_time, role.update_time as role_update_time
+    </sql>
+
+    <sql id="Menu_Column_List">
+        menu.menu_id as menu_id, menu.title as menu_title, menu.permission as menu_permission
+    </sql>
+
+    <sql id="Dept_Column_List">
+        dept.dept_id as dept_id, dept.name as dept_name
+    </sql>
+
+    <sql id="Where_sql">
+        <where>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                and (
+                role.name like concat('%', #{criteria.blurry}, '%')
+                or role.description like concat('%', #{criteria.blurry}, '%')
+                )
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
+                and role.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+    </sql>
+
+    <select id="queryAll" resultType="com.oying.modules.system.domain.Role">
+        select role_id as id, name, level
+        from sys_role order by level
+    </select>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select role.*,
+        <include refid="Dept_Column_List"/>,
+        <include refid="Menu_Column_List"/>
+        from (
+        select
+        <include refid="Base_Column_List"/>
+        from sys_role role
+        <include refid="Where_sql"/>
+        order by role.level
+        <if test="criteria.offset != null">
+            limit #{criteria.offset}, #{criteria.size}
+        </if>
+        ) role
+        left join sys_roles_menus srm on role.role_role_id = srm.role_id
+        left join  sys_menu menu on menu.menu_id = srm.menu_id
+        left join sys_roles_depts srd on role.role_role_id = srd.role_id
+        left join sys_dept dept on dept.dept_id = srd.dept_id
+        order by role.role_level
+    </select>
+
+    <select id="countAll" resultType="java.lang.Long">
+        select count(*)
+        from sys_role role
+        <include refid="Where_sql"/>
+    </select>
+
+    <select id="findByName" resultType="com.oying.modules.system.domain.Role">
+        select role_id as id from sys_role
+        where name = #{name}
+    </select>
+
+    <select id="findById" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>,
+        <include refid="Dept_Column_List"/>,
+        <include refid="Menu_Column_List"/>
+        from sys_role role
+        left join sys_roles_menus srm on role.role_id = srm.role_id
+        left join sys_menu menu on menu.menu_id = srm.menu_id
+        left join sys_roles_depts srd on role.role_id = srd.role_id
+        left join sys_dept dept on dept.dept_id = srd.dept_id
+        where role.role_id = #{roleId}
+    </select>
+
+    <select id="findByUserId" resultMap="BaseResultMap">
+        SELECT
+        <include refid="Base_Column_List"/>,
+        <include refid="Dept_Column_List"/>,
+        <include refid="Menu_Column_List"/>
+        from sys_role role
+        left join sys_roles_menus srm on role.role_id = srm.role_id
+        left join sys_menu menu on menu.menu_id = srm.menu_id
+        left join sys_roles_depts srd on role.role_id = srd.role_id
+        left join sys_dept dept on dept.dept_id = srd.dept_id
+        left join sys_users_roles ur on role.role_id = ur.role_id
+        WHERE role.role_id = ur.role_id AND ur.user_id = #{userId}
+    </select>
+
+    <select id="countByDepts" resultType="int">
+        select count(*)
+        from sys_role r, sys_roles_depts d
+        where r.role_id = d.role_id
+        and d.dept_id in
+        <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+            #{deptId}
+        </foreach>
+    </select>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/RoleMenuMapper.xml b/oying-system/target/classes/mapper/system/RoleMenuMapper.xml
new file mode 100644
index 0000000..dd88a0f
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/RoleMenuMapper.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.RoleMenuMapper">
+
+    <insert id="insertData">
+        insert into sys_roles_menus (role_id, menu_id)
+        values
+        <foreach collection="menus" item="item" open="(" separator="),(" close=")">
+            #{roleId}, #{item.id}
+        </foreach>
+    </insert>
+
+    <delete id="deleteByRoleId">
+        delete from sys_roles_menus
+        where role_id = #{roleId}
+    </delete>
+
+    <delete id="deleteByRoleIds">
+        delete from sys_roles_menus
+        where role_id in
+        <foreach collection="roleIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+    <delete id="deleteByMenuId">
+        delete from sys_roles_menus
+        where menu_id = #{menuId}
+    </delete>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/UserJobMapper.xml b/oying-system/target/classes/mapper/system/UserJobMapper.xml
new file mode 100644
index 0000000..43efef1
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/UserJobMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.UserJobMapper">
+
+    <insert id="insertData">
+        insert into sys_users_jobs (user_id, job_id)
+        values
+        <foreach collection="jobs" item="item" open="(" separator="),(" close=")">
+            #{userId}, #{item.id}
+        </foreach>
+    </insert>
+
+    <delete id="deleteByUserId">
+        delete from sys_users_jobs
+        where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteByUserIds">
+        delete from sys_users_jobs
+        where user_id in
+        <foreach collection="userIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/UserMapper.xml b/oying-system/target/classes/mapper/system/UserMapper.xml
new file mode 100644
index 0000000..a71e0a3
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/UserMapper.xml
@@ -0,0 +1,178 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.UserMapper">
+    <resultMap id="BaseResultMap" type="com.oying.modules.system.domain.User">
+        <id column="user_user_id" property="id"/>
+        <result column="user_dept_id" property="deptId"/>
+        <result column="user_username" property="username"/>
+        <result column="user_nick_name" property="nickName"/>
+        <result column="user_email" property="email"/>
+        <result column="user_phone" property="phone"/>
+        <result column="user_gender" property="gender"/>
+        <result column="user_avatar_name" property="avatarName"/>
+        <result column="user_avatar_path" property="avatarPath"/>
+        <result column="user_password" property="password"/>
+        <result column="user_is_admin" property="isAdmin"/>
+        <result column="user_enabled" property="enabled"/>
+        <result column="user_pwd_reset_time" property="pwdResetTime"/>
+        <result column="user_create_by" property="createBy"/>
+        <result column="user_update_by" property="updateBy"/>
+        <result column="user_create_time" property="createTime"/>
+        <result column="user_update_time" property="updateTime"/>
+        <association property="dept" javaType="com.oying.modules.system.domain.Dept">
+            <id column="dept_id" property="id"/>
+            <result column="dept_name" property="name"/>
+        </association>
+        <collection property="jobs" ofType="com.oying.modules.system.domain.Job">
+            <id column="job_id" property="id"/>
+            <result column="job_name" property="name"/>
+        </collection>
+        <collection property="roles" ofType="com.oying.modules.system.domain.Role">
+            <id column="role_id" property="id"/>
+            <result column="role_name" property="name"/>
+            <result column="role_level" property="level"/>
+            <result column="role_data_scope" property="dataScope"/>
+        </collection>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        u.user_id as user_user_id, u.dept_id as user_dept_id, u.username as user_username,
+           u.nick_name as user_nick_name, u.email as user_email, u.phone as user_phone,
+           u.gender as user_gender, u.avatar_name as user_avatar_name, u.avatar_path as user_avatar_path,
+           u.enabled as user_enabled, u.pwd_reset_time as user_pwd_reset_time, u.create_by as user_create_by,
+           u.update_by as user_update_by, u.create_time as user_create_time, u.update_time as user_update_time,
+           d.dept_id as dept_id, d.name as dept_name
+    </sql>
+
+    <sql id="Job_Column_List">
+        j.job_id as job_id, j.name as job_name
+    </sql>
+
+    <sql id="Role_Column_List">
+        r.role_id as role_id, r.name as role_name, r.level as role_level, r.data_scope as role_data_scope
+    </sql>
+
+    <sql id="Whrer_Sql">
+        <where>
+            <if test="criteria.id != null">
+                and u.user_id = #{criteria.id}
+            </if>
+            <if test="criteria.enabled != null">
+                and u.enabled = #{criteria.enabled}
+            </if>
+            <if test="criteria.deptIds != null and criteria.deptIds.size() != 0">
+                and u.dept_id in
+                <foreach collection="criteria.deptIds" item="deptId" open="(" separator="," close=")">
+                    #{deptId}
+                </foreach>
+            </if>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                and (
+                u.username like concat('%', #{criteria.blurry}, '%')
+                or u.nick_name like concat('%', #{criteria.blurry}, '%')
+                or u.email like concat('%', #{criteria.blurry}, '%')
+                )
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() != 0">
+                and u.create_time between #{criteria.createTime[0]} and #{criteria.createTime[1]}
+            </if>
+        </where>
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select u.*,
+        <include refid="Job_Column_List"/>,
+        <include refid="Role_Column_List"/>
+        from (
+        select
+        <include refid="Base_Column_List"/>
+        from sys_user u
+        left join sys_dept d on u.dept_id = d.dept_id
+        <include refid="Whrer_Sql"/>
+        order by u.user_id desc
+        <if test="criteria.offset != null">
+            limit #{criteria.offset}, #{criteria.size}
+        </if>
+        ) u
+        left join sys_users_jobs suj on u.user_user_id = suj.user_id
+        left join sys_job j on suj.job_id = j.job_id
+        left join sys_users_roles sur on u.user_user_id = sur.user_id
+        left join sys_role r on sur.role_id = r.role_id
+        order by u.user_user_id desc
+    </select>
+
+    <select id="countAll" resultType="java.lang.Long">
+        select count(*)
+        from sys_user u
+        <include refid="Whrer_Sql"/>
+    </select>
+
+    <select id="findByUsername" resultMap="BaseResultMap">
+        select
+        u.password user_password, u.is_admin user_is_admin,
+        <include refid="Base_Column_List"/>
+        from sys_user u
+        left join sys_dept d on u.dept_id = d.dept_id
+        where u.username = #{username}
+    </select>
+
+    <select id="findByEmail" resultType="com.oying.modules.system.domain.User">
+        select user_id as id, username from sys_user
+        where email = #{email}
+    </select>
+
+    <select id="findByPhone" resultType="com.oying.modules.system.domain.User">
+        select user_id as id, username from sys_user
+        where phone = #{phone}
+    </select>
+
+    <select id="findByRoleId" resultType="com.oying.modules.system.domain.User">
+        SELECT u.user_id as id, u.username FROM sys_user u, sys_users_roles r
+        WHERE u.user_id = r.user_id AND r.role_id = #{roleId}
+        group by u.user_id
+    </select>
+
+    <select id="findByRoleDeptId" resultType="com.oying.modules.system.domain.User">
+        SELECT u.* FROM sys_user u, sys_users_roles r, sys_roles_depts d
+        WHERE u.user_id = r.user_id AND r.role_id = d.role_id AND d.dept_id = #{deptId}
+        group by u.user_id
+    </select>
+
+    <select id="findByMenuId" resultType="com.oying.modules.system.domain.User">
+        SELECT u.user_id as id, u.username FROM sys_user u, sys_users_roles ur, sys_roles_menus rm
+        WHERE u.user_id = ur.user_id AND ur.role_id = rm.role_id AND rm.menu_id = #{menuId}
+        group by u.user_id
+    </select>
+
+    <select id="countByJobs" resultType="int">
+        SELECT count(*) FROM sys_user u, sys_users_jobs j
+        WHERE u.user_id = j.user_id AND j.job_id IN
+        <foreach collection="jobIds" item="jobId" open="(" separator="," close=")">
+            #{jobId}
+        </foreach>
+    </select>
+
+    <select id="countByDepts" resultType="int">
+        SELECT count(*) FROM sys_user u
+        WHERE u.dept_id IN
+        <foreach collection="deptIds" item="deptId" open="(" separator="," close=")">
+            #{deptId}
+        </foreach>
+    </select>
+
+    <select id="countByRoles" resultType="int">
+        SELECT count(*) FROM sys_user u, sys_users_roles r
+        WHERE u.user_id = r.user_id AND r.role_id in
+        <foreach collection="roleIds" item="roleId" open="(" separator="," close=")">
+            #{roleId}
+        </foreach>
+    </select>
+
+    <update id="resetPwd">
+        update sys_user set password = #{pwd}
+        where user_id in
+        <foreach collection="userIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
+</mapper>
diff --git a/oying-system/target/classes/mapper/system/UserRoleMapper.xml b/oying-system/target/classes/mapper/system/UserRoleMapper.xml
new file mode 100644
index 0000000..8ec4537
--- /dev/null
+++ b/oying-system/target/classes/mapper/system/UserRoleMapper.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.modules.system.mapper.UserRoleMapper">
+
+    <insert id="insertData">
+        insert into sys_users_roles (user_id, role_id)
+        values
+        <foreach collection="roles" item="item" open="(" separator="),(" close=")">
+            #{userId}, #{item.id}
+        </foreach>
+    </insert>
+
+    <delete id="deleteByUserId">
+        delete from sys_users_roles
+        where user_id = #{userId}
+    </delete>
+
+    <delete id="deleteByUserIds">
+        delete from sys_users_roles
+        where user_id in
+        <foreach collection="userIds" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>
diff --git a/oying-system/target/classes/spy.properties b/oying-system/target/classes/spy.properties
new file mode 100644
index 0000000..1c967b0
--- /dev/null
+++ b/oying-system/target/classes/spy.properties
@@ -0,0 +1,20 @@
+# 应用的拦截模块
+modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory
+# 自定义日志打印
+logMessageFormat=com.oying.config.mybatis.CustomP6SpyLogger
+# 日志输出到控制台
+appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger
+# 日期格式
+dateformat=yyyy-MM-dd HH:mm:ss
+# 实际驱动 可多个
+driverlist=com.mysql.cj.jdbc.Driver
+# 是否开启慢SQL记录
+outagedetection=true
+# 慢SQL记录标准 2 秒
+outagedetectioninterval=2
+# 是否过滤 Log
+filter=true
+# 过滤 Log 时所排除的 sql 关键字,以逗号分隔
+exclude=SELECT 1,INSERT INTO sys_log
+# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset.
+excludecategories=info,debug,result,commit,resultset
diff --git a/oying-system/target/classes/template/email.ftl b/oying-system/target/classes/template/email.ftl
new file mode 100644
index 0000000..0d61630
--- /dev/null
+++ b/oying-system/target/classes/template/email.ftl
@@ -0,0 +1,48 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <style>
+        @page {
+            margin: 0;
+        }
+    </style>
+</head>
+<body style="margin: 0px;
+            padding: 0px;
+			font: 100% SimSun, Microsoft YaHei, Times New Roman, Verdana, Arial, Helvetica, sans-serif;
+            color: #000;">
+<div style="height: auto;
+			width: 820px;
+			min-width: 820px;
+			margin: 0 auto;
+			margin-top: 20px;
+            border: 1px solid #eee;">
+    <div style="padding: 10px;padding-bottom: 0px;">
+        <p style="margin-bottom: 10px;padding-bottom: 0px;">尊敬的用户,您好:</p>
+        <p style="text-indent: 2em; margin-bottom: 10px;">您正在申请邮箱验证,您的验证码为:</p>
+        <p style="text-align: center;
+			font-family: Times New Roman;
+			font-size: 22px;
+			color: #C60024;
+			padding: 20px 0px;
+			margin-bottom: 10px;
+			font-weight: bold;
+			background: #ebebeb;">${code}</p>
+        <div class="foot-hr hr" style="margin: 0 auto;
+			z-index: 111;
+			width: 800px;
+			margin-top: 30px;
+			border-top: 1px solid #DA251D;">
+        </div>
+        <div style="text-align: center;
+			font-size: 12px;
+			padding: 20px 0px;
+			font-family: Microsoft YaHei;">
+            Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;" href="https://127.0.0.1/elunez/oying" target="_blank">OYING</a> 后台管理系统 All Rights Reserved.
+        </div>
+
+    </div>
+</div>
+</body>
+</html>
diff --git a/oying-system/target/classes/template/taskAlarm.ftl b/oying-system/target/classes/template/taskAlarm.ftl
new file mode 100644
index 0000000..1419532
--- /dev/null
+++ b/oying-system/target/classes/template/taskAlarm.ftl
@@ -0,0 +1,69 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+    <style>
+        @page {
+            margin: 0;
+        }
+    </style>
+</head>
+<body style="margin: 0px;
+            padding: 0px;
+			font: 100% SimSun, Microsoft YaHei, Times New Roman, Verdana, Arial, Helvetica, sans-serif;
+            color: #000;">
+<div style="height: auto;
+			margin: 0 auto;
+			margin-top: 20px;
+			padding: 20px;
+            border: 1px solid #eee;">
+        <div>
+            <p style="margin-bottom: 10px;">任务信息:</p>
+            <table style="border-collapse: collapse;">
+                <tr>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">任务名称</th>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Bean名称</th>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">执行方法</th>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">参数内容</th>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">Cron表达式</th>
+                    <th style="padding: .65em;background: #666;border: 1px solid #777;color: #fff;">描述内容</th>
+                </tr>
+                <tr>
+                    <td style="padding: .65em;border: 1px solid#777;">${task.jobName}</td>
+                    <td style="padding: .65em;border: 1px solid#777;">${task.beanName}</td>
+                    <td style="padding: .65em;border: 1px solid#777;">${task.methodName}</td>
+                    <td style="padding: .65em;border: 1px solid#777;">${(task.params)!""}</td>
+                    <td style="padding: .65em;border: 1px solid#777;">${task.cronExpression}</td>
+                    <td style="padding: .65em;border: 1px solid#777;">${(task.description)!""}</td>
+                </tr>
+            </table>
+        </div>
+        <div>
+            <p style="margin-bottom: 10px;">异常信息:</p>
+            <pre style="position: relative;
+  padding: 15px;
+  line-height: 20px;
+  border-left: 5px solid #ddd;
+  color: #333;
+  font-family: Courier New, serif;
+  font-size: 12px">
+                ${msg}
+            </pre>
+        </div>
+        <div class="foot-hr hr" style="margin: 0 auto;
+			z-index: 111;
+			width: 800px;
+			margin-top: 30px;
+			border-top: 1px solid #DA251D;">
+        </div>
+        <div style="text-align: center;
+			font-size: 12px;
+			padding: 20px 0px;
+			font-family: Microsoft YaHei;">
+            Copyright &copy;${.now?string("yyyy")} <a hover="color: #DA251D;" style="color: #999;" href="https://github.com/elunez/oying" target="_blank">OYING</a> 后台管理系统 All Rights Reserved.
+        </div>
+
+    </div>
+</div>
+</body>
+</html>
diff --git a/oying-tools/target/classes/com/oying/domain/EmailConfig.class b/oying-tools/target/classes/com/oying/domain/EmailConfig.class
new file mode 100644
index 0000000..dc40840
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/domain/EmailConfig.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/domain/LocalStorage.class b/oying-tools/target/classes/com/oying/domain/LocalStorage.class
new file mode 100644
index 0000000..1ec4531
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/domain/LocalStorage.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/domain/dto/EmailDto.class b/oying-tools/target/classes/com/oying/domain/dto/EmailDto.class
new file mode 100644
index 0000000..e70429d
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/domain/dto/EmailDto.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/domain/dto/LocalStorageQueryCriteria.class b/oying-tools/target/classes/com/oying/domain/dto/LocalStorageQueryCriteria.class
new file mode 100644
index 0000000..5d38866
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/domain/dto/LocalStorageQueryCriteria.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/domain/enums/PayStatusEnum.class b/oying-tools/target/classes/com/oying/domain/enums/PayStatusEnum.class
new file mode 100644
index 0000000..dafbd17
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/domain/enums/PayStatusEnum.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/mapper/EmailConfigMapper.class b/oying-tools/target/classes/com/oying/mapper/EmailConfigMapper.class
new file mode 100644
index 0000000..28dd1bf
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/mapper/EmailConfigMapper.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/mapper/LocalStorageMapper.class b/oying-tools/target/classes/com/oying/mapper/LocalStorageMapper.class
new file mode 100644
index 0000000..e8488e1
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/mapper/LocalStorageMapper.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/rest/EmailController.class b/oying-tools/target/classes/com/oying/rest/EmailController.class
new file mode 100644
index 0000000..a8474d4
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/rest/EmailController.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/rest/LocalStorageController.class b/oying-tools/target/classes/com/oying/rest/LocalStorageController.class
new file mode 100644
index 0000000..043a3e1
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/rest/LocalStorageController.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/service/EmailService.class b/oying-tools/target/classes/com/oying/service/EmailService.class
new file mode 100644
index 0000000..202a7f3
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/service/EmailService.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/service/LocalStorageService.class b/oying-tools/target/classes/com/oying/service/LocalStorageService.class
new file mode 100644
index 0000000..2c9097e
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/service/LocalStorageService.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/service/impl/EmailServiceImpl.class b/oying-tools/target/classes/com/oying/service/impl/EmailServiceImpl.class
new file mode 100644
index 0000000..e5da4e8
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/service/impl/EmailServiceImpl.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/service/impl/LocalStorageServiceImpl.class b/oying-tools/target/classes/com/oying/service/impl/LocalStorageServiceImpl.class
new file mode 100644
index 0000000..e9d52d7
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/service/impl/LocalStorageServiceImpl.class
Binary files differ
diff --git a/oying-tools/target/classes/com/oying/utils/PayUtils.class b/oying-tools/target/classes/com/oying/utils/PayUtils.class
new file mode 100644
index 0000000..1c8763f
--- /dev/null
+++ b/oying-tools/target/classes/com/oying/utils/PayUtils.class
Binary files differ
diff --git a/oying-tools/target/classes/mapper/LocalStorageMapper.xml b/oying-tools/target/classes/mapper/LocalStorageMapper.xml
new file mode 100644
index 0000000..f0b02f2
--- /dev/null
+++ b/oying-tools/target/classes/mapper/LocalStorageMapper.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
+<mapper namespace="com.oying.mapper.LocalStorageMapper">
+
+    <resultMap id="BaseResultMap" type="com.oying.domain.LocalStorage">
+        <id column="storage_id" property="id" jdbcType="BIGINT"/>
+        <result column="real_name" property="realName" jdbcType="VARCHAR"/>
+        <result column="name" property="name" jdbcType="VARCHAR"/>
+        <result column="suffix" property="suffix" jdbcType="VARCHAR"/>
+        <result column="size" property="size" jdbcType="VARCHAR"/>
+        <result column="type" property="type" jdbcType="VARCHAR"/>
+        <result column="create_time" property="createTime" jdbcType="TIMESTAMP"/>
+        <result column="update_time" property="updateTime" jdbcType="TIMESTAMP"/>
+        <result column="create_by" property="createBy" jdbcType="TIMESTAMP"/>
+        <result column="update_by" property="updateBy" jdbcType="TIMESTAMP"/>
+    </resultMap>
+
+    <sql id="Base_Column_List">
+        storage_id, real_name, name, suffix, size, type, create_time, update_time, create_by, update_by
+    </sql>
+
+    <select id="findAll" resultMap="BaseResultMap">
+        select
+        <include refid="Base_Column_List"/>
+        from tool_local_storage
+        <where>
+            <if test="criteria.blurry != null and criteria.blurry != ''">
+                AND (
+                    name LIKE CONCAT('%',#{criteria.blurry},'%')
+                    OR suffix LIKE CONCAT('%',#{criteria.blurry},'%')
+                    OR type LIKE CONCAT('%',#{criteria.blurry},'%')
+                    OR create_by LIKE CONCAT('%',#{criteria.blurry},'%')
+                )
+            </if>
+            <if test="criteria.createTime != null and criteria.createTime.size() > 0">
+                AND update_time BETWEEN #{criteria.createTime[0]} AND #{criteria.createTime[1]}
+            </if>
+        </where>
+        ORDER BY storage_id DESC
+    </select>
+</mapper>

--
Gitblit v1.9.3