From 48d258886e38225a3308849028429b6eb6345a9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com>
Date: Thu, 12 Feb 2026 10:17:53 +0800
Subject: [PATCH] =?UTF-8?q?feat(generator):=20=E6=B7=BB=E5=8A=A0Taro?=
=?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=A8=A1=E6=9D=BF=E5=92=8CAI=E8=81=8A?=
=?UTF-8?q?=E5=A4=A9=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- 添加.gitignore文件配置忽略规则
- 添加Taro新增页面配置模板add.config.ts.btl
- 添加Taro新增页面组件模板add.tsx.btl
- 实现AiController控制器支持AI聊天消息处理
- 添加AlipayConfigUtil支付宝配置工具类
- 添加AlipayParam支付宝参数类
- 添加AliYunSender阿里云发送工具类
- 添加AliyunTranslateUtil阿里云翻译工具类
- 添加ApiResult统一返回结果类
- 配置application.yml主应用配置文件
- 配置application-cms.yml生产环境配置
- 配置application-dev.yml开发环境配置
- 添加application-prod.yml生产环境配置文件
---
.gitignore | 45 +
Dockerfile | 51 +
README.md | 286 +++
docker-compose.yml | 38 +
docker-deploy-guide.md | 188 ++
pom.xml | 427 ++++
.../com/gxwebsoft/WebSoftApplication.java | 31 +
.../auto/controller/QrLoginController.java | 104 +
.../auto/dto/QrLoginConfirmRequest.java | 50 +
.../com/gxwebsoft/auto/dto/QrLoginData.java | 55 +
.../auto/dto/QrLoginGenerateResponse.java | 29 +
.../auto/dto/QrLoginStatusResponse.java | 32 +
.../auto/service/QrLoginService.java | 46 +
.../auto/service/impl/QrLoginServiceImpl.java | 239 ++
.../cms/controller/CmsAdController.java | 119 +
.../cms/controller/CmsAdRecordController.java | 114 +
.../CmsArticleCategoryController.java | 111 +
.../CmsArticleCommentController.java | 120 +
.../CmsArticleContentController.java | 113 +
.../cms/controller/CmsArticleController.java | 379 +++
.../controller/CmsArticleCountController.java | 120 +
.../controller/CmsArticleLikeController.java | 120 +
.../cms/controller/CmsDesignController.java | 127 ++
.../controller/CmsDesignRecordController.java | 120 +
.../cms/controller/CmsDomainController.java | 166 ++
.../cms/controller/CmsFormController.java | 120 +
.../controller/CmsFormRecordController.java | 120 +
.../cms/controller/CmsLangController.java | 113 +
.../cms/controller/CmsLangLogController.java | 113 +
.../cms/controller/CmsLinkController.java | 115 +
.../cms/controller/CmsMainController.java | 25 +
.../cms/controller/CmsModelController.java | 118 +
.../controller/CmsNavigationController.java | 381 ++++
.../cms/controller/CmsOrderController.java | 122 +
.../controller/CmsStatisticsController.java | 126 +
.../cms/controller/CmsTemplateController.java | 118 +
.../cms/controller/CmsWebsiteController.java | 541 +++++
.../controller/CmsWebsiteFieldController.java | 188 ++
.../CmsWebsiteSettingController.java | 121 +
.../java/com/gxwebsoft/cms/entity/CmsAd.java | 106 +
.../com/gxwebsoft/cms/entity/CmsAdRecord.java | 58 +
.../com/gxwebsoft/cms/entity/CmsAdVo.java | 43 +
.../com/gxwebsoft/cms/entity/CmsArticle.java | 267 +++
.../cms/entity/CmsArticleCategory.java | 94 +
.../cms/entity/CmsArticleComment.java | 79 +
.../cms/entity/CmsArticleContent.java | 42 +
.../gxwebsoft/cms/entity/CmsArticleCount.java | 43 +
.../gxwebsoft/cms/entity/CmsArticleLike.java | 43 +
.../com/gxwebsoft/cms/entity/CmsDesign.java | 123 +
.../gxwebsoft/cms/entity/CmsDesignRecord.java | 76 +
.../com/gxwebsoft/cms/entity/CmsDomain.java | 73 +
.../com/gxwebsoft/cms/entity/CmsForm.java | 91 +
.../gxwebsoft/cms/entity/CmsFormRecord.java | 69 +
.../com/gxwebsoft/cms/entity/CmsLang.java | 61 +
.../com/gxwebsoft/cms/entity/CmsLangLog.java | 46 +
.../com/gxwebsoft/cms/entity/CmsLink.java | 80 +
.../com/gxwebsoft/cms/entity/CmsModel.java | 97 +
.../gxwebsoft/cms/entity/CmsNavigation.java | 242 ++
.../com/gxwebsoft/cms/entity/CmsOrder.java | 266 +++
.../gxwebsoft/cms/entity/CmsStatistics.java | 126 +
.../com/gxwebsoft/cms/entity/CmsTemplate.java | 98 +
.../com/gxwebsoft/cms/entity/CmsWebsite.java | 327 +++
.../gxwebsoft/cms/entity/CmsWebsiteField.java | 75 +
.../cms/entity/CmsWebsiteSetting.java | 89 +
.../gxwebsoft/cms/entity/TranslateDataVo.java | 43 +
.../com/gxwebsoft/cms/entity/TranslateVo.java | 30 +
.../com/gxwebsoft/cms/mapper/CmsAdMapper.java | 42 +
.../cms/mapper/CmsAdRecordMapper.java | 37 +
.../cms/mapper/CmsArticleCategoryMapper.java | 37 +
.../cms/mapper/CmsArticleCommentMapper.java | 37 +
.../cms/mapper/CmsArticleContentMapper.java | 37 +
.../cms/mapper/CmsArticleCountMapper.java | 37 +
.../cms/mapper/CmsArticleLikeMapper.java | 37 +
.../cms/mapper/CmsArticleMapper.java | 43 +
.../gxwebsoft/cms/mapper/CmsDesignMapper.java | 37 +
.../cms/mapper/CmsDesignRecordMapper.java | 37 +
.../gxwebsoft/cms/mapper/CmsDomainMapper.java | 40 +
.../gxwebsoft/cms/mapper/CmsFormMapper.java | 37 +
.../cms/mapper/CmsFormRecordMapper.java | 37 +
.../cms/mapper/CmsLangLogMapper.java | 41 +
.../gxwebsoft/cms/mapper/CmsLangMapper.java | 37 +
.../gxwebsoft/cms/mapper/CmsLinkMapper.java | 43 +
.../gxwebsoft/cms/mapper/CmsModelMapper.java | 41 +
.../cms/mapper/CmsNavigationMapper.java | 45 +
.../gxwebsoft/cms/mapper/CmsOrderMapper.java | 37 +
.../cms/mapper/CmsStatisticsMapper.java | 37 +
.../cms/mapper/CmsTemplateMapper.java | 37 +
.../cms/mapper/CmsWebsiteFieldMapper.java | 43 +
.../cms/mapper/CmsWebsiteMapper.java | 53 +
.../cms/mapper/CmsWebsiteSettingMapper.java | 37 +
.../gxwebsoft/cms/mapper/xml/CmsAdMapper.xml | 92 +
.../cms/mapper/xml/CmsAdRecordMapper.xml | 53 +
.../mapper/xml/CmsArticleCategoryMapper.xml | 86 +
.../mapper/xml/CmsArticleCommentMapper.xml | 71 +
.../mapper/xml/CmsArticleContentMapper.xml | 38 +
.../cms/mapper/xml/CmsArticleCountMapper.xml | 38 +
.../cms/mapper/xml/CmsArticleLikeMapper.xml | 38 +
.../cms/mapper/xml/CmsArticleMapper.xml | 187 ++
.../cms/mapper/xml/CmsDesignMapper.xml | 93 +
.../cms/mapper/xml/CmsDesignRecordMapper.xml | 71 +
.../cms/mapper/xml/CmsDomainMapper.xml | 65 +
.../cms/mapper/xml/CmsFormMapper.xml | 83 +
.../cms/mapper/xml/CmsFormRecordMapper.xml | 65 +
.../cms/mapper/xml/CmsLangLogMapper.xml | 54 +
.../cms/mapper/xml/CmsLangMapper.xml | 57 +
.../cms/mapper/xml/CmsLinkMapper.xml | 86 +
.../cms/mapper/xml/CmsModelMapper.xml | 89 +
.../cms/mapper/xml/CmsNavigationMapper.xml | 163 ++
.../cms/mapper/xml/CmsOrderMapper.xml | 258 +++
.../cms/mapper/xml/CmsStatisticsMapper.xml | 120 +
.../cms/mapper/xml/CmsTemplateMapper.xml | 93 +
.../cms/mapper/xml/CmsWebsiteFieldMapper.xml | 82 +
.../cms/mapper/xml/CmsWebsiteMapper.xml | 454 ++++
.../mapper/xml/CmsWebsiteSettingMapper.xml | 81 +
.../com/gxwebsoft/cms/param/CmsAdParam.java | 92 +
.../gxwebsoft/cms/param/CmsAdRecordParam.java | 53 +
.../cms/param/CmsArticleCategoryParam.java | 91 +
.../cms/param/CmsArticleCommentParam.java | 75 +
.../cms/param/CmsArticleContentParam.java | 35 +
.../cms/param/CmsArticleCountParam.java | 37 +
.../cms/param/CmsArticleImportParam.java | 122 +
.../cms/param/CmsArticleLikeParam.java | 37 +
.../gxwebsoft/cms/param/CmsArticleParam.java | 189 ++
.../gxwebsoft/cms/param/CmsDesignParam.java | 91 +
.../cms/param/CmsDesignRecordParam.java | 72 +
.../gxwebsoft/cms/param/CmsDomainParam.java | 66 +
.../com/gxwebsoft/cms/param/CmsFormParam.java | 89 +
.../cms/param/CmsFormRecordParam.java | 65 +
.../gxwebsoft/cms/param/CmsLangLogParam.java | 48 +
.../com/gxwebsoft/cms/param/CmsLangParam.java | 51 +
.../com/gxwebsoft/cms/param/CmsLinkParam.java | 72 +
.../gxwebsoft/cms/param/CmsModelParam.java | 83 +
.../cms/param/CmsNavigationImportParam.java | 123 +
.../cms/param/CmsNavigationParam.java | 154 ++
.../gxwebsoft/cms/param/CmsOrderParam.java | 284 +++
.../cms/param/CmsStatisticsParam.java | 137 ++
.../gxwebsoft/cms/param/CmsTemplateParam.java | 91 +
.../cms/param/CmsWebsiteFieldImportParam.java | 56 +
.../cms/param/CmsWebsiteFieldParam.java | 66 +
.../gxwebsoft/cms/param/CmsWebsiteParam.java | 225 ++
.../cms/param/CmsWebsiteSettingParam.java | 86 +
.../cms/service/CmsAdRecordService.java | 42 +
.../gxwebsoft/cms/service/CmsAdService.java | 48 +
.../service/CmsArticleCategoryService.java | 42 +
.../cms/service/CmsArticleCommentService.java | 42 +
.../cms/service/CmsArticleContentService.java | 40 +
.../cms/service/CmsArticleCountService.java | 42 +
.../cms/service/CmsArticleLikeService.java | 42 +
.../cms/service/CmsArticleService.java | 50 +
.../cms/service/CmsDesignRecordService.java | 42 +
.../cms/service/CmsDesignService.java | 43 +
.../cms/service/CmsDomainService.java | 42 +
.../cms/service/CmsFormRecordService.java | 42 +
.../gxwebsoft/cms/service/CmsFormService.java | 42 +
.../cms/service/CmsLangLogService.java | 42 +
.../gxwebsoft/cms/service/CmsLangService.java | 42 +
.../gxwebsoft/cms/service/CmsLinkService.java | 42 +
.../cms/service/CmsModelService.java | 42 +
.../cms/service/CmsNavigationService.java | 45 +
.../cms/service/CmsOrderService.java | 42 +
.../cms/service/CmsStatisticsService.java | 42 +
.../cms/service/CmsTemplateService.java | 42 +
.../cms/service/CmsWebsiteFieldService.java | 43 +
.../cms/service/CmsWebsiteService.java | 70 +
.../cms/service/CmsWebsiteSettingService.java | 42 +
.../service/impl/CmsAdRecordServiceImpl.java | 47 +
.../cms/service/impl/CmsAdServiceImpl.java | 57 +
.../impl/CmsArticleCategoryServiceImpl.java | 47 +
.../impl/CmsArticleCommentServiceImpl.java | 47 +
.../impl/CmsArticleContentServiceImpl.java | 189 ++
.../impl/CmsArticleCountServiceImpl.java | 47 +
.../impl/CmsArticleLikeServiceImpl.java | 47 +
.../service/impl/CmsArticleServiceImpl.java | 250 ++
.../impl/CmsDesignRecordServiceImpl.java | 47 +
.../service/impl/CmsDesignServiceImpl.java | 157 ++
.../service/impl/CmsDomainServiceImpl.java | 47 +
.../impl/CmsFormRecordServiceImpl.java | 47 +
.../cms/service/impl/CmsFormServiceImpl.java | 47 +
.../service/impl/CmsLangLogServiceImpl.java | 47 +
.../cms/service/impl/CmsLangServiceImpl.java | 47 +
.../cms/service/impl/CmsLinkServiceImpl.java | 47 +
.../cms/service/impl/CmsModelServiceImpl.java | 47 +
.../impl/CmsNavigationServiceImpl.java | 190 ++
.../cms/service/impl/CmsOrderServiceImpl.java | 47 +
.../impl/CmsStatisticsServiceImpl.java | 47 +
.../service/impl/CmsTemplateServiceImpl.java | 47 +
.../impl/CmsWebsiteFieldServiceImpl.java | 54 +
.../service/impl/CmsWebsiteServiceImpl.java | 414 ++++
.../impl/CmsWebsiteServiceImplHelper.java | 239 ++
.../impl/CmsWebsiteSettingServiceImpl.java | 47 +
.../com/gxwebsoft/common/core/Constants.java | 93 +
.../common/core/annotation/IgnoreTenant.java | 29 +
.../common/core/annotation/OperationLog.java | 41 +
.../core/annotation/OperationModule.java | 21 +
.../common/core/annotation/QueryField.java | 22 +
.../common/core/annotation/QueryType.java | 42 +
.../core/aspect/IgnoreTenantAspect.java | 63 +
.../core/aspect/OperationLogAspect.java | 227 ++
.../core/config/BigDecimalDeserializer.java | 41 +
.../core/config/CertificateProperties.java | 217 ++
.../common/core/config/ConfigProperties.java | 105 +
.../core/config/HttpMessageConverter.java | 15 +
.../common/core/config/JacksonConfig.java | 78 +
.../core/config/JacksonConfigChecker.java | 59 +
.../config/LocalDateTimeDeserializer.java | 61 +
.../core/config/LocalDateTimeSerializer.java | 27 +
.../common/core/config/MqttProperties.java | 72 +
.../common/core/config/MybatisPlusConfig.java | 155 ++
.../core/config/RestTemplateConfig.java | 29 +
.../common/core/config/SpringContextUtil.java | 62 +
.../common/core/config/SwaggerConfig.java | 112 +
.../common/core/config/WebMvcConfig.java | 31 +
.../core/constants/AppUserConstants.java | 8 +
.../core/constants/ArticleConstants.java | 6 +
.../core/constants/BalanceConstants.java | 10 +
.../common/core/constants/BaseConstants.java | 5 +
.../common/core/constants/OrderConstants.java | 37 +
.../core/constants/PlatformConstants.java | 12 +
.../core/constants/ProfitConstants.java | 9 +
.../core/constants/QRCodeConstants.java | 10 +
.../common/core/constants/RedisConstants.java | 49 +
.../common/core/constants/TaskConstants.java | 22 +
.../core/constants/WebsiteConstants.java | 14 +
.../core/constants/WxOfficialConstants.java | 6 +
.../common/core/context/TenantContext.java | 67 +
.../controller/CertificateController.java | 187 ++
.../controller/DatabaseFixController.java | 204 ++
.../controller/DevEnvironmentController.java | 236 ++
.../controller/JacksonTestController.java | 90 +
.../controller/PaymentConfigController.java | 149 ++
.../core/controller/QrCodeController.java | 258 +++
.../core/controller/TestController.java | 302 +++
.../core/controller/TranslateController.java | 160 ++
.../controller/WechatCertTestController.java | 211 ++
.../WechatPayDiagnosticController.java | 318 +++
.../CreateBusinessEncryptedQrCodeRequest.java | 114 +
.../dto/qr/CreateEncryptedQrCodeRequest.java | 100 +
.../core/dto/qr/DecryptQrDataRequest.java | 56 +
.../core/dto/qr/InvalidateTokenRequest.java | 42 +
.../core/dto/qr/VerifyBusinessQrRequest.java | 56 +
.../core/dto/qr/VerifyQrContentRequest.java | 42 +
.../core/exception/BusinessException.java | 48 +
.../exception/GlobalExceptionHandler.java | 89 +
.../core/security/JwtAccessDeniedHandler.java | 29 +
.../security/JwtAuthenticationEntryPoint.java | 30 +
.../security/JwtAuthenticationFilter.java | 118 +
.../common/core/security/JwtSubject.java | 31 +
.../common/core/security/JwtUtil.java | 141 ++
.../common/core/security/SecurityConfig.java | 115 +
.../service/CertificateHealthService.java | 253 ++
.../core/service/CertificateService.java | 281 +++
.../EnvironmentAwarePaymentService.java | 143 ++
.../core/service/PaymentCacheService.java | 174 ++
.../common/core/utils/AliYunSender.java | 145 ++
.../common/core/utils/AlipayConfigUtil.java | 110 +
.../core/utils/AliyunTranslateUtil.java | 72 +
.../common/core/utils/CacheClient.java | 265 +++
.../common/core/utils/CertificateLoader.java | 230 ++
.../common/core/utils/CommonUtil.java | 321 +++
.../common/core/utils/DateTimeUtil.java | 93 +
.../common/core/utils/DomainUtils.java | 34 +
.../core/utils/EncryptedQrCodeUtil.java | 433 ++++
.../common/core/utils/FileServerUtil.java | 401 ++++
.../common/core/utils/HttpUtils.java | 311 +++
.../common/core/utils/ImageUtil.java | 96 +
.../common/core/utils/JChardetFacadeUtil.java | 2025 +++++++++++++++++
.../gxwebsoft/common/core/utils/JSONUtil.java | 87 +
.../common/core/utils/MyQrCodeUtil.java | 85 +
.../common/core/utils/OpenOfficeUtil.java | 124 +
.../core/utils/QrCodeDecryptResult.java | 93 +
.../common/core/utils/RedisUtil.java | 279 +++
.../common/core/utils/RequestUtil.java | 343 +++
.../common/core/utils/SignCheckUtil.java | 197 ++
.../gxwebsoft/common/core/utils/SpmUtil.java | 23 +
.../core/utils/WechatCertAutoConfig.java | 171 ++
.../utils/WechatPayCertificateDiagnostic.java | 314 +++
.../core/utils/WechatPayCertificateFixer.java | 312 +++
.../core/utils/WechatPayConfigChecker.java | 243 ++
.../core/utils/WechatPayConfigValidator.java | 223 ++
.../core/utils/WechatPayDiagnostic.java | 222 ++
.../common/core/utils/WechatPayUtils.java | 111 +
.../common/core/utils/WxNativeUtil.java | 20 +
.../common/core/utils/WxOfficialUtil.java | 106 +
.../gxwebsoft/common/core/utils/WxUtil.java | 152 ++
.../common/core/utils/WxWorkUtil.java | 154 ++
.../gxwebsoft/common/core/web/ApiResult.java | 87 +
.../common/core/web/BaseController.java | 333 +++
.../gxwebsoft/common/core/web/BaseParam.java | 98 +
.../gxwebsoft/common/core/web/BatchParam.java | 57 +
.../common/core/web/ExistenceParam.java | 96 +
.../common/core/web/ImportParams.java | 119 +
.../gxwebsoft/common/core/web/PageParam.java | 343 +++
.../gxwebsoft/common/core/web/PageResult.java | 51 +
.../core/websocket/WebSocketConfig.java | 19 +
.../core/websocket/WebSocketServer.java | 86 +
.../system/controller/AiController.java | 139 ++
.../system/controller/CacheController.java | 117 +
.../controller/CompanyCommentController.java | 131 ++
.../controller/CompanyContentController.java | 125 +
.../system/controller/CompanyController.java | 367 +++
.../controller/CompanyGitController.java | 122 +
.../CompanyParameterController.java | 125 +
.../controller/CompanyUrlController.java | 125 +
.../system/controller/DictController.java | 177 ++
.../system/controller/DictDataController.java | 124 +
.../controller/DictionaryController.java | 148 ++
.../controller/DictionaryDataController.java | 123 +
.../system/controller/DomainController.java | 127 ++
.../system/controller/EmailController.java | 48 +
.../system/controller/FileController.java | 319 +++
.../controller/LoginRecordController.java | 55 +
.../system/controller/MainController.java | 314 +++
.../system/controller/MenuController.java | 457 ++++
.../controller/OperationRecordController.java | 61 +
.../controller/OrganizationController.java | 130 ++
.../system/controller/PaymentController.java | 235 ++
.../system/controller/PlugController.java | 161 ++
.../controller/RedisUtilController.java | 77 +
.../system/controller/RoleController.java | 144 ++
.../system/controller/RoleMenuController.java | 96 +
.../system/controller/SettingController.java | 178 ++
.../system/controller/TenantController.java | 158 ++
.../controller/UserCollectionController.java | 135 ++
.../system/controller/UserController.java | 401 ++++
.../system/controller/UserFileController.java | 158 ++
.../controller/UserRefereeController.java | 183 ++
.../system/controller/WxLoginController.java | 833 +++++++
.../common/system/dto/PaymentCacheDTO.java | 39 +
.../gxwebsoft/common/system/entity/Cache.java | 34 +
.../common/system/entity/ChatMessage.java | 48 +
.../common/system/entity/Company.java | 337 +++
.../common/system/entity/CompanyComment.java | 61 +
.../common/system/entity/CompanyContent.java | 44 +
.../common/system/entity/CompanyGit.java | 142 ++
.../system/entity/CompanyParameter.java | 57 +
.../common/system/entity/CompanyUrl.java | 66 +
.../gxwebsoft/common/system/entity/Dict.java | 60 +
.../common/system/entity/DictData.java | 66 +
.../common/system/entity/Dictionary.java | 59 +
.../common/system/entity/DictionaryData.java | 67 +
.../common/system/entity/Domain.java | 75 +
.../common/system/entity/EmailRecord.java | 59 +
.../common/system/entity/FileRecord.java | 94 +
.../common/system/entity/KVEntity.java | 56 +
.../common/system/entity/LoginRecord.java | 76 +
.../gxwebsoft/common/system/entity/Menu.java | 95 +
.../common/system/entity/OperationRecord.java | 98 +
.../common/system/entity/Organization.java | 92 +
.../common/system/entity/Payment.java | 100 +
.../gxwebsoft/common/system/entity/Plug.java | 144 ++
.../gxwebsoft/common/system/entity/Role.java | 56 +
.../common/system/entity/RoleMenu.java | 47 +
.../common/system/entity/Setting.java | 61 +
.../common/system/entity/Tenant.java | 78 +
.../gxwebsoft/common/system/entity/User.java | 317 +++
.../common/system/entity/UserBalanceLog.java | 87 +
.../common/system/entity/UserCollection.java | 45 +
.../common/system/entity/UserFile.java | 79 +
.../common/system/entity/UserInfo.java | 260 +++
.../common/system/entity/UserReferee.java | 59 +
.../common/system/entity/UserRole.java | 52 +
.../common/system/entity/UserVerify.java | 110 +
.../system/mapper/CompanyCommentMapper.java | 37 +
.../system/mapper/CompanyContentMapper.java | 37 +
.../system/mapper/CompanyGitMapper.java | 37 +
.../common/system/mapper/CompanyMapper.java | 62 +
.../system/mapper/CompanyParameterMapper.java | 37 +
.../system/mapper/CompanyUrlMapper.java | 37 +
.../common/system/mapper/DictDataMapper.java | 47 +
.../common/system/mapper/DictMapper.java | 14 +
.../system/mapper/DictionaryDataMapper.java | 47 +
.../system/mapper/DictionaryMapper.java | 14 +
.../common/system/mapper/DomainMapper.java | 37 +
.../system/mapper/EmailRecordMapper.java | 14 +
.../system/mapper/FileRecordMapper.java | 47 +
.../system/mapper/LoginRecordMapper.java | 48 +
.../common/system/mapper/MenuMapper.java | 22 +
.../system/mapper/OperationRecordMapper.java | 48 +
.../system/mapper/OrganizationMapper.java | 37 +
.../common/system/mapper/PaymentMapper.java | 40 +
.../common/system/mapper/PlugMapper.java | 42 +
.../common/system/mapper/RoleMapper.java | 14 +
.../common/system/mapper/RoleMenuMapper.java | 39 +
.../common/system/mapper/SettingMapper.java | 41 +
.../common/system/mapper/TenantMapper.java | 37 +
.../system/mapper/UserBalanceLogMapper.java | 37 +
.../system/mapper/UserCollectionMapper.java | 37 +
.../common/system/mapper/UserFileMapper.java | 14 +
.../common/system/mapper/UserMapper.java | 70 +
.../system/mapper/UserRefereeMapper.java | 37 +
.../common/system/mapper/UserRoleMapper.java | 45 +
.../mapper/xml/CompanyCommentMapper.xml | 53 +
.../mapper/xml/CompanyContentMapper.xml | 38 +
.../system/mapper/xml/CompanyGitMapper.xml | 65 +
.../system/mapper/xml/CompanyMapper.xml | 198 ++
.../mapper/xml/CompanyParameterMapper.xml | 50 +
.../system/mapper/xml/CompanyUrlMapper.xml | 59 +
.../system/mapper/xml/DictDataMapper.xml | 71 +
.../common/system/mapper/xml/DictMapper.xml | 5 +
.../mapper/xml/DictionaryDataMapper.xml | 71 +
.../system/mapper/xml/DictionaryMapper.xml | 5 +
.../common/system/mapper/xml/DomainMapper.xml | 62 +
.../system/mapper/xml/EmailRecordMapper.xml | 5 +
.../system/mapper/xml/FileRecordMapper.xml | 76 +
.../system/mapper/xml/LoginRecordMapper.xml | 62 +
.../common/system/mapper/xml/MenuMapper.xml | 32 +
.../mapper/xml/OperationRecordMapper.xml | 71 +
.../system/mapper/xml/OrganizationMapper.xml | 98 +
.../system/mapper/xml/PaymentMapper.xml | 90 +
.../common/system/mapper/xml/PlugMapper.xml | 105 +
.../common/system/mapper/xml/RoleMapper.xml | 5 +
.../system/mapper/xml/RoleMenuMapper.xml | 42 +
.../system/mapper/xml/SettingMapper.xml | 33 +
.../common/system/mapper/xml/TenantMapper.xml | 56 +
.../mapper/xml/UserCollectionMapper.xml | 38 +
.../system/mapper/xml/UserFileMapper.xml | 5 +
.../common/system/mapper/xml/UserMapper.xml | 264 +++
.../system/mapper/xml/UserRefereeMapper.xml | 50 +
.../system/mapper/xml/UserRoleMapper.xml | 35 +
.../common/system/param/AlipayParam.java | 31 +
.../common/system/param/CacheParam.java | 25 +
.../system/param/CompanyCommentParam.java | 58 +
.../system/param/CompanyContentParam.java | 35 +
.../common/system/param/CompanyGitParam.java | 60 +
.../common/system/param/CompanyParam.java | 167 ++
.../system/param/CompanyParameterParam.java | 50 +
.../common/system/param/CompanyUrlParam.java | 59 +
.../common/system/param/DictDataParam.java | 55 +
.../common/system/param/DictParam.java | 38 +
.../system/param/DictionaryDataParam.java | 55 +
.../common/system/param/DictionaryParam.java | 38 +
.../common/system/param/DomainParam.java | 61 +
.../common/system/param/FileRecordParam.java | 70 +
.../common/system/param/LoginParam.java | 37 +
.../common/system/param/LoginRecordParam.java | 60 +
.../common/system/param/MenuImportParam.java | 60 +
.../common/system/param/MenuParam.java | 83 +
.../system/param/OperationRecordParam.java | 67 +
.../system/param/OrganizationParam.java | 81 +
.../common/system/param/PaymentParam.java | 81 +
.../common/system/param/PlugParam.java | 95 +
.../common/system/param/RoleParam.java | 41 +
.../common/system/param/SettingParam.java | 50 +
.../common/system/param/SmsCaptchaParam.java | 31 +
.../common/system/param/TenantParam.java | 55 +
.../system/param/UpdatePasswordParam.java | 31 +
.../system/param/UserBalanceLogParam.java | 77 +
.../system/param/UserCollectionParam.java | 37 +
.../common/system/param/UserFileParam.java | 40 +
.../common/system/param/UserImportParam.java | 42 +
.../common/system/param/UserParam.java | 249 ++
.../common/system/param/UserRefereeParam.java | 48 +
.../common/system/param/VersionParam.java | 70 +
.../common/system/result/CaptchaResult.java | 30 +
.../common/system/result/LoginResult.java | 31 +
.../common/system/result/RedisResult.java | 34 +
.../system/result/SmsCaptchaResult.java | 26 +
.../system/service/CompanyCommentService.java | 42 +
.../system/service/CompanyContentService.java | 42 +
.../system/service/CompanyGitService.java | 42 +
.../service/CompanyParameterService.java | 42 +
.../common/system/service/CompanyService.java | 51 +
.../system/service/CompanyUrlService.java | 42 +
.../system/service/DictDataService.java | 52 +
.../common/system/service/DictService.java | 14 +
.../system/service/DictionaryDataService.java | 51 +
.../system/service/DictionaryService.java | 14 +
.../common/system/service/DomainService.java | 42 +
.../system/service/DomainServiceImpl.java | 46 +
.../system/service/EmailRecordService.java | 51 +
.../system/service/FileRecordService.java | 58 +
.../system/service/LoginRecordService.java | 54 +
.../common/system/service/MenuService.java | 18 +
.../service/OperationRecordService.java | 49 +
.../system/service/OrganizationService.java | 42 +
.../common/system/service/PaymentService.java | 43 +
.../common/system/service/PlugService.java | 44 +
.../system/service/RoleMenuService.java | 35 +
.../common/system/service/RoleService.java | 14 +
.../common/system/service/SettingService.java | 67 +
.../common/system/service/TenantService.java | 42 +
.../system/service/UserBalanceLogService.java | 42 +
.../system/service/UserCollectionService.java | 42 +
.../service/UserCollectionServiceImpl.java | 46 +
.../system/service/UserFileService.java | 14 +
.../system/service/UserRefereeService.java | 45 +
.../system/service/UserRoleService.java | 42 +
.../common/system/service/UserService.java | 123 +
.../service/WxMiniappAccessTokenService.java | 18 +
.../impl/CompanyCommentServiceImpl.java | 47 +
.../impl/CompanyContentServiceImpl.java | 47 +
.../service/impl/CompanyGitServiceImpl.java | 47 +
.../impl/CompanyParameterServiceImpl.java | 47 +
.../service/impl/CompanyServiceImpl.java | 86 +
.../service/impl/CompanyUrlServiceImpl.java | 47 +
.../service/impl/DictDataServiceImpl.java | 52 +
.../system/service/impl/DictServiceImpl.java | 18 +
.../impl/DictionaryDataServiceImpl.java | 52 +
.../service/impl/DictionaryServiceImpl.java | 18 +
.../service/impl/EmailRecordServiceImpl.java | 99 +
.../service/impl/FileRecordServiceImpl.java | 63 +
.../service/impl/LoginRecordServiceImpl.java | 78 +
.../system/service/impl/MenuServiceImpl.java | 139 ++
.../impl/OperationRecordServiceImpl.java | 52 +
.../service/impl/OrganizationServiceImpl.java | 45 +
.../service/impl/PaymentServiceImpl.java | 52 +
.../system/service/impl/PlugServiceImpl.java | 112 +
.../service/impl/RoleMenuServiceImpl.java | 31 +
.../system/service/impl/RoleServiceImpl.java | 18 +
.../service/impl/SettingServiceImpl.java | 198 ++
.../service/impl/TenantServiceImpl.java | 46 +
.../impl/UserBalanceLogServiceImpl.java | 47 +
.../service/impl/UserFileServiceImpl.java | 18 +
.../service/impl/UserRefereeServiceImpl.java | 74 +
.../service/impl/UserRoleServiceImpl.java | 37 +
.../system/service/impl/UserServiceImpl.java | 246 ++
.../impl/WxMiniappAccessTokenServiceImpl.java | 108 +
.../payment/constants/PaymentConstants.java | 244 ++
.../payment/constants/WechatPayType.java | 81 +
.../payment/controller/PaymentController.java | 360 +++
.../controller/PaymentNotifyController.java | 188 ++
.../gxwebsoft/payment/dto/PaymentRequest.java | 207 ++
.../payment/dto/PaymentResponse.java | 294 +++
.../dto/PaymentStatusUpdateRequest.java | 41 +
.../payment/dto/PaymentWithOrderRequest.java | 158 ++
.../payment/enums/PaymentChannel.java | 159 ++
.../payment/enums/PaymentStatus.java | 141 ++
.../gxwebsoft/payment/enums/PaymentType.java | 224 ++
.../payment/exception/PaymentException.java | 221 ++
.../exception/PaymentExceptionHandler.java | 153 ++
.../payment/service/PaymentService.java | 182 ++
.../payment/service/WxPayConfigService.java | 365 +++
.../payment/service/WxPayNotifyService.java | 366 +++
.../payment/service/WxTransferService.java | 304 +++
.../service/impl/PaymentServiceImpl.java | 675 ++++++
.../payment/strategy/PaymentStrategy.java | 153 ++
.../strategy/WechatNativeStrategy.java | 668 ++++++
.../utils/PaymentTypeCompatibilityUtil.java | 165 ++
.../shop/config/OrderConfigProperties.java | 235 ++
.../shop/constants/WxPayConstants.java | 200 ++
.../controller/CouponStatusController.java | 189 ++
.../controller/ShopArticleController.java | 129 ++
.../shop/controller/ShopBrandController.java | 110 +
.../shop/controller/ShopCartController.java | 115 +
.../controller/ShopCategoryController.java | 126 +
.../ShopChatConversationController.java | 113 +
.../controller/ShopChatMessageController.java | 123 +
.../ShopCommissionRoleController.java | 121 +
.../controller/ShopCommunityController.java | 120 +
.../shop/controller/ShopCountController.java | 110 +
.../ShopCouponApplyCateController.java | 124 +
.../ShopCouponApplyItemController.java | 125 +
.../shop/controller/ShopCouponController.java | 217 ++
.../controller/ShopDealerApplyController.java | 357 +++
.../controller/ShopDealerBankController.java | 138 ++
.../ShopDealerCapitalController.java | 129 ++
.../controller/ShopDealerOrderController.java | 171 ++
.../ShopDealerRecordController.java | 125 +
.../ShopDealerRefereeController.java | 151 ++
.../ShopDealerSettingController.java | 155 ++
.../controller/ShopDealerUserController.java | 181 ++
.../ShopDealerWithdrawController.java | 362 +++
.../controller/ShopExpressController.java | 121 +
.../ShopExpressTemplateController.java | 121 +
.../ShopExpressTemplateDetailController.java | 121 +
.../shop/controller/ShopGiftController.java | 261 +++
.../ShopGoodsCategoryController.java | 128 ++
.../ShopGoodsCommentController.java | 115 +
.../shop/controller/ShopGoodsController.java | 163 ++
.../ShopGoodsIncomeConfigController.java | 115 +
.../controller/ShopGoodsLogController.java | 115 +
.../ShopGoodsRelationController.java | 115 +
.../ShopGoodsRoleCommissionController.java | 121 +
.../controller/ShopGoodsSkuController.java | 121 +
.../controller/ShopGoodsSpecController.java | 121 +
.../shop/controller/ShopMainController.java | 57 +
.../ShopMerchantAccountController.java | 115 +
.../ShopMerchantApplyController.java | 192 ++
.../controller/ShopMerchantController.java | 123 +
.../ShopMerchantTypeController.java | 110 +
.../shop/controller/ShopOrderController.java | 938 ++++++++
.../ShopOrderDeliveryController.java | 140 ++
.../ShopOrderDeliveryGoodsController.java | 110 +
.../ShopOrderExtractController.java | 115 +
.../controller/ShopOrderGoodsController.java | 115 +
.../controller/ShopOrderInfoController.java | 115 +
.../ShopOrderInfoLogController.java | 110 +
.../ShopRechargeOrderController.java | 115 +
.../shop/controller/ShopSpecController.java | 126 +
.../controller/ShopSpecValueController.java | 121 +
.../shop/controller/ShopSplashController.java | 115 +
.../shop/controller/ShopStoreController.java | 125 +
.../controller/ShopStoreFenceController.java | 123 +
.../controller/ShopStoreRiderController.java | 125 +
.../controller/ShopStoreUserController.java | 126 +
.../ShopStoreWarehouseController.java | 126 +
.../controller/ShopUserAddressController.java | 133 ++
.../ShopUserBalanceLogController.java | 115 +
.../ShopUserCollectionController.java | 115 +
.../shop/controller/ShopUserController.java | 128 ++
.../controller/ShopUserCouponController.java | 309 +++
.../controller/ShopUserRefereeController.java | 134 ++
.../ShopWechatDepositController.java | 110 +
.../shop/controller/UserCardController.java | 125 +
.../shop/controller/UserOrderController.java | 37 +
.../WxPayNotifyAliasController.java | 47 +
.../shop/dto/OrderCreateRequest.java | 179 ++
.../shop/dto/OrderPrepayRequest.java | 32 +
.../shop/dto/UpdatePaymentStatusRequest.java | 32 +
.../com/gxwebsoft/shop/dto/UserCardStats.java | 31 +
.../gxwebsoft/shop/dto/UserOrderStats.java | 50 +
.../gxwebsoft/shop/entity/KuaiDi100Resp.java | 11 +
.../gxwebsoft/shop/entity/ShopArticle.java | 189 ++
.../com/gxwebsoft/shop/entity/ShopBrand.java | 52 +
.../com/gxwebsoft/shop/entity/ShopCart.java | 95 +
.../gxwebsoft/shop/entity/ShopCategory.java | 122 +
.../shop/entity/ShopChatConversation.java | 63 +
.../shop/entity/ShopChatMessage.java | 111 +
.../shop/entity/ShopCommissionRole.java | 51 +
.../gxwebsoft/shop/entity/ShopCommunity.java | 53 +
.../com/gxwebsoft/shop/entity/ShopCount.java | 65 +
.../com/gxwebsoft/shop/entity/ShopCoupon.java | 136 ++
.../shop/entity/ShopCouponApplyCate.java | 53 +
.../shop/entity/ShopCouponApplyItem.java | 61 +
.../shop/entity/ShopDealerApply.java | 125 +
.../gxwebsoft/shop/entity/ShopDealerBank.java | 61 +
.../shop/entity/ShopDealerCapital.java | 70 +
.../shop/entity/ShopDealerOrder.java | 146 ++
.../shop/entity/ShopDealerRecord.java | 67 +
.../shop/entity/ShopDealerReferee.java | 90 +
.../shop/entity/ShopDealerSetting.java | 41 +
.../gxwebsoft/shop/entity/ShopDealerUser.java | 119 +
.../shop/entity/ShopDealerWithdraw.java | 108 +
.../gxwebsoft/shop/entity/ShopExpress.java | 59 +
.../shop/entity/ShopExpressTemplate.java | 65 +
.../entity/ShopExpressTemplateDetail.java | 70 +
.../com/gxwebsoft/shop/entity/ShopGift.java | 112 +
.../com/gxwebsoft/shop/entity/ShopGoods.java | 173 ++
.../shop/entity/ShopGoodsCategory.java | 96 +
.../shop/entity/ShopGoodsComment.java | 99 +
.../shop/entity/ShopGoodsIncomeConfig.java | 64 +
.../gxwebsoft/shop/entity/ShopGoodsLog.java | 86 +
.../shop/entity/ShopGoodsRelation.java | 53 +
.../shop/entity/ShopGoodsRoleCommission.java | 52 +
.../gxwebsoft/shop/entity/ShopGoodsSku.java | 79 +
.../gxwebsoft/shop/entity/ShopGoodsSpec.java | 45 +
.../gxwebsoft/shop/entity/ShopMerchant.java | 145 ++
.../shop/entity/ShopMerchantAccount.java | 68 +
.../shop/entity/ShopMerchantApply.java | 134 ++
.../shop/entity/ShopMerchantType.java | 48 +
.../com/gxwebsoft/shop/entity/ShopOrder.java | 353 +++
.../shop/entity/ShopOrderDelivery.java | 78 +
.../shop/entity/ShopOrderDeliveryGoods.java | 63 +
.../shop/entity/ShopOrderExtract.java | 60 +
.../gxwebsoft/shop/entity/ShopOrderGoods.java | 121 +
.../gxwebsoft/shop/entity/ShopOrderInfo.java | 122 +
.../shop/entity/ShopOrderInfoLog.java | 47 +
.../shop/entity/ShopRechargeOrder.java | 103 +
.../com/gxwebsoft/shop/entity/ShopSpec.java | 60 +
.../gxwebsoft/shop/entity/ShopSpecValue.java | 48 +
.../com/gxwebsoft/shop/entity/ShopSplash.java | 65 +
.../com/gxwebsoft/shop/entity/ShopStore.java | 98 +
.../gxwebsoft/shop/entity/ShopStoreFence.java | 69 +
.../gxwebsoft/shop/entity/ShopStoreRider.java | 102 +
.../gxwebsoft/shop/entity/ShopStoreUser.java | 54 +
.../shop/entity/ShopStoreWarehouse.java | 81 +
.../com/gxwebsoft/shop/entity/ShopUser.java | 258 +++
.../shop/entity/ShopUserAddress.java | 84 +
.../shop/entity/ShopUserBalanceLog.java | 82 +
.../shop/entity/ShopUserCollection.java | 45 +
.../gxwebsoft/shop/entity/ShopUserCoupon.java | 210 ++
.../shop/entity/ShopUserReferee.java | 81 +
.../shop/entity/ShopWechatDeposit.java | 66 +
.../shop/enums/OrderStatusEnum.class | Bin 0 -> 2066 bytes
.../gxwebsoft/shop/enums/OrderStatusEnum.java | 32 +
.../shop/mapper/ShopArticleMapper.java | 37 +
.../shop/mapper/ShopBrandMapper.java | 37 +
.../gxwebsoft/shop/mapper/ShopCartMapper.java | 37 +
.../shop/mapper/ShopCategoryMapper.java | 37 +
.../mapper/ShopChatConversationMapper.java | 37 +
.../shop/mapper/ShopChatMessageMapper.java | 37 +
.../shop/mapper/ShopCommissionRoleMapper.java | 37 +
.../shop/mapper/ShopCommunityMapper.java | 37 +
.../shop/mapper/ShopCountMapper.java | 37 +
.../mapper/ShopCouponApplyCateMapper.java | 37 +
.../mapper/ShopCouponApplyItemMapper.java | 37 +
.../shop/mapper/ShopCouponMapper.java | 37 +
.../shop/mapper/ShopDealerApplyMapper.java | 37 +
.../shop/mapper/ShopDealerBankMapper.java | 37 +
.../shop/mapper/ShopDealerCapitalMapper.java | 37 +
.../shop/mapper/ShopDealerOrderMapper.java | 37 +
.../shop/mapper/ShopDealerRecordMapper.java | 37 +
.../shop/mapper/ShopDealerRefereeMapper.java | 37 +
.../shop/mapper/ShopDealerSettingMapper.java | 37 +
.../shop/mapper/ShopDealerUserMapper.java | 37 +
.../shop/mapper/ShopDealerWithdrawMapper.java | 37 +
.../shop/mapper/ShopExpressMapper.java | 37 +
.../ShopExpressTemplateDetailMapper.java | 37 +
.../mapper/ShopExpressTemplateMapper.java | 37 +
.../gxwebsoft/shop/mapper/ShopGiftMapper.java | 37 +
.../shop/mapper/ShopGoodsCategoryMapper.java | 37 +
.../shop/mapper/ShopGoodsCommentMapper.java | 37 +
.../mapper/ShopGoodsIncomeConfigMapper.java | 37 +
.../shop/mapper/ShopGoodsLogMapper.java | 37 +
.../shop/mapper/ShopGoodsMapper.java | 51 +
.../shop/mapper/ShopGoodsRelationMapper.java | 37 +
.../mapper/ShopGoodsRoleCommissionMapper.java | 37 +
.../shop/mapper/ShopGoodsSkuMapper.java | 37 +
.../shop/mapper/ShopGoodsSpecMapper.java | 37 +
.../mapper/ShopMerchantAccountMapper.java | 37 +
.../shop/mapper/ShopMerchantApplyMapper.java | 37 +
.../shop/mapper/ShopMerchantMapper.java | 37 +
.../shop/mapper/ShopMerchantTypeMapper.java | 37 +
.../mapper/ShopOrderDeliveryGoodsMapper.java | 37 +
.../shop/mapper/ShopOrderDeliveryMapper.java | 37 +
.../shop/mapper/ShopOrderExtractMapper.java | 37 +
.../shop/mapper/ShopOrderGoodsMapper.java | 48 +
.../shop/mapper/ShopOrderInfoLogMapper.java | 37 +
.../shop/mapper/ShopOrderInfoMapper.java | 37 +
.../shop/mapper/ShopOrderMapper.java | 63 +
.../shop/mapper/ShopRechargeOrderMapper.java | 37 +
.../gxwebsoft/shop/mapper/ShopSpecMapper.java | 37 +
.../shop/mapper/ShopSpecValueMapper.java | 37 +
.../shop/mapper/ShopSplashMapper.java | 37 +
.../shop/mapper/ShopStoreFenceMapper.java | 37 +
.../shop/mapper/ShopStoreMapper.java | 37 +
.../shop/mapper/ShopStoreRiderMapper.java | 37 +
.../shop/mapper/ShopStoreUserMapper.java | 37 +
.../shop/mapper/ShopStoreWarehouseMapper.java | 37 +
.../shop/mapper/ShopUserAddressMapper.java | 37 +
.../shop/mapper/ShopUserBalanceLogMapper.java | 37 +
.../shop/mapper/ShopUserCollectionMapper.java | 37 +
.../shop/mapper/ShopUserCouponMapper.java | 37 +
.../gxwebsoft/shop/mapper/ShopUserMapper.java | 37 +
.../shop/mapper/ShopUserRefereeMapper.java | 37 +
.../shop/mapper/ShopWechatDepositMapper.java | 37 +
.../shop/mapper/UserCardStatsMapper.java | 16 +
.../shop/mapper/xml/ShopArticleMapper.xml | 189 ++
.../shop/mapper/xml/ShopBrandMapper.xml | 51 +
.../shop/mapper/xml/ShopCartMapper.xml | 84 +
.../shop/mapper/xml/ShopCategoryMapper.xml | 123 +
.../mapper/xml/ShopChatConversationMapper.xml | 60 +
.../shop/mapper/xml/ShopChatMessageMapper.xml | 78 +
.../mapper/xml/ShopCommissionRoleMapper.xml | 57 +
.../shop/mapper/xml/ShopCommunityMapper.xml | 54 +
.../shop/mapper/xml/ShopCountMapper.xml | 63 +
.../mapper/xml/ShopCouponApplyCateMapper.xml | 54 +
.../mapper/xml/ShopCouponApplyItemMapper.xml | 60 +
.../shop/mapper/xml/ShopCouponMapper.xml | 103 +
.../shop/mapper/xml/ShopDealerApplyMapper.xml | 92 +
.../shop/mapper/xml/ShopDealerBankMapper.xml | 60 +
.../mapper/xml/ShopDealerCapitalMapper.xml | 59 +
.../shop/mapper/xml/ShopDealerOrderMapper.xml | 92 +
.../mapper/xml/ShopDealerRecordMapper.xml | 63 +
.../mapper/xml/ShopDealerRefereeMapper.xml | 61 +
.../mapper/xml/ShopDealerSettingMapper.xml | 36 +
.../shop/mapper/xml/ShopDealerUserMapper.xml | 84 +
.../mapper/xml/ShopDealerWithdrawMapper.xml | 75 +
.../shop/mapper/xml/ShopExpressMapper.xml | 57 +
.../xml/ShopExpressTemplateDetailMapper.xml | 72 +
.../mapper/xml/ShopExpressTemplateMapper.xml | 66 +
.../shop/mapper/xml/ShopGiftMapper.xml | 77 +
.../mapper/xml/ShopGoodsCategoryMapper.xml | 93 +
.../mapper/xml/ShopGoodsCommentMapper.xml | 96 +
.../xml/ShopGoodsIncomeConfigMapper.xml | 63 +
.../shop/mapper/xml/ShopGoodsLogMapper.xml | 81 +
.../shop/mapper/xml/ShopGoodsMapper.xml | 151 ++
.../mapper/xml/ShopGoodsRelationMapper.xml | 48 +
.../xml/ShopGoodsRoleCommissionMapper.xml | 57 +
.../shop/mapper/xml/ShopGoodsSkuMapper.xml | 78 +
.../shop/mapper/xml/ShopGoodsSpecMapper.xml | 45 +
.../mapper/xml/ShopMerchantAccountMapper.xml | 63 +
.../mapper/xml/ShopMerchantApplyMapper.xml | 123 +
.../shop/mapper/xml/ShopMerchantMapper.xml | 150 ++
.../mapper/xml/ShopMerchantTypeMapper.xml | 48 +
.../xml/ShopOrderDeliveryGoodsMapper.xml | 60 +
.../mapper/xml/ShopOrderDeliveryMapper.xml | 63 +
.../mapper/xml/ShopOrderExtractMapper.xml | 57 +
.../shop/mapper/xml/ShopOrderGoodsMapper.xml | 105 +
.../mapper/xml/ShopOrderInfoLogMapper.xml | 48 +
.../shop/mapper/xml/ShopOrderInfoMapper.xml | 114 +
.../shop/mapper/xml/ShopOrderMapper.xml | 467 ++++
.../mapper/xml/ShopRechargeOrderMapper.xml | 99 +
.../shop/mapper/xml/ShopSpecMapper.xml | 60 +
.../shop/mapper/xml/ShopSpecValueMapper.xml | 48 +
.../shop/mapper/xml/ShopSplashMapper.xml | 63 +
.../shop/mapper/xml/ShopStoreFenceMapper.xml | 66 +
.../shop/mapper/xml/ShopStoreMapper.xml | 75 +
.../shop/mapper/xml/ShopStoreRiderMapper.xml | 94 +
.../shop/mapper/xml/ShopStoreUserMapper.xml | 51 +
.../mapper/xml/ShopStoreWarehouseMapper.xml | 78 +
.../shop/mapper/xml/ShopUserAddressMapper.xml | 82 +
.../mapper/xml/ShopUserBalanceLogMapper.xml | 78 +
.../mapper/xml/ShopUserCollectionMapper.xml | 45 +
.../shop/mapper/xml/ShopUserCouponMapper.xml | 96 +
.../shop/mapper/xml/ShopUserMapper.xml | 252 ++
.../shop/mapper/xml/ShopUserRefereeMapper.xml | 62 +
.../mapper/xml/ShopWechatDepositMapper.xml | 69 +
.../shop/mapper/xml/UserCardStatsMapper.xml | 16 +
.../shop/param/ShopArticleParam.java | 203 ++
.../gxwebsoft/shop/param/ShopBrandParam.java | 47 +
.../gxwebsoft/shop/param/ShopCartParam.java | 96 +
.../shop/param/ShopCategoryParam.java | 127 ++
.../shop/param/ShopChatConversationParam.java | 57 +
.../shop/param/ShopChatMessageParam.java | 75 +
.../shop/param/ShopCommissionRoleParam.java | 50 +
.../shop/param/ShopCommunityParam.java | 49 +
.../gxwebsoft/shop/param/ShopCountParam.java | 64 +
.../shop/param/ShopCouponApplyCateParam.java | 46 +
.../shop/param/ShopCouponApplyItemParam.java | 54 +
.../gxwebsoft/shop/param/ShopCouponParam.java | 108 +
.../param/ShopDealerApplyImportParam.java | 72 +
.../shop/param/ShopDealerApplyParam.java | 89 +
.../shop/param/ShopDealerBankParam.java | 58 +
.../shop/param/ShopDealerCapitalParam.java | 58 +
.../param/ShopDealerOrderImportParam.java | 61 +
.../shop/param/ShopDealerOrderParam.java | 91 +
.../shop/param/ShopDealerRecordParam.java | 58 +
.../shop/param/ShopDealerRefereeParam.java | 47 +
.../shop/param/ShopDealerSettingParam.java | 35 +
.../param/ShopDealerSettingSaveParam.java | 35 +
.../shop/param/ShopDealerUserImportParam.java | 70 +
.../shop/param/ShopDealerUserParam.java | 89 +
.../shop/param/ShopDealerWithdrawParam.java | 86 +
.../shop/param/ShopExpressParam.java | 49 +
.../param/ShopExpressTemplateDetailParam.java | 68 +
.../shop/param/ShopExpressTemplateParam.java | 60 +
.../gxwebsoft/shop/param/ShopGiftParam.java | 76 +
.../shop/param/ShopGoodsCategoryParam.java | 96 +
.../shop/param/ShopGoodsCommentParam.java | 98 +
.../param/ShopGoodsIncomeConfigParam.java | 57 +
.../shop/param/ShopGoodsLogParam.java | 89 +
.../gxwebsoft/shop/param/ShopGoodsParam.java | 153 ++
.../shop/param/ShopGoodsRelationParam.java | 44 +
.../param/ShopGoodsRoleCommissionParam.java | 50 +
.../shop/param/ShopGoodsSkuParam.java | 80 +
.../shop/param/ShopGoodsSpecParam.java | 48 +
.../shop/param/ShopMerchantAccountParam.java | 62 +
.../shop/param/ShopMerchantApplyParam.java | 126 +
.../shop/param/ShopMerchantParam.java | 149 ++
.../shop/param/ShopMerchantTypeParam.java | 44 +
.../param/ShopOrderDeliveryGoodsParam.java | 58 +
.../shop/param/ShopOrderDeliveryParam.java | 60 +
.../shop/param/ShopOrderExtractParam.java | 52 +
.../shop/param/ShopOrderGoodsParam.java | 109 +
.../shop/param/ShopOrderInfoLogParam.java | 45 +
.../shop/param/ShopOrderInfoParam.java | 124 +
.../gxwebsoft/shop/param/ShopOrderParam.java | 274 +++
.../shop/param/ShopRechargeOrderParam.java | 105 +
.../gxwebsoft/shop/param/ShopSpecParam.java | 59 +
.../shop/param/ShopSpecValueParam.java | 44 +
.../gxwebsoft/shop/param/ShopSplashParam.java | 57 +
.../shop/param/ShopStoreFenceParam.java | 62 +
.../gxwebsoft/shop/param/ShopStoreParam.java | 77 +
.../shop/param/ShopStoreRiderParam.java | 99 +
.../shop/param/ShopStoreUserParam.java | 48 +
.../shop/param/ShopStoreWarehouseParam.java | 74 +
.../shop/param/ShopUserAddressParam.java | 77 +
.../shop/param/ShopUserBalanceLogParam.java | 78 +
.../shop/param/ShopUserCollectionParam.java | 42 +
.../shop/param/ShopUserCouponParam.java | 96 +
.../gxwebsoft/shop/param/ShopUserParam.java | 275 +++
.../shop/param/ShopUserRefereeParam.java | 48 +
.../shop/param/ShopWechatDepositParam.java | 66 +
.../shop/service/CouponStatusService.java | 154 ++
.../com/gxwebsoft/shop/service/KuaiDi100.java | 16 +
.../shop/service/OrderBusinessService.java | 782 +++++++
.../shop/service/OrderCancelService.java | 65 +
.../shop/service/ShopArticleService.java | 42 +
.../shop/service/ShopBrandService.java | 42 +
.../shop/service/ShopCartService.java | 42 +
.../shop/service/ShopCategoryService.java | 42 +
.../service/ShopChatConversationService.java | 42 +
.../shop/service/ShopChatMessageService.java | 42 +
.../service/ShopCommissionRoleService.java | 42 +
.../shop/service/ShopCommunityService.java | 42 +
.../shop/service/ShopCountService.java | 42 +
.../service/ShopCouponApplyCateService.java | 43 +
.../service/ShopCouponApplyItemService.java | 43 +
.../shop/service/ShopCouponService.java | 42 +
.../shop/service/ShopDealerApplyService.java | 45 +
.../shop/service/ShopDealerBankService.java | 48 +
.../service/ShopDealerCapitalService.java | 42 +
.../shop/service/ShopDealerOrderService.java | 42 +
.../shop/service/ShopDealerRecordService.java | 42 +
.../service/ShopDealerRefereeService.java | 56 +
.../service/ShopDealerSettingService.java | 50 +
.../shop/service/ShopDealerUserService.java | 45 +
.../service/ShopDealerWithdrawService.java | 42 +
.../shop/service/ShopExpressService.java | 42 +
.../ShopExpressTemplateDetailService.java | 42 +
.../service/ShopExpressTemplateService.java | 42 +
.../shop/service/ShopGiftService.java | 43 +
.../service/ShopGoodsCategoryService.java | 42 +
.../shop/service/ShopGoodsCommentService.java | 42 +
.../service/ShopGoodsIncomeConfigService.java | 42 +
.../shop/service/ShopGoodsLogService.java | 42 +
.../service/ShopGoodsRelationService.java | 42 +
.../ShopGoodsRoleCommissionService.java | 42 +
.../shop/service/ShopGoodsService.java | 52 +
.../shop/service/ShopGoodsSkuService.java | 42 +
.../shop/service/ShopGoodsSpecService.java | 42 +
.../service/ShopMerchantAccountService.java | 42 +
.../service/ShopMerchantApplyService.java | 42 +
.../shop/service/ShopMerchantService.java | 42 +
.../shop/service/ShopMerchantTypeService.java | 42 +
.../ShopOrderDeliveryGoodsService.java | 42 +
.../service/ShopOrderDeliveryService.java | 48 +
.../shop/service/ShopOrderExtractService.java | 42 +
.../shop/service/ShopOrderGoodsService.java | 50 +
.../shop/service/ShopOrderInfoLogService.java | 42 +
.../shop/service/ShopOrderInfoService.java | 42 +
.../shop/service/ShopOrderService.java | 89 +
.../service/ShopOrderUpdate10550Service.java | 21 +
.../service/ShopRechargeOrderService.java | 42 +
.../shop/service/ShopSpecService.java | 42 +
.../shop/service/ShopSpecValueService.java | 42 +
.../shop/service/ShopSplashService.java | 42 +
.../shop/service/ShopStoreFenceService.java | 62 +
.../shop/service/ShopStoreRiderService.java | 42 +
.../shop/service/ShopStoreService.java | 42 +
.../shop/service/ShopStoreUserService.java | 42 +
.../service/ShopStoreWarehouseService.java | 42 +
.../shop/service/ShopUserAddressService.java | 58 +
.../service/ShopUserBalanceLogService.java | 42 +
.../service/ShopUserCollectionService.java | 42 +
.../shop/service/ShopUserCouponService.java | 43 +
.../shop/service/ShopUserRefereeService.java | 43 +
.../shop/service/ShopUserService.java | 42 +
.../shop/service/ShopWebsiteService.java | 27 +
.../service/ShopWechatDepositService.java | 42 +
.../ShopWechatShippingSyncService.java | 24 +
.../shop/service/UserBalanceLogService.java | 42 +
.../service/impl/CouponStatusServiceImpl.java | 339 +++
.../shop/service/impl/KuaiDi100Impl.java | 57 +
.../service/impl/OrderCancelServiceImpl.java | 267 +++
.../service/impl/ShopArticleServiceImpl.java | 47 +
.../service/impl/ShopBrandServiceImpl.java | 47 +
.../service/impl/ShopCartServiceImpl.java | 47 +
.../service/impl/ShopCategoryServiceImpl.java | 47 +
.../impl/ShopChatConversationServiceImpl.java | 47 +
.../impl/ShopChatMessageServiceImpl.java | 47 +
.../impl/ShopCommissionRoleServiceImpl.java | 47 +
.../impl/ShopCommunityServiceImpl.java | 47 +
.../service/impl/ShopCountServiceImpl.java | 47 +
.../impl/ShopCouponApplyCateServiceImpl.java | 56 +
.../impl/ShopCouponApplyItemServiceImpl.java | 56 +
.../service/impl/ShopCouponServiceImpl.java | 71 +
.../impl/ShopDealerApplyServiceImpl.java | 62 +
.../impl/ShopDealerBankServiceImpl.java | 58 +
.../impl/ShopDealerCapitalServiceImpl.java | 47 +
.../impl/ShopDealerOrderServiceImpl.java | 47 +
.../impl/ShopDealerRecordServiceImpl.java | 47 +
.../impl/ShopDealerRefereeServiceImpl.java | 124 +
.../impl/ShopDealerSettingServiceImpl.java | 66 +
.../impl/ShopDealerUserServiceImpl.java | 61 +
.../impl/ShopDealerWithdrawServiceImpl.java | 47 +
.../service/impl/ShopExpressServiceImpl.java | 47 +
.../ShopExpressTemplateDetailServiceImpl.java | 47 +
.../impl/ShopExpressTemplateServiceImpl.java | 47 +
.../service/impl/ShopGiftServiceImpl.java | 71 +
.../impl/ShopGoodsCategoryServiceImpl.java | 47 +
.../impl/ShopGoodsCommentServiceImpl.java | 47 +
.../ShopGoodsIncomeConfigServiceImpl.java | 47 +
.../service/impl/ShopGoodsLogServiceImpl.java | 47 +
.../impl/ShopGoodsRelationServiceImpl.java | 47 +
.../ShopGoodsRoleCommissionServiceImpl.java | 47 +
.../service/impl/ShopGoodsServiceImpl.java | 75 +
.../service/impl/ShopGoodsSkuServiceImpl.java | 47 +
.../impl/ShopGoodsSpecServiceImpl.java | 47 +
.../impl/ShopMerchantAccountServiceImpl.java | 47 +
.../impl/ShopMerchantApplyServiceImpl.java | 47 +
.../service/impl/ShopMerchantServiceImpl.java | 47 +
.../impl/ShopMerchantTypeServiceImpl.java | 47 +
.../ShopOrderDeliveryGoodsServiceImpl.java | 47 +
.../impl/ShopOrderDeliveryServiceImpl.java | 135 ++
.../impl/ShopOrderExtractServiceImpl.java | 47 +
.../impl/ShopOrderGoodsServiceImpl.java | 78 +
.../impl/ShopOrderInfoLogServiceImpl.java | 47 +
.../impl/ShopOrderInfoServiceImpl.java | 47 +
.../service/impl/ShopOrderServiceImpl.java | 1590 +++++++++++++
.../impl/ShopOrderUpdate10550ServiceImpl.java | 298 +++
.../impl/ShopRechargeOrderServiceImpl.java | 47 +
.../service/impl/ShopSpecServiceImpl.java | 47 +
.../impl/ShopSpecValueServiceImpl.java | 47 +
.../service/impl/ShopSplashServiceImpl.java | 47 +
.../impl/ShopStoreFenceServiceImpl.java | 109 +
.../impl/ShopStoreRiderServiceImpl.java | 47 +
.../service/impl/ShopStoreServiceImpl.java | 47 +
.../impl/ShopStoreUserServiceImpl.java | 47 +
.../impl/ShopStoreWarehouseServiceImpl.java | 47 +
.../impl/ShopUserAddressServiceImpl.java | 68 +
.../impl/ShopUserBalanceLogServiceImpl.java | 47 +
.../impl/ShopUserCollectionServiceImpl.java | 47 +
.../impl/ShopUserCouponServiceImpl.java | 57 +
.../impl/ShopUserRefereeServiceImpl.java | 55 +
.../service/impl/ShopUserServiceImpl.java | 47 +
.../service/impl/ShopWebsiteServiceImpl.java | 90 +
.../impl/ShopWechatDepositServiceImpl.java | 47 +
.../ShopWechatShippingSyncServiceImpl.java | 231 ++
.../gxwebsoft/shop/task/CouponExpireTask.java | 86 +
.../shop/task/OrderAutoCancelTask.java | 196 ++
.../shop/task/RefundStatusQueryTask.java | 133 ++
.../com/gxwebsoft/shop/util/GeoFenceUtil.java | 224 ++
.../shop/util/UpstreamUserFinder.java | 60 +
.../java/com/gxwebsoft/shop/vo/MenuVo.java | 58 +
.../java/com/gxwebsoft/shop/vo/ShopVo.java | 107 +
.../shop/vo/UserTicketSummaryVo.java | 24 +
src/main/java/lib/commons-codec-1.9.jar | Bin 0 -> 263965 bytes
src/main/java/lib/json-20200518.jar | Bin 0 -> 65966 bytes
src/main/resources/application-cms.yml | 83 +
src/main/resources/application-dev.yml | 71 +
src/main/resources/application-prod.yml | 83 +
src/main/resources/application-yd.yml | 83 +
src/main/resources/application.yml | 247 ++
src/test/java/com/gxwebsoft/RedisTest.java | 30 +
src/test/java/com/gxwebsoft/TestMain.java | 95 +
.../gxwebsoft/WebSoftApplicationTests.java | 13 +
src/test/java/com/gxwebsoft/WxDev.java | 110 +
.../gxwebsoft/bszx/BszxOrderTotalTest.java | 56 +
.../impl/CmsWebsiteServiceImplCacheTest.java | 66 +
.../core/controller/QrCodeControllerTest.java | 102 +
.../core/utils/EncryptedQrCodeUtilTest.java | 136 ++
.../controller/WxLoginControllerTest.java | 136 ++
.../system/service/UserIgnoreTenantTest.java | 100 +
.../system/service/WeixinConfigTest.java | 174 ++
.../gxwebsoft/config/MqttPropertiesTest.java | 44 +
.../gxwebsoft/config/ServerUrlConfigTest.java | 51 +
.../gxwebsoft/generator/ShopGenerator.java | 435 ++++
.../engine/BeetlTemplateEnginePlus.java | 50 +
.../generator/templates/add.config.ts.btl | 4 +
.../gxwebsoft/generator/templates/add.tsx.btl | 115 +
.../templates/columns.config.vue.btl | 47 +
.../templates/components.edit.vue.btl | 221 ++
.../templates/components.search.vue.btl | 42 +
.../generator/templates/controller.java.btl | 278 +++
.../generator/templates/entity.java.btl | 157 ++
.../generator/templates/index.config.ts.btl | 4 +
.../generator/templates/index.ts.btl | 105 +
.../generator/templates/index.ts.uniapp.btl | 101 +
.../generator/templates/index.tsx.btl | 171 ++
.../generator/templates/index.vue.btl | 242 ++
.../generator/templates/mapper.java.btl | 41 +
.../generator/templates/mapper.xml.btl | 100 +
.../generator/templates/model.ts.btl | 43 +
.../generator/templates/model.ts.uniapp.btl | 43 +
.../generator/templates/param.java.btl | 146 ++
.../generator/templates/service.java.btl | 55 +
.../generator/templates/serviceImpl.java.btl | 62 +
.../generator/templates/smart-columns.vue.btl | 89 +
.../templates/table-columns-config.js | 60 +
.../templates/table-with-column-settings.vue | 263 +++
.../glt/AutoReleaseTestApplication.java | 22 +
.../GltUserTicketAutoReleaseServiceTest.java | 209 ++
.../com/gxwebsoft/house/HousePosterTest.java | 136 ++
.../house/util/SortSceneUtilManualTest.java | 38 +
.../house/util/SortSceneUtilTest.java | 63 +
.../payment/enums/PaymentTypeTest.java | 136 ++
.../gxwebsoft/shop/CertificatePathTest.java | 79 +
.../gxwebsoft/shop/MultiSpecOrderTest.java | 174 ++
.../shop/OrderBusinessServiceTest.java | 170 ++
.../com/gxwebsoft/shop/OrderTotalTest.java | 56 +
.../gxwebsoft/shop/OrderValidationTest.java | 315 +++
.../shop/WechatPayDescriptionTest.java | 75 +
.../shop/service/CouponStatusServiceTest.java | 113 +
.../shop/service/ShopGoodsSalesTest.java | 145 ++
.../ShopOrderGoodsIgnoreTenantTest.java | 136 ++
.../ShopOrderUpdate10550ServiceTest.java | 141 ++
.../gxwebsoft/shop/util/GeoFenceUtilTest.java | 36 +
.../shop/util/UpstreamUserFinderTest.java | 65 +
.../CertificatePathConcatenationTest.java | 155 ++
.../test/CertificatePathFixTest.java | 99 +
.../com/gxwebsoft/test/CertificateTest.java | 107 +
.../test/EnvironmentBasedCertificateTest.java | 119 +
.../test/NotificationCertificateFixTest.java | 101 +
.../gxwebsoft/test/WechatPayConfigTest.java | 89 +
.../test/WechatPayConfigValidationTest.java | 134 ++
.../com/gxwebsoft/test/WechatPayPathTest.java | 158 ++
.../test/WechatPayPublicKeyTest.java | 150 ++
src/test/resources/schema-auto-release-h2.sql | 62 +
1080 files changed, 103492 insertions(+)
create mode 100644 .gitignore
create mode 100644 Dockerfile
create mode 100644 README.md
create mode 100644 docker-compose.yml
create mode 100644 docker-deploy-guide.md
create mode 100644 pom.xml
create mode 100644 src/main/java/com/gxwebsoft/WebSoftApplication.java
create mode 100644 src/main/java/com/gxwebsoft/auto/controller/QrLoginController.java
create mode 100644 src/main/java/com/gxwebsoft/auto/dto/QrLoginConfirmRequest.java
create mode 100644 src/main/java/com/gxwebsoft/auto/dto/QrLoginData.java
create mode 100644 src/main/java/com/gxwebsoft/auto/dto/QrLoginGenerateResponse.java
create mode 100644 src/main/java/com/gxwebsoft/auto/dto/QrLoginStatusResponse.java
create mode 100644 src/main/java/com/gxwebsoft/auto/service/QrLoginService.java
create mode 100644 src/main/java/com/gxwebsoft/auto/service/impl/QrLoginServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsAdController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsAdRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleCategoryController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleCommentController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleContentController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleCountController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsArticleLikeController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsDesignController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsDesignRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsDomainController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsFormController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsFormRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsLangController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsLangLogController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsLinkController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsMainController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsModelController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsNavigationController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsOrderController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsStatisticsController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsTemplateController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsWebsiteController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsWebsiteFieldController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/controller/CmsWebsiteSettingController.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsAd.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsAdRecord.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsAdVo.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticle.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticleCategory.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticleComment.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticleContent.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticleCount.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsArticleLike.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsDesign.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsDesignRecord.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsDomain.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsForm.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsFormRecord.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsLang.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsLangLog.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsLink.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsModel.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsNavigation.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsOrder.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsStatistics.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsTemplate.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsWebsite.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsWebsiteField.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/CmsWebsiteSetting.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/TranslateDataVo.java
create mode 100644 src/main/java/com/gxwebsoft/cms/entity/TranslateVo.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsAdMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsAdRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleCategoryMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleCommentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleContentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleCountMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleLikeMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsArticleMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsDesignMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsDesignRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsDomainMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsFormMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsFormRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsLangLogMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsLangMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsLinkMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsModelMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsNavigationMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsOrderMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsStatisticsMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsTemplateMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsWebsiteFieldMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsWebsiteMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/CmsWebsiteSettingMapper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsAdMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsAdRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleCategoryMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleCommentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleContentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleCountMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleLikeMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsArticleMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsDesignMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsDesignRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsDomainMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsFormMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsFormRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsLangLogMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsLangMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsLinkMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsModelMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsNavigationMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsOrderMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsStatisticsMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsTemplateMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteFieldMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/mapper/xml/CmsWebsiteSettingMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsAdParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsAdRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleCategoryParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleCommentParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleContentParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleCountParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleLikeParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsArticleParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsDesignParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsDesignRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsDomainParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsFormParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsFormRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsLangLogParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsLangParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsLinkParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsModelParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsNavigationImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsNavigationParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsOrderParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsStatisticsParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsTemplateParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsWebsiteFieldImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsWebsiteFieldParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsWebsiteParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/param/CmsWebsiteSettingParam.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsAdRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsAdService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleCategoryService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleCommentService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleContentService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleCountService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleLikeService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsArticleService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsDesignRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsDesignService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsDomainService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsFormRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsFormService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsLangLogService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsLangService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsLinkService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsModelService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsNavigationService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsOrderService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsStatisticsService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsTemplateService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsWebsiteFieldService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsWebsiteService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/CmsWebsiteSettingService.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsAdRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsAdServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleCategoryServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleCommentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleContentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleCountServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleLikeServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsArticleServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsDesignRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsDesignServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsDomainServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsFormRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsFormServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsLangLogServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsLangServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsLinkServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsModelServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsNavigationServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsOrderServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsStatisticsServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsTemplateServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteFieldServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImplHelper.java
create mode 100644 src/main/java/com/gxwebsoft/cms/service/impl/CmsWebsiteSettingServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/Constants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/annotation/IgnoreTenant.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/annotation/OperationLog.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/annotation/OperationModule.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/annotation/QueryField.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/annotation/QueryType.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/aspect/IgnoreTenantAspect.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/aspect/OperationLogAspect.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/BigDecimalDeserializer.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/CertificateProperties.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/ConfigProperties.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/HttpMessageConverter.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/JacksonConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/JacksonConfigChecker.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/LocalDateTimeDeserializer.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/LocalDateTimeSerializer.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/MqttProperties.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/MybatisPlusConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/RestTemplateConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/SpringContextUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/SwaggerConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/config/WebMvcConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/AppUserConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/ArticleConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/BalanceConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/BaseConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/OrderConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/PlatformConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/ProfitConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/QRCodeConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/RedisConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/TaskConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/WebsiteConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/constants/WxOfficialConstants.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/context/TenantContext.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/CertificateController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/DatabaseFixController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/DevEnvironmentController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/JacksonTestController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/PaymentConfigController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/QrCodeController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/TestController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/TranslateController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/WechatCertTestController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/controller/WechatPayDiagnosticController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/CreateBusinessEncryptedQrCodeRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/CreateEncryptedQrCodeRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/DecryptQrDataRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/InvalidateTokenRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/VerifyBusinessQrRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/dto/qr/VerifyQrContentRequest.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/exception/BusinessException.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/exception/GlobalExceptionHandler.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/JwtAccessDeniedHandler.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationEntryPoint.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/JwtAuthenticationFilter.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/JwtSubject.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/JwtUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/security/SecurityConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/service/CertificateHealthService.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/service/CertificateService.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/service/EnvironmentAwarePaymentService.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/service/PaymentCacheService.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/AliYunSender.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/AlipayConfigUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/AliyunTranslateUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/CacheClient.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/CertificateLoader.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/CommonUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/DateTimeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/DomainUtils.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/EncryptedQrCodeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/FileServerUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/HttpUtils.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/ImageUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/JChardetFacadeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/JSONUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/MyQrCodeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/OpenOfficeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/QrCodeDecryptResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/RedisUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/RequestUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/SignCheckUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/SpmUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatCertAutoConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayCertificateDiagnostic.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayCertificateFixer.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayConfigChecker.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayConfigValidator.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayDiagnostic.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WechatPayUtils.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WxNativeUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WxOfficialUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WxUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/utils/WxWorkUtil.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/ApiResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/BaseController.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/BaseParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/BatchParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/ExistenceParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/ImportParams.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/PageParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/web/PageResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/websocket/WebSocketConfig.java
create mode 100644 src/main/java/com/gxwebsoft/common/core/websocket/WebSocketServer.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/AiController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CacheController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyCommentController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyContentController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyGitController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyParameterController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/CompanyUrlController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/DictController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/DictDataController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/DictionaryController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/DictionaryDataController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/DomainController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/EmailController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/FileController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/LoginRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/MainController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/MenuController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/OperationRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/OrganizationController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/PaymentController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/PlugController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/RedisUtilController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/RoleController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/RoleMenuController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/SettingController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/TenantController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/UserCollectionController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/UserController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/UserFileController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/UserRefereeController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/controller/WxLoginController.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/dto/PaymentCacheDTO.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Cache.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/ChatMessage.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Company.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/CompanyComment.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/CompanyContent.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/CompanyGit.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/CompanyParameter.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/CompanyUrl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Dict.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/DictData.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Dictionary.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/DictionaryData.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Domain.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/EmailRecord.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/FileRecord.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/KVEntity.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/LoginRecord.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Menu.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/OperationRecord.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Organization.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Payment.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Plug.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Role.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/RoleMenu.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Setting.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/Tenant.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/User.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserBalanceLog.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserCollection.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserFile.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserInfo.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserReferee.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserRole.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/entity/UserVerify.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyCommentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyContentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyGitMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyParameterMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/CompanyUrlMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/DictDataMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/DictMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/DictionaryDataMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/DictionaryMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/DomainMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/EmailRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/FileRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/LoginRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/MenuMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/OperationRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/OrganizationMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/PaymentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/PlugMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/RoleMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/RoleMenuMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/SettingMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/TenantMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserBalanceLogMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserCollectionMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserFileMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserRefereeMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/UserRoleMapper.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyCommentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyContentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyGitMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyParameterMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/CompanyUrlMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/DictDataMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/DictMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/DictionaryDataMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/DictionaryMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/DomainMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/EmailRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/FileRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/LoginRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/MenuMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/OperationRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/OrganizationMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/PaymentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/PlugMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/RoleMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/RoleMenuMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/SettingMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/TenantMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/UserCollectionMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/UserFileMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/UserMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/UserRefereeMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/mapper/xml/UserRoleMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/AlipayParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CacheParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyCommentParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyContentParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyGitParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyParameterParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/CompanyUrlParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/DictDataParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/DictParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/DictionaryDataParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/DictionaryParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/DomainParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/FileRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/LoginParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/LoginRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/MenuImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/MenuParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/OperationRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/OrganizationParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/PaymentParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/PlugParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/RoleParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/SettingParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/SmsCaptchaParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/TenantParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UpdatePasswordParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserBalanceLogParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserCollectionParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserFileParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/UserRefereeParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/param/VersionParam.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/result/CaptchaResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/result/LoginResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/result/RedisResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/result/SmsCaptchaResult.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyCommentService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyContentService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyGitService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyParameterService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/CompanyUrlService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DictDataService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DictService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DictionaryDataService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DictionaryService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DomainService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/DomainServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/EmailRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/FileRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/LoginRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/MenuService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/OperationRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/OrganizationService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/PaymentService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/PlugService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/RoleMenuService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/RoleService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/SettingService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/TenantService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserBalanceLogService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserCollectionService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserCollectionServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserFileService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserRefereeService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserRoleService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/UserService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/WxMiniappAccessTokenService.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyCommentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyContentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyGitServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyParameterServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/CompanyUrlServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/DictDataServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/DictServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/DictionaryDataServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/DictionaryServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/EmailRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/FileRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/LoginRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/MenuServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/OperationRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/OrganizationServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/PaymentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/PlugServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/RoleMenuServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/RoleServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/SettingServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/TenantServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/UserBalanceLogServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/UserFileServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/UserRefereeServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/UserRoleServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/UserServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/common/system/service/impl/WxMiniappAccessTokenServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/payment/constants/PaymentConstants.java
create mode 100644 src/main/java/com/gxwebsoft/payment/constants/WechatPayType.java
create mode 100644 src/main/java/com/gxwebsoft/payment/controller/PaymentController.java
create mode 100644 src/main/java/com/gxwebsoft/payment/controller/PaymentNotifyController.java
create mode 100644 src/main/java/com/gxwebsoft/payment/dto/PaymentRequest.java
create mode 100644 src/main/java/com/gxwebsoft/payment/dto/PaymentResponse.java
create mode 100644 src/main/java/com/gxwebsoft/payment/dto/PaymentStatusUpdateRequest.java
create mode 100644 src/main/java/com/gxwebsoft/payment/dto/PaymentWithOrderRequest.java
create mode 100644 src/main/java/com/gxwebsoft/payment/enums/PaymentChannel.java
create mode 100644 src/main/java/com/gxwebsoft/payment/enums/PaymentStatus.java
create mode 100644 src/main/java/com/gxwebsoft/payment/enums/PaymentType.java
create mode 100644 src/main/java/com/gxwebsoft/payment/exception/PaymentException.java
create mode 100644 src/main/java/com/gxwebsoft/payment/exception/PaymentExceptionHandler.java
create mode 100644 src/main/java/com/gxwebsoft/payment/service/PaymentService.java
create mode 100644 src/main/java/com/gxwebsoft/payment/service/WxPayConfigService.java
create mode 100644 src/main/java/com/gxwebsoft/payment/service/WxPayNotifyService.java
create mode 100644 src/main/java/com/gxwebsoft/payment/service/WxTransferService.java
create mode 100644 src/main/java/com/gxwebsoft/payment/service/impl/PaymentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/payment/strategy/PaymentStrategy.java
create mode 100644 src/main/java/com/gxwebsoft/payment/strategy/WechatNativeStrategy.java
create mode 100644 src/main/java/com/gxwebsoft/payment/utils/PaymentTypeCompatibilityUtil.java
create mode 100644 src/main/java/com/gxwebsoft/shop/config/OrderConfigProperties.java
create mode 100644 src/main/java/com/gxwebsoft/shop/constants/WxPayConstants.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/CouponStatusController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopArticleController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopBrandController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCartController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCategoryController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopChatConversationController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopChatMessageController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCommissionRoleController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCommunityController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCountController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCouponApplyCateController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCouponApplyItemController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopCouponController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerApplyController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerBankController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerCapitalController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerOrderController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerRecordController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerRefereeController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerSettingController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerUserController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopDealerWithdrawController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopExpressController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopExpressTemplateController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopExpressTemplateDetailController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGiftController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsCategoryController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsCommentController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsIncomeConfigController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsLogController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsRelationController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsRoleCommissionController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsSkuController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopGoodsSpecController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopMainController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopMerchantAccountController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopMerchantApplyController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopMerchantController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopMerchantTypeController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderDeliveryController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderDeliveryGoodsController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderExtractController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderGoodsController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderInfoController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopOrderInfoLogController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopRechargeOrderController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopSpecController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopSpecValueController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopSplashController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreFenceController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreRiderController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreUserController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopStoreWarehouseController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserAddressController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserBalanceLogController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserCollectionController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserCouponController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopUserRefereeController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/ShopWechatDepositController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/UserCardController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/UserOrderController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/controller/WxPayNotifyAliasController.java
create mode 100644 src/main/java/com/gxwebsoft/shop/dto/OrderCreateRequest.java
create mode 100644 src/main/java/com/gxwebsoft/shop/dto/OrderPrepayRequest.java
create mode 100644 src/main/java/com/gxwebsoft/shop/dto/UpdatePaymentStatusRequest.java
create mode 100644 src/main/java/com/gxwebsoft/shop/dto/UserCardStats.java
create mode 100644 src/main/java/com/gxwebsoft/shop/dto/UserOrderStats.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/KuaiDi100Resp.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopArticle.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopBrand.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCart.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCategory.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopChatConversation.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopChatMessage.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCommissionRole.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCommunity.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCount.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCoupon.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCouponApplyCate.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopCouponApplyItem.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerApply.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerBank.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerCapital.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerOrder.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerRecord.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerReferee.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerSetting.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerUser.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopDealerWithdraw.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopExpress.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopExpressTemplate.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopExpressTemplateDetail.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGift.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoods.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsCategory.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsComment.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsIncomeConfig.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsLog.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsRelation.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsRoleCommission.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsSku.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopGoodsSpec.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopMerchant.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopMerchantAccount.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopMerchantApply.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopMerchantType.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrder.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderDelivery.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderDeliveryGoods.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderExtract.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderGoods.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderInfo.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopOrderInfoLog.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopRechargeOrder.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopSpec.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopSpecValue.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopSplash.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStore.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreFence.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreRider.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreUser.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopStoreWarehouse.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUser.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUserAddress.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUserBalanceLog.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUserCollection.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUserCoupon.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopUserReferee.java
create mode 100644 src/main/java/com/gxwebsoft/shop/entity/ShopWechatDeposit.java
create mode 100644 src/main/java/com/gxwebsoft/shop/enums/OrderStatusEnum.class
create mode 100644 src/main/java/com/gxwebsoft/shop/enums/OrderStatusEnum.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopArticleMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopBrandMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCartMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCategoryMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopChatConversationMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopChatMessageMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCommissionRoleMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCommunityMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCountMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCouponApplyCateMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCouponApplyItemMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopCouponMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerApplyMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerBankMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerCapitalMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerOrderMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRecordMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerRefereeMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerSettingMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerUserMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopDealerWithdrawMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopExpressMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopExpressTemplateDetailMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopExpressTemplateMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGiftMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsCategoryMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsCommentMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsIncomeConfigMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsLogMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsRelationMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsRoleCommissionMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsSkuMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopGoodsSpecMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopMerchantAccountMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopMerchantApplyMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopMerchantMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopMerchantTypeMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderDeliveryGoodsMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderDeliveryMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderExtractMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderGoodsMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderInfoLogMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderInfoMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopOrderMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopRechargeOrderMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopSpecMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopSpecValueMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopSplashMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreFenceMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreRiderMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreUserMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopStoreWarehouseMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserAddressMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserBalanceLogMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserCollectionMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserCouponMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopUserRefereeMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/ShopWechatDepositMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/UserCardStatsMapper.java
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopArticleMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopBrandMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCartMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCategoryMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopChatConversationMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopChatMessageMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCommissionRoleMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCommunityMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCountMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCouponApplyCateMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCouponApplyItemMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopCouponMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerApplyMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerBankMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerCapitalMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerOrderMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRecordMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerRefereeMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerSettingMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerUserMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopDealerWithdrawMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopExpressMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopExpressTemplateDetailMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopExpressTemplateMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGiftMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsCategoryMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsCommentMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsIncomeConfigMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsLogMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsRelationMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsRoleCommissionMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsSkuMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopGoodsSpecMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopMerchantAccountMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopMerchantApplyMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopMerchantMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopMerchantTypeMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderDeliveryGoodsMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderDeliveryMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderExtractMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderGoodsMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderInfoLogMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderInfoMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopOrderMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopRechargeOrderMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopSpecMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopSpecValueMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopSplashMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreFenceMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreRiderMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreUserMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopStoreWarehouseMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserAddressMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserBalanceLogMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserCollectionMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserCouponMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopUserRefereeMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/ShopWechatDepositMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/mapper/xml/UserCardStatsMapper.xml
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopArticleParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopBrandParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCartParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCategoryParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopChatConversationParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopChatMessageParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCommissionRoleParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCommunityParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCountParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCouponApplyCateParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCouponApplyItemParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopCouponParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerApplyImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerApplyParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerBankParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerCapitalParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerOrderImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerOrderParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerRecordParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerRefereeParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerSettingParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerSettingSaveParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerUserImportParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerUserParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopDealerWithdrawParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopExpressParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopExpressTemplateDetailParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopExpressTemplateParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGiftParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsCategoryParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsCommentParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsIncomeConfigParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsLogParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsRelationParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsRoleCommissionParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsSkuParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopGoodsSpecParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopMerchantAccountParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopMerchantApplyParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopMerchantParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopMerchantTypeParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderDeliveryGoodsParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderDeliveryParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderExtractParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderGoodsParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderInfoLogParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderInfoParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopOrderParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopRechargeOrderParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopSpecParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopSpecValueParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopSplashParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreFenceParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreRiderParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreUserParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopStoreWarehouseParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserAddressParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserBalanceLogParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserCollectionParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserCouponParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopUserRefereeParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/param/ShopWechatDepositParam.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/CouponStatusService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/KuaiDi100.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/OrderBusinessService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/OrderCancelService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopArticleService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopBrandService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCartService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCategoryService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopChatConversationService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopChatMessageService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCommissionRoleService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCommunityService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCountService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCouponApplyCateService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCouponApplyItemService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopCouponService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerApplyService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerBankService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerCapitalService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerOrderService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerRecordService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerRefereeService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerSettingService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerUserService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopDealerWithdrawService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopExpressService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopExpressTemplateDetailService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopExpressTemplateService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGiftService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsCategoryService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsCommentService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsIncomeConfigService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsLogService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsRelationService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsRoleCommissionService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsSkuService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopGoodsSpecService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopMerchantAccountService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopMerchantApplyService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopMerchantService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopMerchantTypeService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderDeliveryGoodsService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderDeliveryService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderExtractService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderGoodsService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderInfoLogService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderInfoService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopOrderUpdate10550Service.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopRechargeOrderService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopSpecService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopSpecValueService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopSplashService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreFenceService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreRiderService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreUserService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopStoreWarehouseService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserAddressService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserBalanceLogService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserCollectionService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserCouponService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserRefereeService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopUserService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopWebsiteService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopWechatDepositService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/ShopWechatShippingSyncService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/UserBalanceLogService.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/CouponStatusServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/KuaiDi100Impl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/OrderCancelServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopArticleServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopBrandServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCartServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCategoryServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopChatConversationServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopChatMessageServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCommissionRoleServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCommunityServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCountServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCouponApplyCateServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCouponApplyItemServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopCouponServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerApplyServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerBankServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerCapitalServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerOrderServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerRecordServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerRefereeServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerSettingServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerUserServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopDealerWithdrawServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopExpressServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopExpressTemplateDetailServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopExpressTemplateServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGiftServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsCategoryServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsCommentServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsIncomeConfigServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsLogServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsRelationServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsRoleCommissionServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsSkuServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopGoodsSpecServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopMerchantAccountServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopMerchantApplyServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopMerchantServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopMerchantTypeServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderDeliveryGoodsServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderDeliveryServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderExtractServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderGoodsServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderInfoLogServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderInfoServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopOrderUpdate10550ServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopRechargeOrderServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopSpecServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopSpecValueServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopSplashServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreFenceServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreRiderServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreUserServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopStoreWarehouseServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserAddressServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserBalanceLogServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserCollectionServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserCouponServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserRefereeServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopUserServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopWebsiteServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopWechatDepositServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/service/impl/ShopWechatShippingSyncServiceImpl.java
create mode 100644 src/main/java/com/gxwebsoft/shop/task/CouponExpireTask.java
create mode 100644 src/main/java/com/gxwebsoft/shop/task/OrderAutoCancelTask.java
create mode 100644 src/main/java/com/gxwebsoft/shop/task/RefundStatusQueryTask.java
create mode 100644 src/main/java/com/gxwebsoft/shop/util/GeoFenceUtil.java
create mode 100644 src/main/java/com/gxwebsoft/shop/util/UpstreamUserFinder.java
create mode 100644 src/main/java/com/gxwebsoft/shop/vo/MenuVo.java
create mode 100644 src/main/java/com/gxwebsoft/shop/vo/ShopVo.java
create mode 100644 src/main/java/com/gxwebsoft/shop/vo/UserTicketSummaryVo.java
create mode 100644 src/main/java/lib/commons-codec-1.9.jar
create mode 100644 src/main/java/lib/json-20200518.jar
create mode 100644 src/main/resources/application-cms.yml
create mode 100644 src/main/resources/application-dev.yml
create mode 100644 src/main/resources/application-prod.yml
create mode 100644 src/main/resources/application-yd.yml
create mode 100644 src/main/resources/application.yml
create mode 100644 src/test/java/com/gxwebsoft/RedisTest.java
create mode 100644 src/test/java/com/gxwebsoft/TestMain.java
create mode 100644 src/test/java/com/gxwebsoft/WebSoftApplicationTests.java
create mode 100644 src/test/java/com/gxwebsoft/WxDev.java
create mode 100644 src/test/java/com/gxwebsoft/bszx/BszxOrderTotalTest.java
create mode 100644 src/test/java/com/gxwebsoft/cms/service/impl/CmsWebsiteServiceImplCacheTest.java
create mode 100644 src/test/java/com/gxwebsoft/common/core/controller/QrCodeControllerTest.java
create mode 100644 src/test/java/com/gxwebsoft/common/core/utils/EncryptedQrCodeUtilTest.java
create mode 100644 src/test/java/com/gxwebsoft/common/system/controller/WxLoginControllerTest.java
create mode 100644 src/test/java/com/gxwebsoft/common/system/service/UserIgnoreTenantTest.java
create mode 100644 src/test/java/com/gxwebsoft/common/system/service/WeixinConfigTest.java
create mode 100644 src/test/java/com/gxwebsoft/config/MqttPropertiesTest.java
create mode 100644 src/test/java/com/gxwebsoft/config/ServerUrlConfigTest.java
create mode 100644 src/test/java/com/gxwebsoft/generator/ShopGenerator.java
create mode 100644 src/test/java/com/gxwebsoft/generator/engine/BeetlTemplateEnginePlus.java
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/add.config.ts.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/add.tsx.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/columns.config.vue.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/components.edit.vue.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/components.search.vue.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/controller.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/entity.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/index.config.ts.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/index.ts.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/index.ts.uniapp.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/index.tsx.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/index.vue.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/mapper.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/mapper.xml.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/model.ts.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/model.ts.uniapp.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/param.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/service.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/serviceImpl.java.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/smart-columns.vue.btl
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/table-columns-config.js
create mode 100644 src/test/java/com/gxwebsoft/generator/templates/table-with-column-settings.vue
create mode 100644 src/test/java/com/gxwebsoft/glt/AutoReleaseTestApplication.java
create mode 100644 src/test/java/com/gxwebsoft/glt/service/GltUserTicketAutoReleaseServiceTest.java
create mode 100644 src/test/java/com/gxwebsoft/house/HousePosterTest.java
create mode 100644 src/test/java/com/gxwebsoft/house/util/SortSceneUtilManualTest.java
create mode 100644 src/test/java/com/gxwebsoft/house/util/SortSceneUtilTest.java
create mode 100644 src/test/java/com/gxwebsoft/payment/enums/PaymentTypeTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/CertificatePathTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/MultiSpecOrderTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/OrderBusinessServiceTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/OrderTotalTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/OrderValidationTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/WechatPayDescriptionTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/service/CouponStatusServiceTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/service/ShopGoodsSalesTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/service/ShopOrderGoodsIgnoreTenantTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/service/ShopOrderUpdate10550ServiceTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/util/GeoFenceUtilTest.java
create mode 100644 src/test/java/com/gxwebsoft/shop/util/UpstreamUserFinderTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/CertificatePathConcatenationTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/CertificatePathFixTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/CertificateTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/EnvironmentBasedCertificateTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/NotificationCertificateFixTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/WechatPayConfigTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/WechatPayConfigValidationTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/WechatPayPathTest.java
create mode 100644 src/test/java/com/gxwebsoft/test/WechatPayPublicKeyTest.java
create mode 100644 src/test/resources/schema-auto-release-h2.sql
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..512842c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,45 @@
+HELP.md
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**
+!**/src/test/**
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+
+### VS Code ###
+.vscode/
+/cert/
+/src/main/resources/dev/
+
+### macOS ###
+.DS_Store
+.DS_Store?
+._*
+.Spotlight-V100
+.Trashes
+ehthumbs.db
+Thumbs.db
+/file/
+/websoft-modules.log
+/tmp/
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..84ae9f9
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,51 @@
+# 使用更小的 Alpine Linux + OpenJDK 17 镜像
+FROM openjdk:17-jdk-alpine
+
+# 设置工作目录
+WORKDIR /app
+
+# 创建日志目录
+RUN mkdir -p /app/logs
+
+# 创建上传文件目录
+RUN mkdir -p /app/uploads
+
+# 安装必要工具和中文字体支持
+# fontconfig: 字体配置库
+# ttf-dejavu: 包含DejaVu字体,支持中文显示
+# wqy-zenhei: 文泉驿正黑字体,开源中文字体
+RUN apk add --no-cache wget fontconfig ttf-dejavu && \
+ # 下载并安装文泉驿微米黑字体(更好的中文支持)
+ wget -O /tmp/wqy-microhei.ttc https://github.com/anthonyfok/fonts-wqy-microhei/raw/master/wqy-microhei.ttc && \
+ mkdir -p /usr/share/fonts/truetype/wqy && \
+ mv /tmp/wqy-microhei.ttc /usr/share/fonts/truetype/wqy/ && \
+ # 刷新字体缓存
+ fc-cache -fv && \
+ # 创建应用用户(安全考虑)
+ addgroup -g 1000 appgroup && \
+ adduser -D -u 1000 -G appgroup appuser
+
+# 复制jar包到容器
+COPY target/*.jar app.jar
+
+# 设置目录权限
+RUN chown -R appuser:appgroup /app
+
+# 切换到应用用户
+USER appuser
+
+# 暴露端口
+EXPOSE 9200
+
+# 设置JVM参数
+ENV JAVA_OPTS="-Xms512m -Xmx1024m -Djava.security.egd=file:/dev/./urandom"
+
+# 设置Spring Profile
+ENV SPRING_PROFILES_ACTIVE=prod
+
+# 健康检查
+HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
+ CMD wget --no-verbose --tries=1 --spider http://localhost:9200/actuator/health || exit 1
+
+# 启动应用
+ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..ef5a814
--- /dev/null
+++ b/README.md
@@ -0,0 +1,286 @@
+
+
🚀 WebSoft API
+
基于 Spring Boot + MyBatis Plus 的企业级后端API服务
+
+
+
+
+
+
+
+
+
+
+
+## 📖 项目简介
+
+WebSoft API 是一个基于 **Spring Boot + MyBatis Plus** 构建的现代化企业级后端API服务,采用最新的Java技术栈:
+
+- **核心框架**:Spring Boot 2.5.4 + Spring Security + Spring AOP
+- **数据访问**:MyBatis Plus 3.4.3 + Druid 连接池
+- **数据库**:MySQL + Redis
+- **文档工具**:Swagger 3.0 + Knife4j
+- **工具库**:Hutool、Lombok、FastJSON
+
+
+
+## 项目演示
+| 后台管理系统 | https://mp.websoft.top |
+|--------|-------------------------------------------------------------------------------------------------------------------------------------|
+| 测试账号 | 13800010123,123456
+| 正式账号 | [立即注册](https://mp.websoft.top/register/?inviteCode=github) |
+| 关注公众号 |  |
+
+
+
+
+## 🛠️ 技术栈
+
+### 核心框架
+| 技术 | 版本 | 说明 |
+|------|------|------|
+| Java | 1.8+ | 编程语言 |
+| Spring Boot | 2.5.4 | 微服务框架 |
+| Spring Security | 5.5.x | 安全框架 |
+| MyBatis Plus | 3.4.3 | ORM框架 |
+| MySQL | 8.0+ | 关系型数据库 |
+| Redis | 6.0+ | 缓存数据库 |
+| Druid | 1.2.6 | 数据库连接池 |
+
+### 功能组件
+- **Swagger 3.0 + Knife4j** - API文档生成与测试
+- **JWT** - 用户认证与授权
+- **Hutool** - Java工具类库
+- **EasyPOI** - Excel文件处理
+- **阿里云OSS** - 对象存储服务
+- **微信支付/支付宝** - 支付集成
+- **Socket.IO** - 实时通信
+- **MQTT** - 物联网消息传输
+
+## 📋 环境要求
+
+### 基础环境
+- ☕ **Java 1.8+**
+- 🗄️ **MySQL 8.0+**
+- 🔴 **Redis 6.0+**
+- 📦 **Maven 3.6+**
+
+### 开发工具
+- **推荐**:IntelliJ IDEA / Eclipse
+- **插件**:Lombok Plugin、MyBatis Plugin
+
+## 🚀 快速开始
+
+### 1. 克隆项目
+```bash
+git clone https://github.com/websoft-top/mp-java.git
+cd mp-java
+```
+
+### 2. 数据库配置
+```sql
+-- 创建数据库
+CREATE DATABASE websoft_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
+
+-- 导入数据库脚本(如果有的话)
+-- source /path/to/database.sql
+```
+
+### 3. 配置文件
+编辑 `src/main/resources/application-dev.yml` 文件,配置数据库连接:
+```yaml
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/websoft_db?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8
+ username: your_username
+ password: your_password
+ redis:
+ host: localhost
+ port: 6379
+ password: your_redis_password
+```
+
+### 4. 启动项目
+```bash
+# 使用 Maven 启动
+mvn spring-boot:run
+
+# 或者使用 IDE 直接运行 WebSoftApplication.java
+```
+
+访问 `http://localhost:9200` 即可看到API服务。
+
+### 5. API文档
+启动项目后,访问以下地址查看API文档:
+- Swagger UI: `http://localhost:9200/swagger-ui/index.html`
+- Knife4j: `http://localhost:9200/doc.html`
+
+## ⚙️ 配置说明
+
+### 数据库配置
+在 `application-dev.yml` 中配置数据库连接:
+```yaml
+spring:
+ datasource:
+ url: jdbc:mysql://localhost:3306/websoft_db
+ username: root
+ password: your_password
+ driver-class-name: com.mysql.cj.jdbc.Driver
+```
+
+### Redis配置
+```yaml
+spring:
+ redis:
+ host: localhost
+ port: 6379
+ password: your_redis_password
+ database: 0
+```
+
+### 阿里云OSS配置
+```yaml
+config:
+ endpoint: https://oss-cn-shenzhen.aliyuncs.com
+ accessKeyId: your_access_key_id
+ accessKeySecret: your_access_key_secret
+ bucketName: your_bucket_name
+ bucketDomain: https://your-domain.com
+```
+
+### 其他配置
+- **JWT密钥**:`config.token-key` 用于JWT令牌加密
+- **文件上传路径**:`config.upload-path` 本地文件存储路径
+- **邮件服务**:配置SMTP服务器用于发送邮件
+
+## 🎯 核心功能
+
+### 🔐 用户认证与授权
+- **JWT认证**:基于JSON Web Token的用户认证
+- **Spring Security**:完整的安全框架集成
+- **角色权限**:基于RBAC的权限控制
+- **图形验证码**:防止恶意登录
+
+### 📝 内容管理系统(CMS)
+- **文章管理**:支持富文本内容管理
+- **媒体文件**:图片/视频文件上传与管理
+- **分类管理**:内容分类与标签管理
+- **SEO优化**:搜索引擎优化支持
+
+### 🛒 电商系统
+- **商品管理**:商品信息、规格、库存管理
+- **订单系统**:完整的订单流程管理
+- **支付集成**:支持微信支付、支付宝
+- **物流跟踪**:快递100物流查询集成
+
+### 🔧 系统管理
+- **用户管理**:用户信息维护与管理
+- **系统配置**:动态配置管理
+- **日志监控**:系统操作日志记录
+- **数据备份**:数据库备份与恢复
+
+### 📊 数据分析
+- **统计报表**:业务数据统计分析
+- **图表展示**:数据可视化展示
+- **导出功能**:Excel数据导出
+- **实时监控**:系统性能监控
+
+## 🏗️ 项目结构
+
+```
+src/main/java/com/gxwebsoft/
+├── WebSoftApplication.java # 启动类
+├── cms/ # 内容管理模块
+│ ├── controller/ # 控制器层
+│ ├── service/ # 业务逻辑层
+│ ├── mapper/ # 数据访问层
+│ └── entity/ # 实体类
+├── shop/ # 商城模块
+│ ├── controller/
+│ ├── service/
+│ ├── mapper/
+│ └── entity/
+├── common/ # 公共模块
+│ ├── core/ # 核心配置
+│ ├── utils/ # 工具类
+│ └── exception/ # 异常处理
+└── resources/
+ ├── application.yml # 主配置文件
+ ├── application-dev.yml # 开发环境配置
+ └── application-prod.yml# 生产环境配置
+```
+
+## 🔧 开发规范
+
+### 代码结构
+- **Controller层**:处理HTTP请求,参数验证
+- **Service层**:业务逻辑处理,事务管理
+- **Mapper层**:数据访问,SQL映射
+- **Entity层**:数据实体,数据库表映射
+
+### 命名规范
+- **类名**:使用大驼峰命名法(PascalCase)
+- **方法名**:使用小驼峰命名法(camelCase)
+- **常量**:使用全大写,下划线分隔
+- **包名**:使用小写字母,点分隔
+
+## 📚 API文档
+
+项目集成了Swagger和Knife4j,提供完整的API文档:
+
+### 访问地址
+- **Swagger UI**: `http://localhost:9200/swagger-ui/index.html`
+- **Knife4j**: `http://localhost:9200/doc.html`
+
+### 主要接口模块
+- **用户认证**: `/api/auth/**` - 登录、注册、权限验证
+- **用户管理**: `/api/user/**` - 用户CRUD操作
+- **内容管理**: `/api/cms/**` - 文章、媒体文件管理
+- **商城管理**: `/api/shop/**` - 商品、订单管理
+- **系统管理**: `/api/system/**` - 系统配置、日志管理
+
+## 🚀 部署指南
+
+### 开发环境部署
+```bash
+# 1. 启动MySQL和Redis服务
+# 2. 创建数据库并导入初始数据
+# 3. 修改配置文件
+# 4. 启动应用
+mvn spring-boot:run
+```
+
+### 生产环境部署
+```bash
+# 1. 打包应用
+mvn clean package -Dmaven.test.skip=true
+
+# 2. 运行jar包
+java -jar target/com-gxwebsoft-modules-1.5.0.jar --spring.profiles.active=prod
+
+# 3. 使用Docker部署(可选)
+docker build -t websoft-api .
+docker run -d -p 9200:9200 websoft-api
+```
+
+## 🤝 贡献指南
+
+1. Fork 本仓库
+2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
+3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
+4. 推送到分支 (`git push origin feature/AmazingFeature`)
+5. 打开 Pull Request
+
+## 📄 许可证
+
+本项目采用 MIT 许可证 - 查看 [LICENSE](LICENSE) 文件了解详情
+
+## 📞 联系我们
+
+- 官网:https://websoft.top
+- 邮箱:170083662@qq.top
+- QQ群:479713884
+
+---
+
+⭐ 如果这个项目对您有帮助,请给我们一个星标!
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..ea6a7d7
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,38 @@
+version: '3.8'
+
+services:
+ # 应用服务
+ cms-api:
+ build: .
+ container_name: cms-api
+ ports:
+ - "9200:9200"
+ environment:
+ - SPRING_PROFILES_ACTIVE=prod
+ - JAVA_OPTS=-Xms512m -Xmx1024m
+ volumes:
+ # 证书挂载卷 - 将宿主机证书目录挂载到容器
+ - ./certs:/app/certs:ro
+ # 日志挂载卷
+ - ./logs:/app/logs
+ # 上传文件挂载卷
+ - ./uploads:/app/uploads
+ networks:
+ - cms-network
+ restart: unless-stopped
+ healthcheck:
+ test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:9200/actuator/health"]
+ interval: 30s
+ timeout: 10s
+ retries: 3
+ start_period: 60s
+
+networks:
+ cms-network:
+ driver: bridge
+
+volumes:
+ mysql_data:
+ driver: local
+ redis_data:
+ driver: local
diff --git a/docker-deploy-guide.md b/docker-deploy-guide.md
new file mode 100644
index 0000000..4961d64
--- /dev/null
+++ b/docker-deploy-guide.md
@@ -0,0 +1,188 @@
+# Docker容器化部署指南
+
+## 支付证书问题解决方案
+
+本项目已经解决了Docker容器中支付证书路径失效的问题,支持多种证书加载方式。
+
+## 目录结构
+
+```
+project-root/
+├── Dockerfile
+├── docker-compose.yml
+├── certs/ # 证书目录(需要手动创建)
+│ ├── wechat/ # 微信支付证书
+│ │ ├── apiclient_key.pem
+│ │ ├── apiclient_cert.pem
+│ │ └── wechatpay_cert.pem
+│ └── alipay/ # 支付宝证书
+│ ├── app_private_key.pem
+│ ├── appCertPublicKey.crt
+│ ├── alipayCertPublicKey.crt
+│ └── alipayRootCert.crt
+├── logs/ # 日志目录
+├── uploads/ # 上传文件目录
+└── src/
+```
+
+## 部署步骤
+
+### 1. 准备证书文件
+
+创建证书目录并放置证书文件:
+
+```bash
+# 创建证书目录
+mkdir -p certs/wechat
+mkdir -p certs/alipay
+
+# 复制微信支付证书到对应目录
+cp /path/to/your/apiclient_key.pem certs/wechat/
+cp /path/to/your/apiclient_cert.pem certs/wechat/
+cp /path/to/your/wechatpay_cert.pem certs/wechat/
+
+# 复制支付宝证书到对应目录
+cp /path/to/your/app_private_key.pem certs/alipay/
+cp /path/to/your/appCertPublicKey.crt certs/alipay/
+cp /path/to/your/alipayCertPublicKey.crt certs/alipay/
+cp /path/to/your/alipayRootCert.crt certs/alipay/
+
+# 设置证书文件权限(只读)
+chmod -R 444 certs/
+```
+
+### 2. 配置环境变量
+
+创建 `.env` 文件(可选):
+
+```bash
+# 应用配置
+SPRING_PROFILES_ACTIVE=prod
+JAVA_OPTS=-Xms512m -Xmx1024m
+
+# 数据库配置
+MYSQL_ROOT_PASSWORD=root123456
+MYSQL_DATABASE=modules
+MYSQL_USER=modules
+MYSQL_PASSWORD=8YdLnk7KsPAyDXGA
+
+# Redis配置
+REDIS_PASSWORD=redis_WSDb88
+```
+
+### 3. 构建和启动
+
+```bash
+# 构建应用
+mvn clean package -DskipTests
+
+# 启动所有服务
+docker-compose up -d
+
+# 查看服务状态
+docker-compose ps
+
+# 查看应用日志
+docker-compose logs -f cms-app
+```
+
+### 4. 验证部署
+
+```bash
+# 检查应用健康状态
+curl http://localhost:9200/actuator/health
+
+# 检查证书是否正确加载
+docker exec cms-java-app ls -la /app/certs/
+```
+
+## 证书加载模式
+
+### 开发环境 (CLASSPATH)
+- 证书文件放在 `src/main/resources/certs/` 目录下
+- 打包时会包含在jar包中
+- 适合开发和测试环境
+
+### 生产环境 (VOLUME)
+- 证书文件通过Docker挂载卷加载
+- 证书文件在宿主机上,挂载到容器的 `/app/certs` 目录
+- 支持证书文件的动态更新(重启容器后生效)
+
+### 文件系统模式 (FILESYSTEM)
+- 直接从文件系统路径加载证书
+- 适合传统部署方式
+
+## 配置说明
+
+### application.yml 配置
+
+```yaml
+certificate:
+ load-mode: VOLUME # 证书加载模式
+ cert-root-path: /app/certs # 证书根目录
+
+ wechat-pay:
+ dev:
+ api-v3-key: "your-api-v3-key"
+ private-key-file: "apiclient_key.pem"
+ apiclient-cert-file: "apiclient_cert.pem"
+ wechatpay-cert-file: "wechatpay_cert.pem"
+```
+
+### 环境特定配置
+
+- **开发环境**: `application-dev.yml` - 使用CLASSPATH模式
+- **生产环境**: `application-prod.yml` - 使用VOLUME模式
+
+## 故障排除
+
+### 1. 证书文件找不到
+
+```bash
+# 检查证书文件是否存在
+docker exec cms-java-app ls -la /app/certs/
+
+# 检查文件权限
+docker exec cms-java-app ls -la /app/certs/wechat/
+```
+
+### 2. 支付接口调用失败
+
+```bash
+# 查看应用日志
+docker-compose logs cms-app | grep -i cert
+
+# 检查证书配置
+docker exec cms-java-app cat /app/application.yml | grep -A 10 certificate
+```
+
+### 3. 容器启动失败
+
+```bash
+# 查看详细错误信息
+docker-compose logs cms-app
+
+# 检查容器状态
+docker-compose ps
+```
+
+## 安全建议
+
+1. **证书文件权限**: 设置为只读权限 (444)
+2. **证书目录权限**: 限制访问权限
+3. **敏感信息**: 使用环境变量或Docker secrets管理敏感配置
+4. **网络安全**: 使用内部网络,限制端口暴露
+
+## 更新证书
+
+1. 停止应用容器:`docker-compose stop cms-app`
+2. 更新证书文件到 `certs/` 目录
+3. 重启应用容器:`docker-compose start cms-app`
+
+## 监控和日志
+
+- 应用日志:`./logs/` 目录
+- 容器日志:`docker-compose logs`
+- 健康检查:访问 `/actuator/health` 端点
+
+通过以上配置,你的应用在Docker容器中就能正确加载支付证书了!
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..320011d
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,427 @@
+
+
+ 4.0.0
+
+ com.gxwebsoft
+ mp-api
+ 1.5.0
+
+ mp-api
+ WebSoftApi project for Spring Boot
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.7.18
+
+
+
+
+ 17
+ UTF-8
+ UTF-8
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-devtools
+ runtime
+ true
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.h2database
+ h2
+ test
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+
+
+ com.fasterxml.jackson.datatype
+ jackson-datatype-jsr310
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-aop
+
+
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+
+
+ org.projectlombok
+ lombok
+ true
+
+
+
+
+ com.mysql
+ mysql-connector-j
+ runtime
+
+
+
+
+ com.alibaba
+ druid-spring-boot-starter
+ 1.2.20
+
+
+
+
+ com.baomidou
+ mybatis-plus-boot-starter
+ 3.4.3.3
+
+
+
+
+ com.github.yulichang
+ mybatis-plus-join-boot-starter
+ 1.4.5
+
+
+
+
+ com.baomidou
+ mybatis-plus-generator
+ 3.4.1
+
+
+
+
+ cn.hutool
+ hutool-core
+ 5.8.25
+
+
+ cn.hutool
+ hutool-extra
+ 5.8.25
+
+
+ cn.hutool
+ hutool-http
+ 5.8.25
+
+
+ cn.hutool
+ hutool-crypto
+ 5.8.25
+
+
+
+
+ cn.afterturn
+ easypoi-base
+ 4.4.0
+
+
+
+
+ org.apache.tika
+ tika-core
+ 2.9.1
+
+
+
+
+ com.github.livesense
+ jodconverter-core
+ 1.0.5
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
+
+
+
+ com.ibeetl
+ beetl
+ 3.15.10.RELEASE
+
+
+
+
+ org.springdoc
+ springdoc-openapi-ui
+ 1.7.0
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-security
+
+
+
+
+ io.jsonwebtoken
+ jjwt-api
+ 0.11.5
+
+
+ io.jsonwebtoken
+ jjwt-impl
+ 0.11.5
+ runtime
+
+
+ io.jsonwebtoken
+ jjwt-jackson
+ 0.11.5
+ runtime
+
+
+
+
+ com.github.whvcse
+ easy-captcha
+ 1.6.2
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-data-redis
+
+
+
+
+ com.aliyun
+ aliyun-java-sdk-core
+ 4.4.3
+
+
+
+ com.alipay.sdk
+ alipay-sdk-java
+ 4.35.0.ALL
+
+
+
+ org.bouncycastle
+ bcprov-jdk18on
+ 1.77
+
+
+
+ commons-logging
+ commons-logging
+ 1.3.0
+
+
+
+ com.alibaba
+ fastjson
+ 2.0.43
+
+
+
+
+ com.google.zxing
+ core
+ 3.5.2
+
+
+
+ com.google.code.gson
+ gson
+ 2.10.1
+
+
+
+ com.vaadin.external.google
+ android-json
+ 0.0.20131108.vaadin1
+ compile
+
+
+
+
+ com.corundumstudio.socketio
+ netty-socketio
+ 2.0.2
+
+
+
+
+ com.github.wechatpay-apiv3
+ wechatpay-java
+ 0.2.17
+
+
+
+
+ org.springframework.integration
+ spring-integration-mqtt
+
+
+ org.eclipse.paho
+ org.eclipse.paho.client.mqttv3
+ 1.2.0
+
+
+
+ com.github.binarywang
+ weixin-java-miniapp
+ 4.6.0
+
+
+
+ com.github.binarywang
+ weixin-java-mp
+ 4.6.0
+
+
+
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.17.4
+
+
+
+ com.github.kuaidi100-api
+ sdk
+ 1.0.13
+
+
+
+
+ com.nuonuo
+ open-sdk
+ 1.0.5.2
+
+
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-spring-boot-starter
+ 4.3.0
+
+
+
+ com.belerweb
+ pinyin4j
+ 2.5.1
+
+
+
+
+ com.aliyun
+ alimt20181012
+ 1.0.3
+
+
+ com.aliyun
+ tea-openapi
+ 0.2.5
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.12.0
+
+
+
+ com.github.ben-manes.caffeine
+ caffeine
+ 3.1.8
+
+
+
+
+ com.aliyun
+ bailian20231229
+ 2.4.0
+
+
+
+ com.freewayso
+ image-combiner
+ 2.6.9
+
+
+
+ org.springframework.boot
+ spring-boot-starter-websocket
+
+
+
+
+
+
+
+
+ src/main/java
+
+ **/*Mapper.xml
+
+
+
+ src/main/resources
+
+ **
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+ org.project-lombok
+ lombok
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 17
+ 17
+
+
+
+
+
+
+
+ aliYunMaven
+ https://maven.aliyun.com/repository/public
+
+
+
+
diff --git a/src/main/java/com/gxwebsoft/WebSoftApplication.java b/src/main/java/com/gxwebsoft/WebSoftApplication.java
new file mode 100644
index 0000000..1a7fa35
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/WebSoftApplication.java
@@ -0,0 +1,31 @@
+package com.gxwebsoft;
+
+import com.gxwebsoft.common.core.config.ConfigProperties;
+import com.gxwebsoft.common.core.config.MqttProperties;
+import org.mybatis.spring.annotation.MapperScan;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import org.springframework.web.socket.config.annotation.EnableWebSocket;
+
+/**
+ * 启动类
+ * Created by WebSoft on 2018-02-22 11:29:03
+ */
+@EnableAsync
+@EnableTransactionManagement
+@MapperScan("com.gxwebsoft.**.mapper")
+@EnableConfigurationProperties({ConfigProperties.class, MqttProperties.class})
+@SpringBootApplication
+@EnableScheduling
+@EnableWebSocket
+public class WebSoftApplication {
+
+ public static void main(String[] args) {
+ SpringApplication.run(WebSoftApplication.class, args);
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/controller/QrLoginController.java b/src/main/java/com/gxwebsoft/auto/controller/QrLoginController.java
new file mode 100644
index 0000000..d296d82
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/controller/QrLoginController.java
@@ -0,0 +1,104 @@
+package com.gxwebsoft.auto.controller;
+
+import com.gxwebsoft.auto.dto.QrLoginConfirmRequest;
+import com.gxwebsoft.auto.dto.QrLoginGenerateResponse;
+import com.gxwebsoft.auto.dto.QrLoginStatusResponse;
+import com.gxwebsoft.auto.service.QrLoginService;
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.common.core.web.ApiResult;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+
+/**
+ * 认证模块
+ *
+ * @author 科技小王子
+ * @since 2025-03-06 22:50:25
+ */
+@Tag(name = "认证模块")
+@RestController
+@RequestMapping("/api/qr-login")
+public class QrLoginController extends BaseController {
+
+ @Autowired
+ private QrLoginService qrLoginService;
+
+ /**
+ * 生成扫码登录token
+ */
+ @Operation(summary = "生成扫码登录token")
+ @PostMapping("/generate")
+ public ApiResult> generateQrLoginToken() {
+ try {
+ QrLoginGenerateResponse response = qrLoginService.generateQrLoginToken();
+ return success("生成成功", response);
+ } catch (Exception e) {
+ return fail(e.getMessage());
+ }
+ }
+
+ /**
+ * 检查扫码登录状态
+ */
+ @Operation(summary = "检查扫码登录状态")
+ @GetMapping("/status/{token}")
+ public ApiResult> checkQrLoginStatus(
+ @Parameter(description = "扫码登录token") @PathVariable String token) {
+ try {
+ QrLoginStatusResponse response = qrLoginService.checkQrLoginStatus(token);
+ return success("查询成功", response);
+ } catch (Exception e) {
+ return fail(e.getMessage());
+ }
+ }
+
+ /**
+ * 确认扫码登录
+ */
+ @Operation(summary = "确认扫码登录")
+ @PostMapping("/confirm")
+ public ApiResult> confirmQrLogin(@Valid @RequestBody QrLoginConfirmRequest request) {
+ try {
+ QrLoginStatusResponse response = qrLoginService.confirmQrLogin(request);
+ return success("确认成功", response);
+ } catch (Exception e) {
+ return fail(e.getMessage());
+ }
+ }
+
+ /**
+ * 扫码操作(可选接口,用于移动端扫码后更新状态)
+ */
+ @Operation(summary = "扫码操作")
+ @PostMapping("/scan/{token}")
+ public ApiResult> scanQrCode(@Parameter(description = "扫码登录token") @PathVariable String token) {
+ try {
+ boolean result = qrLoginService.scanQrCode(token);
+ return success("操作成功", result);
+ } catch (Exception e) {
+ return fail(e.getMessage());
+ }
+ }
+
+ /**
+ * 微信小程序扫码登录确认(便捷接口)
+ */
+ @Operation(summary = "微信小程序扫码登录确认")
+ @PostMapping("/wechat-confirm")
+ public ApiResult> wechatMiniProgramConfirm(@Valid @RequestBody QrLoginConfirmRequest request) {
+ try {
+ // 设置平台为微信小程序
+ request.setPlatform("miniprogram");
+ QrLoginStatusResponse response = qrLoginService.confirmQrLogin(request);
+ return success("微信小程序登录确认成功", response);
+ } catch (Exception e) {
+ return fail(e.getMessage());
+ }
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/dto/QrLoginConfirmRequest.java b/src/main/java/com/gxwebsoft/auto/dto/QrLoginConfirmRequest.java
new file mode 100644
index 0000000..f3b423e
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/dto/QrLoginConfirmRequest.java
@@ -0,0 +1,50 @@
+package com.gxwebsoft.auto.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+
+/**
+ * 扫码登录确认请求
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+@Data
+@Schema(description = "扫码登录确认请求")
+public class QrLoginConfirmRequest {
+
+ @Schema(description = "扫码登录token")
+ @NotBlank(message = "token不能为空")
+ private String token;
+
+ @Schema(description = "用户ID")
+ private Integer userId;
+
+ @Schema(description = "登录平台: web-网页端, app-移动应用, miniprogram-微信小程序")
+ private String platform;
+
+ @Schema(description = "微信小程序相关信息")
+ private WechatMiniProgramInfo wechatInfo;
+
+ /**
+ * 微信小程序信息
+ */
+ @Data
+ @Schema(description = "微信小程序信息")
+ public static class WechatMiniProgramInfo {
+ @Schema(description = "微信openid")
+ private String openid;
+
+ @Schema(description = "微信unionid")
+ private String unionid;
+
+ @Schema(description = "微信昵称")
+ private String nickname;
+
+ @Schema(description = "微信头像")
+ private String avatar;
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/dto/QrLoginData.java b/src/main/java/com/gxwebsoft/auto/dto/QrLoginData.java
new file mode 100644
index 0000000..563bf1d
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/dto/QrLoginData.java
@@ -0,0 +1,55 @@
+package com.gxwebsoft.auto.dto;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.time.LocalDateTime;
+
+/**
+ * 扫码登录数据模型
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+public class QrLoginData {
+
+ /**
+ * 扫码登录token
+ */
+ private String token;
+
+ /**
+ * 状态: pending-等待扫码, scanned-已扫码, confirmed-已确认, expired-已过期
+ */
+ private String status;
+
+ /**
+ * 用户ID(扫码确认后设置)
+ */
+ private Integer userId;
+
+ /**
+ * 用户名(扫码确认后设置)
+ */
+ private String username;
+
+ /**
+ * 创建时间
+ */
+ private LocalDateTime createTime;
+
+ /**
+ * 过期时间
+ */
+ private LocalDateTime expireTime;
+
+ /**
+ * JWT访问令牌(确认后生成)
+ */
+ private String accessToken;
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/dto/QrLoginGenerateResponse.java b/src/main/java/com/gxwebsoft/auto/dto/QrLoginGenerateResponse.java
new file mode 100644
index 0000000..f0b69e5
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/dto/QrLoginGenerateResponse.java
@@ -0,0 +1,29 @@
+package com.gxwebsoft.auto.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 扫码登录生成响应
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(description = "扫码登录生成响应")
+public class QrLoginGenerateResponse {
+
+ @Schema(description = "扫码登录token")
+ private String token;
+
+ @Schema(description = "二维码内容")
+ private String qrCode;
+
+ @Schema(description = "过期时间(秒)")
+ private Long expiresIn;
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/dto/QrLoginStatusResponse.java b/src/main/java/com/gxwebsoft/auto/dto/QrLoginStatusResponse.java
new file mode 100644
index 0000000..1eb0d4a
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/dto/QrLoginStatusResponse.java
@@ -0,0 +1,32 @@
+package com.gxwebsoft.auto.dto;
+
+import io.swagger.v3.oas.annotations.media.Schema;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 扫码登录状态响应
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Schema(description = "扫码登录状态响应")
+public class QrLoginStatusResponse {
+
+ @Schema(description = "状态: pending-等待扫码, scanned-已扫码, confirmed-已确认, expired-已过期")
+ private String status;
+
+ @Schema(description = "JWT访问令牌(仅在confirmed状态时返回)")
+ private String accessToken;
+
+ @Schema(description = "用户信息(仅在confirmed状态时返回)")
+ private Object userInfo;
+
+ @Schema(description = "剩余过期时间(秒)")
+ private Long expiresIn;
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/service/QrLoginService.java b/src/main/java/com/gxwebsoft/auto/service/QrLoginService.java
new file mode 100644
index 0000000..85ed28f
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/service/QrLoginService.java
@@ -0,0 +1,46 @@
+package com.gxwebsoft.auto.service;
+
+import com.gxwebsoft.auto.dto.QrLoginConfirmRequest;
+import com.gxwebsoft.auto.dto.QrLoginGenerateResponse;
+import com.gxwebsoft.auto.dto.QrLoginStatusResponse;
+
+/**
+ * 扫码登录服务接口
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+public interface QrLoginService {
+
+ /**
+ * 生成扫码登录token
+ *
+ * @return QrLoginGenerateResponse
+ */
+ QrLoginGenerateResponse generateQrLoginToken();
+
+ /**
+ * 检查扫码登录状态
+ *
+ * @param token 扫码登录token
+ * @return QrLoginStatusResponse
+ */
+ QrLoginStatusResponse checkQrLoginStatus(String token);
+
+ /**
+ * 确认扫码登录
+ *
+ * @param request 确认请求
+ * @return QrLoginStatusResponse
+ */
+ QrLoginStatusResponse confirmQrLogin(QrLoginConfirmRequest request);
+
+ /**
+ * 扫码操作(更新状态为已扫码)
+ *
+ * @param token 扫码登录token
+ * @return boolean
+ */
+ boolean scanQrCode(String token);
+
+}
diff --git a/src/main/java/com/gxwebsoft/auto/service/impl/QrLoginServiceImpl.java b/src/main/java/com/gxwebsoft/auto/service/impl/QrLoginServiceImpl.java
new file mode 100644
index 0000000..34658e8
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/auto/service/impl/QrLoginServiceImpl.java
@@ -0,0 +1,239 @@
+package com.gxwebsoft.auto.service.impl;
+
+import cn.hutool.core.lang.UUID;
+import cn.hutool.core.util.StrUtil;
+import com.gxwebsoft.auto.dto.*;
+import com.gxwebsoft.auto.service.QrLoginService;
+import com.gxwebsoft.common.core.security.JwtSubject;
+import com.gxwebsoft.common.core.security.JwtUtil;
+import com.gxwebsoft.common.core.utils.JSONUtil;
+import com.gxwebsoft.common.core.utils.RedisUtil;
+import com.gxwebsoft.common.system.entity.User;
+import com.gxwebsoft.common.system.service.UserService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.temporal.ChronoUnit;
+import java.util.concurrent.TimeUnit;
+
+import static com.gxwebsoft.common.core.constants.RedisConstants.*;
+
+/**
+ * 扫码登录服务实现
+ *
+ * @author 科技小王子
+ * @since 2025-08-31
+ */
+@Slf4j
+@Service
+public class QrLoginServiceImpl implements QrLoginService {
+
+ @Autowired
+ private RedisUtil redisUtil;
+
+ @Autowired
+ private UserService userService;
+
+ @Value("${config.jwt.secret:websoft-jwt-secret-key-2025}")
+ private String jwtSecret;
+
+ @Value("${config.jwt.expire:86400}")
+ private Long jwtExpire;
+
+ @Override
+ public QrLoginGenerateResponse generateQrLoginToken() {
+ // 生成唯一的扫码登录token
+ String token = UUID.randomUUID().toString(true);
+
+ // 创建扫码登录数据
+ QrLoginData qrLoginData = new QrLoginData();
+ qrLoginData.setToken(token);
+ qrLoginData.setStatus(QR_LOGIN_STATUS_PENDING);
+ qrLoginData.setCreateTime(LocalDateTime.now());
+ qrLoginData.setExpireTime(LocalDateTime.now().plusSeconds(QR_LOGIN_TOKEN_TTL));
+
+ // 存储到Redis,设置过期时间
+ String redisKey = QR_LOGIN_TOKEN_KEY + token;
+ redisUtil.set(redisKey, qrLoginData, QR_LOGIN_TOKEN_TTL, TimeUnit.SECONDS);
+
+ log.info("生成扫码登录token: {}", token);
+
+ // 构造二维码内容(这里可以是前端登录页面的URL + token参数)
+ String qrCodeContent = "qr-login:" + token;
+
+ return new QrLoginGenerateResponse(token, qrCodeContent, QR_LOGIN_TOKEN_TTL);
+ }
+
+ @Override
+ public QrLoginStatusResponse checkQrLoginStatus(String token) {
+ if (StrUtil.isBlank(token)) {
+ return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
+ }
+
+ String redisKey = QR_LOGIN_TOKEN_KEY + token;
+ QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
+
+ if (qrLoginData == null) {
+ return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
+ }
+
+ // 检查是否过期
+ if (LocalDateTime.now().isAfter(qrLoginData.getExpireTime())) {
+ // 删除过期的token
+ redisUtil.delete(redisKey);
+ return new QrLoginStatusResponse(QR_LOGIN_STATUS_EXPIRED, null, null, 0L);
+ }
+
+ // 计算剩余过期时间
+ long expiresIn = ChronoUnit.SECONDS.between(LocalDateTime.now(), qrLoginData.getExpireTime());
+
+ QrLoginStatusResponse response = new QrLoginStatusResponse();
+ response.setStatus(qrLoginData.getStatus());
+ response.setExpiresIn(expiresIn);
+
+ // 如果已确认,返回token和用户信息
+ if (QR_LOGIN_STATUS_CONFIRMED.equals(qrLoginData.getStatus())) {
+ response.setAccessToken(qrLoginData.getAccessToken());
+
+ // 获取用户信息
+ if (qrLoginData.getUserId() != null) {
+ User user = userService.getByIdRel(qrLoginData.getUserId());
+ if (user != null) {
+ // 清除敏感信息
+ user.setPassword(null);
+ response.setUserInfo(user);
+ }
+ }
+
+ // 确认后删除token,防止重复使用
+ redisUtil.delete(redisKey);
+ }
+
+ return response;
+ }
+
+ @Override
+ public QrLoginStatusResponse confirmQrLogin(QrLoginConfirmRequest request) {
+ String token = request.getToken();
+ Integer userId = request.getUserId();
+ String platform = request.getPlatform();
+
+ if (StrUtil.isBlank(token) || userId == null) {
+ throw new RuntimeException("参数不能为空");
+ }
+
+ String redisKey = QR_LOGIN_TOKEN_KEY + token;
+ QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
+
+ if (qrLoginData == null) {
+ throw new RuntimeException("扫码登录token不存在或已过期");
+ }
+
+ // 检查是否过期
+ if (LocalDateTime.now().isAfter(qrLoginData.getExpireTime())) {
+ redisUtil.delete(redisKey);
+ throw new RuntimeException("扫码登录token已过期");
+ }
+
+ // 获取用户信息
+ User user = userService.getByIdRel(userId);
+ if (user == null) {
+ throw new RuntimeException("用户不存在");
+ }
+
+ // 检查用户状态
+ if (user.getStatus() != null && user.getStatus() != 0) {
+ throw new RuntimeException("用户已被冻结");
+ }
+
+ // 如果是微信小程序登录,处理微信相关信息
+ if ("miniprogram".equals(platform) && request.getWechatInfo() != null) {
+ handleWechatMiniProgramLogin(user, request.getWechatInfo());
+ }
+
+ // 生成JWT token
+ JwtSubject jwtSubject = new JwtSubject(user.getUsername(), user.getTenantId());
+ String accessToken = JwtUtil.buildToken(jwtSubject, jwtExpire, jwtSecret);
+
+ // 更新扫码登录数据
+ qrLoginData.setStatus(QR_LOGIN_STATUS_CONFIRMED);
+ qrLoginData.setUserId(userId);
+ qrLoginData.setUsername(user.getUsername());
+ qrLoginData.setAccessToken(accessToken);
+
+ // 更新Redis中的数据
+ redisUtil.set(redisKey, qrLoginData, 60L, TimeUnit.SECONDS); // 给前端60秒时间获取token
+
+ log.info("用户 {} 通过 {} 平台确认扫码登录,token: {}", user.getUsername(),
+ platform != null ? platform : "unknown", token);
+
+ // 清除敏感信息
+ user.setPassword(null);
+
+ return new QrLoginStatusResponse(QR_LOGIN_STATUS_CONFIRMED, accessToken, user, 60L);
+ }
+
+ /**
+ * 处理微信小程序登录相关逻辑
+ */
+ private void handleWechatMiniProgramLogin(User user, QrLoginConfirmRequest.WechatMiniProgramInfo wechatInfo) {
+ // 更新用户的微信信息
+ if (StrUtil.isNotBlank(wechatInfo.getOpenid())) {
+ user.setOpenid(wechatInfo.getOpenid());
+ }
+ if (StrUtil.isNotBlank(wechatInfo.getUnionid())) {
+ user.setUnionid(wechatInfo.getUnionid());
+ }
+ if (StrUtil.isNotBlank(wechatInfo.getNickname()) && StrUtil.isBlank(user.getNickname())) {
+ user.setNickname(wechatInfo.getNickname());
+ }
+ if (StrUtil.isNotBlank(wechatInfo.getAvatar()) && StrUtil.isBlank(user.getAvatar())) {
+ user.setAvatar(wechatInfo.getAvatar());
+ }
+
+ // 更新用户信息到数据库
+ try {
+ userService.updateById(user);
+ log.info("更新用户 {} 的微信小程序信息成功", user.getUsername());
+ } catch (Exception e) {
+ log.warn("更新用户 {} 的微信小程序信息失败: {}", user.getUsername(), e.getMessage());
+ }
+ }
+
+ @Override
+ public boolean scanQrCode(String token) {
+ if (StrUtil.isBlank(token)) {
+ return false;
+ }
+
+ String redisKey = QR_LOGIN_TOKEN_KEY + token;
+ QrLoginData qrLoginData = redisUtil.get(redisKey, QrLoginData.class);
+
+ if (qrLoginData == null) {
+ return false;
+ }
+
+ // 检查是否过期
+ if (LocalDateTime.now().isAfter(qrLoginData.getExpireTime())) {
+ redisUtil.delete(redisKey);
+ return false;
+ }
+
+ // 只有pending状态才能更新为scanned
+ if (QR_LOGIN_STATUS_PENDING.equals(qrLoginData.getStatus())) {
+ qrLoginData.setStatus(QR_LOGIN_STATUS_SCANNED);
+
+ // 计算剩余过期时间
+ long remainingSeconds = ChronoUnit.SECONDS.between(LocalDateTime.now(), qrLoginData.getExpireTime());
+ redisUtil.set(redisKey, qrLoginData, remainingSeconds, TimeUnit.SECONDS);
+
+ log.info("扫码登录token {} 状态更新为已扫码", token);
+ return true;
+ }
+
+ return false;
+ }
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsAdController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsAdController.java
new file mode 100644
index 0000000..64a979b
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsAdController.java
@@ -0,0 +1,119 @@
+package com.gxwebsoft.cms.controller;
+
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.service.CmsAdService;
+import com.gxwebsoft.cms.entity.CmsAd;
+import com.gxwebsoft.cms.param.CmsAdParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.system.entity.User;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 广告位控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Tag(name = "广告位管理")
+@RestController
+@RequestMapping("/api/cms/cms-ad")
+public class CmsAdController extends BaseController {
+ @Resource
+ private CmsAdService cmsAdService;
+
+ @Operation(summary = "分页查询广告位")
+ @GetMapping("/page")
+ public ApiResult> page(CmsAdParam param) {
+ // 使用关联查询
+ return success(cmsAdService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部广告位")
+ @GetMapping()
+ public ApiResult> list(CmsAdParam param) {
+ // 使用关联查询
+ return success(cmsAdService.listRel(param));
+ }
+
+ @Operation(summary = "根据id查询广告位")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") Integer id) {
+ // 使用关联查询
+ final CmsAd ad = cmsAdService.getByIdRel(id);
+ return success(ad);
+ }
+
+ @Operation(summary = "根据code查询广告位")
+ @GetMapping("/getByCode/{code}")
+ public ApiResult getByCode(@PathVariable("code") String code) {
+ final CmsAd ad = cmsAdService.getByIdCode(code);
+ return success(ad);
+ }
+
+ @Operation(summary = "添加广告位")
+ @PostMapping()
+ public ApiResult> save(@RequestBody CmsAd cmsAd) {
+ // 记录当前登录用户id
+ User loginUser = getLoginUser();
+ if (loginUser != null) {
+ cmsAd.setUserId(loginUser.getUserId());
+ }
+ if (cmsAdService.save(cmsAd)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "修改广告位")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsAd cmsAd) {
+ if (cmsAdService.updateById(cmsAd)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "删除广告位")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsAdService.removeById(id)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "批量添加广告位")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsAdService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "批量修改广告位")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsAdService, "ad_id")) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "批量删除广告位")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsAdService.removeByIds(ids)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsAdRecordController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsAdRecordController.java
new file mode 100644
index 0000000..4188ead
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsAdRecordController.java
@@ -0,0 +1,114 @@
+package com.gxwebsoft.cms.controller;
+
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.service.CmsAdRecordService;
+import com.gxwebsoft.cms.entity.CmsAdRecord;
+import com.gxwebsoft.cms.param.CmsAdRecordParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.PageParam;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.core.annotation.OperationLog;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 广告图片控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Tag(name = "广告图片管理")
+@RestController
+@RequestMapping("/api/cms/cms-ad-record")
+public class CmsAdRecordController extends BaseController {
+ @Resource
+ private CmsAdRecordService cmsAdRecordService;
+
+ @Operation(summary = "分页查询广告图片")
+ @GetMapping("/page")
+ public ApiResult> page(CmsAdRecordParam param) {
+ // 使用关联查询
+ return success(cmsAdRecordService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部广告图片")
+ @GetMapping()
+ public ApiResult> list(CmsAdRecordParam param) {
+ PageParam page = new PageParam<>(param);
+ page.setDefaultOrder("create_time desc");
+ return success(cmsAdRecordService.list(page.getOrderWrapper()));
+ // 使用关联查询
+ //return success(cmsAdRecordService.listRel(param));
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsAdRecord:list')")
+ @OperationLog
+ @Operation(summary = "根据id查询广告图片")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") Integer id) {
+ return success(cmsAdRecordService.getById(id));
+ // 使用关联查询
+ //return success(cmsAdRecordService.getByIdRel(id));
+ }
+
+ @Operation(summary = "添加广告图片")
+ @PostMapping()
+ public ApiResult> save(@RequestBody CmsAdRecord cmsAdRecord) {
+ if (cmsAdRecordService.save(cmsAdRecord)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "修改广告图片")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsAdRecord cmsAdRecord) {
+ if (cmsAdRecordService.updateById(cmsAdRecord)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "删除广告图片")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsAdRecordService.removeById(id)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "批量添加广告图片")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsAdRecordService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "批量修改广告图片")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsAdRecordService, "ad_record_id")) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "批量删除广告图片")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsAdRecordService.removeByIds(ids)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCategoryController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCategoryController.java
new file mode 100644
index 0000000..1e540a0
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCategoryController.java
@@ -0,0 +1,111 @@
+package com.gxwebsoft.cms.controller;
+
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.service.CmsArticleCategoryService;
+import com.gxwebsoft.cms.entity.CmsArticleCategory;
+import com.gxwebsoft.cms.param.CmsArticleCategoryParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.system.entity.User;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 文章分类表控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Tag(name = "文章分类表管理")
+@RestController
+@RequestMapping("/api/cms/cms-article-category")
+public class CmsArticleCategoryController extends BaseController {
+ @Resource
+ private CmsArticleCategoryService cmsArticleCategoryService;
+
+ @Operation(summary = "分页查询文章分类表")
+ @GetMapping("/page")
+ public ApiResult> page(CmsArticleCategoryParam param) {
+ // 使用关联查询
+ return success(cmsArticleCategoryService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部文章分类表")
+ @GetMapping()
+ public ApiResult> list(CmsArticleCategoryParam param) {
+ // 使用关联查询
+ return success(cmsArticleCategoryService.listRel(param));
+ }
+
+ @Operation(summary = "根据id查询文章分类表")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") Integer id) {
+ // 使用关联查询
+ return success(cmsArticleCategoryService.getByIdRel(id));
+ }
+
+ @Operation(summary = "添加文章分类表")
+ @PostMapping()
+ public ApiResult> save(@RequestBody CmsArticleCategory cmsArticleCategory) {
+ // 记录当前登录用户id
+ User loginUser = getLoginUser();
+ if (loginUser != null) {
+ cmsArticleCategory.setUserId(loginUser.getUserId());
+ }
+ if (cmsArticleCategoryService.save(cmsArticleCategory)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "修改文章分类表")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsArticleCategory cmsArticleCategory) {
+ if (cmsArticleCategoryService.updateById(cmsArticleCategory)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "删除文章分类表")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsArticleCategoryService.removeById(id)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "批量添加文章分类表")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsArticleCategoryService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "批量修改文章分类表")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsArticleCategoryService, "category_id")) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "批量删除文章分类表")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsArticleCategoryService.removeByIds(ids)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCommentController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCommentController.java
new file mode 100644
index 0000000..51ed99e
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleCommentController.java
@@ -0,0 +1,120 @@
+package com.gxwebsoft.cms.controller;
+
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.service.CmsArticleCommentService;
+import com.gxwebsoft.cms.entity.CmsArticleComment;
+import com.gxwebsoft.cms.param.CmsArticleCommentParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.PageParam;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.core.annotation.OperationLog;
+import com.gxwebsoft.common.system.entity.User;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 文章评论表控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Tag(name = "文章评论表管理")
+@RestController
+@RequestMapping("/api/cms/cms-article-comment")
+public class CmsArticleCommentController extends BaseController {
+ @Resource
+ private CmsArticleCommentService cmsArticleCommentService;
+
+ @Operation(summary = "分页查询文章评论表")
+ @GetMapping("/page")
+ public ApiResult> page(CmsArticleCommentParam param) {
+ // 使用关联查询
+ return success(cmsArticleCommentService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部文章评论表")
+ @GetMapping()
+ public ApiResult> list(CmsArticleCommentParam param) {
+ PageParam page = new PageParam<>(param);
+ page.setDefaultOrder("create_time desc");
+ return success(cmsArticleCommentService.list(page.getOrderWrapper()));
+ // 使用关联查询
+ //return success(cmsArticleCommentService.listRel(param));
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticleComment:list')")
+ @OperationLog
+ @Operation(summary = "根据id查询文章评论表")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") Integer id) {
+ return success(cmsArticleCommentService.getById(id));
+ // 使用关联查询
+ //return success(cmsArticleCommentService.getByIdRel(id));
+ }
+
+ @Operation(summary = "添加文章评论表")
+ @PostMapping()
+ public ApiResult> save(@RequestBody CmsArticleComment cmsArticleComment) {
+ // 记录当前登录用户id
+ User loginUser = getLoginUser();
+ if (loginUser != null) {
+ cmsArticleComment.setUserId(loginUser.getUserId());
+ }
+ if (cmsArticleCommentService.save(cmsArticleComment)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "修改文章评论表")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsArticleComment cmsArticleComment) {
+ if (cmsArticleCommentService.updateById(cmsArticleComment)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "删除文章评论表")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsArticleCommentService.removeById(id)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "批量添加文章评论表")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsArticleCommentService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "批量修改文章评论表")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsArticleCommentService, "comment_id")) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "批量删除文章评论表")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsArticleCommentService.removeByIds(ids)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsArticleContentController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleContentController.java
new file mode 100644
index 0000000..4f3e3d6
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleContentController.java
@@ -0,0 +1,113 @@
+package com.gxwebsoft.cms.controller;
+
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.service.CmsArticleContentService;
+import com.gxwebsoft.cms.entity.CmsArticleContent;
+import com.gxwebsoft.cms.param.CmsArticleContentParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.core.annotation.OperationLog;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+/**
+ * 文章记录表控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Tag(name = "文章记录表管理")
+@RestController
+@RequestMapping("/api/cms/cms-article-content")
+public class CmsArticleContentController extends BaseController {
+ @Resource
+ private CmsArticleContentService cmsArticleContentService;
+
+ @Operation(summary = "分页查询文章记录表")
+ @GetMapping("/page")
+ public ApiResult> page(CmsArticleContentParam param) {
+ // 使用关联查询
+ return success(cmsArticleContentService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部文章记录表")
+ @GetMapping()
+ public ApiResult> list(CmsArticleContentParam param) {
+// PageParam page = new PageParam<>(param);
+// page.setDefaultOrder("create_time desc");
+// return success(cmsArticleContentService.list(page.getOrderWrapper()));
+ // 使用关联查询
+ return success(cmsArticleContentService.listRel(param));
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticleContent:list')")
+ @OperationLog
+ @Operation(summary = "根据id查询文章记录表")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") Integer id) {
+// return success(cmsArticleContentService.getById(id));
+ // 使用关联查询
+ return success(cmsArticleContentService.getByIdRel(id));
+ }
+
+ @Operation(summary = "添加文章记录表")
+ @PostMapping()
+ public ApiResult> save(@RequestBody CmsArticleContent cmsArticleContent) {
+ if (cmsArticleContentService.save(cmsArticleContent)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "修改文章记录表")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsArticleContent cmsArticleContent) {
+ if (cmsArticleContentService.updateById(cmsArticleContent)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "删除文章记录表")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsArticleContentService.removeById(id)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "批量添加文章记录表")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsArticleContentService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @Operation(summary = "批量修改文章记录表")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsArticleContentService, "id")) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @Operation(summary = "批量删除文章记录表")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsArticleContentService.removeByIds(ids)) {
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+}
diff --git a/src/main/java/com/gxwebsoft/cms/controller/CmsArticleController.java b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleController.java
new file mode 100644
index 0000000..31be045
--- /dev/null
+++ b/src/main/java/com/gxwebsoft/cms/controller/CmsArticleController.java
@@ -0,0 +1,379 @@
+package com.gxwebsoft.cms.controller;
+
+import cn.afterturn.easypoi.excel.ExcelImportUtil;
+import cn.afterturn.easypoi.excel.entity.ImportParams;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.gxwebsoft.cms.entity.*;
+import com.gxwebsoft.cms.param.CmsArticleImportParam;
+import com.gxwebsoft.cms.service.*;
+import com.gxwebsoft.common.core.utils.JSONUtil;
+import com.gxwebsoft.common.core.utils.RedisUtil;
+import com.gxwebsoft.common.core.web.BaseController;
+import com.gxwebsoft.cms.param.CmsArticleParam;
+import com.gxwebsoft.common.core.web.ApiResult;
+import com.gxwebsoft.common.core.web.PageResult;
+import com.gxwebsoft.common.core.web.BatchParam;
+import com.gxwebsoft.common.system.entity.User;
+import com.gxwebsoft.common.system.service.UserService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
+import org.springframework.context.annotation.Lazy;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.validation.annotation.Validated;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.io.Serializable;
+import java.util.*;
+
+import static com.gxwebsoft.common.core.constants.ArticleConstants.CACHE_KEY_ARTICLE;
+
+/**
+ * 文章控制器
+ *
+ * @author 科技小王子
+ * @since 2024-09-10 20:47:57
+ */
+@Slf4j
+@Validated
+@Tag(name = "文章管理")
+@RestController
+@RequestMapping("/api/cms/cms-article")
+public class CmsArticleController extends BaseController {
+ @Resource
+ private CmsArticleService cmsArticleService;
+ @Resource
+ private CmsArticleContentService articleContentService;
+ @Resource
+ @Lazy
+ private CmsNavigationService cmsNavigationService;
+ @Resource
+ private CmsModelService cmsModelService;
+ @Resource
+ private UserService userService;
+ @Resource
+ private RedisUtil redisUtil;
+
+ private static final long CACHE_MINUTES = 30L;
+
+ @Operation(summary = "分页查询文章")
+ @GetMapping("/page")
+ public ApiResult> page(CmsArticleParam param) {
+ // 使用关联查询
+ return success(cmsArticleService.pageRel(param));
+ }
+
+ @Operation(summary = "查询全部文章")
+ @GetMapping()
+ public ApiResult> list(CmsArticleParam param) {
+ // 使用关联查询
+ return success(cmsArticleService.listRel(param));
+ }
+
+ @Operation(summary = "根据id查询文章")
+ @GetMapping("/{id}")
+ public ApiResult get(@PathVariable("id") @NotNull Integer id) {
+ final CmsArticle article = cmsArticleService.getByIdRel(id);
+ if (ObjectUtil.isNotEmpty(article)) {
+ final CmsArticleContent item = articleContentService.getByIdRel(article.getArticleId());
+ if (ObjectUtil.isNotEmpty(item)) {
+ article.setContent(item.getContent());
+ }
+ return success(article);
+ }
+ return fail("文章ID不存在",null);
+ }
+
+ @Operation(summary = "根据code查询文章")
+ @GetMapping("/getByCode/{code}")
+ public ApiResult getByCode(@PathVariable("code") String code) {
+ final CmsArticle article = cmsArticleService.getByIdCode(code);
+ if (ObjectUtil.isNotEmpty(article)) {
+ final CmsArticleContent item = articleContentService.getByIdRel(article.getArticleId());
+ if (ObjectUtil.isNotEmpty(item)) {
+ article.setContent(item.getContent());
+ }
+ }
+ return success(article);
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:save')")
+ @Operation(summary = "添加文章")
+ @PostMapping()
+ public ApiResult> save(@RequestBody @Valid CmsArticle article) {
+ // 记录当前登录用户id
+ User loginUser = getLoginUser();
+ if (loginUser != null) {
+ article.setUserId(loginUser.getUserId());
+ article.setAuthor(loginUser.getNickname());
+ article.setMerchantId(loginUser.getMerchantId());
+ if (cmsArticleService.saveRel(article)) {
+ return success("添加成功");
+ }
+ }
+ return fail("添加失败");
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:update')")
+ @Operation(summary = "修改文章")
+ @PutMapping()
+ public ApiResult> update(@RequestBody CmsArticle article) {
+ if (cmsArticleService.updateByIdRel(article)) {
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:remove')")
+ @Operation(summary = "删除文章")
+ @DeleteMapping("/{id}")
+ public ApiResult> remove(@PathVariable("id") Integer id) {
+ if (cmsArticleService.removeById(id)) {
+ redisUtil.delete(CACHE_KEY_ARTICLE + id);
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:save')")
+ @Operation(summary = "批量添加文章")
+ @PostMapping("/batch")
+ public ApiResult> saveBatch(@RequestBody List list) {
+ if (cmsArticleService.saveBatch(list)) {
+ return success("添加成功");
+ }
+ return fail("添加失败");
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:update')")
+ @Operation(summary = "批量修改文章")
+ @PutMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody BatchParam batchParam) {
+ if (batchParam.update(cmsArticleService, "article_id")) {
+ // 删除缓存
+ final List ids = batchParam.getIds();
+ ids.forEach(id -> {
+ redisUtil.delete(CACHE_KEY_ARTICLE + id);
+ });
+ return success("修改成功");
+ }
+ return fail("修改失败");
+ }
+
+ @PreAuthorize("hasAuthority('cms:cmsArticle:remove')")
+ @Operation(summary = "批量删除文章")
+ @DeleteMapping("/batch")
+ public ApiResult> removeBatch(@RequestBody List ids) {
+ if (cmsArticleService.removeByIds(ids)) {
+ // 删除缓存
+ ids.forEach(id -> {
+ redisUtil.delete(CACHE_KEY_ARTICLE + id);
+ });
+ return success("删除成功");
+ }
+ return fail("删除失败");
+ }
+
+ @Operation(summary = "读取上一篇")
+ @GetMapping("/getPrevious/{id}")
+ public ApiResult getPrevious(@PathVariable("id") Integer id) {
+ final CmsArticle item = cmsArticleService.getById(id);
+ if (ObjectUtil.isEmpty(item)) {
+ return success("没有找到上一篇文章",null);
+ }
+ CmsArticle article;
+ // TODO 按排序号规则
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.lt(CmsArticle::getSortNumber, item.getSortNumber());
+ wrapper.eq(CmsArticle::getStatus, 0);
+ wrapper.eq(CmsArticle::getType, 0);
+ wrapper.eq(CmsArticle::getCategoryId, item.getCategoryId());
+ wrapper.orderByDesc(CmsArticle::getSortNumber);
+ wrapper.last("limit 1");
+ article = cmsArticleService.getOne(wrapper);
+ if (ObjectUtil.isNotEmpty(article)) {
+ return success(article);
+ }
+ // TODO 按ID排序
+ LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>();
+ wrapper2.lt(CmsArticle::getArticleId, item.getArticleId());
+ wrapper2.eq(CmsArticle::getStatus, 0);
+ wrapper2.eq(CmsArticle::getCategoryId, item.getCategoryId());
+ wrapper2.last("limit 1");
+ wrapper2.orderByDesc(CmsArticle::getArticleId);
+ article = cmsArticleService.getOne(wrapper2);
+ return success(article);
+ }
+
+ @Operation(summary = "读取下一篇")
+ @GetMapping("/getNext/{id}")
+ public ApiResult getNext(@PathVariable("id") Integer id) {
+ CmsArticle item = cmsArticleService.getById(id);
+ if (ObjectUtil.isEmpty(item)) {
+ return success("没有找到下一篇文章",null);
+ }
+ CmsArticle article;
+ // TODO 按排序号规则
+ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
+ wrapper.gt(CmsArticle::getSortNumber, item.getSortNumber());
+ wrapper.eq(CmsArticle::getStatus, 0);
+ wrapper.eq(CmsArticle::getType, 0);
+ wrapper.eq(CmsArticle::getCategoryId, item.getCategoryId());
+ wrapper.orderByAsc(CmsArticle::getSortNumber);
+ wrapper.last("limit 1");
+ article = cmsArticleService.getOne(wrapper);
+ if (ObjectUtil.isNotEmpty(article)) {
+ return success(article);
+ }
+ // TODO 按ID排序
+ LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>();
+ wrapper2.gt(CmsArticle::getArticleId, item.getArticleId());
+ wrapper2.eq(CmsArticle::getStatus, 0);
+ wrapper2.eq(CmsArticle::getCategoryId, item.getCategoryId());
+ wrapper2.last("limit 1");
+ wrapper2.orderByAsc(CmsArticle::getArticleId);
+ article = cmsArticleService.getOne(wrapper2);
+ return success(article);
+ }
+
+ @Operation(summary = "统计信息")
+ @GetMapping("/data")
+ public ApiResult