From 03cd33b658255196f19aed319e589ff07fb5bb3e Mon Sep 17 00:00:00 2001
From: GYJ <1157756119@qq.com>
Date: Mon, 2 Dec 2024 10:29:28 +0800
Subject: [PATCH] first commit
---
README.md | 39 +
db/duanju.sql | 1861 ++
pom.xml | 526 +
src/main/java/com/sqx/SqxApplication.java | 23 +
.../com/sqx/common/annotation/SysLog.java | 19 +
.../com/sqx/common/aspect/RedisAspect.java | 37 +
.../com/sqx/common/aspect/SysLogAspect.java | 92 +
.../sqx/common/exception/SqxException.java | 52 +
.../common/exception/SqxExceptionHandler.java | 55 +
.../com/sqx/common/utils/ConfigConstant.java | 12 +
.../java/com/sqx/common/utils/Constant.java | 110 +
.../java/com/sqx/common/utils/DateUtils.java | 157 +
.../sqx/common/utils/HttpContextUtils.java | 24 +
.../java/com/sqx/common/utils/IPUtils.java | 49 +
.../java/com/sqx/common/utils/MapUtils.java | 17 +
.../java/com/sqx/common/utils/PageUtils.java | 101 +
.../java/com/sqx/common/utils/QRCodeUtil.java | 175 +
src/main/java/com/sqx/common/utils/Query.java | 68 +
.../java/com/sqx/common/utils/RedisKeys.java | 12 +
.../java/com/sqx/common/utils/RedisUtils.java | 90 +
.../java/com/sqx/common/utils/Result.java | 56 +
.../java/com/sqx/common/utils/ShiroUtils.java | 52 +
.../sqx/common/utils/SpringContextUtils.java | 42 +
.../java/com/sqx/common/validator/Assert.java | 23 +
.../sqx/common/validator/ValidatorUtils.java | 40 +
.../sqx/common/validator/group/AddGroup.java | 8 +
.../common/validator/group/AliyunGroup.java | 8 +
.../com/sqx/common/validator/group/Group.java | 12 +
.../common/validator/group/QcloudGroup.java | 8 +
.../common/validator/group/QiniuGroup.java | 8 +
.../common/validator/group/UpdateGroup.java | 10 +
.../java/com/sqx/common/xss/HTMLFilter.java | 526 +
.../java/com/sqx/common/xss/SQLFilter.java | 41 +
.../java/com/sqx/common/xss/XssFilter.java | 43 +
.../xss/XssHttpServletRequestWrapper.java | 138 +
src/main/java/com/sqx/config/CorsConfig.java | 43 +
.../java/com/sqx/config/FilterConfig.java | 40 +
.../java/com/sqx/config/KaptchaConfig.java | 30 +
.../com/sqx/config/MybatisPlusConfig.java | 22 +
src/main/java/com/sqx/config/RedisConfig.java | 54 +
src/main/java/com/sqx/config/ShiroConfig.java | 79 +
.../java/com/sqx/config/SwaggerConfig.java | 53 +
.../sqx/datasource/annotation/DataSource.java | 14 +
.../datasource/aspect/DataSourceAspect.java | 61 +
.../config/DynamicContextHolder.java | 47 +
.../datasource/config/DynamicDataSource.java | 15 +
.../config/DynamicDataSourceConfig.java | 53 +
.../config/DynamicDataSourceFactory.java | 44 +
.../properties/DataSourceProperties.java | 192 +
.../DynamicDataSourceProperties.java | 22 +
.../com/sqx/modules/app/annotation/Login.java | 12 +
.../sqx/modules/app/annotation/LoginUser.java | 16 +
.../sqx/modules/app/config/WebMvcConfig.java | 38 +
.../app/controller/AppUpgradeController.java | 70 +
.../app/controller/UserController.java | 414 +
.../UserMoneyDetailsController.java | 41 +
.../app/controller/VipDetailsController.java | 95 +
.../app/controller/app/AppController.java | 166 +
.../controller/app/AppLoginController.java | 218 +
.../app/AppUserMoneyDetailsController.java | 40 +
.../controller/app/AppUserVipController.java | 30 +
.../app/AppVipDetailsController.java | 49 +
.../java/com/sqx/modules/app/dao/AppDao.java | 20 +
.../java/com/sqx/modules/app/dao/MsgDao.java | 20 +
.../java/com/sqx/modules/app/dao/UserDao.java | 47 +
.../com/sqx/modules/app/dao/UserMoneyDao.java | 14 +
.../modules/app/dao/UserMoneyDetailsDao.java | 13 +
.../com/sqx/modules/app/dao/UserVipDao.java | 12 +
.../sqx/modules/app/dao/VipDetailsDao.java | 9 +
.../java/com/sqx/modules/app/entity/App.java | 35 +
.../sqx/modules/app/entity/AppUserInfo.java | 23 +
.../java/com/sqx/modules/app/entity/Msg.java | 27 +
.../sqx/modules/app/entity/UserDetails.java | 27 +
.../sqx/modules/app/entity/UserEntity.java | 202 +
.../com/sqx/modules/app/entity/UserMoney.java | 49 +
.../modules/app/entity/UserMoneyDetails.java | 86 +
.../com/sqx/modules/app/entity/UserVip.java | 47 +
.../sqx/modules/app/entity/VipDetails.java | 38 +
.../com/sqx/modules/app/form/LoginForm.java | 24 +
.../sqx/modules/app/form/RegisterForm.java | 24 +
.../interceptor/AuthorizationInterceptor.java | 74 +
...oginUserHandlerMethodArgumentResolver.java | 44 +
.../app/response/CourseOrderResponse.java | 25 +
.../app/response/HomeMessageResponse.java | 52 +
.../app/response/UserMessageResponse.java | 25 +
.../sqx/modules/app/service/AppService.java | 25 +
.../modules/app/service/IAppleService.java | 10 +
.../sqx/modules/app/service/MsgService.java | 17 +
.../app/service/UserMoneyDetailsService.java | 10 +
.../modules/app/service/UserMoneyService.java | 16 +
.../sqx/modules/app/service/UserService.java | 230 +
.../modules/app/service/UserVipService.java | 10 +
.../app/service/VipDetailsService.java | 23 +
.../app/service/impl/AppServiceImpl.java | 45 +
.../app/service/impl/AppleServiceImpl.java | 156 +
.../app/service/impl/MsgServiceImpl.java | 30 +
.../impl/UserMoneyDetailsServiceImpl.java | 40 +
.../service/impl/UserMoneyServiceImpl.java | 52 +
.../app/service/impl/UserServiceImpl.java | 1450 +
.../app/service/impl/UserVipServiceImpl.java | 25 +
.../service/impl/VipDetailsServiceImpl.java | 33 +
.../com/sqx/modules/app/utils/JwtUtils.java | 86 +
.../app/utils/UserConstantInterface.java | 53 +
.../com/sqx/modules/app/utils/WxPhone.java | 14 +
.../banner/controller/ActivityController.java | 97 +
.../banner/controller/BannerController.java | 85 +
.../controller/app/AppBannerController.java | 52 +
.../sqx/modules/banner/dao/ActivityDao.java | 19 +
.../com/sqx/modules/banner/dao/BannerDao.java | 26 +
.../sqx/modules/banner/entity/Activity.java | 29 +
.../com/sqx/modules/banner/entity/Banner.java | 77 +
.../banner/service/ActivityService.java | 27 +
.../modules/banner/service/BannerService.java | 34 +
.../service/impl/ActivityServiceImpl.java | 65 +
.../service/impl/BannerServiceImpl.java | 118 +
.../common/controller/CommonController.java | 78 +
.../controller/app/AppCommonController.java | 64 +
.../sqx/modules/common/dao/CommonInfoDao.java | 24 +
.../sqx/modules/common/entity/CommonInfo.java | 33 +
.../common/service/CommonInfoService.java | 43 +
.../service/impl/CommonInfoServiceImpl.java | 76 +
.../coupon/controller/CouponController.java | 44 +
.../com/sqx/modules/coupon/dao/CouponDao.java | 9 +
.../sqx/modules/coupon/dao/CouponUserDao.java | 9 +
.../com/sqx/modules/coupon/entity/Coupon.java | 35 +
.../sqx/modules/coupon/entity/CouponUser.java | 33 +
.../modules/coupon/service/CouponService.java | 13 +
.../service/impl/CouponServiceImpl.java | 50 +
.../controller/AliossCourseController.java | 521 +
.../CourseClassificationController.java | 48 +
.../controller/CourseCollectController.java | 25 +
.../controller/CourseCommentController.java | 42 +
.../course/controller/CourseController.java | 194 +
.../controller/CourseDetailsController.java | 71 +
.../app/AppClassificationController.java | 58 +
.../app/AppCourseCollectController.java | 37 +
.../app/AppCourseCommentController.java | 75 +
.../controller/app/AppCourseController.java | 94 +
.../app/AppCourseUserController.java | 46 +
.../modules/course/dao/CommentGoodDao.java | 9 +
.../course/dao/CourseClassificationDao.java | 33 +
.../modules/course/dao/CourseCollectDao.java | 18 +
.../modules/course/dao/CourseCommentDao.java | 29 +
.../com/sqx/modules/course/dao/CourseDao.java | 43 +
.../modules/course/dao/CourseDetailsDao.java | 25 +
.../sqx/modules/course/dao/CourseUserDao.java | 41 +
.../modules/course/entity/CommentGood.java | 42 +
.../com/sqx/modules/course/entity/Course.java | 332 +
.../course/entity/CourseClassification.java | 39 +
.../modules/course/entity/CourseCollect.java | 64 +
.../modules/course/entity/CourseComment.java | 74 +
.../modules/course/entity/CourseDetails.java | 149 +
.../sqx/modules/course/entity/CourseUser.java | 71 +
.../response/ClassificationResponse.java | 27 +
.../course/response/CurriculumResponse.java | 40 +
.../course/service/CommentGoodService.java | 15 +
.../service/CourseClassificationService.java | 31 +
.../course/service/CourseCollectService.java | 14 +
.../course/service/CourseCommentService.java | 22 +
.../course/service/CourseDetailsService.java | 23 +
.../modules/course/service/CourseService.java | 62 +
.../course/service/CourseUserService.java | 17 +
.../service/impl/CommentGoodServiceImpl.java | 30 +
.../impl/CourseClassificationServiceImpl.java | 68 +
.../impl/CourseCollectServiceImpl.java | 94 +
.../impl/CourseCommentServiceImpl.java | 84 +
.../impl/CourseDetailsServiceImpl.java | 229 +
.../service/impl/CourseServiceImpl.java | 1231 +
.../service/impl/CourseUserServiceImpl.java | 90 +
.../modules/course/vo/CourseDetailsIn.java | 46 +
.../com/sqx/modules/course/vo/CourseIn.java | 53 +
.../modules/file/AliFileUploadController.java | 403 +
.../java/com/sqx/modules/file/S3Service.java | 91 +
.../modules/file/config/AWSConfiguration.java | 34 +
.../modules/file/utils/DescribeException.java | 34 +
.../sqx/modules/file/utils/ExceptionEnum.java | 49 +
.../modules/file/utils/FileUploadUtils.java | 234 +
.../com/sqx/modules/file/utils/FileUtils.java | 137 +
.../com/sqx/modules/file/utils/Md5Utils.java | 140 +
.../sqx/modules/file/utils/MimeTypeUtils.java | 59 +
.../controller/HelpWordController.java | 112 +
.../controller/app/AppHelpWordController.java | 48 +
.../helpCenter/dao/HelpClassifyDao.java | 12 +
.../modules/helpCenter/dao/HelpWordDao.java | 12 +
.../helpCenter/entity/HelpClassify.java | 60 +
.../modules/helpCenter/entity/HelpWord.java | 51 +
.../service/HelpClassifyService.java | 10 +
.../helpCenter/service/HelpWordService.java | 11 +
.../service/impl/HelpClassifyServiceImpl.java | 23 +
.../service/impl/HelpWordServiceImpl.java | 23 +
.../controller/UserIntegralController.java | 59 +
.../app/AppUserIntegralController.java | 62 +
.../modules/integral/dao/UserIntegralDao.java | 13 +
.../integral/dao/UserIntegralDetailsDao.java | 14 +
.../modules/integral/entity/UserIntegral.java | 23 +
.../integral/entity/UserIntegralDetails.java | 52 +
.../Impl/UserIntegralDetailsServiceImpl.java | 139 +
.../service/Impl/UserIntegralServiceImpl.java | 39 +
.../service/UserIntegralDetailsService.java | 17 +
.../integral/service/UserIntegralService.java | 11 +
.../controller/InviteAwardController.java | 59 +
.../invite/controller/InviteController.java | 184 +
.../controller/app/AppInviteController.java | 179 +
.../modules/invite/dao/InviteAwardDao.java | 16 +
.../com/sqx/modules/invite/dao/InviteDao.java | 41 +
.../modules/invite/dao/InviteMoneyDao.java | 26 +
.../com/sqx/modules/invite/entity/Invite.java | 55 +
.../modules/invite/entity/InviteAward.java | 47 +
.../modules/invite/entity/InviteMoney.java | 44 +
.../invite/service/InviteAwardService.java | 10 +
.../invite/service/InviteMoneyService.java | 27 +
.../modules/invite/service/InviteService.java | 35 +
.../service/impl/InviteAwardServiceImpl.java | 18 +
.../service/impl/InviteMoneyServiceImpl.java | 106 +
.../service/impl/InviteServiceImpl.java | 303 +
.../modules/job/config/ScheduleConfig.java | 57 +
.../job/controller/ScheduleJobController.java | 114 +
.../controller/ScheduleJobLogController.java | 44 +
.../sqx/modules/job/dao/ScheduleJobDao.java | 20 +
.../modules/job/dao/ScheduleJobLogDao.java | 14 +
.../modules/job/entity/ScheduleJobEntity.java | 65 +
.../job/entity/ScheduleJobLogEntity.java | 62 +
.../job/service/ScheduleJobLogService.java | 17 +
.../job/service/ScheduleJobService.java | 51 +
.../impl/ScheduleJobLogServiceImpl.java | 31 +
.../service/impl/ScheduleJobServiceImpl.java | 123 +
.../java/com/sqx/modules/job/task/ITask.java | 15 +
.../com/sqx/modules/job/task/TestTask.java | 25 +
.../sqx/modules/job/utils/ScheduleJob.java | 72 +
.../sqx/modules/job/utils/ScheduleUtils.java | 147 +
.../controller/ActivityMessageController.java | 84 +
.../message/controller/MessageController.java | 138 +
.../controller/app/AppMessageController.java | 75 +
.../message/dao/ActivityMessageInfoDao.java | 28 +
.../modules/message/dao/MessageInfoDao.java | 17 +
.../message/entity/ActivityMessageInfo.java | 49 +
.../modules/message/entity/MessageInfo.java | 54 +
.../service/ActivityMessageService.java | 34 +
.../message/service/MessageService.java | 25 +
.../impl/ActivityMessageServiceImpl.java | 94 +
.../service/impl/MessageServiceImpl.java | 83 +
.../orders/controller/OrdersController.java | 186 +
.../controller/app/AppOrdersController.java | 74 +
.../com/sqx/modules/orders/dao/OrdersDao.java | 39 +
.../com/sqx/modules/orders/entity/Orders.java | 151 +
.../modules/orders/service/OrdersService.java | 51 +
.../service/impl/OrdersServiceImpl.java | 547 +
.../oss/cloud/AliyunCloudStorageService.java | 53 +
.../modules/oss/cloud/CloudStorageConfig.java | 85 +
.../oss/cloud/CloudStorageService.java | 69 +
.../com/sqx/modules/oss/cloud/OSSFactory.java | 33 +
.../oss/cloud/QiniuCloudStorageService.java | 68 +
.../oss/controller/SysOssController.java | 120 +
.../com/sqx/modules/oss/dao/SysOssDao.java | 14 +
.../sqx/modules/oss/entity/SysOssEntity.java | 27 +
.../modules/oss/service/SysOssService.java | 16 +
.../oss/service/impl/SysOssServiceImpl.java | 27 +
.../modules/pay/config/AliPayConstants.java | 44 +
.../com/sqx/modules/pay/config/WXConfig.java | 89 +
.../pay/controller/CashController.java | 475 +
.../pay/controller/PayClassifyController.java | 65 +
.../pay/controller/app/AliPayController.java | 522 +
.../app/ApiWeiXinPayController.java | 392 +
.../pay/controller/app/AppCashController.java | 71 +
.../app/AppPayClassifyController.java | 37 +
.../pay/controller/app/DyPayController.java | 72 +
.../pay/controller/app/IosPayController.java | 153 +
.../pay/controller/app/KsPayController.java | 45 +
.../com/sqx/modules/pay/dao/CashOutDao.java | 38 +
.../sqx/modules/pay/dao/PayClassifyDao.java | 16 +
.../sqx/modules/pay/dao/PayDetailsDao.java | 46 +
.../modules/pay/entity/AliPayParamModel.java | 33 +
.../pay/entity/AliPayWithdrawModel.java | 51 +
.../com/sqx/modules/pay/entity/CashOut.java | 110 +
.../sqx/modules/pay/entity/PayClassify.java | 67 +
.../sqx/modules/pay/entity/PayDetails.java | 93 +
.../modules/pay/service/CashOutService.java | 45 +
.../sqx/modules/pay/service/DyService.java | 31 +
.../sqx/modules/pay/service/KsService.java | 22 +
.../pay/service/PayClassifyService.java | 11 +
.../pay/service/PayDetailsService.java | 23 +
.../sqx/modules/pay/service/WxService.java | 27 +
.../pay/service/impl/CashOutServiceImpl.java | 388 +
.../pay/service/impl/DyServiceImpl.java | 615 +
.../pay/service/impl/KsServiceImpl.java | 352 +
.../service/impl/PayClassifyServiceImpl.java | 17 +
.../service/impl/PayDetailsServiceImpl.java | 77 +
.../pay/service/impl/WxServiceImpl.java | 470 +
.../com/sqx/modules/pay/utils/DYSign.java | 77 +
.../com/sqx/modules/pay/utils/DouYinSign.java | 128 +
.../com/sqx/modules/pay/utils/IosVerify.java | 112 +
.../sdk/controller/AppSdkInfoController.java | 42 +
.../sdk/controller/SdkInfoController.java | 91 +
.../sdk/controller/SdkTypeController.java | 51 +
.../com/sqx/modules/sdk/dao/SdkInfoDao.java | 28 +
.../com/sqx/modules/sdk/dao/SdkTypeDao.java | 18 +
.../com/sqx/modules/sdk/entity/SdkInfo.java | 92 +
.../com/sqx/modules/sdk/entity/SdkType.java | 52 +
.../modules/sdk/service/SdkInfoService.java | 26 +
.../modules/sdk/service/SdkTypeService.java | 21 +
.../sdk/service/impl/SdkInfoServiceImpl.java | 156 +
.../sdk/service/impl/SdkTypeServiceImpl.java | 54 +
.../search/Response/SearchResponse.java | 22 +
.../search/controller/SearchController.java | 46 +
.../controller/app/AppSearchController.java | 48 +
.../sqx/modules/search/dao/AppSearchDao.java | 26 +
.../com/sqx/modules/search/dao/SearchDao.java | 9 +
.../com/sqx/modules/search/entity/Search.java | 35 +
.../search/service/AppSearchService.java | 17 +
.../modules/search/service/SearchService.java | 11 +
.../service/impl/AppSearchServiceImpl.java | 110 +
.../service/impl/SearchServiceImpl.java | 31 +
.../sys/controller/AbstractController.java | 22 +
.../sys/controller/SysConfigController.java | 89 +
.../sys/controller/SysDictController.java | 87 +
.../sys/controller/SysLogController.java | 39 +
.../sys/controller/SysLoginController.java | 98 +
.../sys/controller/SysMenuController.java | 183 +
.../sys/controller/SysRoleController.java | 117 +
.../sys/controller/SysUserController.java | 138 +
.../sqx/modules/sys/dao/SysCaptchaDao.java | 14 +
.../com/sqx/modules/sys/dao/SysConfigDao.java | 26 +
.../com/sqx/modules/sys/dao/SysDictDao.java | 14 +
.../com/sqx/modules/sys/dao/SysLogDao.java | 15 +
.../com/sqx/modules/sys/dao/SysMenuDao.java | 27 +
.../com/sqx/modules/sys/dao/SysRoleDao.java | 20 +
.../sqx/modules/sys/dao/SysRoleMenuDao.java | 25 +
.../com/sqx/modules/sys/dao/SysUserDao.java | 32 +
.../sqx/modules/sys/dao/SysUserRoleDao.java | 26 +
.../sqx/modules/sys/dao/SysUserTokenDao.java | 16 +
.../modules/sys/entity/SysCaptchaEntity.java | 28 +
.../modules/sys/entity/SysConfigEntity.java | 24 +
.../sqx/modules/sys/entity/SysDictEntity.java | 56 +
.../sqx/modules/sys/entity/SysLogEntity.java | 36 +
.../sqx/modules/sys/entity/SysMenuEntity.java | 76 +
.../sqx/modules/sys/entity/SysRoleEntity.java | 53 +
.../modules/sys/entity/SysRoleMenuEntity.java | 31 +
.../sqx/modules/sys/entity/SysUserEntity.java | 112 +
.../modules/sys/entity/SysUserRoleEntity.java | 31 +
.../sys/entity/SysUserTokenEntity.java | 31 +
.../sqx/modules/sys/form/PasswordForm.java | 20 +
.../sqx/modules/sys/form/SysLoginForm.java | 18 +
.../sqx/modules/sys/oauth2/OAuth2Filter.java | 101 +
.../sqx/modules/sys/oauth2/OAuth2Realm.java | 70 +
.../sqx/modules/sys/oauth2/OAuth2Token.java | 26 +
.../modules/sys/oauth2/TokenGenerator.java | 43 +
.../sqx/modules/sys/redis/SysConfigRedis.java | 36 +
.../sqx/modules/sys/service/ShiroService.java | 25 +
.../sys/service/SysCaptchaService.java | 26 +
.../modules/sys/service/SysConfigService.java | 51 +
.../modules/sys/service/SysDictService.java | 17 +
.../modules/sys/service/SysLogService.java | 19 +
.../modules/sys/service/SysMenuService.java | 43 +
.../sys/service/SysRoleMenuService.java | 28 +
.../modules/sys/service/SysRoleService.java | 30 +
.../sys/service/SysUserRoleService.java | 27 +
.../modules/sys/service/SysUserService.java | 60 +
.../sys/service/SysUserTokenService.java | 25 +
.../sys/service/impl/ShiroServiceImpl.java | 60 +
.../service/impl/SysCaptchaServiceImpl.java | 62 +
.../service/impl/SysConfigServiceImpl.java | 96 +
.../sys/service/impl/SysDictServiceImpl.java | 33 +
.../sys/service/impl/SysLogServiceImpl.java | 31 +
.../sys/service/impl/SysMenuServiceImpl.java | 99 +
.../service/impl/SysRoleMenuServiceImpl.java | 51 +
.../sys/service/impl/SysRoleServiceImpl.java | 113 +
.../service/impl/SysUserRoleServiceImpl.java | 49 +
.../sys/service/impl/SysUserServiceImpl.java | 147 +
.../service/impl/SysUserTokenServiceImpl.java | 66 +
.../controller/UrlAddressController.java | 64 +
.../modules/urlAddress/dao/UrlAddressDao.java | 9 +
.../modules/urlAddress/entity/UrlAddress.java | 46 +
.../urlAddress/service/UrlAddressService.java | 10 +
.../service/impl/UrlAddressServiceImpl.java | 24 +
.../sqx/modules/utils/AliPayOrderUtil.java | 133 +
.../com/sqx/modules/utils/AmountCalUtils.java | 76 +
.../com/sqx/modules/utils/Base64Utils.java | 313 +
.../sqx/modules/utils/CertificateUtils.java | 892 +
.../modules/utils/CusAccessObjectUtil.java | 88 +
.../modules/utils/EasyPoi/ExcelStyleUtil.java | 180 +
.../sqx/modules/utils/EasyPoi/ExcelUtils.java | 261 +
.../java/com/sqx/modules/utils/FileUtils.java | 63 +
.../com/sqx/modules/utils/HttpClientUtil.java | 257 +
.../java/com/sqx/modules/utils/HttpUtil.java | 223 +
.../sqx/modules/utils/InvitationCodeUtil.java | 86 +
.../java/com/sqx/modules/utils/MD5Util.java | 180 +
.../com/sqx/modules/utils/MessageUtil.java | 22 +
.../sqx/modules/utils/SenInfoCheckUtil.java | 248 +
.../com/sqx/modules/utils/WXConfigUtil.java | 70 +
.../sqx/modules/utils/excel/ExcelData.java | 34 +
.../sqx/modules/utils/excel/ExcelUtils.java | 171 +
.../modules/utils/excel/ExportExcelUtils.java | 209 +
.../com/sqx/modules/utils/qrcode/QRCode.java | 18 +
src/main/resources/application-prod.yml | 35 +
src/main/resources/application.yml | 82 +
src/main/resources/banner.txt | 23 +
src/main/resources/mapper/app/AppDao.xml | 12 +
src/main/resources/mapper/app/MsgDao.xml | 15 +
src/main/resources/mapper/app/UserDao.xml | 338 +
.../resources/mapper/app/UserMoneyDao.xml | 30 +
.../mapper/app/UserMoneyDetailsDao.xml | 8 +
src/main/resources/mapper/app/UserVipDao.xml | 11 +
.../resources/mapper/banner/ActivityDao.xml | 14 +
.../resources/mapper/banner/BannerDao.xml | 27 +
.../resources/mapper/common/CommonInfoDao.xml | 17 +
.../mapper/course/CourseClassificationDao.xml | 26 +
.../mapper/course/CourseCollectDao.xml | 51 +
.../mapper/course/CourseCommentDao.xml | 40 +
.../resources/mapper/course/CourseDao.xml | 281 +
.../mapper/course/CourseDetailsDao.xml | 63 +
.../resources/mapper/course/CourseUserDao.xml | 47 +
.../mapper/integral/UserIntegralDao.xml | 18 +
.../integral/UserIntegralDetailsDao.xml | 12 +
.../resources/mapper/invite/InviteDao.xml | 108 +
.../mapper/invite/InviteMoneyDao.xml | 33 +
.../resources/mapper/job/ScheduleJobDao.xml | 14 +
.../mapper/job/ScheduleJobLogDao.xml | 6 +
.../mapper/message/ActivityMessageInfoDao.xml | 29 +
.../mapper/message/MessageInfoDao.xml | 12 +
.../resources/mapper/orders/OrdersDao.xml | 281 +
src/main/resources/mapper/oss/SysOssDao.xml | 7 +
src/main/resources/mapper/pay/CashDao.xml | 168 +
.../resources/mapper/pay/PayDetailsDao.xml | 177 +
.../mapper/sdkInfo/SdkInfoMapper.xml | 80 +
.../resources/mapper/search/AppSearchDao.xml | 14 +
.../resources/mapper/sys/SysConfigDao.xml | 15 +
src/main/resources/mapper/sys/SysDictDao.xml | 7 +
src/main/resources/mapper/sys/SysLogDao.xml | 6 +
src/main/resources/mapper/sys/SysMenuDao.xml | 14 +
src/main/resources/mapper/sys/SysRoleDao.xml | 10 +
.../resources/mapper/sys/SysRoleMenuDao.xml | 17 +
src/main/resources/mapper/sys/SysUserDao.xml | 24 +
.../resources/mapper/sys/SysUserRoleDao.xml | 16 +
.../resources/mapper/sys/SysUserTokenDao.xml | 9 +
.../resources/static/swagger/css/print.css | 1 +
.../resources/static/swagger/css/reset.css | 1 +
.../resources/static/swagger/css/screen.css | 1 +
.../resources/static/swagger/css/style.css | 1 +
.../static/swagger/css/typography.css | 0
.../static/swagger/favicon-16x16.png | Bin 0 -> 445 bytes
.../static/swagger/favicon-32x32.png | Bin 0 -> 1141 bytes
.../static/swagger/fonts/DroidSans-Bold.ttf | Bin 0 -> 42480 bytes
.../static/swagger/fonts/DroidSans.ttf | Bin 0 -> 41028 bytes
.../static/swagger/images/collapse.gif | Bin 0 -> 69 bytes
.../static/swagger/images/expand.gif | Bin 0 -> 73 bytes
.../static/swagger/images/explorer_icons.png | Bin 0 -> 5115 bytes
.../static/swagger/images/favicon-16x16.png | Bin 0 -> 445 bytes
.../static/swagger/images/favicon-32x32.png | Bin 0 -> 1141 bytes
.../static/swagger/images/favicon.ico | Bin 0 -> 5430 bytes
.../static/swagger/images/logo_small.png | Bin 0 -> 455 bytes
.../static/swagger/images/pet_store_api.png | Bin 0 -> 631 bytes
.../static/swagger/images/throbber.gif | Bin 0 -> 9257 bytes
.../static/swagger/images/wordnik_api.png | Bin 0 -> 670 bytes
src/main/resources/static/swagger/index.html | 107 +
src/main/resources/static/swagger/index.yaml | 1663 +
src/main/resources/static/swagger/lang/en.js | 56 +
.../static/swagger/lang/translator.js | 39 +
.../resources/static/swagger/lang/zh-cn.js | 56 +
.../static/swagger/lib/backbone-min.js | 1 +
.../resources/static/swagger/lib/es5-shim.js | 1 +
.../static/swagger/lib/handlebars-4.0.5.js | 3 +
.../swagger/lib/highlight.9.1.0.pack.js | 1 +
.../lib/highlight.9.1.0.pack_extended.js | 1 +
.../static/swagger/lib/jquery-1.8.0.min.js | 3 +
.../static/swagger/lib/jquery.ba-bbq.min.js | 1 +
.../static/swagger/lib/jquery.slideto.min.js | 1 +
.../static/swagger/lib/jquery.wiggle.min.js | 1 +
.../static/swagger/lib/js-yaml.min.js | 2 +
.../static/swagger/lib/jsoneditor.min.js | 5 +
.../static/swagger/lib/lodash.min.js | 2 +
.../resources/static/swagger/lib/marked.js | 1 +
.../swagger/lib/object-assign-pollyfill.js | 1 +
.../static/swagger/lib/sanitize-html.min.js | 4 +
.../static/swagger/lib/swagger-oauth.js | 1 +
src/main/resources/static/swagger/o2c.html | 20 +
.../static/swagger/oauth2-redirect.html | 53 +
.../static/swagger/swagger-ui-bundle.js | 105 +
.../static/swagger/swagger-ui-bundle.js.map | 1 +
.../swagger/swagger-ui-standalone-preset.js | 21 +
.../swagger-ui-standalone-preset.js.map | 1 +
.../resources/static/swagger/swagger-ui.css | 2 +
.../static/swagger/swagger-ui.css.map | 1 +
.../resources/static/swagger/swagger-ui.js | 25344 ++++++++++++++++
.../static/swagger/swagger-ui.js.map | 1 +
.../static/swagger/swagger-ui.min.js | 15 +
485 files changed, 63600 insertions(+)
create mode 100644 README.md
create mode 100644 db/duanju.sql
create mode 100644 pom.xml
create mode 100644 src/main/java/com/sqx/SqxApplication.java
create mode 100644 src/main/java/com/sqx/common/annotation/SysLog.java
create mode 100644 src/main/java/com/sqx/common/aspect/RedisAspect.java
create mode 100644 src/main/java/com/sqx/common/aspect/SysLogAspect.java
create mode 100644 src/main/java/com/sqx/common/exception/SqxException.java
create mode 100644 src/main/java/com/sqx/common/exception/SqxExceptionHandler.java
create mode 100644 src/main/java/com/sqx/common/utils/ConfigConstant.java
create mode 100644 src/main/java/com/sqx/common/utils/Constant.java
create mode 100644 src/main/java/com/sqx/common/utils/DateUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/HttpContextUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/IPUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/MapUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/PageUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/QRCodeUtil.java
create mode 100644 src/main/java/com/sqx/common/utils/Query.java
create mode 100644 src/main/java/com/sqx/common/utils/RedisKeys.java
create mode 100644 src/main/java/com/sqx/common/utils/RedisUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/Result.java
create mode 100644 src/main/java/com/sqx/common/utils/ShiroUtils.java
create mode 100644 src/main/java/com/sqx/common/utils/SpringContextUtils.java
create mode 100644 src/main/java/com/sqx/common/validator/Assert.java
create mode 100644 src/main/java/com/sqx/common/validator/ValidatorUtils.java
create mode 100644 src/main/java/com/sqx/common/validator/group/AddGroup.java
create mode 100644 src/main/java/com/sqx/common/validator/group/AliyunGroup.java
create mode 100644 src/main/java/com/sqx/common/validator/group/Group.java
create mode 100644 src/main/java/com/sqx/common/validator/group/QcloudGroup.java
create mode 100644 src/main/java/com/sqx/common/validator/group/QiniuGroup.java
create mode 100644 src/main/java/com/sqx/common/validator/group/UpdateGroup.java
create mode 100644 src/main/java/com/sqx/common/xss/HTMLFilter.java
create mode 100644 src/main/java/com/sqx/common/xss/SQLFilter.java
create mode 100644 src/main/java/com/sqx/common/xss/XssFilter.java
create mode 100644 src/main/java/com/sqx/common/xss/XssHttpServletRequestWrapper.java
create mode 100644 src/main/java/com/sqx/config/CorsConfig.java
create mode 100644 src/main/java/com/sqx/config/FilterConfig.java
create mode 100644 src/main/java/com/sqx/config/KaptchaConfig.java
create mode 100644 src/main/java/com/sqx/config/MybatisPlusConfig.java
create mode 100644 src/main/java/com/sqx/config/RedisConfig.java
create mode 100644 src/main/java/com/sqx/config/ShiroConfig.java
create mode 100644 src/main/java/com/sqx/config/SwaggerConfig.java
create mode 100644 src/main/java/com/sqx/datasource/annotation/DataSource.java
create mode 100644 src/main/java/com/sqx/datasource/aspect/DataSourceAspect.java
create mode 100644 src/main/java/com/sqx/datasource/config/DynamicContextHolder.java
create mode 100644 src/main/java/com/sqx/datasource/config/DynamicDataSource.java
create mode 100644 src/main/java/com/sqx/datasource/config/DynamicDataSourceConfig.java
create mode 100644 src/main/java/com/sqx/datasource/config/DynamicDataSourceFactory.java
create mode 100644 src/main/java/com/sqx/datasource/properties/DataSourceProperties.java
create mode 100644 src/main/java/com/sqx/datasource/properties/DynamicDataSourceProperties.java
create mode 100644 src/main/java/com/sqx/modules/app/annotation/Login.java
create mode 100644 src/main/java/com/sqx/modules/app/annotation/LoginUser.java
create mode 100644 src/main/java/com/sqx/modules/app/config/WebMvcConfig.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/AppUpgradeController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/UserController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/UserMoneyDetailsController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/VipDetailsController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/app/AppController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/app/AppLoginController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/app/AppUserMoneyDetailsController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/app/AppUserVipController.java
create mode 100644 src/main/java/com/sqx/modules/app/controller/app/AppVipDetailsController.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/AppDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/MsgDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/UserDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/UserMoneyDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/UserMoneyDetailsDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/UserVipDao.java
create mode 100644 src/main/java/com/sqx/modules/app/dao/VipDetailsDao.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/App.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/AppUserInfo.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/Msg.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/UserDetails.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/UserEntity.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/UserMoney.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/UserMoneyDetails.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/UserVip.java
create mode 100644 src/main/java/com/sqx/modules/app/entity/VipDetails.java
create mode 100644 src/main/java/com/sqx/modules/app/form/LoginForm.java
create mode 100644 src/main/java/com/sqx/modules/app/form/RegisterForm.java
create mode 100644 src/main/java/com/sqx/modules/app/interceptor/AuthorizationInterceptor.java
create mode 100644 src/main/java/com/sqx/modules/app/resolver/LoginUserHandlerMethodArgumentResolver.java
create mode 100644 src/main/java/com/sqx/modules/app/response/CourseOrderResponse.java
create mode 100644 src/main/java/com/sqx/modules/app/response/HomeMessageResponse.java
create mode 100644 src/main/java/com/sqx/modules/app/response/UserMessageResponse.java
create mode 100644 src/main/java/com/sqx/modules/app/service/AppService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/IAppleService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/MsgService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/UserMoneyDetailsService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/UserMoneyService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/UserService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/UserVipService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/VipDetailsService.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/AppServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/AppleServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/MsgServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/UserMoneyDetailsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/UserMoneyServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/UserServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/UserVipServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/service/impl/VipDetailsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/app/utils/JwtUtils.java
create mode 100644 src/main/java/com/sqx/modules/app/utils/UserConstantInterface.java
create mode 100644 src/main/java/com/sqx/modules/app/utils/WxPhone.java
create mode 100644 src/main/java/com/sqx/modules/banner/controller/ActivityController.java
create mode 100644 src/main/java/com/sqx/modules/banner/controller/BannerController.java
create mode 100644 src/main/java/com/sqx/modules/banner/controller/app/AppBannerController.java
create mode 100644 src/main/java/com/sqx/modules/banner/dao/ActivityDao.java
create mode 100644 src/main/java/com/sqx/modules/banner/dao/BannerDao.java
create mode 100644 src/main/java/com/sqx/modules/banner/entity/Activity.java
create mode 100644 src/main/java/com/sqx/modules/banner/entity/Banner.java
create mode 100644 src/main/java/com/sqx/modules/banner/service/ActivityService.java
create mode 100644 src/main/java/com/sqx/modules/banner/service/BannerService.java
create mode 100644 src/main/java/com/sqx/modules/banner/service/impl/ActivityServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/banner/service/impl/BannerServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/common/controller/CommonController.java
create mode 100644 src/main/java/com/sqx/modules/common/controller/app/AppCommonController.java
create mode 100644 src/main/java/com/sqx/modules/common/dao/CommonInfoDao.java
create mode 100644 src/main/java/com/sqx/modules/common/entity/CommonInfo.java
create mode 100644 src/main/java/com/sqx/modules/common/service/CommonInfoService.java
create mode 100644 src/main/java/com/sqx/modules/common/service/impl/CommonInfoServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/coupon/controller/CouponController.java
create mode 100644 src/main/java/com/sqx/modules/coupon/dao/CouponDao.java
create mode 100644 src/main/java/com/sqx/modules/coupon/dao/CouponUserDao.java
create mode 100644 src/main/java/com/sqx/modules/coupon/entity/Coupon.java
create mode 100644 src/main/java/com/sqx/modules/coupon/entity/CouponUser.java
create mode 100644 src/main/java/com/sqx/modules/coupon/service/CouponService.java
create mode 100644 src/main/java/com/sqx/modules/coupon/service/impl/CouponServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/AliossCourseController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/CourseClassificationController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/CourseCollectController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/CourseCommentController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/CourseController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/CourseDetailsController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/app/AppClassificationController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/app/AppCourseCollectController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/app/AppCourseCommentController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/app/AppCourseController.java
create mode 100644 src/main/java/com/sqx/modules/course/controller/app/AppCourseUserController.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CommentGoodDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseClassificationDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseCollectDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseCommentDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseDetailsDao.java
create mode 100644 src/main/java/com/sqx/modules/course/dao/CourseUserDao.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CommentGood.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/Course.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CourseClassification.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CourseCollect.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CourseComment.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CourseDetails.java
create mode 100644 src/main/java/com/sqx/modules/course/entity/CourseUser.java
create mode 100644 src/main/java/com/sqx/modules/course/response/ClassificationResponse.java
create mode 100644 src/main/java/com/sqx/modules/course/response/CurriculumResponse.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CommentGoodService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseClassificationService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseCollectService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseCommentService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseDetailsService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/CourseUserService.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CommentGoodServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseClassificationServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseCollectServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseCommentServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseDetailsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/service/impl/CourseUserServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/course/vo/CourseDetailsIn.java
create mode 100644 src/main/java/com/sqx/modules/course/vo/CourseIn.java
create mode 100644 src/main/java/com/sqx/modules/file/AliFileUploadController.java
create mode 100644 src/main/java/com/sqx/modules/file/S3Service.java
create mode 100644 src/main/java/com/sqx/modules/file/config/AWSConfiguration.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/DescribeException.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/ExceptionEnum.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/FileUploadUtils.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/FileUtils.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/Md5Utils.java
create mode 100644 src/main/java/com/sqx/modules/file/utils/MimeTypeUtils.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/controller/HelpWordController.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/controller/app/AppHelpWordController.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/dao/HelpClassifyDao.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/dao/HelpWordDao.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/entity/HelpClassify.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/entity/HelpWord.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/service/HelpClassifyService.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/service/HelpWordService.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/service/impl/HelpClassifyServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/helpCenter/service/impl/HelpWordServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/integral/controller/UserIntegralController.java
create mode 100644 src/main/java/com/sqx/modules/integral/controller/app/AppUserIntegralController.java
create mode 100644 src/main/java/com/sqx/modules/integral/dao/UserIntegralDao.java
create mode 100644 src/main/java/com/sqx/modules/integral/dao/UserIntegralDetailsDao.java
create mode 100644 src/main/java/com/sqx/modules/integral/entity/UserIntegral.java
create mode 100644 src/main/java/com/sqx/modules/integral/entity/UserIntegralDetails.java
create mode 100644 src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralDetailsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/integral/service/Impl/UserIntegralServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/integral/service/UserIntegralDetailsService.java
create mode 100644 src/main/java/com/sqx/modules/integral/service/UserIntegralService.java
create mode 100644 src/main/java/com/sqx/modules/invite/controller/InviteAwardController.java
create mode 100644 src/main/java/com/sqx/modules/invite/controller/InviteController.java
create mode 100644 src/main/java/com/sqx/modules/invite/controller/app/AppInviteController.java
create mode 100644 src/main/java/com/sqx/modules/invite/dao/InviteAwardDao.java
create mode 100644 src/main/java/com/sqx/modules/invite/dao/InviteDao.java
create mode 100644 src/main/java/com/sqx/modules/invite/dao/InviteMoneyDao.java
create mode 100644 src/main/java/com/sqx/modules/invite/entity/Invite.java
create mode 100644 src/main/java/com/sqx/modules/invite/entity/InviteAward.java
create mode 100644 src/main/java/com/sqx/modules/invite/entity/InviteMoney.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/InviteAwardService.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/InviteMoneyService.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/InviteService.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/impl/InviteAwardServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/impl/InviteMoneyServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/invite/service/impl/InviteServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/job/config/ScheduleConfig.java
create mode 100644 src/main/java/com/sqx/modules/job/controller/ScheduleJobController.java
create mode 100644 src/main/java/com/sqx/modules/job/controller/ScheduleJobLogController.java
create mode 100644 src/main/java/com/sqx/modules/job/dao/ScheduleJobDao.java
create mode 100644 src/main/java/com/sqx/modules/job/dao/ScheduleJobLogDao.java
create mode 100644 src/main/java/com/sqx/modules/job/entity/ScheduleJobEntity.java
create mode 100644 src/main/java/com/sqx/modules/job/entity/ScheduleJobLogEntity.java
create mode 100644 src/main/java/com/sqx/modules/job/service/ScheduleJobLogService.java
create mode 100644 src/main/java/com/sqx/modules/job/service/ScheduleJobService.java
create mode 100644 src/main/java/com/sqx/modules/job/service/impl/ScheduleJobLogServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/job/service/impl/ScheduleJobServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/job/task/ITask.java
create mode 100644 src/main/java/com/sqx/modules/job/task/TestTask.java
create mode 100644 src/main/java/com/sqx/modules/job/utils/ScheduleJob.java
create mode 100644 src/main/java/com/sqx/modules/job/utils/ScheduleUtils.java
create mode 100644 src/main/java/com/sqx/modules/message/controller/ActivityMessageController.java
create mode 100644 src/main/java/com/sqx/modules/message/controller/MessageController.java
create mode 100644 src/main/java/com/sqx/modules/message/controller/app/AppMessageController.java
create mode 100644 src/main/java/com/sqx/modules/message/dao/ActivityMessageInfoDao.java
create mode 100644 src/main/java/com/sqx/modules/message/dao/MessageInfoDao.java
create mode 100644 src/main/java/com/sqx/modules/message/entity/ActivityMessageInfo.java
create mode 100644 src/main/java/com/sqx/modules/message/entity/MessageInfo.java
create mode 100644 src/main/java/com/sqx/modules/message/service/ActivityMessageService.java
create mode 100644 src/main/java/com/sqx/modules/message/service/MessageService.java
create mode 100644 src/main/java/com/sqx/modules/message/service/impl/ActivityMessageServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/message/service/impl/MessageServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/orders/controller/OrdersController.java
create mode 100644 src/main/java/com/sqx/modules/orders/controller/app/AppOrdersController.java
create mode 100644 src/main/java/com/sqx/modules/orders/dao/OrdersDao.java
create mode 100644 src/main/java/com/sqx/modules/orders/entity/Orders.java
create mode 100644 src/main/java/com/sqx/modules/orders/service/OrdersService.java
create mode 100644 src/main/java/com/sqx/modules/orders/service/impl/OrdersServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/oss/cloud/AliyunCloudStorageService.java
create mode 100644 src/main/java/com/sqx/modules/oss/cloud/CloudStorageConfig.java
create mode 100644 src/main/java/com/sqx/modules/oss/cloud/CloudStorageService.java
create mode 100644 src/main/java/com/sqx/modules/oss/cloud/OSSFactory.java
create mode 100644 src/main/java/com/sqx/modules/oss/cloud/QiniuCloudStorageService.java
create mode 100644 src/main/java/com/sqx/modules/oss/controller/SysOssController.java
create mode 100644 src/main/java/com/sqx/modules/oss/dao/SysOssDao.java
create mode 100644 src/main/java/com/sqx/modules/oss/entity/SysOssEntity.java
create mode 100644 src/main/java/com/sqx/modules/oss/service/SysOssService.java
create mode 100644 src/main/java/com/sqx/modules/oss/service/impl/SysOssServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/config/AliPayConstants.java
create mode 100644 src/main/java/com/sqx/modules/pay/config/WXConfig.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/CashController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/PayClassifyController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/AliPayController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/ApiWeiXinPayController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/AppCashController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/AppPayClassifyController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/DyPayController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/IosPayController.java
create mode 100644 src/main/java/com/sqx/modules/pay/controller/app/KsPayController.java
create mode 100644 src/main/java/com/sqx/modules/pay/dao/CashOutDao.java
create mode 100644 src/main/java/com/sqx/modules/pay/dao/PayClassifyDao.java
create mode 100644 src/main/java/com/sqx/modules/pay/dao/PayDetailsDao.java
create mode 100644 src/main/java/com/sqx/modules/pay/entity/AliPayParamModel.java
create mode 100644 src/main/java/com/sqx/modules/pay/entity/AliPayWithdrawModel.java
create mode 100644 src/main/java/com/sqx/modules/pay/entity/CashOut.java
create mode 100644 src/main/java/com/sqx/modules/pay/entity/PayClassify.java
create mode 100644 src/main/java/com/sqx/modules/pay/entity/PayDetails.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/CashOutService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/DyService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/KsService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/PayClassifyService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/PayDetailsService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/WxService.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/CashOutServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/DyServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/KsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/PayClassifyServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/PayDetailsServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/service/impl/WxServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/pay/utils/DYSign.java
create mode 100644 src/main/java/com/sqx/modules/pay/utils/DouYinSign.java
create mode 100644 src/main/java/com/sqx/modules/pay/utils/IosVerify.java
create mode 100644 src/main/java/com/sqx/modules/sdk/controller/AppSdkInfoController.java
create mode 100644 src/main/java/com/sqx/modules/sdk/controller/SdkInfoController.java
create mode 100644 src/main/java/com/sqx/modules/sdk/controller/SdkTypeController.java
create mode 100644 src/main/java/com/sqx/modules/sdk/dao/SdkInfoDao.java
create mode 100644 src/main/java/com/sqx/modules/sdk/dao/SdkTypeDao.java
create mode 100644 src/main/java/com/sqx/modules/sdk/entity/SdkInfo.java
create mode 100644 src/main/java/com/sqx/modules/sdk/entity/SdkType.java
create mode 100644 src/main/java/com/sqx/modules/sdk/service/SdkInfoService.java
create mode 100644 src/main/java/com/sqx/modules/sdk/service/SdkTypeService.java
create mode 100644 src/main/java/com/sqx/modules/sdk/service/impl/SdkInfoServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sdk/service/impl/SdkTypeServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/search/Response/SearchResponse.java
create mode 100644 src/main/java/com/sqx/modules/search/controller/SearchController.java
create mode 100644 src/main/java/com/sqx/modules/search/controller/app/AppSearchController.java
create mode 100644 src/main/java/com/sqx/modules/search/dao/AppSearchDao.java
create mode 100644 src/main/java/com/sqx/modules/search/dao/SearchDao.java
create mode 100644 src/main/java/com/sqx/modules/search/entity/Search.java
create mode 100644 src/main/java/com/sqx/modules/search/service/AppSearchService.java
create mode 100644 src/main/java/com/sqx/modules/search/service/SearchService.java
create mode 100644 src/main/java/com/sqx/modules/search/service/impl/AppSearchServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/search/service/impl/SearchServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/AbstractController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysConfigController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysDictController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysLogController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysLoginController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysMenuController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysRoleController.java
create mode 100644 src/main/java/com/sqx/modules/sys/controller/SysUserController.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysCaptchaDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysConfigDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysDictDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysLogDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysMenuDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysRoleDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysRoleMenuDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysUserDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysUserRoleDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/dao/SysUserTokenDao.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysCaptchaEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysConfigEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysDictEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysLogEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysMenuEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysRoleEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysRoleMenuEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysUserEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysUserRoleEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/entity/SysUserTokenEntity.java
create mode 100644 src/main/java/com/sqx/modules/sys/form/PasswordForm.java
create mode 100644 src/main/java/com/sqx/modules/sys/form/SysLoginForm.java
create mode 100644 src/main/java/com/sqx/modules/sys/oauth2/OAuth2Filter.java
create mode 100644 src/main/java/com/sqx/modules/sys/oauth2/OAuth2Realm.java
create mode 100644 src/main/java/com/sqx/modules/sys/oauth2/OAuth2Token.java
create mode 100644 src/main/java/com/sqx/modules/sys/oauth2/TokenGenerator.java
create mode 100644 src/main/java/com/sqx/modules/sys/redis/SysConfigRedis.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/ShiroService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysCaptchaService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysConfigService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysDictService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysLogService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysMenuService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysRoleMenuService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysRoleService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysUserRoleService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysUserService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/SysUserTokenService.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/ShiroServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysCaptchaServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysConfigServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysDictServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysLogServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysMenuServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysRoleMenuServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysRoleServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysUserRoleServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysUserServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/sys/service/impl/SysUserTokenServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/urlAddress/controller/UrlAddressController.java
create mode 100644 src/main/java/com/sqx/modules/urlAddress/dao/UrlAddressDao.java
create mode 100644 src/main/java/com/sqx/modules/urlAddress/entity/UrlAddress.java
create mode 100644 src/main/java/com/sqx/modules/urlAddress/service/UrlAddressService.java
create mode 100644 src/main/java/com/sqx/modules/urlAddress/service/impl/UrlAddressServiceImpl.java
create mode 100644 src/main/java/com/sqx/modules/utils/AliPayOrderUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/AmountCalUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/Base64Utils.java
create mode 100644 src/main/java/com/sqx/modules/utils/CertificateUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/CusAccessObjectUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/EasyPoi/ExcelStyleUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/EasyPoi/ExcelUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/FileUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/HttpClientUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/HttpUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/InvitationCodeUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/MD5Util.java
create mode 100644 src/main/java/com/sqx/modules/utils/MessageUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/SenInfoCheckUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/WXConfigUtil.java
create mode 100644 src/main/java/com/sqx/modules/utils/excel/ExcelData.java
create mode 100644 src/main/java/com/sqx/modules/utils/excel/ExcelUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/excel/ExportExcelUtils.java
create mode 100644 src/main/java/com/sqx/modules/utils/qrcode/QRCode.java
create mode 100644 src/main/resources/application-prod.yml
create mode 100644 src/main/resources/application.yml
create mode 100644 src/main/resources/banner.txt
create mode 100644 src/main/resources/mapper/app/AppDao.xml
create mode 100644 src/main/resources/mapper/app/MsgDao.xml
create mode 100644 src/main/resources/mapper/app/UserDao.xml
create mode 100644 src/main/resources/mapper/app/UserMoneyDao.xml
create mode 100644 src/main/resources/mapper/app/UserMoneyDetailsDao.xml
create mode 100644 src/main/resources/mapper/app/UserVipDao.xml
create mode 100644 src/main/resources/mapper/banner/ActivityDao.xml
create mode 100644 src/main/resources/mapper/banner/BannerDao.xml
create mode 100644 src/main/resources/mapper/common/CommonInfoDao.xml
create mode 100644 src/main/resources/mapper/course/CourseClassificationDao.xml
create mode 100644 src/main/resources/mapper/course/CourseCollectDao.xml
create mode 100644 src/main/resources/mapper/course/CourseCommentDao.xml
create mode 100644 src/main/resources/mapper/course/CourseDao.xml
create mode 100644 src/main/resources/mapper/course/CourseDetailsDao.xml
create mode 100644 src/main/resources/mapper/course/CourseUserDao.xml
create mode 100644 src/main/resources/mapper/integral/UserIntegralDao.xml
create mode 100644 src/main/resources/mapper/integral/UserIntegralDetailsDao.xml
create mode 100644 src/main/resources/mapper/invite/InviteDao.xml
create mode 100644 src/main/resources/mapper/invite/InviteMoneyDao.xml
create mode 100644 src/main/resources/mapper/job/ScheduleJobDao.xml
create mode 100644 src/main/resources/mapper/job/ScheduleJobLogDao.xml
create mode 100644 src/main/resources/mapper/message/ActivityMessageInfoDao.xml
create mode 100644 src/main/resources/mapper/message/MessageInfoDao.xml
create mode 100644 src/main/resources/mapper/orders/OrdersDao.xml
create mode 100644 src/main/resources/mapper/oss/SysOssDao.xml
create mode 100644 src/main/resources/mapper/pay/CashDao.xml
create mode 100644 src/main/resources/mapper/pay/PayDetailsDao.xml
create mode 100644 src/main/resources/mapper/sdkInfo/SdkInfoMapper.xml
create mode 100644 src/main/resources/mapper/search/AppSearchDao.xml
create mode 100644 src/main/resources/mapper/sys/SysConfigDao.xml
create mode 100644 src/main/resources/mapper/sys/SysDictDao.xml
create mode 100644 src/main/resources/mapper/sys/SysLogDao.xml
create mode 100644 src/main/resources/mapper/sys/SysMenuDao.xml
create mode 100644 src/main/resources/mapper/sys/SysRoleDao.xml
create mode 100644 src/main/resources/mapper/sys/SysRoleMenuDao.xml
create mode 100644 src/main/resources/mapper/sys/SysUserDao.xml
create mode 100644 src/main/resources/mapper/sys/SysUserRoleDao.xml
create mode 100644 src/main/resources/mapper/sys/SysUserTokenDao.xml
create mode 100644 src/main/resources/static/swagger/css/print.css
create mode 100644 src/main/resources/static/swagger/css/reset.css
create mode 100644 src/main/resources/static/swagger/css/screen.css
create mode 100644 src/main/resources/static/swagger/css/style.css
create mode 100644 src/main/resources/static/swagger/css/typography.css
create mode 100644 src/main/resources/static/swagger/favicon-16x16.png
create mode 100644 src/main/resources/static/swagger/favicon-32x32.png
create mode 100644 src/main/resources/static/swagger/fonts/DroidSans-Bold.ttf
create mode 100644 src/main/resources/static/swagger/fonts/DroidSans.ttf
create mode 100644 src/main/resources/static/swagger/images/collapse.gif
create mode 100644 src/main/resources/static/swagger/images/expand.gif
create mode 100644 src/main/resources/static/swagger/images/explorer_icons.png
create mode 100644 src/main/resources/static/swagger/images/favicon-16x16.png
create mode 100644 src/main/resources/static/swagger/images/favicon-32x32.png
create mode 100644 src/main/resources/static/swagger/images/favicon.ico
create mode 100644 src/main/resources/static/swagger/images/logo_small.png
create mode 100644 src/main/resources/static/swagger/images/pet_store_api.png
create mode 100644 src/main/resources/static/swagger/images/throbber.gif
create mode 100644 src/main/resources/static/swagger/images/wordnik_api.png
create mode 100644 src/main/resources/static/swagger/index.html
create mode 100644 src/main/resources/static/swagger/index.yaml
create mode 100644 src/main/resources/static/swagger/lang/en.js
create mode 100644 src/main/resources/static/swagger/lang/translator.js
create mode 100644 src/main/resources/static/swagger/lang/zh-cn.js
create mode 100644 src/main/resources/static/swagger/lib/backbone-min.js
create mode 100644 src/main/resources/static/swagger/lib/es5-shim.js
create mode 100644 src/main/resources/static/swagger/lib/handlebars-4.0.5.js
create mode 100644 src/main/resources/static/swagger/lib/highlight.9.1.0.pack.js
create mode 100644 src/main/resources/static/swagger/lib/highlight.9.1.0.pack_extended.js
create mode 100644 src/main/resources/static/swagger/lib/jquery-1.8.0.min.js
create mode 100644 src/main/resources/static/swagger/lib/jquery.ba-bbq.min.js
create mode 100644 src/main/resources/static/swagger/lib/jquery.slideto.min.js
create mode 100644 src/main/resources/static/swagger/lib/jquery.wiggle.min.js
create mode 100644 src/main/resources/static/swagger/lib/js-yaml.min.js
create mode 100644 src/main/resources/static/swagger/lib/jsoneditor.min.js
create mode 100644 src/main/resources/static/swagger/lib/lodash.min.js
create mode 100644 src/main/resources/static/swagger/lib/marked.js
create mode 100644 src/main/resources/static/swagger/lib/object-assign-pollyfill.js
create mode 100644 src/main/resources/static/swagger/lib/sanitize-html.min.js
create mode 100644 src/main/resources/static/swagger/lib/swagger-oauth.js
create mode 100644 src/main/resources/static/swagger/o2c.html
create mode 100644 src/main/resources/static/swagger/oauth2-redirect.html
create mode 100644 src/main/resources/static/swagger/swagger-ui-bundle.js
create mode 100644 src/main/resources/static/swagger/swagger-ui-bundle.js.map
create mode 100644 src/main/resources/static/swagger/swagger-ui-standalone-preset.js
create mode 100644 src/main/resources/static/swagger/swagger-ui-standalone-preset.js.map
create mode 100644 src/main/resources/static/swagger/swagger-ui.css
create mode 100644 src/main/resources/static/swagger/swagger-ui.css.map
create mode 100644 src/main/resources/static/swagger/swagger-ui.js
create mode 100644 src/main/resources/static/swagger/swagger-ui.js.map
create mode 100644 src/main/resources/static/swagger/swagger-ui.min.js
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..cbe2ebf2
--- /dev/null
+++ b/README.md
@@ -0,0 +1,39 @@
+**项目说明**
+- sqx-fast是一个轻量级的,前后端分离的Java快速开发平台,能快速开发项目并交付
+- 支持MySQL、PostgreSQL等主流数据库
+
+
+
+**具有如下特点**
+- 友好的代码结构及注释,便于阅读及二次开发
+- 实现前后端分离,通过token进行数据交互,前端再也不用关注后端技术
+- 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求
+- 页面交互使用Vue2.x,极大的提高了开发效率
+- 引入API模板,根据token作为登录令牌,极大的方便了APP接口开发
+- 引入swagger文档支持,方便编写API接口文档
+
+
+
+**技术选型:**
+- 核心框架:Spring Boot 2.6
+- 安全框架:Apache Shiro 1.4
+- 视图框架:Spring MVC 5.0
+- 持久层框架:MyBatis 3.3
+- 数据库连接池:Druid 1.0
+- 日志管理:SLF4J 1.7、Log4j
+- 页面交互:Vue2.x
+
+
+
+ **后端部署**
+- 通过git下载源码
+- idea、eclipse需安装lombok插件,不然会提示找不到entity的get set方法
+- 创建数据库sqx_fast,数据库编码为UTF-8
+- 执行db/mysql.sql文件,初始化数据
+- 修改application-dev.yml,更新MySQL账号和密码
+- Eclipse、IDEA运行sqxApplication.java,则可启动项目
+- Swagger文档路径:http://localhost:8080/sqx_fast/swagger/index.html
+- Swagger注解路径:http://localhost:8080/sqx_fast/swagger-ui.html
+
+
+
diff --git a/db/duanju.sql b/db/duanju.sql
new file mode 100644
index 00000000..3281eb5d
--- /dev/null
+++ b/db/duanju.sql
@@ -0,0 +1,1861 @@
+/*
+ Navicat Premium Data Transfer
+
+ Source Server : 服务器数据库
+ Source Server Type : MySQL
+ Source Server Version : 50734
+ Source Host : 42.193.11.150:3306
+ Source Schema : z3
+
+ Target Server Type : MySQL
+ Target Server Version : 50734
+ File Encoding : 65001
+
+ Date: 06/11/2024 19:07:45
+*/
+
+SET NAMES utf8mb4;
+SET FOREIGN_KEY_CHECKS = 0;
+
+-- ----------------------------
+-- Table structure for activity
+-- ----------------------------
+DROP TABLE IF EXISTS `activity`;
+CREATE TABLE `activity` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '轮播id',
+ `create_at` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '时间',
+ `image_url` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '图片',
+ `state` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '分类',
+ `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '跳转地址',
+ `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '标题',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 10 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = '轮播表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of activity
+-- ----------------------------
+INSERT INTO `activity` VALUES (4, '2020-09-03 22:13:42', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358312292.png', '1', '/pages/discovery/list', '报名活动');
+INSERT INTO `activity` VALUES (5, '2020-06-17 09:42:36', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358296803.png', '1', '/pages/index/list?title=超值大牌&type=8', '俱乐部介绍');
+INSERT INTO `activity` VALUES (6, '2020-06-17 09:42:22', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358282896.png', '1', '/pages/index/list?title=9.9包邮&type=2', '活动公示');
+INSERT INTO `activity` VALUES (7, '2020-06-17 09:42:08', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358269302.png', '1', '/pages/index/tuiguang?cid=9', '公益活动');
+INSERT INTO `activity` VALUES (8, '2020-07-08 16:03:23', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358254867.png', '1', '/pages/index/list?title=30元精选&type=3', '信息公示');
+INSERT INTO `activity` VALUES (9, '2020-07-08 16:02:32', 'http://shegnqx.oss-cn-beijing.aliyuncs.com/1592358240332.png', '1', '/pages/index/list?title=巨划算&type=4', '线下活动');
+
+-- ----------------------------
+-- Table structure for app
+-- ----------------------------
+DROP TABLE IF EXISTS `app`;
+CREATE TABLE `app` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'app升级配置',
+ `android_wgt_url` varchar(600) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '安卓升级地址',
+ `create_at` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `des` varchar(600) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '描述',
+ `ios_version` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '苹果版本',
+ `ios_wgt_url` varchar(600) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '苹果升级地址',
+ `method` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '是否强制升级',
+ `version` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '安卓版本',
+ `wgt_url` varchar(600) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '通用下载地址',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = 'app升级配置表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of app
+-- ----------------------------
+INSERT INTO `app` VALUES (5, 'https://www.pgyer.com/hb2v', '2020-07-20 18:35:00', '升级', '1.0.0', '1.0.0', 'false', '1.0.0', 'https://www.pgyer.com/hb2v');
+
+-- ----------------------------
+-- Table structure for banner
+-- ----------------------------
+DROP TABLE IF EXISTS `banner`;
+CREATE TABLE `banner` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '名称',
+ `image_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '图片地址',
+ `state` int(2) NULL DEFAULT NULL COMMENT '状态1正常2隐藏',
+ `classify` int(2) NULL DEFAULT NULL COMMENT '分类1banner图2首页分类',
+ `url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '跳转地址 ',
+ `sort` int(10) NULL DEFAULT NULL COMMENT '顺序',
+ `describes` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 42 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'banner图表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of banner
+-- ----------------------------
+INSERT INTO `banner` VALUES (4, '2021-04-27 11:38:20', 'banner4', 'https://shegnqx.oss-cn-beijing.aliyuncs.com/20200804/47ba8f7ed92a4cc79ae5d514cd61f8d4.png', 1, 4, 'https://shegnqx.oss-cn-beijing.aliyuncs.com/20200804/47ba8f7ed92a4cc79ae5d514cd61f8d4.png', 4, '6666');
+INSERT INTO `banner` VALUES (13, '2023-12-14 11:38:33', '免费体验', 'https://duanju.xianmxkj.com/file/uploadPath/2023/12/14/e153506051b16b73e7dfbd0a4795aa3a.png', 1, 5, '42322222', NULL, '快来和我一起看剧吧');
+INSERT INTO `banner` VALUES (19, '2024-04-25 13:35:19', 'c', 'https://duanju.xianmxkj.com/file/uploadPath/2024/04/25/dec38d96787a9824d724306932e3d9f1.jpg', 1, 1, 'https://www.xiansqx.com', NULL, '');
+INSERT INTO `banner` VALUES (27, '2023-08-22 17:11:08', '1', 'https://jiaoyu.xianmxkj.com/img/20230822/27d37f847db9481bb3dc54cd12258147.jpg', 1, 3, 'https://www.xiansqx.com', NULL, '1');
+INSERT INTO `banner` VALUES (29, '2023-08-30 10:30:35', 'a', 'https://duanju.xianmxkj.com/img/20230830/a2b0ce8729dc4ccb82cab53b171eb979.png', 1, 10, '', NULL, '');
+INSERT INTO `banner` VALUES (30, '2023-08-30 10:30:35', '2', 'https://duanju.xianmxkj.com/img/20230830/40ee369b5b704080a7f291fa4b2d6807.png', 1, 10, '', NULL, '');
+INSERT INTO `banner` VALUES (31, '2023-08-30 10:30:35', '3', 'https://duanju.xianmxkj.com/img/20230830/459f94b7a9ee4cc08b7a4e268696a2ba.png', 1, 10, '', NULL, '');
+INSERT INTO `banner` VALUES (32, '2023-08-30 10:30:35', '4', 'https://duanju.xianmxkj.com/img/20230830/297e10333d4d42a58c6f21ecf160ea8e.png', 1, 10, '', NULL, '');
+INSERT INTO `banner` VALUES (34, '2024-04-24 19:10:37', '最新', 'https://duanju12.xianmxkj.com/file/uploadPath/2024/04/24/c42e63b16af90a87e41b728e80540087.png', 1, 2, '/pages/index/course/courseList?title=最新', 1, '最新');
+INSERT INTO `banner` VALUES (35, '2024-04-24 19:10:37', '排行', 'https://duanju12.xianmxkj.com/file/uploadPath/2024/04/24/13a3cb2d2d15f77122ea4dc1fe499c84.png', 1, 2, '/pages/index/course/courseList?sort=1&title=排行', NULL, '排行');
+INSERT INTO `banner` VALUES (36, '2024-04-24 19:10:37', '最热', 'https://duanju12.xianmxkj.com/file/uploadPath/2024/04/24/c576fb32c1e8f9fecee84d137f96826b.png', 1, 2, '/pages/index/course/courseList?title=最热&sort=2', NULL, '最热');
+INSERT INTO `banner` VALUES (37, '2024-04-25 13:35:19', 'a', 'https://duanju.xianmxkj.com/file/uploadPath/2024/04/25/80beadc41f2f4a97cf8168bcbe6f2c3a.jpg', 1, 1, '', NULL, 's');
+INSERT INTO `banner` VALUES (38, '2023-08-22 17:12:12', '2', 'https://jiaoyu.xianmxkj.com/img/20230822/466ca0fab359440ca30b1c9696dbe375.jpg', 1, 3, 'https://www.xiansqx.com', NULL, '2');
+INSERT INTO `banner` VALUES (40, '2024-04-24 19:10:37', '剧情', 'https://duanju12.xianmxkj.com/file/uploadPath/2024/04/24/ef75eab32aa17730e88e3110f5a7a26e.png', 1, 2, '/me/juqing/juqing', NULL, '剧情');
+INSERT INTO `banner` VALUES (41, '2024-04-24 19:10:37', '壁纸', 'https://duanju12.xianmxkj.com/file/uploadPath/2024/04/24/041344f6449660d3b920da136b2c8f57.png', 1, 2, '/me/wallpaper/wallpaper', NULL, '壁纸');
+
+-- ----------------------------
+-- Table structure for cash_out
+-- ----------------------------
+DROP TABLE IF EXISTS `cash_out`;
+CREATE TABLE `cash_out` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '申请提现id',
+ `create_at` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '申请时间',
+ `is_out` bit(1) NULL DEFAULT NULL COMMENT '是否转账',
+ `money` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '提现金额',
+ `out_at` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '转账时间',
+ `relation_id` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '会员编号',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `zhifubao` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝账号',
+ `zhifubao_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝姓名',
+ `order_number` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '订单编号',
+ `state` int(11) NULL DEFAULT NULL COMMENT '状态 0待转账 1成功 -1退款',
+ `refund` varchar(1000) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原因',
+ `rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '手续费',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '代理用户id',
+ `user_type` int(11) NULL DEFAULT NULL COMMENT '提现类型 1用户提现 2代理提现',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `index_name`(`relation_id`, `user_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 591 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = '提现表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of cash_out
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for comment_good
+-- ----------------------------
+DROP TABLE IF EXISTS `comment_good`;
+CREATE TABLE `comment_good` (
+ `comment_good_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '评论点赞id',
+ `course_comment_id` int(11) NULL DEFAULT NULL COMMENT '评论id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`comment_good_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 153 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '评论表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of comment_good
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for common_info
+-- ----------------------------
+DROP TABLE IF EXISTS `common_info`;
+CREATE TABLE `common_info` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '配置文件id',
+ `create_at` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `max` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '暂未使用',
+ `min` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '配置文件名称',
+ `type` int(11) NULL DEFAULT NULL COMMENT '类型',
+ `value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL COMMENT '值',
+ `condition_from` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '分类',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 893 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = '配置表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of common_info
+-- ----------------------------
+INSERT INTO `common_info` VALUES (1, '2024-05-21 13:51:30', NULL, '客服二维码', 1, 'https://duanju.xianmxkj.com/file/uploadPath/2024/04/10/6419a606a2bc7846819b44af4a595a82.jpeg', 'image');
+INSERT INTO `common_info` VALUES (2, '2024-03-20 13:59:42', NULL, '公众号二维码', 2, 'https://duanju.xianmxkj.com/file/uploadPath/2024/03/20/29f938f27ac9a3b8793c3950c518d5f7.jpg', 'image');
+INSERT INTO `common_info` VALUES (3, '2020-11-04 10:31:40', NULL, '注册邀请码是否必填', 3, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (5, '2024-06-26 16:08:41', NULL, '微信公众号APPID ', 5, '', 'weixin');
+INSERT INTO `common_info` VALUES (16, '2024-06-26 16:08:28', NULL, '微信公众号秘钥 ', 21, '', 'weixin');
+INSERT INTO `common_info` VALUES (17, '2020-02-25 20:43:59', NULL, '公众号Token', 16, 'maxd', 'weixin');
+INSERT INTO `common_info` VALUES (18, '2020-02-25 20:44:15', NULL, '公众号EncodingAESKey ', 17, 'O8T7NubxpjOd7uNoVV7g01PDpPGUWpiGrLWWIFyaaCH', 'weixin');
+INSERT INTO `common_info` VALUES (20, '2024-06-15 13:37:25', NULL, '后台管理平台域名配置 ', 20, 'https://duanjuadmin12.xianmxkj.com', 'xitong');
+INSERT INTO `common_info` VALUES (21, '2024-04-25 13:35:14', NULL, 'h5服务域名配置 ', 19, 'https://duanju.xianmxkj.com', 'xitong');
+INSERT INTO `common_info` VALUES (22, '2020-07-27 15:17', NULL, '短信服务商(1 开启腾讯云 2 开启阿里云 3短信宝)', 79, '3', 'duanxin');
+INSERT INTO `common_info` VALUES (23, '2024-06-26 16:09:11', NULL, '后台服务名称 ', 12, '省钱兄', 'xitong');
+INSERT INTO `common_info` VALUES (33, '2021-03-15 21:19:27', NULL, '腾讯云短信clientId ', 31, '', 'duanxin');
+INSERT INTO `common_info` VALUES (34, '2020-03-28 00:47', NULL, '腾讯云短信clientSecret ', 32, '', 'duanxin');
+INSERT INTO `common_info` VALUES (47, '2024-06-26 16:08:14', NULL, '微信小程序APPID', 45, '', 'weixin');
+INSERT INTO `common_info` VALUES (48, '2024-06-26 16:08:05', NULL, '微信小程序秘钥', 46, '', 'weixin');
+INSERT INTO `common_info` VALUES (51, '2023-12-14 14:46:01', NULL, '分享安卓下载地址', 49, 'https://duanju.xianmxkj.com/duanju.apk', 'xitong');
+INSERT INTO `common_info` VALUES (52, '2020-03-29 00:21', NULL, '分享苹果下载地址', 50, 'https://www.pgyer.com/c11o', 'xitong');
+INSERT INTO `common_info` VALUES (58, '2020-03-29 00:21', NULL, '开启微信登录', 53, '是', 'xitongs');
+INSERT INTO `common_info` VALUES (69, '2020-06-04 16:34', NULL, 'APP消息推送PushAppKey', 60, '0n6PRHS4ph85bBI9nbRCs7', 'push');
+INSERT INTO `common_info` VALUES (70, '2020-06-04 16:34', NULL, 'APP消息推送PushAppId', 61, 'kmAYxzB5Ys93Kn7ysprSx3', 'push');
+INSERT INTO `common_info` VALUES (71, '2020-06-04 16:34', NULL, 'APP消息推送PushMasterSecret', 62, 'KZQn7eeT9I9q6U3CsDjcK2', 'push');
+INSERT INTO `common_info` VALUES (72, '2020-06-04 16:34', NULL, '企业支付宝APPID', 63, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (73, '2020-06-04 16:34', NULL, '企业支付宝公钥', 64, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (74, '2020-06-04 16:34', NULL, '企业支付宝商户秘钥', 65, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (77, '2024-07-30 13:42:02', NULL, '文件上传阿里云Endpoint', 68, 'https://oss-cn-beijing.aliyuncs.com', 'oss');
+INSERT INTO `common_info` VALUES (78, '2024-07-30 14:03:03', NULL, '文件上传阿里云账号accessKeyId', 69, '', 'oss');
+INSERT INTO `common_info` VALUES (79, '2024-07-30 14:03:10', NULL, '文件上传阿里云账号accessKeySecret', 70, '', 'oss');
+INSERT INTO `common_info` VALUES (80, '2021-03-15 21:22:53', NULL, '文件上传阿里云Bucket名称', 71, 'shegnqx', 'oss');
+INSERT INTO `common_info` VALUES (81, '2024-07-30 14:03:06', NULL, '文件上传阿里云Bucket域名', 72, '', 'oss');
+INSERT INTO `common_info` VALUES (82, '2024-07-30 13:42:22', NULL, '文件上传阿里云加速Bucket域名', 73, '', 'oss');
+INSERT INTO `common_info` VALUES (83, '2020-07-27 15:17', NULL, '微信APPappId', 74, '', 'weixin');
+INSERT INTO `common_info` VALUES (84, '2020-07-27 15:17', NULL, '微信商户key', 75, '', 'weixin');
+INSERT INTO `common_info` VALUES (85, '2020-07-27 15:17', NULL, '微信商户号mchId', 76, '', 'weixin');
+INSERT INTO `common_info` VALUES (88, '2021-02-24 18:46:57', NULL, '官方邀请码', 88, '666666', 'xitong');
+INSERT INTO `common_info` VALUES (89, '2023-08-28 11:23:02', NULL, '会员赏金百分比', 80, '0.5', 'fuwufeis');
+INSERT INTO `common_info` VALUES (90, '2021-03-15 21:19:21', NULL, '短信签名', 81, '省钱兄', 'duanxin');
+INSERT INTO `common_info` VALUES (96, '2020-07-27 15:17', NULL, '阿里云登陆或注册模板code(开启阿里云短信必须配置)', 82, 'SMS_200190994', 'duanxin');
+INSERT INTO `common_info` VALUES (97, '2020-07-27 15:17', NULL, '阿里云找回密码模板code(开启阿里云短信必须配置)', 83, 'SMS_200176048', 'duanxin');
+INSERT INTO `common_info` VALUES (98, '2020-07-27 15:17', NULL, '阿里云绑定手机号模板code(开启阿里云短信必须配置)', 84, 'SMS_200186024', 'duanxin');
+INSERT INTO `common_info` VALUES (99, '2020-07-27 15:17', NULL, '阿里云短信accessKeyId', 85, '', 'duanxin');
+INSERT INTO `common_info` VALUES (100, '2020-07-27 15:17', NULL, '阿里云短信accessSecret', 86, '', 'duanxin');
+INSERT INTO `common_info` VALUES (101, '2020-07-27 15:17', NULL, '支付宝转账方式 1证书 2秘钥 3手动', 98, '3', 'zhifubao');
+INSERT INTO `common_info` VALUES (102, '2023-06-06 16:50:22', NULL, '初始签到积分', 102, '100', 'fuwufei');
+INSERT INTO `common_info` VALUES (103, '2020-07-27 15:17', NULL, '积分签到累计增加', 103, '10', 'fuwufei');
+INSERT INTO `common_info` VALUES (104, '2020-07-27 15:17', NULL, '积分兑换比例 1元等于', 104, '100', 'fuwufei');
+INSERT INTO `common_info` VALUES (124, '2024-07-08 01:39:07', NULL, '是否开启公众号自动登陆', 108, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (125, '2020-07-27 15:17', NULL, '是否开启公众号自动注册', 109, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (130, '2020-11-04 10:31:40', NULL, '提现最低额度', 112, '1', 'xitong');
+INSERT INTO `common_info` VALUES (140, '2020-07-27 15:17', NULL, '腾讯地图key', 128, 'WI7BZ-YZCKF-U3BJQ-JUMBB-XUQ3E-UXFYU', 'xitong');
+INSERT INTO `common_info` VALUES (170, '2020-11-04 10:31:40', NULL, '提现手续费', 152, '0.01', 'fuwufei');
+INSERT INTO `common_info` VALUES (171, '2020-11-04 10:31:40', NULL, '最高提现金额', 153, '10000', 'fuwufei');
+INSERT INTO `common_info` VALUES (172, '2021-08-05 15:30:22', NULL, '用户协议', 154, '
合作协议
欢迎您签订《合作协议》(下称“本协议”)!本协议签约主体为您与SAC俱乐部平台经营者(陕西联杰宇宙娱乐有限公司】,下称“SAC俱乐部”),本协议对您与SAC俱乐部均具有法律约束力。
一、合作事项
您自愿推广商户在SAC俱乐部平台上发布的特卖活动销售信息,商户同意您的推广行为并给予您一定的劳务报酬。SAC俱乐部给予您协助,协助行为包括但不限于代商家支付您劳务报酬、提供相关后台给您使用等。
二、合作宗旨
1、只有您在同意本协议内容后,您才能开展推广平台信息的相关活动,并获得劳务报酬;
2、SAC俱乐部作为监督平台,负责代商户对您的推广行为进行监督,您获取的劳务报酬实际由商户承担,SAC俱乐部代为支付。如您对劳务报酬有异议,SAC俱乐部将帮助您与商家进行积极沟通。
3、您应坚持诚实守信的原则,合法、合规、合理地开展推广活动。SAC俱乐部有权代表商户监督、检查您所使用的任何推广方式,对于不利于SAC俱乐部平台和商户的推广方式(具体以SAC俱乐部认定为准),SAC俱乐部有权要求您立即停止推广活动甚至取消您推广平台信息的资格(包括但不限于冻结、注销您的推广账户等),给SAC俱乐部或商户造成损失的,您同时还应承担损失赔偿责任以及律师费、诉讼费等SAC俱乐部或商户为保护权益、实现权益所产生的一切费用。
4、您应真实、准确、完整地向SAC俱乐部反馈您的推广信息。如您反馈虚假数据,经SAC俱乐部核实的,SAC俱乐部或商户有权不予支付劳务报酬,并向您追索您因反馈虚假数据所获取的劳务报酬。
三、劳务报酬与结算方式
1、劳务报酬的计算方式:由SAC俱乐部按照您的有效推广数量进行统计,具体订单的报酬由提供具体产品/服务的商户根据上线产品的情况综合评估确定;
2、劳务报酬的结算周期与结算方式为:消费者在SAC俱乐部平台上产生订单,SAC俱乐部将代商户在1个工作日内确定订单有效性并统计劳务报酬。劳务报酬将直接计入您在SAC俱乐部的账户中,当您个人账户满50元时,方可提现至本人微信钱包;
3、有效推广数量是指消费者在SAC俱乐部平台上购买订单并经商家核销后的有效订单数量。如因商家原因或客户自身原因导致退单的,该订单即视为失效订购单,SAC俱乐部将有权代商户扣回失效订单的的劳务报酬。
四、特别关注
1、在您获取SAC俱乐部的推广账户之前,请您特别注意如下事项:
1)请确认您是否具有中华人民共和国法律所规定的相应的民事行为能力,如您不具备相应的民事行为能力,则您及您的监护人将会承担由此导致的一切后果;
2)严格遵守SAC俱乐部所制定的推广管理机制,不得违背相关规则;
3)您应通过合法合规渠道获得SAC俱乐部的推广账户,不得使用SAC俱乐部所不知道且不认可的方式手段获得推广账户;
4)您应使用合法、合规、合理的方式推广平台信息,如您的推广行为触犯了中华人民共和国的法律、法规、规范性文件,则一切后果由您自行承担,您的一切违法行为皆与SAC俱乐部和商户无关;
5)您应保证提供给SAC俱乐部的注册资料真实无误,该资料对于您获取劳务报酬至关重要。如因您提供虚假资料或被他人获悉您自己的注册资料,从而导致的损失全部由您本人承担;
6)您对因履行本协议所接触、知悉的SAC俱乐部的所有信息均负有保密义务。您不得通过各种手段获取SAC俱乐部的内部隐私资料,更不得将SAC俱乐部的信息、资料透露给他人,否则SAC俱乐部有权追究您的法律责任;
7)您承诺不会在网络上以及在含有SAC俱乐部平台信息的网页上(包括但不限于论坛、BBS、评论等) 发布如下信息:
① 反对宪法所确定的基本原则的;
② 危害国家安全,泄露国家秘密,颠覆国家政权,破坏国家统一的;
③ 损害国家荣誉和利益的;
④ 煽动民族仇恨、民族歧视,破坏民族团结的;
⑤ 破坏国家宗教政策,宣扬邪教和封建迷信的;
⑥ 散布谣言,扰乱社会秩序,破坏社会稳定的;
⑦ 散布淫秽、色情、赌博、暴力、凶杀、恐怖或者教唆犯罪的;
⑧ 侮辱或者诽谤他人,侵害他人合法权益的;
⑨ 造谣诬陷损害SAC俱乐部平台名誉的;
⑩ 以及其他法律、行政法规禁止的其他内容的。
8)未经SAC俱乐部同意不得擅自复制、篡改、编制SAC俱乐部平台信息或平台自身宣传资料(包括但不限于声音、文字、图片、视频),更不得发布此类信息。
2、由于互联网世界的高速发展,本协议暂不能罗列且覆盖所有您与SAC俱乐部的权利与义务,也不能保证能适应将来的发展,因此,SAC俱乐部在平台上公示的与本协议相关的规则、声明、政策、解读、实施细则、公告和协议等均为本协议的补充协议,为本协议不可分割的一部分且具有同等法律效力。如在该类补充协议公示后,您继续使用SAC俱乐部的推广账户,即视为您同意前述补充协议并受其约束。
3、如您在开展推广过程中受到人身损害或财产损失的,由您自行负责,SAC俱乐部和商户对此不承担任何责任。
4、您与SAC俱乐部之间不存在劳动关系、劳务派遣关系或类似关系,SAC俱乐部不对您进行劳动者性质的管理,不对您承担劳动关系上的义务,您与SAC俱乐部之间不适用《劳动法》、《劳动合同法》等劳动相关的法律、法规、规范性文件。如因临时需要您临时佩戴SAC俱乐部标志、获取员工卡或办理与SAC俱乐部员工类似的手续,亦不代表您与SAC俱乐部之间建立劳动关系。
五、争议解决
本协议在订立、履行过程中发生的争议,由SAC俱乐部与您协商解决。协商不成时,任何一方均可向SAC俱乐部平台经营者【陕西联联科技有限公司】所在地人民法院提起诉讼。
本协议著作权由SAC俱乐部所有,SAC俱乐部依法保留解释权利。
', 'xieyi');
+INSERT INTO `common_info` VALUES (173, '2021-08-05 15:30:22', NULL, '隐私协议', 155, 'SAC俱乐部尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,SAC俱乐部会按照本隐私权政策的规定使用和披露您的个人信息。但SAC俱乐部将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,SAC俱乐部不会将这些信息对外披露或向第三方提供。SAC俱乐部会不时更新本隐私权政策。 您在同意SAC俱乐部服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于SAC俱乐部服务使用协议不可分割的一部分。
1. 适用范围
(a) 在您注册SAC俱乐部帐号时,您根据SAC俱乐部要求提供的个人注册信息;
(b) 在您使用SAC俱乐部网络服务,或访问SAC俱乐部平台网页时,SAC俱乐部自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
(c) SAC俱乐部通过合法途径从商业伙伴处取得的用户个人数据。
您了解并同意,以下信息不适用本隐私权政策:
(a) 您在使用SAC俱乐部平台提供的搜索服务时输入的关键字信息;
(b) SAC俱乐部收集到的您在SAC俱乐部发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;
(c) 违反法律规定或违反SAC俱乐部规则行为及SAC俱乐部已对您采取的措施。
2. 信息使用
(a)SAC俱乐部不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先得到您的许可,或该第三方和SAC俱乐部(含SAC俱乐部关联公司)单独或共同为您提供服务,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。
(b) SAC俱乐部亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何SAC俱乐部平台用户如从事上述活动,一经发现,SAC俱乐部有权立即终止与该用户的服务协议。
(c) 为服务用户的目的,SAC俱乐部可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与SAC俱乐部合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。
3. 信息披露
在如下情况下,SAC俱乐部将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息:
(a) 经您事先同意,向第三方披露;
(b)为提供您所要求的产品和服务,而必须和第三方分享您的个人信息;
(c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;
(d) 如您出现违反中国有关法律、法规或者SAC俱乐部服务协议或相关规则的情况,需要向第三方披露;
(e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷;
(f) 在SAC俱乐部平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,SAC俱乐部有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。
(g) 其它SAC俱乐部根据法律、法规或者网站政策认为合适的披露。
4. 信息存储和交换
SAC俱乐部收集的有关您的信息和资料将保存在SAC俱乐部及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或SAC俱乐部收集信息和资料所在地的境外并在境外被访问、存储和展示。
5. Cookie的使用
(a) 在您未拒绝接受cookies的情况下,SAC俱乐部会在您的计算机上设定或取用cookies ,以便您能登录或使用依赖于cookies的SAC俱乐部平台服务或功能。SAC俱乐部使用cookies可为您提供更加周到的个性化服务,包括推广服务。
(b) 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。但如果您选择拒绝接受cookies,则您可能无法登录或使用依赖于cookies的SAC俱乐部网络服务或功能。
(c) 通过SAC俱乐部所设cookies所取得的有关信息,将适用本政策。
6. 信息安全
(a) SAC俱乐部帐号均有安全保护功能,请妥善保管您的用户名及密码信息。SAC俱乐部将通过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施,但同时也请您注意在信息网络上不存在“完善的安全措施”。
(b) 在使用SAC俱乐部网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是SAC俱乐部用户名及密码发生泄露,请您立即联络SAC俱乐部客服,以便SAC俱乐部采取相应措施。
7.本隐私政策的更改
(a)如果决定更改隐私政策,我们会在本政策中、本公司网站中以及我们认为适当的位置发布这些更改,以便您了解我们如何收集、使用您的个人信息,哪些人可以访问这些信息,以及在什么情况下我们会透露这些信息。
(b)本公司保留随时修改本政策的权利,因此请经常查看。如对本政策作出重大更改,本公司会通过网站通知的形式告知。
', 'xieyi');
+INSERT INTO `common_info` VALUES (186, '2020-07-27 15:17', NULL, '云购支付宝商户号', 168, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (187, '2020-07-27 15:17', NULL, '云购支付宝秘钥', 169, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (200, '2020-11-04 10:31:40', NULL, '支付宝证书地址', 200, '', 'zhifubao');
+INSERT INTO `common_info` VALUES (201, '2020-11-04 10:31:40', NULL, '支付宝方式 1证书 2秘钥 3云购os', 201, '2', 'zhifubao');
+INSERT INTO `common_info` VALUES (202, '2024-03-20 11:15:41', NULL, '客服配置 1 二维码客服 2 微信公众号客服 3电话客服 ', 202, '1', 'xitong');
+INSERT INTO `common_info` VALUES (203, '2020-11-04 10:31:40', NULL, '微信客服appid ', 203, '2', 'xitong');
+INSERT INTO `common_info` VALUES (204, '2020-11-04 10:31:40', NULL, '微信客服链接', 204, '2', 'xitong');
+INSERT INTO `common_info` VALUES (205, '2023-03-08 17:25:27', NULL, '客服二维码', 205, 'https://jiaoyu.xianmxkj.com/file/uploadPath/2023/03/08/4ab3dbaca00b1c778aab84b09246be9b.jpg', 'image');
+INSERT INTO `common_info` VALUES (206, '2020-11-04 10:31:40', NULL, '客服电话', 206, '2', 'xitong');
+INSERT INTO `common_info` VALUES (207, '2024-05-11 15:12:42', NULL, '客服微信号', 207, 'maxdlin', 'xitong');
+INSERT INTO `common_info` VALUES (234, '2024-07-30 14:02:59', NULL, '上传方式 1阿里云oss 2腾讯云oss 3亚马逊Amazon S3 4抖音 5本地', 234, '4', 'oss');
+INSERT INTO `common_info` VALUES (235, '2023-03-13 10:50:29', NULL, '小程序是否上架1', 235, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (236, '2023-03-13 10:50:29', NULL, '小程序是否上架2', 236, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (237, '2023-09-01 13:49:55', NULL, '小程序是否获取手机号', 237, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (238, '2020-07-27 15:17', NULL, '短信宝用户名', 238, '', 'duanxin');
+INSERT INTO `common_info` VALUES (239, '2020-07-27 15:17', NULL, '短信宝密码', 239, '', 'duanxin');
+INSERT INTO `common_info` VALUES (240, '2020-11-04 10:31:40', NULL, '腾讯云短信SecretId', 240, '', 'duanxin');
+INSERT INTO `common_info` VALUES (241, '2020-11-04 10:31:40', NULL, '腾讯云短信SecretKey', 241, '', 'duanxin');
+INSERT INTO `common_info` VALUES (242, '2020-11-04 10:31:40', NULL, '腾讯云短信登录或注册模板id', 242, '1747645', 'duanxin');
+INSERT INTO `common_info` VALUES (243, '2020-11-04 10:31:40', NULL, '腾讯云短信找回密码模板id', 243, '1746427', 'duanxin');
+INSERT INTO `common_info` VALUES (244, '2020-11-04 10:31:40', NULL, '腾讯云短信绑定手机号模板id', 244, '1746428', 'duanxin');
+INSERT INTO `common_info` VALUES (245, '2023-09-01 13:15:35', NULL, '充值列表', 245, '0.01,50,100,200', 'fuwufei');
+INSERT INTO `common_info` VALUES (246, '2021-08-05 15:30:22', NULL, '用户注销协议', 246, 'SAC俱乐部尊重并保护所有使用服务用户的个人隐私权。为了给您提供更准确、更有个性化的服务,SAC俱乐部会按照本隐私权政策的规定使用和披露您的个人信息。但SAC俱乐部将以高度的勤勉、审慎义务对待这些信息。除本隐私权政策另有规定外,在未征得您事先许可的情况下,SAC俱乐部不会将这些信息对外披露或向第三方提供。SAC俱乐部会不时更新本隐私权政策。 您在同意SAC俱乐部服务使用协议之时,即视为您已经同意本隐私权政策全部内容。本隐私权政策属于SAC俱乐部服务使用协议不可分割的一部分。
1. 适用范围
(a) 在您注册SAC俱乐部帐号时,您根据SAC俱乐部要求提供的个人注册信息;
(b) 在您使用SAC俱乐部网络服务,或访问SAC俱乐部平台网页时,SAC俱乐部自动接收并记录的您的浏览器和计算机上的信息,包括但不限于您的IP地址、浏览器的类型、使用的语言、访问日期和时间、软硬件特征信息及您需求的网页记录等数据;
(c) SAC俱乐部通过合法途径从商业伙伴处取得的用户个人数据。
您了解并同意,以下信息不适用本隐私权政策:
(a) 您在使用SAC俱乐部平台提供的搜索服务时输入的关键字信息;
(b) SAC俱乐部收集到的您在SAC俱乐部发布的有关信息数据,包括但不限于参与活动、成交信息及评价详情;
(c) 违反法律规定或违反SAC俱乐部规则行为及SAC俱乐部已对您采取的措施。
2. 信息使用
(a)SAC俱乐部不会向任何无关第三方提供、出售、出租、分享或交易您的个人信息,除非事先得到您的许可,或该第三方和SAC俱乐部(含SAC俱乐部关联公司)单独或共同为您提供服务,且在该服务结束后,其将被禁止访问包括其以前能够访问的所有这些资料。
(b) SAC俱乐部亦不允许任何第三方以任何手段收集、编辑、出售或者无偿传播您的个人信息。任何SAC俱乐部平台用户如从事上述活动,一经发现,SAC俱乐部有权立即终止与该用户的服务协议。
(c) 为服务用户的目的,SAC俱乐部可能通过使用您的个人信息,向您提供您感兴趣的信息,包括但不限于向您发出产品和服务信息,或者与SAC俱乐部合作伙伴共享信息以便他们向您发送有关其产品和服务的信息(后者需要您的事先同意)。
3. 信息披露
在如下情况下,SAC俱乐部将依据您的个人意愿或法律的规定全部或部分的披露您的个人信息:
(a) 经您事先同意,向第三方披露;
(b)为提供您所要求的产品和服务,而必须和第三方分享您的个人信息;
(c) 根据法律的有关规定,或者行政或司法机构的要求,向第三方或者行政、司法机构披露;
(d) 如您出现违反中国有关法律、法规或者SAC俱乐部服务协议或相关规则的情况,需要向第三方披露;
(e) 如您是适格的知识产权投诉人并已提起投诉,应被投诉人要求,向被投诉人披露,以便双方处理可能的权利纠纷;
(f) 在SAC俱乐部平台上创建的某一交易中,如交易任何一方履行或部分履行了交易义务并提出信息披露请求的,SAC俱乐部有权决定向该用户提供其交易对方的联络方式等必要信息,以促成交易的完成或纠纷的解决。
(g) 其它SAC俱乐部根据法律、法规或者网站政策认为合适的披露。
4. 信息存储和交换
SAC俱乐部收集的有关您的信息和资料将保存在SAC俱乐部及(或)其关联公司的服务器上,这些信息和资料可能传送至您所在国家、地区或SAC俱乐部收集信息和资料所在地的境外并在境外被访问、存储和展示。
5. Cookie的使用
(a) 在您未拒绝接受cookies的情况下,SAC俱乐部会在您的计算机上设定或取用cookies ,以便您能登录或使用依赖于cookies的SAC俱乐部平台服务或功能。SAC俱乐部使用cookies可为您提供更加周到的个性化服务,包括推广服务。
(b) 您有权选择接受或拒绝接受cookies。您可以通过修改浏览器设置的方式拒绝接受cookies。但如果您选择拒绝接受cookies,则您可能无法登录或使用依赖于cookies的SAC俱乐部网络服务或功能。
(c) 通过SAC俱乐部所设cookies所取得的有关信息,将适用本政策。
6. 信息安全
(a) SAC俱乐部帐号均有安全保护功能,请妥善保管您的用户名及密码信息。SAC俱乐部将通过对用户密码进行加密等安全措施确保您的信息不丢失,不被滥用和变造。尽管有前述安全措施,但同时也请您注意在信息网络上不存在“完善的安全措施”。
(b) 在使用SAC俱乐部网络服务进行网上交易时,您不可避免的要向交易对方或潜在的交易对方披露自己的个人信息,如联络方式或者邮政地址。请您妥善保护自己的个人信息,仅在必要的情形下向他人提供。如您发现自己的个人信息泄密,尤其是SAC俱乐部用户名及密码发生泄露,请您立即联络SAC俱乐部客服,以便SAC俱乐部采取相应措施。
7.本隐私政策的更改
(a)如果决定更改隐私政策,我们会在本政策中、本公司网站中以及我们认为适当的位置发布这些更改,以便您了解我们如何收集、使用您的个人信息,哪些人可以访问这些信息,以及在什么情况下我们会透露这些信息。
(b)本公司保留随时修改本政策的权利,因此请经常查看。如对本政策作出重大更改,本公司会通过网站通知的形式告知。
', 'xieyi');
+INSERT INTO `common_info` VALUES (247, '2024-03-18 15:26:55', NULL, '是否开启同步资源', 247, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (248, '2023-09-06 18:55:17', NULL, '是否开启会员', 248, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (249, '2023-09-06 18:55:17', NULL, '热搜词', 249, '回到古代,都市,极品,总裁', 'xitong');
+INSERT INTO `common_info` VALUES (250, '2023-09-18 10:27:40', NULL, '短剧视频采集地址', 250, 'http://zqwjc1.aog.cc/api.php', 'xitong');
+INSERT INTO `common_info` VALUES (251, '2024-07-08 01:14:18', NULL, '微信是否开启看广告', 251, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (252, '2023-10-12 10:50:17', NULL, '激励广告id', 252, 'adunit-af2cac875c7bb5ab', 'xitong');
+INSERT INTO `common_info` VALUES (253, '2023-12-08 16:25:14', NULL, '首页关注公众号文案', 253, '关注公众号看剧不迷路', 'xitong');
+INSERT INTO `common_info` VALUES (254, '2023-10-12 15:14:18', NULL, '抖音是否开启看广告', 254, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (420, '2023-08-28 11:23:02', NULL, '一级佣金比例', 420, '0.1', 'fuwufei');
+INSERT INTO `common_info` VALUES (421, '2024-03-05 16:55:37', NULL, '二级佣金比例', 421, '0.04', 'fuwufei');
+INSERT INTO `common_info` VALUES (450, '2024-02-02 18:12:27', NULL, '剧导入模板', 450, 'https://duanju.xianmxkj.com/剧导入模板.xlsx', 'xitong');
+INSERT INTO `common_info` VALUES (451, '2024-02-02 18:12:49', NULL, '集导入模板', 451, 'https://duanju.xianmxkj.com/集导入模板.xlsx', 'xitong');
+INSERT INTO `common_info` VALUES (500, '2020-02-25 20:44:15', NULL, '付费须知说明', 500, '金豆一经购买不予退款,未满18岁需在监护人的指导、同意下进行付费操作', 'xieyi');
+INSERT INTO `common_info` VALUES (800, '2024-05-30 18:08:11', NULL, '腾讯云oss AccessKey', 800, '', 'oss');
+INSERT INTO `common_info` VALUES (801, '2024-05-30 18:08:06', NULL, '腾讯云oss SecretKey', 801, '', 'oss');
+INSERT INTO `common_info` VALUES (802, '2024-05-30 18:08:17', NULL, '腾讯云oss bucket地域', 802, 'ap-shanghai', 'oss');
+INSERT INTO `common_info` VALUES (803, '2024-05-30 18:07:56', NULL, '腾讯云oss bucketName', 803, 'duanju-1325195648', 'oss');
+INSERT INTO `common_info` VALUES (804, '2024-05-30 18:07:46', NULL, '腾讯云oss Bucket域名', 804, 'https://duanju-1325195648.cos.ap-shanghai.myqcloud.com', 'oss');
+INSERT INTO `common_info` VALUES (805, '2022-11-01 11:18:00', NULL, '抖音AppID', 805, '', 'xitong');
+INSERT INTO `common_info` VALUES (806, '2022-11-01 11:18:00', NULL, '抖音AppSecret', 806, '', 'xitong');
+INSERT INTO `common_info` VALUES (807, '2022-11-01 11:18:00', NULL, '亚马逊oss AccessKey', 807, '', 'oss');
+INSERT INTO `common_info` VALUES (808, '2022-11-01 11:18:00', NULL, '亚马逊oss SecretKey', 808, '', 'oss');
+INSERT INTO `common_info` VALUES (809, '2022-11-01 11:18:00', NULL, '亚马逊oss bucket地域', 809, 'ap-southeast-1', 'oss');
+INSERT INTO `common_info` VALUES (810, '2022-11-01 11:18:00', NULL, '亚马逊oss bucketName', 810, 'sqxsqx', 'oss');
+INSERT INTO `common_info` VALUES (811, '2022-11-01 11:18:00', NULL, '亚马逊oss Bucket域名', 811, 'https://sqxsqx.s3.ap-southeast-1.amazonaws.com', 'oss');
+INSERT INTO `common_info` VALUES (812, '2023-12-14 10:56:31', NULL, '助力背景图', 812, 'https://duanju.xianmxkj.com/file/uploadPath/2023/12/14/de8c4b94d6b36048d67ccdf333371632.png', 'image');
+INSERT INTO `common_info` VALUES (813, '2024-07-27 16:08:55', NULL, '是否开启助力活动', 813, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (814, '2023-09-01 13:49:55', NULL, '抖音是否获取手机号', 814, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (815, '2024-09-25 11:07:14', NULL, '抖音SALT', 815, 'pZ94BA771bRANpEwrVuwM9NMh4bnL0NmjuKbG4wa', 'xitong');
+INSERT INTO `common_info` VALUES (817, '2023-12-27 18:06:19', NULL, '是否开启购买整部视频', 817, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (818, '2023-12-27 13:24:31', NULL, '是否开启购买单集视频', 818, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (819, '2024-09-25 11:07:23', NULL, '抖音应用公钥版本', 819, '1', 'xitong');
+INSERT INTO `common_info` VALUES (820, '2024-01-06 11:40:25', NULL, '抖音回调域名', 820, 'https://duanju.xianmxkj.com', 'xitong');
+INSERT INTO `common_info` VALUES (821, '2024-01-06 11:40:25', NULL, '抖音原视频地址 1抖音云 2第三方', 821, '2', 'xitong');
+INSERT INTO `common_info` VALUES (822, '2024-06-26 16:07:33', NULL, '小程序AppKey', 822, '', 'xitong');
+INSERT INTO `common_info` VALUES (823, '2024-06-26 16:07:18', NULL, '微信虚拟支付OfferID', 823, '', 'xitong');
+INSERT INTO `common_info` VALUES (824, '2024-07-08 02:19:39', NULL, '微信虚拟支付环境 0正式环境 1沙盒环境', 824, '0', 'xitong');
+INSERT INTO `common_info` VALUES (825, '2024-01-06 11:40:25', NULL, '充值提示', 825, '金豆一经购买不予退款,未满18岁需在监护人的指导、同意下进行付费操作', 'xitong');
+INSERT INTO `common_info` VALUES (826, '2024-06-26 16:07:54', NULL, '小程序Token', 826, '', 'weixin');
+INSERT INTO `common_info` VALUES (827, '2024-06-26 16:07:44', NULL, '小程序EncodingAESKey ', 827, '', 'weixin');
+INSERT INTO `common_info` VALUES (828, '2020-02-25 20:43:59', NULL, '快手AppId', 828, '', 'xitong');
+INSERT INTO `common_info` VALUES (829, '2020-02-25 20:44:15', NULL, '快手AppSecret', 829, '', 'xitong');
+INSERT INTO `common_info` VALUES (830, '2023-09-01 13:49:55', NULL, '快手是否获取手机号', 830, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (831, '2023-09-01 13:49:55', NULL, '快手商品支付类目', 831, '1299', 'xitong');
+INSERT INTO `common_info` VALUES (832, '2023-09-01 13:49:55', NULL, '苹果支付环境 1正式 2沙盒', 832, '2', 'xitong');
+INSERT INTO `common_info` VALUES (833, '2024-02-21 18:11:35', NULL, '是否开启苹果登录', 833, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (834, '2024-02-21 18:15:59', NULL, '是否开启苹果支付', 834, '否', 'kaiguan');
+INSERT INTO `common_info` VALUES (835, '2024-07-08 01:15:30', NULL, '是否开启微信登录', 835, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (836, '2023-09-01 13:49:55', NULL, '是否开启手机号一键登录', 836, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (837, '2024-03-01 17:20:37', NULL, '新用户红包', 837, '', 'fuwufei');
+INSERT INTO `common_info` VALUES (849, '2024-07-10 18:05:23', NULL, '是否开启分类', 849, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (850, '2024-03-25 21:00:07', NULL, '是否开启pc端使用', 850, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (853, '2021-08-05 15:30:22', NULL, 'pc展示用户端文字', 853, '', 'xieyi');
+INSERT INTO `common_info` VALUES (854, '2024-04-10 06:58:25', NULL, 'pc展示用户端二维码', 854, 'https://duanju.xianmxkj.com/file/uploadPath/2024/04/10/5c08095b804ebd1958e4d197b0e00a6f.png', 'image');
+INSERT INTO `common_info` VALUES (855, '2024-03-01 18:42:05', NULL, '是否开启卡密充值', 855, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (856, '2024-03-05 14:05:48', NULL, '是否开启收益充值余额', 856, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (857, '2024-03-05 14:05:48', NULL, '抖音im客服', 857, '', 'xitong');
+INSERT INTO `common_info` VALUES (858, '2024-07-08 02:18:52', NULL, '是否开启公众号充值', 858, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (860, '2024-04-02 10:48:27', NULL, '抖音广告id', 860, '1dbld4jlahkd6p7qmk', 'xitong');
+INSERT INTO `common_info` VALUES (861, '2024-02-02 18:12:27', NULL, '接口请求凭证apiKey', 861, '', 'xitong');
+INSERT INTO `common_info` VALUES (862, '2024-02-02 18:12:27', NULL, '接口请求凭证apiSecret', 862, '', 'xitong');
+INSERT INTO `common_info` VALUES (881, '2024-04-10 14:30:12', NULL, '是否开启小程序自动登录', 881, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (882, '2024-04-10 14:30:12', NULL, '微信小程序IOS系统支付功能开关', 882, '是', 'kaiguan');
+INSERT INTO `common_info` VALUES (883, '2022-11-01 11:18:00', NULL, '腾讯云oss 加速Bucket域名', 883, 'https://sqxsqx-1300415966.cos.ap-beijing.myqcloud.com', 'oss');
+INSERT INTO `common_info` VALUES (887, '2024-04-19 14:13:56', NULL, '短剧标签', 887, '玄幻,都市,灵异,搞笑', 'xitong');
+INSERT INTO `common_info` VALUES (888, '2022-11-01 11:18:00', NULL, '抖音云accessKey', 888, '', 'oss');
+INSERT INTO `common_info` VALUES (889, '2024-04-19 14:13:56', NULL, '抖音云secretKey', 889, '', 'oss');
+INSERT INTO `common_info` VALUES (890, '2024-08-23 18:21:34', NULL, '抖音云储存桶名称', 890, '', 'oss');
+INSERT INTO `common_info` VALUES (891, '2024-08-23 18:21:53', NULL, '抖音云储存域名', 891, 'https://tt127764ca8d46e23a01-env-2e02vtd07x.tos-cn-beijing.volces.com', 'oss');
+INSERT INTO `common_info` VALUES (892, '2024-08-23 18:21:53', NULL, '抖音钻石比例(1元)', 892, '7', 'xitong');
+
+-- ----------------------------
+-- Table structure for coupon
+-- ----------------------------
+DROP TABLE IF EXISTS `coupon`;
+CREATE TABLE `coupon` (
+ `coupon_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '优惠券id',
+ `coupon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '优惠券名称',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '可抵扣金额',
+ `coupon_type` int(11) NULL DEFAULT NULL COMMENT '所属类型',
+ PRIMARY KEY (`coupon_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '优惠卷' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of coupon
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for coupon_user
+-- ----------------------------
+DROP TABLE IF EXISTS `coupon_user`;
+CREATE TABLE `coupon_user` (
+ `coupon_user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户优惠卷id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `coupon_money` decimal(10, 0) NULL DEFAULT NULL COMMENT '优惠券金额',
+ `coupon_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '优惠券使用规则',
+ PRIMARY KEY (`coupon_user_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户优惠券表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of coupon_user
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course
+-- ----------------------------
+DROP TABLE IF EXISTS `course`;
+CREATE TABLE `course` (
+ `course_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短剧id',
+ `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `title_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图',
+ `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '价格',
+ `classify_id` int(11) NULL DEFAULT NULL COMMENT '分类',
+ `pay_num` int(11) NULL DEFAULT NULL COMMENT '购买次数',
+ `course_label` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短剧标签',
+ `course_label_ids` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短剧标签id',
+ `img` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容图',
+ `details` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '短剧介绍',
+ `is_delete` int(11) NULL DEFAULT NULL COMMENT '删除标识 0未删除 1已删除',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间',
+ `msg_url` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '视频地址',
+ `msg_type` int(1) NULL DEFAULT NULL COMMENT '上传方式0OSS-1本地',
+ `is_recommend` int(11) NULL DEFAULT NULL COMMENT '是否是推荐商品',
+ `banner_id` int(11) NULL DEFAULT NULL COMMENT '首页金刚区分类',
+ `course_type` int(11) NULL DEFAULT NULL COMMENT '短剧分类 1短剧',
+ `status` int(11) NULL DEFAULT 1 COMMENT '状态 1上架 2下架',
+ `banner_img` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '轮播图',
+ `is_over` int(11) NULL DEFAULT NULL COMMENT '是否完结 0否 1是 ',
+ `is_price` int(11) NULL DEFAULT NULL COMMENT '是否收费 1是 2免费',
+ `view_counts` int(11) NULL DEFAULT NULL COMMENT '播放量',
+ `dy_img_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音封面图id',
+ `dy_course_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音短剧id',
+ `dy_status` int(11) NULL DEFAULT NULL COMMENT '抖音提审状态 1已提交 2已通过 3已拒绝 4已上线',
+ `dy_status_content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音审核内容',
+ `dy_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前版本号',
+ `license_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '许可证号',
+ `registration_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '登记号',
+ `ordinary_record_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '普通备案号',
+ `key_record_num` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '重点备案号',
+ `wx_course_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信短剧id',
+ `wx_show` int(11) NULL DEFAULT NULL COMMENT '微信是否显示 1是',
+ `dy_show` int(11) NULL DEFAULT NULL COMMENT '抖音是否显示 1是',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `duration` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '平均单集时长,单位分钟',
+ `production_organisation` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '制作机构',
+ `director` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '导演',
+ `producer` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '制作人',
+ `actor` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '演员',
+ `summary` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '内容梗概(1000 汉字以内)',
+ `cost_distribution_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成本配置比例情况图片',
+ `assurance_uri` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '承诺书',
+ `playlet_production_cost` decimal(10, 2) NULL DEFAULT NULL COMMENT '制作成本类型 10:30万以下 20:30~100万30:100万以',
+ `qualification_type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信剧目资类型',
+ `registration_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信剧目备案号',
+ `qualification_certificate_material_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信剧目资质证明文件',
+ `cost_of_production` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信剧目制作成本(单位:万元)',
+ `cost_commitment_letter_material_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '成本配置比例情况报告',
+ `wx_course_status` int(255) NULL DEFAULT NULL COMMENT '0为无效值;1为审核中;2为最终失败;3为审核通过;4为驳回重填',
+ PRIMARY KEY (`course_id`) USING BTREE,
+ INDEX `classify_id`(`classify_id`) USING BTREE,
+ INDEX `banner_id`(`banner_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1205 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短剧表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course_classification
+-- ----------------------------
+DROP TABLE IF EXISTS `course_classification`;
+CREATE TABLE `course_classification` (
+ `classification_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短剧分类id',
+ `classification_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短剧分类名称',
+ `is_delete` int(1) NULL DEFAULT NULL COMMENT '假删除0正常1已删除',
+ `sort` int(255) NULL DEFAULT NULL COMMENT '排序',
+ PRIMARY KEY (`classification_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短剧分类表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course_classification
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course_collect
+-- ----------------------------
+DROP TABLE IF EXISTS `course_collect`;
+CREATE TABLE `course_collect` (
+ `course_collect_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短剧记录id',
+ `course_id` int(11) NULL DEFAULT NULL COMMENT '短剧id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `course_details_id` int(11) NULL DEFAULT NULL COMMENT '短剧集id',
+ `classify` int(11) NULL DEFAULT NULL COMMENT '分类 1收藏 2点赞 3历史记录',
+ `update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更细时间',
+ PRIMARY KEY (`course_collect_id`) USING BTREE,
+ INDEX `course_id`(`course_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 14323 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短剧记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course_collect
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course_comment
+-- ----------------------------
+DROP TABLE IF EXISTS `course_comment`;
+CREATE TABLE `course_comment` (
+ `course_comment_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短剧评论id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `course_id` int(11) NULL DEFAULT NULL COMMENT '短剧id',
+ `goods_num` int(11) NULL DEFAULT 0 COMMENT '点赞数',
+ `content` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '评论内容',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`course_comment_id`) USING BTREE,
+ INDEX `course_id`(`course_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 59 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短剧评论' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course_comment
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course_details
+-- ----------------------------
+DROP TABLE IF EXISTS `course_details`;
+CREATE TABLE `course_details` (
+ `course_details_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '短剧集id',
+ `course_id` int(11) NULL DEFAULT NULL COMMENT '短剧id',
+ `course_details_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '短剧集名称',
+ `video_url` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '视频地址',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `title_img` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '封面图',
+ `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '介绍',
+ `good_num` int(11) NULL DEFAULT NULL COMMENT '点赞数',
+ `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '售价',
+ `is_price` int(11) NULL DEFAULT NULL COMMENT '是否收费 1是 2否',
+ `good` int(11) NULL DEFAULT NULL COMMENT '是否是推荐 1是',
+ `dy_course_details_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音视频id',
+ `dy_img_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音封面图id',
+ `dy_episode_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音集id',
+ `dy_status` int(11) NULL DEFAULT NULL COMMENT '抖音提审状态 1已提交 2已通过 3已拒绝 4已上线',
+ `dy_status_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音审核内容',
+ `dy_version` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '当前版本号',
+ `dy_url_status` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音集审核状态',
+ `wx_course_details_id` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信集id',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `advertising` int(11) NULL DEFAULT NULL COMMENT '是否允许广告解锁 1是 2否',
+ PRIMARY KEY (`course_details_id`) USING BTREE,
+ INDEX `course_id`(`course_id`) USING BTREE,
+ INDEX `course_id_2`(`course_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 98009 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '短剧集表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course_details
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for course_user
+-- ----------------------------
+DROP TABLE IF EXISTS `course_user`;
+CREATE TABLE `course_user` (
+ `course_user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '我的短剧id',
+ `course_id` int(11) NULL DEFAULT NULL COMMENT '短剧id',
+ `order_id` int(11) NULL DEFAULT NULL COMMENT '订单id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间',
+ `course_details_id` int(11) NULL DEFAULT NULL COMMENT '集id',
+ `classify` int(11) NULL DEFAULT NULL COMMENT '1整集2单集',
+ PRIMARY KEY (`course_user_id`) USING BTREE,
+ INDEX `course_id`(`course_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 376 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '我的短剧表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of course_user
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for help_classify
+-- ----------------------------
+DROP TABLE IF EXISTS `help_classify`;
+CREATE TABLE `help_classify` (
+ `help_classify_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '帮助中心分类',
+ `help_classify_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '分类名称',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `parent_id` int(11) NULL DEFAULT NULL COMMENT '上级id',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `types` int(11) NULL DEFAULT NULL COMMENT '类型',
+ PRIMARY KEY (`help_classify_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '帮助中心分类表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of help_classify
+-- ----------------------------
+INSERT INTO `help_classify` VALUES (7, '登录问题1111@@\"\"\'\'12', 0, NULL, '2022-07-06', 1);
+INSERT INTO `help_classify` VALUES (11, '注册问题2', 2, NULL, '2023-09-25 11:14:11', 1);
+INSERT INTO `help_classify` VALUES (12, '注销账户问题', 0, NULL, '2023-09-25 11:21:42', 1);
+
+-- ----------------------------
+-- Table structure for help_word
+-- ----------------------------
+DROP TABLE IF EXISTS `help_word`;
+CREATE TABLE `help_word` (
+ `help_word_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '帮助文档id',
+ `help_word_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '帮助标题',
+ `help_word_content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '帮助文档内容',
+ `help_classify_id` int(11) NULL DEFAULT NULL COMMENT '帮助分类id',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`help_word_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 13 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '帮助文档表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of help_word
+-- ----------------------------
+INSERT INTO `help_word` VALUES (1, '为什么提示不支持打开非业务域名', '因为所以科学道理', 2, 1, '2020-12-12 12:12:12');
+INSERT INTO `help_word` VALUES (2, '文件类课间如何保存', '不知道', 2, 2, '2020-12-12 12:12:12');
+INSERT INTO `help_word` VALUES (3, '已报名的活动可以取消吗', '可以,需要扣除百分之20', 3, 1, '2020-12-12 12:12:12');
+INSERT INTO `help_word` VALUES (7, '报名活动呀呀呀呀', '报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀报名活动呀呀呀呀
', 6, 0, '2022-07-05');
+INSERT INTO `help_word` VALUES (8, '怎么登录呢?', '微信授权即可登录
', 7, 0, '2023-09-25 11:07:52');
+INSERT INTO `help_word` VALUES (9, '商户怎么入驻呢?', '登录首页 点击:我要入驻
', 8, 1, '2022-10-31 14:46:27');
+INSERT INTO `help_word` VALUES (10, '额鹅鹅鹅', '额鹅鹅鹅
', 8, 0, '2022-10-31 14:49:57');
+INSERT INTO `help_word` VALUES (11, '如何注册?', '使用手机号码注册
', 11, 1, '2023-09-25 11:14:46');
+INSERT INTO `help_word` VALUES (12, '如何注销账户?', '11111111111111111111111111111111
', 12, 3, '2024-01-04 10:33:07');
+
+-- ----------------------------
+-- Table structure for invite
+-- ----------------------------
+DROP TABLE IF EXISTS `invite`;
+CREATE TABLE `invite` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '邀请者id',
+ `invitee_user_id` int(11) NULL DEFAULT NULL COMMENT '被邀请者id',
+ `state` int(11) NULL DEFAULT NULL COMMENT '状态 0非会员 1会员',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '邀请收益',
+ `create_time` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `user_type` int(11) NULL DEFAULT NULL COMMENT '类型 1一级好友 2二级好友',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1958 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '邀请信息' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of invite
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for invite_award
+-- ----------------------------
+DROP TABLE IF EXISTS `invite_award`;
+CREATE TABLE `invite_award` (
+ `invite_award_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '邀请奖励id',
+ `invite_img` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邀请图片',
+ `invite_count` int(11) NULL DEFAULT NULL COMMENT '邀请人数',
+ `invite_month` int(11) NULL DEFAULT NULL COMMENT '奖励月份 0是永久',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`invite_award_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '邀请奖励表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of invite_award
+-- ----------------------------
+INSERT INTO `invite_award` VALUES (1, 'https://duanju.xianmxkj.com/file/uploadPath/2023/12/13/724e51aff7eee1ddb01951295e3fd678.png', 20, 1, '2023-12-12 12:12:12');
+INSERT INTO `invite_award` VALUES (3, 'https://duanju.xianmxkj.com/file/uploadPath/2023/12/13/7e8c164a3773f2bd579e27e9e4d1a738.png', 200, 0, '2023-12-12 17:04:42');
+INSERT INTO `invite_award` VALUES (4, NULL, 6, 1, '2024-10-24 10:17:54');
+
+-- ----------------------------
+-- Table structure for invite_money
+-- ----------------------------
+DROP TABLE IF EXISTS `invite_money`;
+CREATE TABLE `invite_money` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '邀请收益钱包id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `money_sum` decimal(10, 2) NULL DEFAULT NULL COMMENT '总获取收益',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '当前金额',
+ `cash_out` decimal(10, 2) NULL DEFAULT NULL COMMENT '累计提现',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 788 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '邀请收益表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of invite_money
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for message_info
+-- ----------------------------
+DROP TABLE IF EXISTS `message_info`;
+CREATE TABLE `message_info` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '消息id',
+ `content` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '内容',
+ `create_at` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `image` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '图片',
+ `is_see` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '0未读 2已读',
+ `send_state` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '推送状态 暂未使用',
+ `send_time` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '推送时间 暂未使用',
+ `state` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '分类',
+ `title` varchar(600) CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL DEFAULT NULL COMMENT '标题',
+ `url` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '地址',
+ `type` varchar(600) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '类型 ',
+ `platform` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '来源',
+ `user_id` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '用户id',
+ `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 114180 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = '消息表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of message_info
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for msg
+-- ----------------------------
+DROP TABLE IF EXISTS `msg`;
+CREATE TABLE `msg` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `code` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '短信验证码',
+ `phone` varchar(255) CHARACTER SET big5 COLLATE big5_chinese_ci NULL DEFAULT NULL COMMENT '电话',
+ PRIMARY KEY (`id`) USING BTREE,
+ INDEX `index_name`(`code`, `phone`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3812 CHARACTER SET = big5 COLLATE = big5_chinese_ci COMMENT = '验证码表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of msg
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for orders
+-- ----------------------------
+DROP TABLE IF EXISTS `orders`;
+CREATE TABLE `orders` (
+ `orders_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '订单id',
+ `orders_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号',
+ `trade_no` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝支付单号',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `course_id` int(11) NULL DEFAULT NULL COMMENT '短剧id',
+ `pay_money` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付金额',
+ `pay_way` int(11) NULL DEFAULT NULL COMMENT '支付方式 1微信小程序 2微信公众号 3微信App 4支付宝',
+ `status` int(11) NULL DEFAULT NULL COMMENT '状态 0待支付 1已支付 2已退款',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `refund_content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '退款原因',
+ `orders_type` int(11) NULL DEFAULT NULL COMMENT '订单种类 1短剧 2会员',
+ `vip_name_type` int(1) NULL DEFAULT NULL COMMENT '会员类型0月/1季度/2年',
+ `course_details_id` int(11) NULL DEFAULT NULL COMMENT '短剧集id',
+ `qd_money` decimal(10, 2) NULL DEFAULT NULL COMMENT '渠道收益',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '代理id',
+ `one_money` decimal(10, 2) NULL DEFAULT NULL COMMENT '一级收益',
+ `one_user_id` int(11) NULL DEFAULT NULL COMMENT '一级用户',
+ `two_money` decimal(10, 2) NULL DEFAULT NULL COMMENT '二级收益',
+ `two_user_id` int(11) NULL DEFAULT NULL COMMENT '二级用户',
+ `pay_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付时间',
+ `pay_diamond` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付钻石',
+ `diamond` int(11) NULL DEFAULT NULL COMMENT '是否是钻石订单 1是',
+ PRIMARY KEY (`orders_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2144 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '订单表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of orders
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for pay_classify
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_classify`;
+CREATE TABLE `pay_classify` (
+ `pay_classify_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '充值分类id',
+ `price` decimal(10, 2) NULL DEFAULT NULL COMMENT '售价',
+ `give_money` decimal(10, 2) NULL DEFAULT NULL COMMENT '赠送数量',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '水晶数量',
+ `sort` int(11) NULL DEFAULT NULL COMMENT '排序',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '时间',
+ `wx_goods_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信道具id',
+ `product_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '苹果道具id',
+ `pay_diamond` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付钻石',
+ PRIMARY KEY (`pay_classify_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '充值分类' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of pay_classify
+-- ----------------------------
+INSERT INTO `pay_classify` VALUES (1, 0.01, 10.00, 1.00, 1, NULL, 'djjifen1', 'apple', 7.00);
+INSERT INTO `pay_classify` VALUES (2, 10.00, 0.00, 10.00, 2, NULL, 'djjifen10', NULL, 70.00);
+INSERT INTO `pay_classify` VALUES (5, 100.00, 0.00, 100.00, 3, NULL, 'djjifen100', NULL, 700.00);
+
+-- ----------------------------
+-- Table structure for pay_details
+-- ----------------------------
+DROP TABLE IF EXISTS `pay_details`;
+CREATE TABLE `pay_details` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '充值id',
+ `classify` int(4) NULL DEFAULT NULL COMMENT '分类( 1app微信 2微信公众号 3微信小程序 4支付宝)',
+ `trade_no` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝支付单号',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '充值金额',
+ `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户id',
+ `state` int(4) NULL DEFAULT NULL COMMENT '0待支付 1支付成功 2失败',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `pay_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付时间',
+ `type` int(4) NULL DEFAULT NULL COMMENT '支付类型 1 用户 2会员',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `order_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订单编号',
+ `product_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '苹果道具id',
+ `pay_diamond` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付钻石',
+ `diamond` int(11) NULL DEFAULT NULL COMMENT '是否是钻石订单 1是',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3234 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '充值记录' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of pay_details
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_BLOB_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_BLOB_TRIGGERS`;
+CREATE TABLE `QRTZ_BLOB_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `BLOB_DATA` blob NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ INDEX `SCHED_NAME`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ CONSTRAINT `QRTZ_BLOB_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_BLOB_TRIGGERS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_CALENDARS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_CALENDARS`;
+CREATE TABLE `QRTZ_CALENDARS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `CALENDAR` blob NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_CALENDARS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_CRON_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_CRON_TRIGGERS`;
+CREATE TABLE `QRTZ_CRON_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `CRON_EXPRESSION` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TIME_ZONE_ID` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ CONSTRAINT `QRTZ_CRON_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_CRON_TRIGGERS
+-- ----------------------------
+INSERT INTO `QRTZ_CRON_TRIGGERS` VALUES ('sqxScheduler', 'TASK_1', 'DEFAULT', '0 0/30 * * * ?', 'Asia/Shanghai');
+
+-- ----------------------------
+-- Table structure for QRTZ_FIRED_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_FIRED_TRIGGERS`;
+CREATE TABLE `QRTZ_FIRED_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `ENTRY_ID` varchar(95) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `FIRED_TIME` bigint(13) NOT NULL,
+ `SCHED_TIME` bigint(13) NOT NULL,
+ `PRIORITY` int(11) NOT NULL,
+ `STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `ENTRY_ID`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_TRIG_INST_NAME`(`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_INST_JOB_REQ_RCVRY`(`SCHED_NAME`, `INSTANCE_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_J_G`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_T_G`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_FT_TG`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_FIRED_TRIGGERS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_JOB_DETAILS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_JOB_DETAILS`;
+CREATE TABLE `QRTZ_JOB_DETAILS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `IS_DURABLE` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_DATA` blob NULL,
+ PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE,
+ INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_JOB_DETAILS
+-- ----------------------------
+INSERT INTO `QRTZ_JOB_DETAILS` VALUES ('sqxScheduler', 'TASK_1', 'DEFAULT', NULL, 'com.sqx.modules.job.utils.ScheduleJob', '0', '0', '0', '0', 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B45597372002C636F6D2E7371782E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200074C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000017272C9CF807874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000174000373717874000CE58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
+
+-- ----------------------------
+-- Table structure for QRTZ_LOCKS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_LOCKS`;
+CREATE TABLE `QRTZ_LOCKS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `LOCK_NAME` varchar(40) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `LOCK_NAME`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_LOCKS
+-- ----------------------------
+INSERT INTO `QRTZ_LOCKS` VALUES ('sqxScheduler', 'STATE_ACCESS');
+INSERT INTO `QRTZ_LOCKS` VALUES ('sqxScheduler', 'TRIGGER_ACCESS');
+
+-- ----------------------------
+-- Table structure for QRTZ_PAUSED_TRIGGER_GRPS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_PAUSED_TRIGGER_GRPS`;
+CREATE TABLE `QRTZ_PAUSED_TRIGGER_GRPS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_PAUSED_TRIGGER_GRPS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_SCHEDULER_STATE
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_SCHEDULER_STATE`;
+CREATE TABLE `QRTZ_SCHEDULER_STATE` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `INSTANCE_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `LAST_CHECKIN_TIME` bigint(13) NOT NULL,
+ `CHECKIN_INTERVAL` bigint(13) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `INSTANCE_NAME`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_SCHEDULER_STATE
+-- ----------------------------
+INSERT INTO `QRTZ_SCHEDULER_STATE` VALUES ('sqxScheduler', 'VM-16-3-centos1730875372533', 1730891048703, 15000);
+
+-- ----------------------------
+-- Table structure for QRTZ_SIMPLE_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_SIMPLE_TRIGGERS`;
+CREATE TABLE `QRTZ_SIMPLE_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `REPEAT_COUNT` bigint(7) NOT NULL,
+ `REPEAT_INTERVAL` bigint(12) NOT NULL,
+ `TIMES_TRIGGERED` bigint(10) NOT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ CONSTRAINT `QRTZ_SIMPLE_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_SIMPLE_TRIGGERS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_SIMPROP_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_SIMPROP_TRIGGERS`;
+CREATE TABLE `QRTZ_SIMPROP_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `STR_PROP_1` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `STR_PROP_2` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `STR_PROP_3` varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `INT_PROP_1` int(11) NULL DEFAULT NULL,
+ `INT_PROP_2` int(11) NULL DEFAULT NULL,
+ `LONG_PROP_1` bigint(20) NULL DEFAULT NULL,
+ `LONG_PROP_2` bigint(20) NULL DEFAULT NULL,
+ `DEC_PROP_1` decimal(13, 4) NULL DEFAULT NULL,
+ `DEC_PROP_2` decimal(13, 4) NULL DEFAULT NULL,
+ `BOOL_PROP_1` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `BOOL_PROP_2` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ CONSTRAINT `QRTZ_SIMPROP_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) REFERENCES `QRTZ_TRIGGERS` (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_SIMPROP_TRIGGERS
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for QRTZ_TRIGGERS
+-- ----------------------------
+DROP TABLE IF EXISTS `QRTZ_TRIGGERS`;
+CREATE TABLE `QRTZ_TRIGGERS` (
+ `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `JOB_GROUP` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
+ `PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL,
+ `PRIORITY` int(11) NULL DEFAULT NULL,
+ `TRIGGER_STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL,
+ `START_TIME` bigint(13) NOT NULL,
+ `END_TIME` bigint(13) NULL DEFAULT NULL,
+ `CALENDAR_NAME` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
+ `MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL,
+ `JOB_DATA` blob NULL,
+ PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_T_JG`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_T_C`(`SCHED_NAME`, `CALENDAR_NAME`) USING BTREE,
+ INDEX `IDX_QRTZ_T_G`(`SCHED_NAME`, `TRIGGER_GROUP`) USING BTREE,
+ INDEX `IDX_QRTZ_T_STATE`(`SCHED_NAME`, `TRIGGER_STATE`) USING BTREE,
+ INDEX `IDX_QRTZ_T_N_STATE`(`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
+ INDEX `IDX_QRTZ_T_N_G_STATE`(`SCHED_NAME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
+ INDEX `IDX_QRTZ_T_NEXT_FIRE_TIME`(`SCHED_NAME`, `NEXT_FIRE_TIME`) USING BTREE,
+ INDEX `IDX_QRTZ_T_NFT_ST`(`SCHED_NAME`, `TRIGGER_STATE`, `NEXT_FIRE_TIME`) USING BTREE,
+ INDEX `IDX_QRTZ_T_NFT_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`) USING BTREE,
+ INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_STATE`) USING BTREE,
+ INDEX `IDX_QRTZ_T_NFT_ST_MISFIRE_GRP`(`SCHED_NAME`, `MISFIRE_INSTR`, `NEXT_FIRE_TIME`, `TRIGGER_GROUP`, `TRIGGER_STATE`) USING BTREE,
+ CONSTRAINT `QRTZ_TRIGGERS_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `QRTZ_JOB_DETAILS` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of QRTZ_TRIGGERS
+-- ----------------------------
+INSERT INTO `QRTZ_TRIGGERS` VALUES ('sqxScheduler', 'TASK_1', 'DEFAULT', 'TASK_1', 'DEFAULT', NULL, 1730892600000, 1730890800000, 5, 'WAITING', 'CRON', 1591063808000, 0, NULL, 2, 0xACED0005737200156F72672E71756172747A2E4A6F62446174614D61709FB083E8BFA9B0CB020000787200266F72672E71756172747A2E7574696C732E537472696E674B65794469727479466C61674D61708208E8C3FBC55D280200015A0013616C6C6F77735472616E7369656E74446174617872001D6F72672E71756172747A2E7574696C732E4469727479466C61674D617013E62EAD28760ACE0200025A000564697274794C00036D617074000F4C6A6176612F7574696C2F4D61703B787001737200116A6176612E7574696C2E486173684D61700507DAC1C31660D103000246000A6C6F6164466163746F724900097468726573686F6C6478703F4000000000000C7708000000100000000174000D4A4F425F504152414D5F4B45597372002C636F6D2E7371782E6D6F64756C65732E6A6F622E656E746974792E5363686564756C654A6F62456E7469747900000000000000010200074C00086265616E4E616D657400124C6A6176612F6C616E672F537472696E673B4C000A63726561746554696D657400104C6A6176612F7574696C2F446174653B4C000E63726F6E45787072657373696F6E71007E00094C00056A6F6249647400104C6A6176612F6C616E672F4C6F6E673B4C0006706172616D7371007E00094C000672656D61726B71007E00094C00067374617475737400134C6A6176612F6C616E672F496E74656765723B7870740008746573745461736B7372000E6A6176612E7574696C2E44617465686A81014B597419030000787077080000017272C9CF807874000E3020302F3330202A202A202A203F7372000E6A6176612E6C616E672E4C6F6E673B8BE490CC8F23DF0200014A000576616C7565787200106A6176612E6C616E672E4E756D62657286AC951D0B94E08B0200007870000000000000000174000373717874000CE58F82E695B0E6B58BE8AF95737200116A6176612E6C616E672E496E746567657212E2A0A4F781873802000149000576616C75657871007E0013000000007800);
+
+-- ----------------------------
+-- Table structure for schedule_job
+-- ----------------------------
+DROP TABLE IF EXISTS `schedule_job`;
+CREATE TABLE `schedule_job` (
+ `job_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务id',
+ `bean_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'spring bean名称',
+ `params` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数',
+ `cron_expression` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'cron表达式',
+ `status` tinyint(4) NULL DEFAULT NULL COMMENT '任务状态 0:正常 1:暂停',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`job_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of schedule_job
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for schedule_job_log
+-- ----------------------------
+DROP TABLE IF EXISTS `schedule_job_log`;
+CREATE TABLE `schedule_job_log` (
+ `log_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '任务日志id',
+ `job_id` bigint(20) NOT NULL COMMENT '任务id',
+ `bean_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'spring bean名称',
+ `params` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数',
+ `status` tinyint(4) NOT NULL COMMENT '任务状态 0:成功 1:失败',
+ `error` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '失败信息',
+ `times` int(11) NOT NULL COMMENT '耗时(单位:毫秒)',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`log_id`) USING BTREE,
+ INDEX `job_id`(`job_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 74290 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '定时任务日志' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of schedule_job_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sdk_info
+-- ----------------------------
+DROP TABLE IF EXISTS `sdk_info`;
+CREATE TABLE `sdk_info` (
+ `sdk_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '卡密id',
+ `sdk_remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '类型备注',
+ `sdk_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT '卡密内容',
+ `type_id` int(11) NULL DEFAULT NULL COMMENT '卡密类型',
+ `status` int(1) NULL DEFAULT NULL COMMENT '0未使用 1已使用 2已过期',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ `overdue_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+ `give_num` int(11) NULL DEFAULT NULL COMMENT '增加次数',
+ `use_time` datetime(0) NULL DEFAULT NULL COMMENT '使用时间',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '代理用户id',
+ PRIMARY KEY (`sdk_id`) USING BTREE,
+ INDEX `sdk_delete`(`type_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2420 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '卡密列表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sdk_info
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sdk_type
+-- ----------------------------
+DROP TABLE IF EXISTS `sdk_type`;
+CREATE TABLE `sdk_type` (
+ `type_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'sdk类型',
+ `give_num` int(11) NULL DEFAULT NULL COMMENT '赠送次数',
+ `valid_day` int(11) NULL DEFAULT NULL COMMENT '有效天数',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ `remarks` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`type_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 18 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '卡密类型表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sdk_type
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for search
+-- ----------------------------
+DROP TABLE IF EXISTS `search`;
+CREATE TABLE `search` (
+ `search_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '搜索id',
+ `search_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '搜索名称',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`search_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '搜索记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of search
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_captcha
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_captcha`;
+CREATE TABLE `sys_captcha` (
+ `uuid` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'uuid',
+ `code` varchar(6) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '验证码',
+ `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+ PRIMARY KEY (`uuid`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统验证码' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_captcha
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_config
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_config`;
+CREATE TABLE `sys_config` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `param_key` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'key',
+ `param_value` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'value',
+ `status` tinyint(4) NULL DEFAULT 1 COMMENT '状态 0:隐藏 1:显示',
+ `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE INDEX `param_key`(`param_key`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统配置信息表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_config
+-- ----------------------------
+INSERT INTO `sys_config` VALUES (1, 'CLOUD_STORAGE_CONFIG_KEY', '{\"type\":1,\"qiniuDomain\":\"http://7xqbwh.dl1.z0.glb.clouddn.com\",\"qiniuPrefix\":\"upload\",\"qiniuAccessKey\":\"NrgMfABZxWLo5B-YYSjoE8-AZ1EISdi1Z3ubLOeZ\",\"qiniuSecretKey\":\"uIwJHevMRWU0VLxFvgy0tAcOdGqasdtVlJkdy6vV\",\"qiniuBucketName\":\"ios-app\",\"aliyunDomain\":\"\",\"aliyunPrefix\":\"\",\"aliyunEndPoint\":\"\",\"aliyunAccessKeyId\":\"\",\"aliyunAccessKeySecret\":\"\",\"aliyunBucketName\":\"\",\"qcloudDomain\":\"\",\"qcloudPrefix\":\"\",\"qcloudSecretId\":\"\",\"qcloudSecretKey\":\"\",\"qcloudBucketName\":\"\"}', 0, '云存储配置信息');
+INSERT INTO `sys_config` VALUES (2, '参数1', 'aa', 1, '112');
+
+-- ----------------------------
+-- Table structure for sys_dict
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_dict`;
+CREATE TABLE `sys_dict` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典名称',
+ `type` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典类型',
+ `code` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典码',
+ `value` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '字典值',
+ `order_num` int(11) NULL DEFAULT 0 COMMENT '排序',
+ `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `del_flag` tinyint(4) NULL DEFAULT 0 COMMENT '删除标记 -1:已删除 0:正常',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE INDEX `type`(`type`, `code`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '数据字典表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_dict
+-- ----------------------------
+INSERT INTO `sys_dict` VALUES (1, '12', '2', '3', '4', 0, '5', -1);
+
+-- ----------------------------
+-- Table structure for sys_log
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_log`;
+CREATE TABLE `sys_log` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+ `operation` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户操作',
+ `method` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求方法',
+ `params` varchar(5000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '请求参数',
+ `time` bigint(20) NOT NULL COMMENT '执行时长(毫秒)',
+ `ip` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'IP地址',
+ `create_date` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 387 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统日志' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_log
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_menu`;
+CREATE TABLE `sys_menu` (
+ `menu_id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `parent_id` bigint(20) NULL DEFAULT NULL COMMENT '父菜单ID,一级菜单为0',
+ `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单名称',
+ `url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单URL',
+ `perms` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '授权(多个用逗号分隔,如:user:list,user:create)',
+ `type` int(11) NULL DEFAULT NULL COMMENT '类型 0:目录 1:菜单 2:按钮',
+ `icon` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '菜单图标',
+ `order_num` int(11) NULL DEFAULT NULL COMMENT '排序',
+ PRIMARY KEY (`menu_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 163 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '菜单管理' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_menu
+-- ----------------------------
+INSERT INTO `sys_menu` VALUES (1, 0, '系统管理', NULL, NULL, 0, 'system', 20);
+INSERT INTO `sys_menu` VALUES (2, 1, '管理员列表', 'sys/user', NULL, 1, 'admin', 1);
+INSERT INTO `sys_menu` VALUES (3, 1, '角色管理', 'sys/role', NULL, 1, 'role', 2);
+INSERT INTO `sys_menu` VALUES (4, 1, '菜单管理', 'sys/menu', NULL, 1, 'menu', 3);
+INSERT INTO `sys_menu` VALUES (15, 2, '查看', NULL, 'sys:user:list,sys:user:info', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (16, 2, '新增', NULL, 'sys:user:save,sys:role:select', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (17, 2, '修改', NULL, 'sys:user:update,sys:role:select', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (18, 2, '删除', NULL, 'sys:user:delete', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (19, 3, '查看', NULL, 'sys:role:list,sys:role:info', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (20, 3, '新增', NULL, 'sys:role:save,sys:menu:list', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (21, 3, '修改', NULL, 'sys:role:update,sys:menu:list', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (22, 3, '删除', NULL, 'sys:role:delete', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (23, 4, '查看', NULL, 'sys:menu:list,sys:menu:info', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (24, 4, '新增', NULL, 'sys:menu:save,sys:menu:select', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (25, 4, '修改', NULL, 'sys:menu:update,sys:menu:select', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (26, 4, '删除', NULL, 'sys:menu:delete', 2, NULL, 0);
+INSERT INTO `sys_menu` VALUES (32, 0, '用户中心', 'userList', '', 1, 'yonghul', 1);
+INSERT INTO `sys_menu` VALUES (33, 0, '数据中心', 'home', '', 1, 'shuju', 0);
+INSERT INTO `sys_menu` VALUES (34, 0, '财务中心', 'financeList', '', 1, 'caiwu', 1);
+INSERT INTO `sys_menu` VALUES (35, 34, '查看', '', 'financeList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (36, 34, '转账', '', 'financeList:transfer', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (37, 34, '退款', '', 'financeList:refund', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (38, 34, '退款', '', 'financeList:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (39, 34, '修改', '', 'financeList:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (40, 34, '删除', '', 'financeList:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (41, 0, '消息中心', 'message', '', 1, 'xiaoxi', 1);
+INSERT INTO `sys_menu` VALUES (42, 41, '查看', '', 'message:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (43, 41, '消息推送', '', 'message:push', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (44, 0, '资源中心', 'mission', '', 1, 'renwu', 3);
+INSERT INTO `sys_menu` VALUES (45, 44, '查看', '', 'mission:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (46, 44, '添加', '', 'mission:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (47, 44, '修改', '', 'mission:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (48, 44, '删除', '', 'mission:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (49, 44, '下架', '', 'mission:sold', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (50, 0, '首页装修', 'bannerList', '', 1, 'shangpin', 2);
+INSERT INTO `sys_menu` VALUES (51, 50, '查看', '', 'bannerList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (52, 50, '添加', '', 'bannerList:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (53, 50, '修改', '', 'bannerList:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (54, 50, '删除', '', 'bannerList:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (57, 0, '系统配置', 'allocationList', '', 1, 'menu', 9);
+INSERT INTO `sys_menu` VALUES (58, 57, '查看', '', 'allocationList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (59, 57, '修改', '', 'allocationList:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (60, 32, '查看', '', 'userList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (61, 32, '删除', '', 'userList:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (62, 0, '订单中心', 'orderCenter', '', 1, 'log', 4);
+INSERT INTO `sys_menu` VALUES (63, 62, '查看', '', 'orderCenter:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (64, 62, '删除', '', 'orderCenter:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (66, 0, '会员列表', 'viplist', '', 1, 'fenleilist', 5);
+INSERT INTO `sys_menu` VALUES (67, 66, '查看', '', 'viplist:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (69, 41, '添加', '', 'message:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (70, 41, '修改', '', 'message:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (71, 41, '删除', '', 'message:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (72, 66, '添加', '', 'viplist:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (73, 66, '修改', '', 'viplist:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (74, 66, '删除', '', 'viplist:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (75, 32, '修改比例', '', 'userList:updatebl', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (76, 32, '修改会员', '', 'userList:updateVip', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (77, 0, '邀请排行榜', 'riderTop', '', 1, 'tubiao', 6);
+INSERT INTO `sys_menu` VALUES (78, 77, '查看', '', 'riderTop:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (79, 62, '退款', '', 'orderCenter:tuikuan', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (80, 32, '修改信息', '', 'userList:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (81, 0, '注销信息', 'messageZx', '', 1, 'renwu1', 7);
+INSERT INTO `sys_menu` VALUES (82, 81, '查看', '', 'messageZx:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (83, 81, '注销', '', 'messageZx:shenhe', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (84, 32, '修改积分', '', 'userList:updateJf', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (85, 32, '修改钱包', '', 'userList:updateQb', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (86, 1, '升级配置', 'app', '', 1, 'config', 0);
+INSERT INTO `sys_menu` VALUES (87, 86, '查看', '', 'app:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (88, 86, '添加', '', 'app:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (89, 86, '修改', '', 'app:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (90, 86, '删除', '', 'app:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (91, 0, '帮助中心', 'materialsList', '', 1, 'order', 8);
+INSERT INTO `sys_menu` VALUES (92, 91, '查看', '', 'materialsList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (93, 91, '添加', '', 'materialsList:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (94, 91, '修改', '', 'materialsList:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (95, 91, '删除', '', 'materialsList:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (101, 0, '邀请奖励', 'invite', '', 1, 'shuju', 5);
+INSERT INTO `sys_menu` VALUES (103, 101, '添加', '', 'invite:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (104, 101, '添加', '', 'invite:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (105, 101, '修改', '', 'invite:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (106, 101, '删除', '', 'invite:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (107, 0, '发卡管理', 'coupon', '', 1, 'shuju', 6);
+INSERT INTO `sys_menu` VALUES (108, 107, '查看', '', 'coupon:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (109, 107, '添加', '', 'coupon:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (110, 107, '修改', '', 'coupon:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (111, 107, '删除', '', 'coupon:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (112, 0, '抖音小程序提审', 'missionDy', '', 1, 'peizhi', 5);
+INSERT INTO `sys_menu` VALUES (113, 112, '查看', '', 'missionDy:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (114, 0, '微信小程序提审', 'missionWx', '', 1, 'fenleilist', 5);
+INSERT INTO `sys_menu` VALUES (115, 114, '查看', '', 'missionWx:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (116, 114, '设置备案号', '', 'missionWx:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (117, 114, '上传', '', 'missionWx:shangchuan', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (118, 114, '送审', '', 'missionWx:songshen', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (119, 114, '上线', '', 'missionWx:shangxian', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (120, 112, '设置备案号', '', 'missionDy:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (121, 112, '上传', '', 'missionDy:shangchuan', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (122, 112, '送审', '', 'missionDy:songshen', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (123, 112, '上线', '', 'missionDy:shangxian', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (124, 0, '分销代理管理员', 'community', '', 1, 'admin', 9);
+INSERT INTO `sys_menu` VALUES (125, 124, '查看', '', 'community:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (126, 124, '添加', '', 'sys:user:save', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (127, 124, '修改', '', 'sys:user:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (128, 124, '删除', '', 'sys:user:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (129, 124, '发起提现', '', 'managementStoreincome:draw', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (130, 124, '修改信息', '', 'managementStoreincome:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (131, 0, '分享域名管理', 'domainName', '', 1, 'fenleilist', 7);
+INSERT INTO `sys_menu` VALUES (132, 131, '查看', '', 'domainName:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (133, 131, '添加', '', 'domainName:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (134, 131, '修改', '', 'domainName:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (135, 131, '删除', '', 'domainName:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (136, 0, '代理详情', 'storeincome', '', 1, 'role', 9);
+INSERT INTO `sys_menu` VALUES (137, 136, '查看', '', 'storeincome:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (138, 0, '员工列表', 'communityY', '', 1, 'fenleilist', 9);
+INSERT INTO `sys_menu` VALUES (139, 138, '查看', '', 'community:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (140, 138, '添加', '', 'sys:user:save', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (141, 138, '修改', '', 'sys:user:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (142, 138, '删除', '', 'sys:user:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (143, 138, '发起提现', '', 'managementStoreincome:draw', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (144, 138, '修改信息', '', 'managementStoreincome:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (145, 0, '发卡列表', 'couponQ', '', 1, 'order', 9);
+INSERT INTO `sys_menu` VALUES (146, 145, '查看', '', 'couponQ:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (147, 0, '分享管理', 'campus', '', 1, 'tianjia', 9);
+INSERT INTO `sys_menu` VALUES (148, 147, '查看', '', 'campus:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (149, 0, '充值管理', '', '', 0, 'caiwu', 5);
+INSERT INTO `sys_menu` VALUES (150, 149, '充值配置', 'IntegralGoods', '', 1, 'fenleilist', 0);
+INSERT INTO `sys_menu` VALUES (151, 150, '查看', '', 'IntegralGoods:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (152, 150, '添加', '', 'IntegralGoods:add', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (153, 150, '修改', '', 'IntegralGoods:update', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (154, 150, '删除', '', 'IntegralGoods:delete', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (155, 149, '充值记录', 'exchangeList', '', 1, 'renwu', 0);
+INSERT INTO `sys_menu` VALUES (156, 155, '查看', '', 'exchangeList:list', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (157, 32, '修改密码', '', 'userList:password', 2, '', 0);
+INSERT INTO `sys_menu` VALUES (158, 1, '参数管理', 'sys/config', 'sys:config:list,sys:config:info,sys:config:save,sys:config:update,sys:config:delete', 1, 'config', 0);
+INSERT INTO `sys_menu` VALUES (159, 1, '字典管理', 'sys/dict', 'sys:dict:list,sys:dict:info,sys:dict:save,sys:dict:update,sys:dict:delete', 1, 'shousuo', 0);
+INSERT INTO `sys_menu` VALUES (160, 1, '系统日志', 'sys/log', 'sys:log:list', 1, 'log', 0);
+INSERT INTO `sys_menu` VALUES (161, 1, '文件上传', 'oss/oss', 'oss:oss:list', 1, 'oss', 0);
+INSERT INTO `sys_menu` VALUES (162, 1, '定时任务', 'job/schedule', 'job:schedule:list,job:schedule:info,job:schedule:save,job:schedule:update,job:schedule:delete', 1, 'job', 0);
+
+-- ----------------------------
+-- Table structure for sys_oss
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_oss`;
+CREATE TABLE `sys_oss` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `url` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'URL地址',
+ `create_date` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '文件上传' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_oss
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for sys_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role`;
+CREATE TABLE `sys_role` (
+ `role_id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `role_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '角色名称',
+ `remark` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '备注',
+ `create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`role_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 5 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_role
+-- ----------------------------
+INSERT INTO `sys_role` VALUES (1, '超级管理员', '', 12, '2021-06-04 17:38:28');
+INSERT INTO `sys_role` VALUES (2, '演示用户', '演示用户', 11, '2021-08-20 10:13:44');
+INSERT INTO `sys_role` VALUES (4, '代理', '代理', 11, '2024-01-11 15:52:05');
+
+-- ----------------------------
+-- Table structure for sys_role_menu
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_role_menu`;
+CREATE TABLE `sys_role_menu` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
+ `menu_id` bigint(20) NULL DEFAULT NULL COMMENT '菜单ID',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 3527 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '角色与菜单对应关系' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_role_menu
+-- ----------------------------
+INSERT INTO `sys_role_menu` VALUES (2736, 4, 33);
+INSERT INTO `sys_role_menu` VALUES (2737, 4, 32);
+INSERT INTO `sys_role_menu` VALUES (2738, 4, 60);
+INSERT INTO `sys_role_menu` VALUES (2739, 4, 61);
+INSERT INTO `sys_role_menu` VALUES (2740, 4, 75);
+INSERT INTO `sys_role_menu` VALUES (2741, 4, 76);
+INSERT INTO `sys_role_menu` VALUES (2742, 4, 80);
+INSERT INTO `sys_role_menu` VALUES (2743, 4, 84);
+INSERT INTO `sys_role_menu` VALUES (2744, 4, 85);
+INSERT INTO `sys_role_menu` VALUES (2745, 4, 44);
+INSERT INTO `sys_role_menu` VALUES (2746, 4, 45);
+INSERT INTO `sys_role_menu` VALUES (2747, 4, 46);
+INSERT INTO `sys_role_menu` VALUES (2748, 4, 47);
+INSERT INTO `sys_role_menu` VALUES (2749, 4, 48);
+INSERT INTO `sys_role_menu` VALUES (2750, 4, 49);
+INSERT INTO `sys_role_menu` VALUES (2751, 4, 62);
+INSERT INTO `sys_role_menu` VALUES (2752, 4, 63);
+INSERT INTO `sys_role_menu` VALUES (2753, 4, 64);
+INSERT INTO `sys_role_menu` VALUES (2754, 4, 79);
+INSERT INTO `sys_role_menu` VALUES (2755, 4, 136);
+INSERT INTO `sys_role_menu` VALUES (2756, 4, 137);
+INSERT INTO `sys_role_menu` VALUES (2757, 4, 138);
+INSERT INTO `sys_role_menu` VALUES (2758, 4, 139);
+INSERT INTO `sys_role_menu` VALUES (2759, 4, 140);
+INSERT INTO `sys_role_menu` VALUES (2760, 4, 141);
+INSERT INTO `sys_role_menu` VALUES (2761, 4, 142);
+INSERT INTO `sys_role_menu` VALUES (2762, 4, 143);
+INSERT INTO `sys_role_menu` VALUES (2763, 4, 144);
+INSERT INTO `sys_role_menu` VALUES (2764, 4, 145);
+INSERT INTO `sys_role_menu` VALUES (2765, 4, 146);
+INSERT INTO `sys_role_menu` VALUES (2766, 4, 147);
+INSERT INTO `sys_role_menu` VALUES (2767, 4, 148);
+INSERT INTO `sys_role_menu` VALUES (2768, 4, -666666);
+INSERT INTO `sys_role_menu` VALUES (3067, 2, 33);
+INSERT INTO `sys_role_menu` VALUES (3068, 2, 32);
+INSERT INTO `sys_role_menu` VALUES (3069, 2, 60);
+INSERT INTO `sys_role_menu` VALUES (3070, 2, 61);
+INSERT INTO `sys_role_menu` VALUES (3071, 2, 75);
+INSERT INTO `sys_role_menu` VALUES (3072, 2, 76);
+INSERT INTO `sys_role_menu` VALUES (3073, 2, 80);
+INSERT INTO `sys_role_menu` VALUES (3074, 2, 84);
+INSERT INTO `sys_role_menu` VALUES (3075, 2, 85);
+INSERT INTO `sys_role_menu` VALUES (3076, 2, 35);
+INSERT INTO `sys_role_menu` VALUES (3077, 2, 36);
+INSERT INTO `sys_role_menu` VALUES (3078, 2, 37);
+INSERT INTO `sys_role_menu` VALUES (3079, 2, 38);
+INSERT INTO `sys_role_menu` VALUES (3080, 2, 39);
+INSERT INTO `sys_role_menu` VALUES (3081, 2, 41);
+INSERT INTO `sys_role_menu` VALUES (3082, 2, 42);
+INSERT INTO `sys_role_menu` VALUES (3083, 2, 43);
+INSERT INTO `sys_role_menu` VALUES (3084, 2, 69);
+INSERT INTO `sys_role_menu` VALUES (3085, 2, 70);
+INSERT INTO `sys_role_menu` VALUES (3086, 2, 71);
+INSERT INTO `sys_role_menu` VALUES (3087, 2, 51);
+INSERT INTO `sys_role_menu` VALUES (3088, 2, 45);
+INSERT INTO `sys_role_menu` VALUES (3089, 2, 46);
+INSERT INTO `sys_role_menu` VALUES (3090, 2, 47);
+INSERT INTO `sys_role_menu` VALUES (3091, 2, 49);
+INSERT INTO `sys_role_menu` VALUES (3092, 2, 63);
+INSERT INTO `sys_role_menu` VALUES (3093, 2, 79);
+INSERT INTO `sys_role_menu` VALUES (3094, 2, 67);
+INSERT INTO `sys_role_menu` VALUES (3095, 2, 72);
+INSERT INTO `sys_role_menu` VALUES (3096, 2, 73);
+INSERT INTO `sys_role_menu` VALUES (3097, 2, 103);
+INSERT INTO `sys_role_menu` VALUES (3098, 2, 104);
+INSERT INTO `sys_role_menu` VALUES (3099, 2, 105);
+INSERT INTO `sys_role_menu` VALUES (3100, 2, 112);
+INSERT INTO `sys_role_menu` VALUES (3101, 2, 113);
+INSERT INTO `sys_role_menu` VALUES (3102, 2, 120);
+INSERT INTO `sys_role_menu` VALUES (3103, 2, 121);
+INSERT INTO `sys_role_menu` VALUES (3104, 2, 122);
+INSERT INTO `sys_role_menu` VALUES (3105, 2, 123);
+INSERT INTO `sys_role_menu` VALUES (3106, 2, 114);
+INSERT INTO `sys_role_menu` VALUES (3107, 2, 115);
+INSERT INTO `sys_role_menu` VALUES (3108, 2, 116);
+INSERT INTO `sys_role_menu` VALUES (3109, 2, 117);
+INSERT INTO `sys_role_menu` VALUES (3110, 2, 118);
+INSERT INTO `sys_role_menu` VALUES (3111, 2, 119);
+INSERT INTO `sys_role_menu` VALUES (3112, 2, 151);
+INSERT INTO `sys_role_menu` VALUES (3113, 2, 155);
+INSERT INTO `sys_role_menu` VALUES (3114, 2, 156);
+INSERT INTO `sys_role_menu` VALUES (3115, 2, 77);
+INSERT INTO `sys_role_menu` VALUES (3116, 2, 78);
+INSERT INTO `sys_role_menu` VALUES (3117, 2, 107);
+INSERT INTO `sys_role_menu` VALUES (3118, 2, 108);
+INSERT INTO `sys_role_menu` VALUES (3119, 2, 109);
+INSERT INTO `sys_role_menu` VALUES (3120, 2, 110);
+INSERT INTO `sys_role_menu` VALUES (3121, 2, 111);
+INSERT INTO `sys_role_menu` VALUES (3122, 2, 81);
+INSERT INTO `sys_role_menu` VALUES (3123, 2, 82);
+INSERT INTO `sys_role_menu` VALUES (3124, 2, 83);
+INSERT INTO `sys_role_menu` VALUES (3125, 2, 132);
+INSERT INTO `sys_role_menu` VALUES (3126, 2, 91);
+INSERT INTO `sys_role_menu` VALUES (3127, 2, 92);
+INSERT INTO `sys_role_menu` VALUES (3128, 2, 93);
+INSERT INTO `sys_role_menu` VALUES (3129, 2, 94);
+INSERT INTO `sys_role_menu` VALUES (3130, 2, 95);
+INSERT INTO `sys_role_menu` VALUES (3131, 2, 58);
+INSERT INTO `sys_role_menu` VALUES (3132, 2, 124);
+INSERT INTO `sys_role_menu` VALUES (3133, 2, 125);
+INSERT INTO `sys_role_menu` VALUES (3134, 2, 126);
+INSERT INTO `sys_role_menu` VALUES (3135, 2, 127);
+INSERT INTO `sys_role_menu` VALUES (3136, 2, 128);
+INSERT INTO `sys_role_menu` VALUES (3137, 2, 129);
+INSERT INTO `sys_role_menu` VALUES (3138, 2, 130);
+INSERT INTO `sys_role_menu` VALUES (3139, 2, 87);
+INSERT INTO `sys_role_menu` VALUES (3140, 2, 15);
+INSERT INTO `sys_role_menu` VALUES (3141, 2, 19);
+INSERT INTO `sys_role_menu` VALUES (3142, 2, 23);
+INSERT INTO `sys_role_menu` VALUES (3143, 2, -666666);
+INSERT INTO `sys_role_menu` VALUES (3144, 2, 34);
+INSERT INTO `sys_role_menu` VALUES (3145, 2, 50);
+INSERT INTO `sys_role_menu` VALUES (3146, 2, 44);
+INSERT INTO `sys_role_menu` VALUES (3147, 2, 62);
+INSERT INTO `sys_role_menu` VALUES (3148, 2, 66);
+INSERT INTO `sys_role_menu` VALUES (3149, 2, 101);
+INSERT INTO `sys_role_menu` VALUES (3150, 2, 149);
+INSERT INTO `sys_role_menu` VALUES (3151, 2, 150);
+INSERT INTO `sys_role_menu` VALUES (3152, 2, 131);
+INSERT INTO `sys_role_menu` VALUES (3153, 2, 57);
+INSERT INTO `sys_role_menu` VALUES (3154, 2, 1);
+INSERT INTO `sys_role_menu` VALUES (3155, 2, 86);
+INSERT INTO `sys_role_menu` VALUES (3156, 2, 2);
+INSERT INTO `sys_role_menu` VALUES (3157, 2, 3);
+INSERT INTO `sys_role_menu` VALUES (3158, 2, 4);
+INSERT INTO `sys_role_menu` VALUES (3402, 1, 33);
+INSERT INTO `sys_role_menu` VALUES (3403, 1, 32);
+INSERT INTO `sys_role_menu` VALUES (3404, 1, 60);
+INSERT INTO `sys_role_menu` VALUES (3405, 1, 61);
+INSERT INTO `sys_role_menu` VALUES (3406, 1, 75);
+INSERT INTO `sys_role_menu` VALUES (3407, 1, 76);
+INSERT INTO `sys_role_menu` VALUES (3408, 1, 80);
+INSERT INTO `sys_role_menu` VALUES (3409, 1, 84);
+INSERT INTO `sys_role_menu` VALUES (3410, 1, 85);
+INSERT INTO `sys_role_menu` VALUES (3411, 1, 157);
+INSERT INTO `sys_role_menu` VALUES (3412, 1, 34);
+INSERT INTO `sys_role_menu` VALUES (3413, 1, 35);
+INSERT INTO `sys_role_menu` VALUES (3414, 1, 36);
+INSERT INTO `sys_role_menu` VALUES (3415, 1, 37);
+INSERT INTO `sys_role_menu` VALUES (3416, 1, 38);
+INSERT INTO `sys_role_menu` VALUES (3417, 1, 39);
+INSERT INTO `sys_role_menu` VALUES (3418, 1, 40);
+INSERT INTO `sys_role_menu` VALUES (3419, 1, 41);
+INSERT INTO `sys_role_menu` VALUES (3420, 1, 42);
+INSERT INTO `sys_role_menu` VALUES (3421, 1, 43);
+INSERT INTO `sys_role_menu` VALUES (3422, 1, 69);
+INSERT INTO `sys_role_menu` VALUES (3423, 1, 70);
+INSERT INTO `sys_role_menu` VALUES (3424, 1, 71);
+INSERT INTO `sys_role_menu` VALUES (3425, 1, 50);
+INSERT INTO `sys_role_menu` VALUES (3426, 1, 51);
+INSERT INTO `sys_role_menu` VALUES (3427, 1, 52);
+INSERT INTO `sys_role_menu` VALUES (3428, 1, 53);
+INSERT INTO `sys_role_menu` VALUES (3429, 1, 54);
+INSERT INTO `sys_role_menu` VALUES (3430, 1, 44);
+INSERT INTO `sys_role_menu` VALUES (3431, 1, 45);
+INSERT INTO `sys_role_menu` VALUES (3432, 1, 46);
+INSERT INTO `sys_role_menu` VALUES (3433, 1, 47);
+INSERT INTO `sys_role_menu` VALUES (3434, 1, 48);
+INSERT INTO `sys_role_menu` VALUES (3435, 1, 49);
+INSERT INTO `sys_role_menu` VALUES (3436, 1, 62);
+INSERT INTO `sys_role_menu` VALUES (3437, 1, 63);
+INSERT INTO `sys_role_menu` VALUES (3438, 1, 64);
+INSERT INTO `sys_role_menu` VALUES (3439, 1, 79);
+INSERT INTO `sys_role_menu` VALUES (3440, 1, 66);
+INSERT INTO `sys_role_menu` VALUES (3441, 1, 67);
+INSERT INTO `sys_role_menu` VALUES (3442, 1, 72);
+INSERT INTO `sys_role_menu` VALUES (3443, 1, 73);
+INSERT INTO `sys_role_menu` VALUES (3444, 1, 74);
+INSERT INTO `sys_role_menu` VALUES (3445, 1, 101);
+INSERT INTO `sys_role_menu` VALUES (3446, 1, 103);
+INSERT INTO `sys_role_menu` VALUES (3447, 1, 104);
+INSERT INTO `sys_role_menu` VALUES (3448, 1, 105);
+INSERT INTO `sys_role_menu` VALUES (3449, 1, 106);
+INSERT INTO `sys_role_menu` VALUES (3450, 1, 112);
+INSERT INTO `sys_role_menu` VALUES (3451, 1, 113);
+INSERT INTO `sys_role_menu` VALUES (3452, 1, 120);
+INSERT INTO `sys_role_menu` VALUES (3453, 1, 121);
+INSERT INTO `sys_role_menu` VALUES (3454, 1, 122);
+INSERT INTO `sys_role_menu` VALUES (3455, 1, 123);
+INSERT INTO `sys_role_menu` VALUES (3456, 1, 114);
+INSERT INTO `sys_role_menu` VALUES (3457, 1, 115);
+INSERT INTO `sys_role_menu` VALUES (3458, 1, 116);
+INSERT INTO `sys_role_menu` VALUES (3459, 1, 117);
+INSERT INTO `sys_role_menu` VALUES (3460, 1, 118);
+INSERT INTO `sys_role_menu` VALUES (3461, 1, 119);
+INSERT INTO `sys_role_menu` VALUES (3462, 1, 149);
+INSERT INTO `sys_role_menu` VALUES (3463, 1, 150);
+INSERT INTO `sys_role_menu` VALUES (3464, 1, 151);
+INSERT INTO `sys_role_menu` VALUES (3465, 1, 152);
+INSERT INTO `sys_role_menu` VALUES (3466, 1, 153);
+INSERT INTO `sys_role_menu` VALUES (3467, 1, 154);
+INSERT INTO `sys_role_menu` VALUES (3468, 1, 155);
+INSERT INTO `sys_role_menu` VALUES (3469, 1, 156);
+INSERT INTO `sys_role_menu` VALUES (3470, 1, 77);
+INSERT INTO `sys_role_menu` VALUES (3471, 1, 78);
+INSERT INTO `sys_role_menu` VALUES (3472, 1, 107);
+INSERT INTO `sys_role_menu` VALUES (3473, 1, 108);
+INSERT INTO `sys_role_menu` VALUES (3474, 1, 109);
+INSERT INTO `sys_role_menu` VALUES (3475, 1, 110);
+INSERT INTO `sys_role_menu` VALUES (3476, 1, 111);
+INSERT INTO `sys_role_menu` VALUES (3477, 1, 81);
+INSERT INTO `sys_role_menu` VALUES (3478, 1, 82);
+INSERT INTO `sys_role_menu` VALUES (3479, 1, 83);
+INSERT INTO `sys_role_menu` VALUES (3480, 1, 131);
+INSERT INTO `sys_role_menu` VALUES (3481, 1, 132);
+INSERT INTO `sys_role_menu` VALUES (3482, 1, 133);
+INSERT INTO `sys_role_menu` VALUES (3483, 1, 134);
+INSERT INTO `sys_role_menu` VALUES (3484, 1, 135);
+INSERT INTO `sys_role_menu` VALUES (3485, 1, 91);
+INSERT INTO `sys_role_menu` VALUES (3486, 1, 92);
+INSERT INTO `sys_role_menu` VALUES (3487, 1, 93);
+INSERT INTO `sys_role_menu` VALUES (3488, 1, 94);
+INSERT INTO `sys_role_menu` VALUES (3489, 1, 95);
+INSERT INTO `sys_role_menu` VALUES (3490, 1, 57);
+INSERT INTO `sys_role_menu` VALUES (3491, 1, 58);
+INSERT INTO `sys_role_menu` VALUES (3492, 1, 59);
+INSERT INTO `sys_role_menu` VALUES (3493, 1, 124);
+INSERT INTO `sys_role_menu` VALUES (3494, 1, 125);
+INSERT INTO `sys_role_menu` VALUES (3495, 1, 126);
+INSERT INTO `sys_role_menu` VALUES (3496, 1, 127);
+INSERT INTO `sys_role_menu` VALUES (3497, 1, 128);
+INSERT INTO `sys_role_menu` VALUES (3498, 1, 129);
+INSERT INTO `sys_role_menu` VALUES (3499, 1, 130);
+INSERT INTO `sys_role_menu` VALUES (3500, 1, 1);
+INSERT INTO `sys_role_menu` VALUES (3501, 1, 86);
+INSERT INTO `sys_role_menu` VALUES (3502, 1, 87);
+INSERT INTO `sys_role_menu` VALUES (3503, 1, 88);
+INSERT INTO `sys_role_menu` VALUES (3504, 1, 89);
+INSERT INTO `sys_role_menu` VALUES (3505, 1, 90);
+INSERT INTO `sys_role_menu` VALUES (3506, 1, 158);
+INSERT INTO `sys_role_menu` VALUES (3507, 1, 159);
+INSERT INTO `sys_role_menu` VALUES (3508, 1, 160);
+INSERT INTO `sys_role_menu` VALUES (3509, 1, 161);
+INSERT INTO `sys_role_menu` VALUES (3510, 1, 162);
+INSERT INTO `sys_role_menu` VALUES (3511, 1, 2);
+INSERT INTO `sys_role_menu` VALUES (3512, 1, 15);
+INSERT INTO `sys_role_menu` VALUES (3513, 1, 16);
+INSERT INTO `sys_role_menu` VALUES (3514, 1, 17);
+INSERT INTO `sys_role_menu` VALUES (3515, 1, 18);
+INSERT INTO `sys_role_menu` VALUES (3516, 1, 3);
+INSERT INTO `sys_role_menu` VALUES (3517, 1, 19);
+INSERT INTO `sys_role_menu` VALUES (3518, 1, 20);
+INSERT INTO `sys_role_menu` VALUES (3519, 1, 21);
+INSERT INTO `sys_role_menu` VALUES (3520, 1, 22);
+INSERT INTO `sys_role_menu` VALUES (3521, 1, 4);
+INSERT INTO `sys_role_menu` VALUES (3522, 1, 23);
+INSERT INTO `sys_role_menu` VALUES (3523, 1, 24);
+INSERT INTO `sys_role_menu` VALUES (3524, 1, 25);
+INSERT INTO `sys_role_menu` VALUES (3525, 1, 26);
+INSERT INTO `sys_role_menu` VALUES (3526, 1, -666666);
+
+-- ----------------------------
+-- Table structure for sys_user
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user`;
+CREATE TABLE `sys_user` (
+ `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '系统用户id',
+ `username` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '用户名',
+ `password` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+ `salt` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '盐',
+ `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邮箱',
+ `mobile` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
+ `status` tinyint(4) NULL DEFAULT NULL COMMENT '状态 0:禁用 1:正常',
+ `create_user_id` bigint(20) NULL DEFAULT NULL COMMENT '创建者ID',
+ `create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
+ `qd_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道码',
+ `qd_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '渠道佣金',
+ `is_channel` int(11) NULL DEFAULT NULL COMMENT '是否是渠道 1是',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '员工 上级id',
+ `zhi_fu_bao` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝账号',
+ `zhi_fu_bao_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝名称',
+ PRIMARY KEY (`user_id`) USING BTREE,
+ UNIQUE INDEX `username`(`username`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 48 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统用户' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_user
+-- ----------------------------
+INSERT INTO `sys_user` VALUES (1, 'admin', 'd03aedc2e175f30331116f673b04056502e53d1821e4966e4857518eee787598', 'U0qnh11wzA2bMdJAbELW', '1389585394@163.com', '13612345678', 1, 10, '2016-11-11 11:11:11', NULL, NULL, NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for sys_user_role
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_role`;
+CREATE TABLE `sys_user_role` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `user_id` bigint(20) NULL DEFAULT NULL COMMENT '用户ID',
+ `role_id` bigint(20) NULL DEFAULT NULL COMMENT '角色ID',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 117 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户与角色对应关系' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_user_role
+-- ----------------------------
+INSERT INTO `sys_user_role` VALUES (2, 1, 1);
+
+-- ----------------------------
+-- Table structure for sys_user_token
+-- ----------------------------
+DROP TABLE IF EXISTS `sys_user_token`;
+CREATE TABLE `sys_user_token` (
+ `user_id` bigint(20) NOT NULL,
+ `token` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 'token',
+ `expire_time` datetime(0) NULL DEFAULT NULL COMMENT '过期时间',
+ `update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
+ PRIMARY KEY (`user_id`) USING BTREE,
+ UNIQUE INDEX `token`(`token`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '系统用户Token' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of sys_user_token
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for tb_user
+-- ----------------------------
+DROP TABLE IF EXISTS `tb_user`;
+CREATE TABLE `tb_user` (
+ `user_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户id',
+ `user_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用户名',
+ `phone` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '手机号',
+ `avatar` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '头像',
+ `sex` int(11) NULL DEFAULT NULL COMMENT '性别 1男 2女',
+ `open_id` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信小程序openId',
+ `wx_open_id` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信App openId',
+ `password` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '密码',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `update_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新时间',
+ `apple_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '苹果id',
+ `sys_phone` int(11) NULL DEFAULT NULL COMMENT '手机类型 1安卓 2ios',
+ `status` int(11) NULL DEFAULT NULL COMMENT '状态 1正常 2禁用',
+ `platform` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源 APP 小程序 公众号',
+ `jifen` int(11) NULL DEFAULT NULL COMMENT '积分',
+ `invitation_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邀请码',
+ `inviter_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '邀请人邀请码',
+ `clientid` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'app消息推送标识',
+ `zhi_fu_bao_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝名称',
+ `zhi_fu_bao` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '支付宝账号',
+ `wx_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '微信公众号openId',
+ `rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '一级推广佣金',
+ `two_rate` decimal(10, 2) NULL DEFAULT NULL COMMENT '二级推广佣金',
+ `on_line_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '最后一次在线时间',
+ `dy_open_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '抖音openId',
+ `qd_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '渠道码',
+ `ks_open_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '快手openId',
+ `is_new_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '是否是新用户 1否',
+ PRIMARY KEY (`user_id`) USING BTREE,
+ INDEX `invitation_code`(`invitation_code`) USING BTREE,
+ INDEX `inviter_code`(`inviter_code`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 14232 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of tb_user
+-- ----------------------------
+INSERT INTO `tb_user` VALUES (1, '官方', '15212345611', NULL, 1, '', NULL, '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92', '2021-08-14 11:07:08', '2024-10-06 23:27:12', NULL, NULL, 1, '小程序', NULL, '666666', '666666', NULL, NULL, NULL, NULL, 0.20, 0.10, '2024-10-06 23:55:54', NULL, NULL, NULL, NULL);
+
+-- ----------------------------
+-- Table structure for url_address
+-- ----------------------------
+DROP TABLE IF EXISTS `url_address`;
+CREATE TABLE `url_address` (
+ `url_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '域名池id',
+ `url_address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '域名地址',
+ `num` int(11) NULL DEFAULT NULL COMMENT '使用次数',
+ `status` int(11) NULL DEFAULT NULL COMMENT '状态 1开启 2关闭',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`url_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 4 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '域名池表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of url_address
+-- ----------------------------
+INSERT INTO `url_address` VALUES (1, 'https://duanju.xianmxkj.com', 531, 1, '2024-01-01 00:00:00');
+INSERT INTO `url_address` VALUES (3, 'https://duanju.xianmxkj.com', 531, 1, '2024-01-25 11:27:46');
+
+-- ----------------------------
+-- Table structure for user_integral
+-- ----------------------------
+DROP TABLE IF EXISTS `user_integral`;
+CREATE TABLE `user_integral` (
+ `user_id` int(11) NOT NULL COMMENT '用户id',
+ `integral_num` int(11) NULL DEFAULT NULL COMMENT '积分数量',
+ PRIMARY KEY (`user_id`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '用户积分表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of user_integral
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for user_integral_details
+-- ----------------------------
+DROP TABLE IF EXISTS `user_integral_details`;
+CREATE TABLE `user_integral_details` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '积分详情id',
+ `content` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '内容',
+ `classify` int(255) NULL DEFAULT NULL COMMENT '获取类型 1签到2报名',
+ `type` int(255) NULL DEFAULT NULL COMMENT '分类 1增加 2减少',
+ `num` int(11) NULL DEFAULT NULL COMMENT '数量',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `create_time` varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '创建时间',
+ `day` int(11) NULL DEFAULT NULL COMMENT '签到天数',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1417 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '积分明细表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of user_integral_details
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for user_money
+-- ----------------------------
+DROP TABLE IF EXISTS `user_money`;
+CREATE TABLE `user_money` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '钱包id',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '钱包金额',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '渠道用户id',
+ PRIMARY KEY (`id`) USING BTREE,
+ UNIQUE INDEX `user_id`(`user_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 788 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '用户钱包' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of user_money
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for user_money_details
+-- ----------------------------
+DROP TABLE IF EXISTS `user_money_details`;
+CREATE TABLE `user_money_details` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '钱包详情id',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `sys_user_id` int(11) NULL DEFAULT NULL COMMENT '渠道用户id',
+ `by_user_id` int(11) NULL DEFAULT NULL COMMENT '对应用户id',
+ `title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题',
+ `classify` int(11) NULL DEFAULT NULL COMMENT '1注册 2首次购买 3购买 4提现',
+ `type` int(11) NULL DEFAULT 1 COMMENT '类别(1充值2支出)',
+ `state` int(11) NULL DEFAULT 1 COMMENT '状态 1待支付 2已到账 3取消',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '金额',
+ `content` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容',
+ `create_time` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NULL DEFAULT NULL COMMENT '创建时间',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 1486 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin COMMENT = '钱包记录表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of user_money_details
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for user_vip
+-- ----------------------------
+DROP TABLE IF EXISTS `user_vip`;
+CREATE TABLE `user_vip` (
+ `vip_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '会员id',
+ `vip_name_type` int(1) NULL DEFAULT NULL COMMENT '会员类型0月/1季度/2年',
+ `user_id` int(11) NULL DEFAULT NULL COMMENT '用户id',
+ `is_vip` int(11) NULL DEFAULT NULL COMMENT '是否是会员 1否 2是',
+ `create_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '购买时间',
+ `end_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '到期时间',
+ `vip_type` int(11) NULL DEFAULT NULL COMMENT '会员类型 1活动赠送 2充值开通 3卡密 4系统赠送',
+ PRIMARY KEY (`vip_id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 296 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '用户会员表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of user_vip
+-- ----------------------------
+
+-- ----------------------------
+-- Table structure for vip_details
+-- ----------------------------
+DROP TABLE IF EXISTS `vip_details`;
+CREATE TABLE `vip_details` (
+ `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id',
+ `vip_name_type` int(1) NULL DEFAULT NULL COMMENT '会员类型0月/1季/2年',
+ `money` decimal(10, 2) NULL DEFAULT NULL COMMENT '会员价格',
+ `pay_diamond` decimal(10, 2) NULL DEFAULT NULL COMMENT '支付钻石',
+ PRIMARY KEY (`id`) USING BTREE
+) ENGINE = InnoDB AUTO_INCREMENT = 8 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '会员价格表' ROW_FORMAT = Dynamic;
+
+-- ----------------------------
+-- Records of vip_details
+-- ----------------------------
+INSERT INTO `vip_details` VALUES (2, 0, 18.00, 126.00);
+INSERT INTO `vip_details` VALUES (3, 1, 40.00, 280.00);
+INSERT INTO `vip_details` VALUES (4, 2, 30.00, 210.00);
+INSERT INTO `vip_details` VALUES (5, 2, 50.00, 450.00);
+INSERT INTO `vip_details` VALUES (7, 1, 999.00, 999.00);
+
+SET FOREIGN_KEY_CHECKS = 1;
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 00000000..272c6ed3
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,526 @@
+
+
+ 4.0.0
+ com.sqx
+ duanju
+ 7.0.0
+ jar
+ duanju
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.6.11
+
+
+
+ UTF-8
+ UTF-8
+ 1.8
+ 3.2.0
+ 8.0.17
+ 4.0
+ 11.2.0.3
+ 1.1.13
+ 2.3.0
+ 2.6
+ 1.2.2
+ 2.5
+ 1.10
+ 1.10
+ 1.6.0
+ 0.7.0
+ 0.0.9
+ 7.2.23
+ 3.4.0
+ 4.4
+ 2.7.0
+ 2.9.9
+ 2.8.5
+ 1.2.83
+ 4.6.10
+ 1.18.4
+
+
+
+
+
+
+
+
+ com.volcengine
+ ve-tos-java-sdk
+ 2.6.6
+
+
+
+ com.google.guava
+ guava
+ 19.0
+
+
+ com.amazonaws
+ aws-java-sdk
+ 1.11.274
+
+
+ cn.afterturn
+ easypoi-spring-boot-starter
+ 4.0.0
+
+
+ com.github.qcloudsms
+ qcloudsms
+ 1.0.6
+
+
+
+ com.qcloud
+ cos_api
+ 5.5.7
+
+
+ org.slf4j
+ slf4j-log4j12
+
+
+
+
+
+
+ com.yungouos.pay
+ yungouos-pay-sdk
+ 2.0.10
+
+
+
+ org.hibernate.validator
+ hibernate-validator
+ 6.2.3.Final
+
+
+
+ com.tencentcloudapi
+ tencentcloud-sdk-java
+
+
+ 3.1.792
+
+
+
+ net.java.dev.jna
+ jna
+ 5.5.0
+
+
+ net.java.dev.jna
+ jna-platform
+ 5.5.0
+
+
+
+ com.alibaba
+ druid
+ 1.1.10
+
+
+
+ com.auth0
+ java-jwt
+ 3.8.3
+
+
+ com.auth0
+ jwks-rsa
+ 0.12.0
+
+
+ io.jsonwebtoken
+ jjwt
+ 0.9.0
+
+
+ net.sf.json-lib
+ json-lib
+ 2.4
+ jdk15
+
+
+
+ org.apache.poi
+ poi
+ 4.0.1
+
+
+
+ org.apache.poi
+ poi-ooxml
+ 4.0.1
+
+
+ com.github.qcloudsms
+ qcloudsms
+ 1.0.6
+
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.5.3
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.4.0
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.10.29.ALL
+
+
+ com.github.wxpay
+ wxpay-sdk
+ 0.0.3
+
+
+ com.github.liyiorg
+ weixin-popular
+ 2.8.25
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+ org.springframework
+ spring-context-support
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ ${mybatisplus.version}
+
+
+ com.baomidou
+ mybatis-plus-generator
+
+
+
+
+ mysql
+ mysql-connector-java
+ ${mysql.version}
+
+
+
+ com.oracle
+ ojdbc6
+ ${oracle.version}
+
+
+
+ com.microsoft.sqlserver
+ sqljdbc4
+ ${mssql.version}
+
+
+
+ org.postgresql
+ postgresql
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ ${druid.version}
+
+
+ org.quartz-scheduler
+ quartz
+ ${quartz.version}
+
+
+ com.mchange
+ c3p0
+
+
+
+
+ commons-lang
+ commons-lang
+ ${commons.lang.version}
+
+
+ commons-fileupload
+ commons-fileupload
+ ${commons.fileupload.version}
+
+
+ commons-io
+ commons-io
+ ${commons.io.version}
+
+
+ commons-codec
+ commons-codec
+ ${commons.codec.version}
+
+
+ commons-configuration
+ commons-configuration
+ ${commons.configuration.version}
+
+
+ org.apache.shiro
+ shiro-core
+ ${shiro.version}
+
+
+ org.apache.shiro
+ shiro-spring
+ ${shiro.version}
+
+
+ com.github.axet
+ kaptcha
+ ${kaptcha.version}
+
+
+ io.springfox
+ springfox-swagger2
+ ${swagger.version}
+
+
+ io.springfox
+ springfox-swagger-ui
+ ${swagger.version}
+
+
+ com.qiniu
+ qiniu-java-sdk
+ ${qiniu.version}
+
+
+ joda-time
+ joda-time
+ ${joda.time.version}
+
+
+ com.google.code.gson
+ gson
+ ${gson.version}
+
+
+ com.alibaba
+ fastjson
+ ${fastjson.version}
+
+
+ cn.hutool
+ hutool-all
+ ${hutool.version}
+
+
+ org.projectlombok
+ lombok
+ ${lombok.version}
+
+
+
+
+
+ com.google.zxing
+ core
+ 3.3.3
+
+
+
+ com.google.zxing
+ javase
+ 3.3.3
+
+
+ com.github.binarywang
+ weixin-java-mp
+
+
+ com.thoughtworks.xstream
+ xstream
+
+
+ 3.6.0
+
+
+ com.thoughtworks.xstream
+ xstream
+ 1.4.18
+
+
+ com.github.binarywang
+ weixin-java-pay
+ 3.6.0
+
+
+ com.github.pagehelper
+ pagehelper-spring-boot-starter
+ 1.2.5
+
+
+ mybatis-spring
+ org.mybatis
+
+
+ mybatis
+ org.mybatis
+
+
+
+
+ com.github.dozermapper
+ dozer-core
+ 6.4.1
+
+
+ com.getui.push
+ restful-sdk
+ 1.0.0.1
+
+
+
+
+
+
+
+
+
+ ${project.artifactId}
+
+
+ org.apache.maven.wagon
+ wagon-ssh
+ 2.8
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.codehaus.mojo
+ wagon-maven-plugin
+ 1.0
+
+
+
+
+ com.spotify
+ docker-maven-plugin
+ 0.4.14
+
+
+
+
+
+
+
+
+
+ sqx/fast
+ ${project.basedir}
+
+
+ /
+ ${project.build.directory}
+ ${project.build.finalName}.jar
+
+
+
+
+
+
+
+
+
+
+ public
+ aliyun nexus
+ http://maven.aliyun.com/nexus/content/groups/public/
+
+ true
+
+
+
+ douyincloud
+ douyincloud
+ https://artifacts-cn-beijing.volces.com/repository/douyincloud/
+
+
+
+
+
+ public
+ aliyun nexus
+ http://maven.aliyun.com/nexus/content/groups/public/
+
+ true
+
+
+ false
+
+
+
+
+
diff --git a/src/main/java/com/sqx/SqxApplication.java b/src/main/java/com/sqx/SqxApplication.java
new file mode 100644
index 00000000..19163dea
--- /dev/null
+++ b/src/main/java/com/sqx/SqxApplication.java
@@ -0,0 +1,23 @@
+package com.sqx;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
+
+@EnableScheduling
+@SpringBootApplication
+public class SqxApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(SqxApplication.class, args);
+ System.out.println("(♥◠‿◠)ノ゙ 短剧系统启动成功 ლ(´ڡ`ლ)゙ \n"+
+ " _ \n" +
+ " | | \n" +
+ " ___ | | __\n" +
+ " / _ \\| |/ /\n" +
+ "| (_) | < \n" +
+ " \\___/|_|\\_\\");
+
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/sqx/common/annotation/SysLog.java b/src/main/java/com/sqx/common/annotation/SysLog.java
new file mode 100644
index 00000000..70cec15d
--- /dev/null
+++ b/src/main/java/com/sqx/common/annotation/SysLog.java
@@ -0,0 +1,19 @@
+package com.sqx.common.annotation;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 系统日志注解
+ *
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+public @interface SysLog {
+
+ String value() default "";
+}
diff --git a/src/main/java/com/sqx/common/aspect/RedisAspect.java b/src/main/java/com/sqx/common/aspect/RedisAspect.java
new file mode 100644
index 00000000..896c0f78
--- /dev/null
+++ b/src/main/java/com/sqx/common/aspect/RedisAspect.java
@@ -0,0 +1,37 @@
+package com.sqx.common.aspect;
+
+import com.sqx.common.exception.SqxException;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.annotation.Configuration;
+
+/**
+ * Redis切面处理类
+ *
+ */
+@Aspect
+@Configuration
+public class RedisAspect {
+ private Logger logger = LoggerFactory.getLogger(getClass());
+ //是否开启redis缓存 true开启 false关闭
+ @Value("${spring.redis.open: false}")
+ private boolean open;
+
+ @Around("execution(* com.sqx.common.utils.RedisUtils.*(..))")
+ public Object around(ProceedingJoinPoint point) throws Throwable {
+ Object result = null;
+ if(open){
+ try{
+ result = point.proceed();
+ }catch (Exception e){
+ logger.error("redis error", e);
+ throw new SqxException("Redis服务异常");
+ }
+ }
+ return result;
+ }
+}
diff --git a/src/main/java/com/sqx/common/aspect/SysLogAspect.java b/src/main/java/com/sqx/common/aspect/SysLogAspect.java
new file mode 100644
index 00000000..b0f5ac8f
--- /dev/null
+++ b/src/main/java/com/sqx/common/aspect/SysLogAspect.java
@@ -0,0 +1,92 @@
+package com.sqx.common.aspect;
+
+import com.google.gson.Gson;
+import com.sqx.common.utils.HttpContextUtils;
+import com.sqx.common.utils.IPUtils;
+import com.sqx.common.annotation.SysLog;
+import com.sqx.modules.sys.entity.SysLogEntity;
+import com.sqx.modules.sys.entity.SysUserEntity;
+import com.sqx.modules.sys.service.SysLogService;
+import org.apache.shiro.SecurityUtils;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.annotation.Pointcut;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.servlet.http.HttpServletRequest;
+import java.lang.reflect.Method;
+import java.util.Date;
+
+
+/**
+ * 系统日志,切面处理类
+ *
+ */
+@Aspect
+@Component
+public class SysLogAspect {
+ @Autowired
+ private SysLogService sysLogService;
+
+ @Pointcut("@annotation(com.sqx.common.annotation.SysLog)")
+ public void logPointCut() {
+
+ }
+
+ @Around("logPointCut()")
+ public Object around(ProceedingJoinPoint point) throws Throwable {
+ long beginTime = System.currentTimeMillis();
+ //执行方法
+ Object result = point.proceed();
+ //执行时长(毫秒)
+ long time = System.currentTimeMillis() - beginTime;
+
+ //保存日志
+ saveSysLog(point, time);
+
+ return result;
+ }
+
+ private void saveSysLog(ProceedingJoinPoint joinPoint, long time) {
+ MethodSignature signature = (MethodSignature) joinPoint.getSignature();
+ Method method = signature.getMethod();
+
+ SysLogEntity sysLog = new SysLogEntity();
+ SysLog syslog = method.getAnnotation(SysLog.class);
+ if(syslog != null){
+ //注解上的描述
+ sysLog.setOperation(syslog.value());
+ }
+
+ //请求的方法名
+ String className = joinPoint.getTarget().getClass().getName();
+ String methodName = signature.getName();
+ sysLog.setMethod(className + "." + methodName + "()");
+
+ //请求的参数
+ Object[] args = joinPoint.getArgs();
+ try{
+ String params = new Gson().toJson(args);
+ sysLog.setParams(params);
+ }catch (Exception e){
+
+ }
+
+ //获取request
+ HttpServletRequest request = HttpContextUtils.getHttpServletRequest();
+ //设置IP地址
+ sysLog.setIp(IPUtils.getIpAddr(request));
+
+ //用户名
+ String username = ((SysUserEntity) SecurityUtils.getSubject().getPrincipal()).getUsername();
+ sysLog.setUsername(username);
+
+ sysLog.setTime(time);
+ sysLog.setCreateDate(new Date());
+ //保存系统日志
+ sysLogService.save(sysLog);
+ }
+}
diff --git a/src/main/java/com/sqx/common/exception/SqxException.java b/src/main/java/com/sqx/common/exception/SqxException.java
new file mode 100644
index 00000000..f343af57
--- /dev/null
+++ b/src/main/java/com/sqx/common/exception/SqxException.java
@@ -0,0 +1,52 @@
+package com.sqx.common.exception;
+
+/**
+ * 自定义异常
+ *
+ */
+public class SqxException extends RuntimeException {
+ private static final long serialVersionUID = 1L;
+
+ private String msg;
+ private int code = 500;
+
+ public SqxException(String msg) {
+ super(msg);
+ this.msg = msg;
+ }
+
+ public SqxException(String msg, Throwable e) {
+ super(msg, e);
+ this.msg = msg;
+ }
+
+ public SqxException(String msg, int code) {
+ super(msg);
+ this.msg = msg;
+ this.code = code;
+ }
+
+ public SqxException(String msg, int code, Throwable e) {
+ super(msg, e);
+ this.msg = msg;
+ this.code = code;
+ }
+
+ public String getMsg() {
+ return msg;
+ }
+
+ public void setMsg(String msg) {
+ this.msg = msg;
+ }
+
+ public int getCode() {
+ return code;
+ }
+
+ public void setCode(int code) {
+ this.code = code;
+ }
+
+
+}
diff --git a/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java b/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java
new file mode 100644
index 00000000..a171e7dd
--- /dev/null
+++ b/src/main/java/com/sqx/common/exception/SqxExceptionHandler.java
@@ -0,0 +1,55 @@
+package com.sqx.common.exception;
+
+import com.sqx.common.utils.Result;
+import org.apache.shiro.authz.AuthorizationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+/**
+ * 异常处理器
+ *
+ */
+@RestControllerAdvice
+public class SqxExceptionHandler {
+ private Logger logger = LoggerFactory.getLogger(getClass());
+
+ /**
+ * 处理自定义异常
+ */
+ @ExceptionHandler(SqxException.class)
+ public Result handleException(SqxException e){
+ Result r = new Result();
+ r.put("code", e.getCode());
+ r.put("msg", e.getMessage());
+
+ return r;
+ }
+
+ @ExceptionHandler(NoHandlerFoundException.class)
+ public Result handlerNoFoundException(Exception e) {
+ logger.error(e.getMessage(), e);
+ return Result.error(404, "路径不存在,请检查路径是否正确");
+ }
+
+ @ExceptionHandler(DuplicateKeyException.class)
+ public Result handleDuplicateKeyException(DuplicateKeyException e){
+ logger.error(e.getMessage(), e);
+ return Result.error("数据库中已存在该记录");
+ }
+
+ @ExceptionHandler(AuthorizationException.class)
+ public Result handleAuthorizationException(AuthorizationException e){
+ logger.error(e.getMessage(), e);
+ return Result.error("没有权限,请联系管理员授权");
+ }
+
+ @ExceptionHandler(Exception.class)
+ public Result handleException(Exception e){
+ logger.error(e.getMessage(), e);
+ return Result.error();
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/ConfigConstant.java b/src/main/java/com/sqx/common/utils/ConfigConstant.java
new file mode 100644
index 00000000..6e18daf0
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/ConfigConstant.java
@@ -0,0 +1,12 @@
+package com.sqx.common.utils;
+
+/**
+ * 系统参数相关Key
+ *
+ */
+public class ConfigConstant {
+ /**
+ * 云存储配置KEY
+ */
+ public final static String CLOUD_STORAGE_CONFIG_KEY = "CLOUD_STORAGE_CONFIG_KEY";
+}
diff --git a/src/main/java/com/sqx/common/utils/Constant.java b/src/main/java/com/sqx/common/utils/Constant.java
new file mode 100644
index 00000000..436bcb1f
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/Constant.java
@@ -0,0 +1,110 @@
+package com.sqx.common.utils;
+
+/**
+ * 常量
+ *
+ */
+public class Constant {
+ /** 超级管理员ID */
+ public static final int SUPER_ADMIN = 1;
+ /**
+ * 当前页码
+ */
+ public static final String PAGE = "page";
+ /**
+ * 每页显示记录数
+ */
+ public static final String LIMIT = "limit";
+ /**
+ * 排序字段
+ */
+ public static final String ORDER_FIELD = "sidx";
+ /**
+ * 排序方式
+ */
+ public static final String ORDER = "order";
+ /**
+ * 升序
+ */
+ public static final String ASC = "asc";
+ /**
+ * 菜单类型
+ */
+ public enum MenuType {
+ /**
+ * 目录
+ */
+ CATALOG(0),
+ /**
+ * 菜单
+ */
+ MENU(1),
+ /**
+ * 按钮
+ */
+ BUTTON(2);
+
+ private int value;
+
+ MenuType(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /**
+ * 定时任务状态
+ */
+ public enum ScheduleStatus {
+ /**
+ * 正常
+ */
+ NORMAL(0),
+ /**
+ * 暂停
+ */
+ PAUSE(1);
+
+ private int value;
+
+ ScheduleStatus(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+ /**
+ * 云服务商
+ */
+ public enum CloudService {
+ /**
+ * 七牛云
+ */
+ QINIU(1),
+ /**
+ * 阿里云
+ */
+ ALIYUN(2),
+ /**
+ * 腾讯云
+ */
+ QCLOUD(3);
+
+ private int value;
+
+ CloudService(int value) {
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+ }
+
+}
diff --git a/src/main/java/com/sqx/common/utils/DateUtils.java b/src/main/java/com/sqx/common/utils/DateUtils.java
new file mode 100644
index 00000000..9d51649a
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/DateUtils.java
@@ -0,0 +1,157 @@
+package com.sqx.common.utils;
+
+import org.apache.commons.lang.StringUtils;
+import org.joda.time.DateTime;
+import org.joda.time.LocalDate;
+import org.joda.time.format.DateTimeFormat;
+import org.joda.time.format.DateTimeFormatter;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * 日期处理
+ *
+ */
+public class DateUtils {
+ /** 时间格式(yyyy-MM-dd) */
+ public final static String DATE_PATTERN = "yyyy-MM-dd";
+ /** 时间格式(yyyy-MM-dd HH:mm:ss) */
+ public final static String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
+
+ /**
+ * 日期格式化 日期格式为:yyyy-MM-dd
+ * @param date 日期
+ * @return 返回yyyy-MM-dd格式日期
+ */
+ public static String format(Date date) {
+ return format(date, DATE_TIME_PATTERN);
+ }
+
+ /**
+ * 日期格式化 日期格式为:yyyy-MM-dd
+ * @param date 日期
+ * @param pattern 格式,如:DateUtils.DATE_TIME_PATTERN
+ * @return 返回yyyy-MM-dd格式日期
+ */
+ public static String format(Date date, String pattern) {
+ if(date != null){
+ SimpleDateFormat df = new SimpleDateFormat(pattern);
+ return df.format(date);
+ }
+ return null;
+ }
+
+ /**
+ * 字符串转换成日期
+ * @param strDate 日期字符串
+ * @param pattern 日期的格式,如:DateUtils.DATE_TIME_PATTERN
+ */
+ public static Date stringToDate(String strDate, String pattern) {
+ if (StringUtils.isBlank(strDate)){
+ return null;
+ }
+
+ DateTimeFormatter fmt = DateTimeFormat.forPattern(pattern);
+ return fmt.parseLocalDateTime(strDate).toDate();
+ }
+
+ /**
+ * 根据周数,获取开始日期、结束日期
+ * @param week 周期 0本周,-1上周,-2上上周,1下周,2下下周
+ * @return 返回date[0]开始日期、date[1]结束日期
+ */
+ public static Date[] getWeekStartAndEnd(int week) {
+ DateTime dateTime = new DateTime();
+ LocalDate date = new LocalDate(dateTime.plusWeeks(week));
+
+ date = date.dayOfWeek().withMinimumValue();
+ Date beginDate = date.toDate();
+ Date endDate = date.plusDays(6).toDate();
+ return new Date[]{beginDate, endDate};
+ }
+
+ /**
+ * 对日期的【秒】进行加/减
+ *
+ * @param date 日期
+ * @param seconds 秒数,负数为减
+ * @return 加/减几秒后的日期
+ */
+ public static Date addDateSeconds(Date date, int seconds) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusSeconds(seconds).toDate();
+ }
+
+ /**
+ * 对日期的【分钟】进行加/减
+ *
+ * @param date 日期
+ * @param minutes 分钟数,负数为减
+ * @return 加/减几分钟后的日期
+ */
+ public static Date addDateMinutes(Date date, int minutes) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusMinutes(minutes).toDate();
+ }
+
+ /**
+ * 对日期的【小时】进行加/减
+ *
+ * @param date 日期
+ * @param hours 小时数,负数为减
+ * @return 加/减几小时后的日期
+ */
+ public static Date addDateHours(Date date, int hours) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusHours(hours).toDate();
+ }
+
+ /**
+ * 对日期的【天】进行加/减
+ *
+ * @param date 日期
+ * @param days 天数,负数为减
+ * @return 加/减几天后的日期
+ */
+ public static Date addDateDays(Date date, int days) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusDays(days).toDate();
+ }
+
+ /**
+ * 对日期的【周】进行加/减
+ *
+ * @param date 日期
+ * @param weeks 周数,负数为减
+ * @return 加/减几周后的日期
+ */
+ public static Date addDateWeeks(Date date, int weeks) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusWeeks(weeks).toDate();
+ }
+
+ /**
+ * 对日期的【月】进行加/减
+ *
+ * @param date 日期
+ * @param months 月数,负数为减
+ * @return 加/减几月后的日期
+ */
+ public static Date addDateMonths(Date date, int months) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusMonths(months).toDate();
+ }
+
+ /**
+ * 对日期的【年】进行加/减
+ *
+ * @param date 日期
+ * @param years 年数,负数为减
+ * @return 加/减几年后的日期
+ */
+ public static Date addDateYears(Date date, int years) {
+ DateTime dateTime = new DateTime(date);
+ return dateTime.plusYears(years).toDate();
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/HttpContextUtils.java b/src/main/java/com/sqx/common/utils/HttpContextUtils.java
new file mode 100644
index 00000000..82c860e5
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/HttpContextUtils.java
@@ -0,0 +1,24 @@
+package com.sqx.common.utils;
+
+import org.springframework.web.context.request.RequestContextHolder;
+import org.springframework.web.context.request.ServletRequestAttributes;
+
+import javax.servlet.http.HttpServletRequest;
+
+public class HttpContextUtils {
+
+ public static HttpServletRequest getHttpServletRequest() {
+ return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
+ }
+
+ public static String getDomain(){
+ HttpServletRequest request = getHttpServletRequest();
+ StringBuffer url = request.getRequestURL();
+ return url.delete(url.length() - request.getRequestURI().length(), url.length()).toString();
+ }
+
+ public static String getOrigin(){
+ HttpServletRequest request = getHttpServletRequest();
+ return request.getHeader("Origin");
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/IPUtils.java b/src/main/java/com/sqx/common/utils/IPUtils.java
new file mode 100644
index 00000000..0fbd6c9f
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/IPUtils.java
@@ -0,0 +1,49 @@
+package com.sqx.common.utils;
+
+import com.alibaba.druid.util.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * IP地址
+ *
+ */
+public class IPUtils {
+ private static Logger logger = LoggerFactory.getLogger(IPUtils.class);
+
+ /**
+ * 获取IP地址
+ *
+ * 使用Nginx等反向代理软件, 则不能通过request.getRemoteAddr()获取IP地址
+ * 如果使用了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP地址,X-Forwarded-For中第一个非unknown的有效IP字符串,则为真实IP地址
+ */
+ public static String getIpAddr(HttpServletRequest request) {
+ String ip = null;
+ try {
+ ip = request.getHeader("x-forwarded-for");
+ if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("Proxy-Client-IP");
+ }
+ if (StringUtils.isEmpty(ip) || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("WL-Proxy-Client-IP");
+ }
+ if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_CLIENT_IP");
+ }
+ if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getHeader("HTTP_X_FORWARDED_FOR");
+ }
+ if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {
+ ip = request.getRemoteAddr();
+ }
+ } catch (Exception e) {
+ logger.error("IPUtils ERROR ", e);
+ }
+
+
+ return ip;
+ }
+
+}
diff --git a/src/main/java/com/sqx/common/utils/MapUtils.java b/src/main/java/com/sqx/common/utils/MapUtils.java
new file mode 100644
index 00000000..14a1558e
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/MapUtils.java
@@ -0,0 +1,17 @@
+package com.sqx.common.utils;
+
+import java.util.HashMap;
+
+
+/**
+ * Map工具类
+ *
+ */
+public class MapUtils extends HashMap {
+
+ @Override
+ public MapUtils put(String key, Object value) {
+ super.put(key, value);
+ return this;
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/PageUtils.java b/src/main/java/com/sqx/common/utils/PageUtils.java
new file mode 100644
index 00000000..6e522c03
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/PageUtils.java
@@ -0,0 +1,101 @@
+package com.sqx.common.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 分页工具类
+ *
+ */
+public class PageUtils implements Serializable {
+ private static final long serialVersionUID = 1L;
+ /**
+ * 总记录数
+ */
+ private int totalCount;
+ /**
+ * 每页记录数
+ */
+ private int pageSize;
+ /**
+ * 总页数
+ */
+ private int totalPage;
+ /**
+ * 当前页数
+ */
+ private int currPage;
+ /**
+ * 列表数据
+ */
+ private List> list;
+
+ /**
+ * 分页
+ * @param list 列表数据
+ * @param totalCount 总记录数
+ * @param pageSize 每页记录数
+ * @param currPage 当前页数
+ */
+ public PageUtils(List> list, int totalCount, int pageSize, int currPage) {
+ this.list = list;
+ this.totalCount = totalCount;
+ this.pageSize = pageSize;
+ this.currPage = currPage;
+ this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
+ }
+
+ /**
+ * 分页
+ */
+ public PageUtils(IPage> page) {
+ this.list = page.getRecords();
+ this.totalCount = (int)page.getTotal();
+ this.pageSize = (int)page.getSize();
+ this.currPage = (int)page.getCurrent();
+ this.totalPage = (int)page.getPages();
+ }
+
+ public int getTotalCount() {
+ return totalCount;
+ }
+
+ public void setTotalCount(int totalCount) {
+ this.totalCount = totalCount;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ public void setPageSize(int pageSize) {
+ this.pageSize = pageSize;
+ }
+
+ public int getTotalPage() {
+ return totalPage;
+ }
+
+ public void setTotalPage(int totalPage) {
+ this.totalPage = totalPage;
+ }
+
+ public int getCurrPage() {
+ return currPage;
+ }
+
+ public void setCurrPage(int currPage) {
+ this.currPage = currPage;
+ }
+
+ public List> getList() {
+ return list;
+ }
+
+ public void setList(List> list) {
+ this.list = list;
+ }
+
+}
diff --git a/src/main/java/com/sqx/common/utils/QRCodeUtil.java b/src/main/java/com/sqx/common/utils/QRCodeUtil.java
new file mode 100644
index 00000000..e4d06fa1
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/QRCodeUtil.java
@@ -0,0 +1,175 @@
+package com.sqx.common.utils;
+
+import cn.hutool.extra.qrcode.BufferedImageLuminanceSource;
+import com.google.zxing.*;
+import com.google.zxing.Result;
+import com.google.zxing.common.BitMatrix;
+import com.google.zxing.common.HybridBinarizer;
+import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;
+
+import javax.imageio.ImageIO;
+import java.awt.*;
+import java.awt.geom.RoundRectangle2D;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.util.Hashtable;
+
+/**
+ * 二维码生成解析工具类
+
+ * @date 2020/02/12 09:37
+ */
+public class QRCodeUtil {
+
+ //编码格式,采用utf-8
+ private static final String UNICODE = "utf-8";
+ //图片格式
+ private static final String FORMAT = "JPG";
+ //二维码宽度,单位:像素pixels
+ private static final int QRCODE_WIDTH = 300;
+ //二维码高度,单位:像素pixels
+ private static final int QRCODE_HEIGHT = 300;
+ //LOGO宽度,单位:像素pixels
+ private static final int LOGO_WIDTH = 100;
+ //LOGO高度,单位:像素pixels
+ private static final int LOGO_HEIGHT = 100;
+
+ /**
+ * 生成二维码图片
+ * @param content 二维码内容
+ * @param logoPath 图片地址
+ * @param needCompress 是否压缩
+ * @return
+ * @throws Exception
+ */
+ private static BufferedImage createImage(String content, String logoPath, boolean needCompress) throws Exception {
+ Hashtable hints = new Hashtable();
+ hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.H);
+ hints.put(EncodeHintType.CHARACTER_SET, UNICODE);
+ hints.put(EncodeHintType.MARGIN, 1);
+ BitMatrix bitMatrix = new MultiFormatWriter().encode(content, BarcodeFormat.QR_CODE, QRCODE_WIDTH, QRCODE_HEIGHT,
+ hints);
+ int width = bitMatrix.getWidth();
+ int height = bitMatrix.getHeight();
+ BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ for (int x = 0; x < width; x++) {
+ for (int y = 0; y < height; y++) {
+ image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF);
+ }
+ }
+ if (logoPath == null || "".equals(logoPath)) {
+ return image;
+ }
+ // 插入图片
+ QRCodeUtil.insertImage(image, logoPath, needCompress);
+ return image;
+ }
+
+ /**
+ * 插入LOGO
+ * @param source 二维码图片
+ * @param logoPath LOGO图片地址
+ * @param needCompress 是否压缩
+ * @throws Exception
+ */
+ private static void insertImage(BufferedImage source, String logoPath, boolean needCompress) throws Exception {
+ File file = new File(logoPath);
+ if (!file.exists()) {
+ throw new Exception("logo file not found.");
+ }
+ Image src = ImageIO.read(new File(logoPath));
+ int width = src.getWidth(null);
+ int height = src.getHeight(null);
+ if (needCompress) { // 压缩LOGO
+ if (width > LOGO_WIDTH) {
+ width = LOGO_WIDTH;
+ }
+ if (height > LOGO_HEIGHT) {
+ height = LOGO_HEIGHT;
+ }
+ Image image = src.getScaledInstance(width, height, Image.SCALE_SMOOTH);
+ BufferedImage tag = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
+ Graphics g = tag.getGraphics();
+ g.drawImage(image, 0, 0, null); // 绘制缩小后的图
+ g.dispose();
+ src = image;
+ }
+ // 插入LOGO
+ Graphics2D graph = source.createGraphics();
+ int x = (QRCODE_WIDTH - width) / 2;
+ int y = (QRCODE_HEIGHT - height) / 2;
+ graph.drawImage(src, x, y, width, height, null);
+ Shape shape = new RoundRectangle2D.Float(x, y, width, width, 6, 6);
+ graph.setStroke(new BasicStroke(3f));
+ graph.draw(shape);
+ graph.dispose();
+ }
+
+ /**
+ * 生成二维码(内嵌LOGO)
+ * 调用者指定二维码文件名
+ * @param content 二维码的内容
+ * @param logoPath 中间图片地址
+ * @param destPath 存储路径
+ * @param fileName 文件名称
+ * @param needCompress 是否压缩
+ * @return
+ * @throws Exception
+ */
+ public static String encode(String content, String logoPath, String destPath, String fileName, boolean needCompress) throws Exception {
+ BufferedImage image = QRCodeUtil.createImage(content, logoPath, needCompress);
+ mkdirs(destPath);
+ //文件名称通过传递
+ fileName = fileName.substring(0, fileName.indexOf(".")>0?fileName.indexOf("."):fileName.length())
+ + "." + FORMAT.toLowerCase();
+ ImageIO.write(image, FORMAT, new File(destPath + "/" + fileName));
+ return fileName;
+ }
+
+ /**
+ * 创建文件夹, mkdirs会自动创建多层目录,区别于mkdir.(mkdir如果父目录不存在则会抛出异常)
+ * @param destPath
+ */
+ public static void mkdirs(String destPath) {
+ File file = new File(destPath);
+ if (!file.exists() && !file.isDirectory()) {
+ file.mkdirs();
+ }
+ }
+
+ /**
+ * 解析二维码
+ * @param path 二维码图片路径
+ * @return String 二维码内容
+ * @throws Exception
+ */
+ public static String decode(String path) throws Exception {
+ File file = new File(path);
+ BufferedImage image = ImageIO.read(file);
+ if (image == null) {
+ return null;
+ }
+ BufferedImageLuminanceSource source = new BufferedImageLuminanceSource(image);
+ BinaryBitmap bitmap = new BinaryBitmap(new HybridBinarizer(source));
+ Result result;
+ Hashtable hints = new Hashtable();
+ hints.put(DecodeHintType.CHARACTER_SET, UNICODE);
+ result = new MultiFormatReader().decode(bitmap, hints);
+ return result.getText();
+ }
+
+ /**
+ * 测试
+ * @param args
+ * @throws Exception
+ */
+ public static void main(String[] args) throws Exception {
+ String text = "http://47.105.101.72:8088";
+ //不含Logo
+// QRCodeUtil.encode(text, null, "/Users/kyson/Downloads", "qrcode", true);
+ //含Logo,指定二维码图片名
+ QRCodeUtil.encode(text, "/Users/kyson/Downloads/宋康.jpg", "/Users/kyson/Downloads", "qrcode1", true);
+// System.out.println(QRCodeUtil.decode("d:\\cc\\qrcode1.jpg"));
+// System.out.println(QRCodeUtil.encode(text, null, "/Users/kyson/Downloads", "qrcode", true));
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/Query.java b/src/main/java/com/sqx/common/utils/Query.java
new file mode 100644
index 00000000..bbddb661
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/Query.java
@@ -0,0 +1,68 @@
+package com.sqx.common.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.sqx.common.xss.SQLFilter;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.Map;
+
+/**
+ * 查询参数
+ *
+ */
+public class Query {
+
+ public IPage getPage(Map params) {
+ return this.getPage(params, null, false);
+ }
+
+ public IPage getPage(Map params, String defaultOrderField, boolean isAsc) {
+ //分页参数
+ long curPage = 1;
+ long limit = 10;
+
+ if(params.get(Constant.PAGE) != null){
+ curPage = Long.parseLong(String.valueOf(params.get(Constant.PAGE)));
+ }
+ if(params.get(Constant.LIMIT) != null){
+ limit = Long.parseLong(String.valueOf(params.get(Constant.LIMIT)));
+ }
+
+ //分页对象
+ Page page = new Page<>(curPage, limit);
+
+ //分页参数
+ params.put(Constant.PAGE, page);
+
+ //排序字段
+ //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)
+ String orderField = SQLFilter.sqlInject((String)params.get(Constant.ORDER_FIELD));
+ String order = (String)params.get(Constant.ORDER);
+
+
+ //前端字段排序
+ if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){
+ if(Constant.ASC.equalsIgnoreCase(order)) {
+ return page.addOrder(OrderItem.asc(orderField));
+ }else {
+ return page.addOrder(OrderItem.desc(orderField));
+ }
+ }
+
+ //没有排序字段,则不排序
+ if(StringUtils.isBlank(defaultOrderField)){
+ return page;
+ }
+
+ //默认排序
+ if(isAsc) {
+ page.addOrder(OrderItem.asc(defaultOrderField));
+ }else {
+ page.addOrder(OrderItem.desc(defaultOrderField));
+ }
+
+ return page;
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/RedisKeys.java b/src/main/java/com/sqx/common/utils/RedisKeys.java
new file mode 100644
index 00000000..f1954137
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/RedisKeys.java
@@ -0,0 +1,12 @@
+package com.sqx.common.utils;
+
+/**
+ * Redis所有Keys
+ *
+ */
+public class RedisKeys {
+
+ public static String getSysConfigKey(String key){
+ return "sys:config:" + key;
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/RedisUtils.java b/src/main/java/com/sqx/common/utils/RedisUtils.java
new file mode 100644
index 00000000..30517ecf
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/RedisUtils.java
@@ -0,0 +1,90 @@
+package com.sqx.common.utils;
+
+import com.google.gson.Gson;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.*;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * Redis工具类
+ *
+ */
+@Component
+public class RedisUtils {
+ @Autowired
+ private RedisTemplate redisTemplate;
+ @Autowired
+ private ValueOperations valueOperations;
+ @Autowired
+ private HashOperations hashOperations;
+ @Autowired
+ private ListOperations listOperations;
+ @Autowired
+ private SetOperations setOperations;
+ @Autowired
+ private ZSetOperations zSetOperations;
+ /** 默认过期时长,单位:秒 */
+ public final static long DEFAULT_EXPIRE = 60 * 60 * 24;
+ /** 不设置过期时长 */
+ public final static long NOT_EXPIRE = -1;
+ private final static Gson Gson = new Gson();
+
+ public void set(String key, Object value, long expire){
+ valueOperations.set(key, toJson(value));
+ if(expire != NOT_EXPIRE){
+ redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ }
+
+ public void set(String key, Object value){
+ set(key, value, DEFAULT_EXPIRE);
+ }
+
+ public T get(String key, Class clazz, long expire) {
+ String value = valueOperations.get(key);
+ if(expire != NOT_EXPIRE){
+ redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ return value == null ? null : fromJson(value, clazz);
+ }
+
+ public T get(String key, Class clazz) {
+ return get(key, clazz, NOT_EXPIRE);
+ }
+
+ public String get(String key, long expire) {
+ String value = valueOperations.get(key);
+ if(expire != NOT_EXPIRE){
+ redisTemplate.expire(key, expire, TimeUnit.SECONDS);
+ }
+ return value;
+ }
+
+ public String get(String key) {
+ return get(key, NOT_EXPIRE);
+ }
+
+ public void delete(String key) {
+ redisTemplate.delete(key);
+ }
+
+ /**
+ * Object转成JSON数据
+ */
+ private String toJson(Object object){
+ if(object instanceof Integer || object instanceof Long || object instanceof Float ||
+ object instanceof Double || object instanceof Boolean || object instanceof String){
+ return String.valueOf(object);
+ }
+ return Gson.toJson(object);
+ }
+
+ /**
+ * JSON数据,转成Object
+ */
+ private T fromJson(String json, Class clazz){
+ return Gson.fromJson(json, clazz);
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/Result.java b/src/main/java/com/sqx/common/utils/Result.java
new file mode 100644
index 00000000..6ceb162b
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/Result.java
@@ -0,0 +1,56 @@
+package com.sqx.common.utils;
+
+import org.apache.http.HttpStatus;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 返回数据
+ *
+ */
+public class Result extends HashMap {
+ private static final long serialVersionUID = 1L;
+
+ public Result () {
+ put("code", 0);
+ put("msg", "success");
+ }
+
+ public static Result error() {
+ return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员");
+ }
+
+ public static Result error(String msg) {
+ return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
+ }
+
+ public static Result error(int code, String msg) {
+ Result r = new Result();
+ r.put("code", code);
+ r.put("msg", msg);
+ return r;
+ }
+
+ public static Result success(String msg) {
+ Result r = new Result();
+ r.put("msg", msg);
+ return r;
+ }
+
+ public static Result success(Map map) {
+ Result r = new Result();
+ r.putAll(map);
+ return r;
+ }
+
+ public static Result success() {
+ return new Result();
+ }
+
+ @Override
+ public Result put(String key, Object value) {
+ super.put(key, value);
+ return this;
+ }
+}
diff --git a/src/main/java/com/sqx/common/utils/ShiroUtils.java b/src/main/java/com/sqx/common/utils/ShiroUtils.java
new file mode 100644
index 00000000..291a0321
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/ShiroUtils.java
@@ -0,0 +1,52 @@
+package com.sqx.common.utils;
+
+import com.sqx.common.exception.SqxException;
+import com.sqx.modules.sys.entity.SysUserEntity;
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.session.Session;
+import org.apache.shiro.subject.Subject;
+
+/**
+ * Shiro工具类
+ *
+ */
+public class ShiroUtils {
+
+ public static Session getSession() {
+ return SecurityUtils.getSubject().getSession();
+ }
+
+ public static Subject getSubject() {
+ return SecurityUtils.getSubject();
+ }
+
+ public static SysUserEntity getUserEntity() {
+ return (SysUserEntity)SecurityUtils.getSubject().getPrincipal();
+ }
+
+ public static Long getUserId() {
+ return getUserEntity().getUserId();
+ }
+
+ public static void setSessionAttribute(Object key, Object value) {
+ getSession().setAttribute(key, value);
+ }
+
+ public static Object getSessionAttribute(Object key) {
+ return getSession().getAttribute(key);
+ }
+
+ public static boolean isLogin() {
+ return SecurityUtils.getSubject().getPrincipal() != null;
+ }
+
+ public static String getKaptcha(String key) {
+ Object kaptcha = getSessionAttribute(key);
+ if(kaptcha == null){
+ throw new SqxException("验证码已失效");
+ }
+ getSession().removeAttribute(key);
+ return kaptcha.toString();
+ }
+
+}
diff --git a/src/main/java/com/sqx/common/utils/SpringContextUtils.java b/src/main/java/com/sqx/common/utils/SpringContextUtils.java
new file mode 100644
index 00000000..96a3976f
--- /dev/null
+++ b/src/main/java/com/sqx/common/utils/SpringContextUtils.java
@@ -0,0 +1,42 @@
+package com.sqx.common.utils;
+
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+/**
+ * Spring Context 工具类
+ *
+ */
+@Component
+public class SpringContextUtils implements ApplicationContextAware {
+ public static ApplicationContext applicationContext;
+
+ @Override
+ public void setApplicationContext(ApplicationContext applicationContext)
+ throws BeansException {
+ SpringContextUtils.applicationContext = applicationContext;
+ }
+
+ public static Object getBean(String name) {
+ return applicationContext.getBean(name);
+ }
+
+ public static T getBean(String name, Class requiredType) {
+ return applicationContext.getBean(name, requiredType);
+ }
+
+ public static boolean containsBean(String name) {
+ return applicationContext.containsBean(name);
+ }
+
+ public static boolean isSingleton(String name) {
+ return applicationContext.isSingleton(name);
+ }
+
+ public static Class extends Object> getType(String name) {
+ return applicationContext.getType(name);
+ }
+
+}
\ No newline at end of file
diff --git a/src/main/java/com/sqx/common/validator/Assert.java b/src/main/java/com/sqx/common/validator/Assert.java
new file mode 100644
index 00000000..31525004
--- /dev/null
+++ b/src/main/java/com/sqx/common/validator/Assert.java
@@ -0,0 +1,23 @@
+package com.sqx.common.validator;
+
+import com.sqx.common.exception.SqxException;
+import org.apache.commons.lang.StringUtils;
+
+/**
+ * 数据校验
+ *
+ */
+ public class Assert {
+
+ public static void isBlank(String str, String message) {
+ if (StringUtils.isBlank(str)) {
+ throw new SqxException(message);
+ }
+ }
+
+ public static void isNull(Object object, String message) {
+ if (object == null) {
+ throw new SqxException(message);
+ }
+ }
+}
diff --git a/src/main/java/com/sqx/common/validator/ValidatorUtils.java b/src/main/java/com/sqx/common/validator/ValidatorUtils.java
new file mode 100644
index 00000000..a5d83fca
--- /dev/null
+++ b/src/main/java/com/sqx/common/validator/ValidatorUtils.java
@@ -0,0 +1,40 @@
+package com.sqx.common.validator;
+
+import com.sqx.common.exception.SqxException;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import java.util.Set;
+
+/**
+ * hibernate-validator校验工具类
+ *
+ * 参考文档:http://docs.jboss.org/hibernate/validator/5.4/reference/en-US/html_single/
+ *
+ */
+public class ValidatorUtils {
+ private static Validator validator;
+
+ static {
+ validator = Validation.buildDefaultValidatorFactory().getValidator();
+ }
+
+ /**
+ * 校验对象
+ * @param object 待校验对象
+ * @param groups 待校验的组
+ * @throws SqxException 校验不通过,则报SqxException异常
+ */
+ public static void validateEntity(Object object, Class>... groups)
+ throws SqxException {
+ Set> constraintViolations = validator.validate(object, groups);
+ if (!constraintViolations.isEmpty()) {
+ StringBuilder msg = new StringBuilder();
+ for(ConstraintViolation