From 818e8d1810bcdcbeae5a948ecd115ff0ce5a1f54 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期三, 26 七月 2023 17:56:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java | 18 cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java | 31 cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java | 39 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java | 17 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java | 15 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java | 4 .idea/encodings.xml | 11 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java | 17 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java | 25 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java | 22 cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java | 4 cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java | 70 + cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 69 cloud-server-account/src/main/resources/mapper/CityMapper.xml | 6 cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html | 22 .idea/workspace.xml | 656 ++++----- cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 16 cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java | 15 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java | 235 +++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html | 81 + cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js | 101 cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java | 150 ++ cloud-server-management/src/main/webapp/WEB-INF/view/index.html | 2 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java | 15 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java | 17 cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java | 23 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java | 139 ++ cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html | 8 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 10 cloud-server-competition/src/main/java/com/dsh/page/Order.java | 26 cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java | 73 + cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java | 20 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java | 9 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html | 432 +---- cloud-server-management/src/main/resources/mapper/MenuMapper.xml | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java | 18 cloud-server-management/src/main/webapp/WEB-INF/view/login.html | 21 .idea/compiler.xml | 9 cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java | 3 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java | 10 cloud-server-competition/mb-cloud-competition.iml | 163 ++ cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java | 13 cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java | 15 cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java | 15 cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java | 3 cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html | 401 +++++ cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java | 3 cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java | 22 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java | 22 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java | 14 cloud-server-course/mb-cloud-course.iml | 216 ++ cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html | 21 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 7 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java | 2 cloud-server-management/src/main/webapp/WEB-INF/view/404.html | 2 cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java | 3 cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java | 202 ++ cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java | 16 cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java | 17 cloud-server-competition/src/main/java/com/dsh/page/WafKit.java | 118 + cloud-server-management/src/main/resources/mapper/CityMapper.xml | 8 /dev/null | 11 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java | 89 + cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html | 52 cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html | 22 cloud-server-account/src/main/java/com/dsh/account/service/CityService.java | 17 cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java | 101 + cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java | 13 70 files changed, 3,131 insertions(+), 922 deletions(-) diff --git a/.idea/compiler.xml b/.idea/compiler.xml index f49f824..4aac1ca 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -2,17 +2,18 @@ <project version="4"> <component name="CompilerConfiguration"> <annotationProcessing> + <profile default="true" name="Default" enabled="true" /> <profile name="Maven default annotation processors profile" enabled="true"> <sourceOutputDir name="target/generated-sources/annotations" /> <sourceTestOutputDir name="target/generated-test-sources/test-annotations" /> <outputRelativeToContentRoot value="true" /> <module name="mb-cloud-account" /> - <module name="mb-cloud-activity" /> - <module name="mb-cloud-auth" /> - <module name="mb-cloud-competition" /> - <module name="mb-cloud-competition (1)" /> <module name="mb-cloud-course" /> <module name="mb-cloud-management" /> + <module name="mb-cloud-competition (1)" /> + <module name="mb-cloud-activity" /> + <module name="mb-cloud-competition" /> + <module name="mb-cloud-auth" /> </profile> </annotationProcessing> <bytecodeTargetLevel> diff --git a/.idea/encodings.xml b/.idea/encodings.xml index 3af5a5a..4da5718 100644 --- a/.idea/encodings.xml +++ b/.idea/encodings.xml @@ -2,11 +2,22 @@ <project version="4"> <component name="Encoding"> <file url="file://$PROJECT_DIR$/cloud-server-account" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-account/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-activity" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-activity/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-auth" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-auth/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-competition" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-competition/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-course" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/java" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-course/src/main/resources" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-management" charset="UTF-8" /> + <file url="file://$PROJECT_DIR$/cloud-server-management/src/main/java" charset="UTF-8" /> <file url="file://$PROJECT_DIR$/cloud-server-parent" charset="UTF-8" /> </component> </project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index c292150..fb546d1 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,135 +1,56 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="BranchesTreeState"> + <expand> + <path> + <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" /> + <item name="LOCAL_ROOT" type="e8cecc67:BranchNodeDescriptor" /> + </path> + <path> + <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" /> + <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" /> + </path> + <path> + <item name="ROOT" type="e8cecc67:BranchNodeDescriptor" /> + <item name="REMOTE_ROOT" type="e8cecc67:BranchNodeDescriptor" /> + <item name="GROUP_NODE:origin" type="e8cecc67:BranchNodeDescriptor" /> + </path> + </expand> + <select /> + </component> <component name="ChangeListManager"> - <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment=""> - <change beforePath="$PROJECT_DIR$/cloud-server-parent/mb-cloud-parent.iml" beforeDir="false" /> - <change beforePath="$PROJECT_DIR$/cloud-server-parent/pom.xml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-parent/pom.xml" afterDir="false" /> + <list default="true" id="cb08d02f-fd4f-4fa2-85fe-abd508fa83ac" name="Default Changelist" comment="后台代码删除"> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/mb-cloud-account.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-activity/mb-cloud-activity.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-auth/mb-cloud-auth.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" beforeDir="false" afterPath="$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java" afterDir="false" /> </list> - <ignored path="$PROJECT_DIR$/cloud-server-account/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-management/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-parent/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-auth/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-activity/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-competition/target/" /> - <ignored path="$PROJECT_DIR$/cloud-server-course/target/" /> - <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> - <component name="FUSProjectUsageTrigger"> - <session id="1283956588"> - <usages-collector id="statistics.lifecycle.project"> - <counts> - <entry key="project.closed" value="1" /> - <entry key="project.open.time.1" value="1" /> - <entry key="project.opened" value="1" /> - </counts> - </usages-collector> - <usages-collector id="statistics.file.extensions.open"> - <counts> - <entry key="java" value="12" /> - <entry key="properties" value="3" /> - <entry key="xml" value="13" /> - </counts> - </usages-collector> - <usages-collector id="statistics.file.types.open"> - <counts> - <entry key="JAVA" value="12" /> - <entry key="Properties" value="3" /> - <entry key="XML" value="13" /> - </counts> - </usages-collector> - <usages-collector id="statistics.file.extensions.edit"> - <counts> - <entry key="java" value="56" /> - <entry key="properties" value="8" /> - <entry key="xml" value="25" /> - </counts> - </usages-collector> - <usages-collector id="statistics.file.types.edit"> - <counts> - <entry key="JAVA" value="56" /> - <entry key="Properties" value="8" /> - <entry key="XML" value="25" /> - </counts> - </usages-collector> - </session> - </component> - <component name="FileEditorManager"> - <leaf> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/cloud-server-course/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="425"> - <caret line="17" column="20" lean-forward="true" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/cloud-server-parent/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="500"> - <caret line="20" column="75" selection-start-line="20" selection-start-column="75" selection-end-line="20" selection-end-column="75" /> - </state> - </provider> - </entry> - </file> - </leaf> - </component> - <component name="FindInProjectRecents"> - <findStrings> - <find>app</find> - <find>GMT+</find> - <find>GMT+7</find> - </findStrings> - <replaceStrings> - <replace>GMT+8</replace> - </replaceStrings> - <dirStrings> - <dir>E:\IDEA Workspaces\PlayPai\cloud-server-account\src\main\java</dir> - <dir>E:\IDEA Workspaces\PlayPai</dir> - </dirStrings> - </component> - <component name="Git.Settings"> - <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/cloud-server-parent" /> - </component> - <component name="IdeDocumentHistory"> - <option name="CHANGED_PATHS"> + <component name="FileTemplateManagerImpl"> + <option name="RECENT_TEMPLATES"> <list> - <option value="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/UserApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-account/src/main/resources/bootstrap.properties" /> - <option value="$PROJECT_DIR$/cloud-server-account/src/main/resources/redis.properties" /> - <option value="$PROJECT_DIR$/cloud-server-parent/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-activity/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/AccountApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/ActivityApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/ActivityApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/CompetitionApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-competition/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-account/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-auth/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-management/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CompetitionApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CourseApplication.java" /> - <option value="$PROJECT_DIR$/cloud-server-course/pom.xml" /> - <option value="$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/AccountApplication.java" /> + <option value="Interface" /> + <option value="Class" /> </list> </option> </component> - <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" /> - <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" /> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> <component name="JsFlowSettings"> <service-enabled>true</service-enabled> <exe-path /> <other-services-enabled>true</other-services-enabled> <auto-save>true</auto-save> - </component> - <component name="JsGulpfileManager"> - <detection-done>true</detection-done> - <sorting>DEFINITION_ORDER</sorting> </component> <component name="MavenImportPreferences"> <option name="generalSettings"> @@ -139,92 +60,48 @@ </MavenGeneralSettings> </option> </component> - <component name="MavenProjectNavigator"> - <treeState> - <expand /> - <select /> - </treeState> - </component> - <component name="ProjectFrameBounds" extendedState="6"> - <option name="x" value="-7" /> - <option name="width" value="1934" /> - <option name="height" value="1047" /> - </component> + <component name="ProjectId" id="2T0poWYlZShlnPso29uxjn4gQQo" /> <component name="ProjectLevelVcsManager" settingsEditedManually="true"> <ConfirmationsSetting value="1" id="Add" /> </component> - <component name="ProjectView"> - <navigator proportions="" version="1"> - <foldersAlwaysOnTop value="true" /> - </navigator> - <panes> - <pane id="Scope" /> - <pane id="ProjectPane"> - <subPane> - <expand> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-account" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-activity" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-auth" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-competition" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-course" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-management" type="462c0819:PsiDirectoryNode" /> - </path> - <path> - <item name="PlayPai" type="b2602c69:ProjectViewProjectNode" /> - <item name="PlayPai" type="462c0819:PsiDirectoryNode" /> - <item name="cloud-server-parent" type="462c0819:PsiDirectoryNode" /> - </path> - </expand> - <select /> - </subPane> - </pane> - <pane id="PackagesPane" /> - <pane id="AndroidView" /> - </panes> + <component name="ProjectViewState"> + <option name="hideEmptyMiddlePackages" value="true" /> + <option name="showLibraryContents" value="true" /> </component> <component name="PropertiesComponent"> + <property name="ExpandSpringBootJavaOptionsPanel" value="true" /> + <property name="RequestMappingsPanelOrder0" value="0" /> + <property name="RequestMappingsPanelOrder1" value="1" /> + <property name="RequestMappingsPanelWidth0" value="75" /> + <property name="RequestMappingsPanelWidth1" value="75" /> <property name="WebServerToolWindowFactoryState" value="false" /> <property name="aspect.path.notification.shown" value="true" /> <property name="com.android.tools.idea.instantapp.provision.ProvisionBeforeRunTaskProvider.myTimeStamp" value="1686656087610" /> - <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-course/pom.xml" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/cloud-server-account/src/main/resources/mapper" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> <property name="project.structure.last.edited" value="Global Libraries" /> <property name="project.structure.proportion" value="0.0" /> <property name="project.structure.side.proportion" value="0.2" /> - <property name="settings.editor.selected.configurable" value="Settings.JavaScript" /> + <property name="settings.editor.selected.configurable" value="project.propVCSSupport.Mappings" /> + </component> + <component name="ReactorSettings"> + <option name="notificationShown" value="true" /> </component> <component name="RecentsManager"> + <key name="CopyClassDialog.RECENTS_KEY"> + <recent name="com.dsh.course.feignClient.account.model" /> + <recent name="com.dsh.account.mapper" /> + <recent name="com.dsh.account.service.impl" /> + <recent name="com.dsh.account.service" /> + <recent name="com.dsh.account.controller" /> + </key> <key name="CopyFile.RECENT_KEYS"> - <recent name="E:\IDEA Workspaces" /> - <recent name="E:\IDEA Workspaces\PlayPai" /> + <recent name="F:\code\PlayPai\cloud-server-account\src\main\resources\mapper" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\WEB-INF\view\system" /> + <recent name="F:\code\PlayPai\cloud-server-competition\src\main\java\com\dsh" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\resources\mapper" /> + <recent name="F:\code\PlayPai\cloud-server-management\src\main\webapp\static\modular\system" /> </key> </component> <component name="RunDashboard"> @@ -233,22 +110,13 @@ <option value="SpringBootApplicationConfigurationType" /> </set> </option> - <option name="ruleStates"> - <list> - <RuleState> - <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> - </RuleState> - <RuleState> - <option name="name" value="StatusDashboardGroupingRule" /> - </RuleState> - </list> - </option> </component> <component name="RunManager" selected="Spring Boot.AccountApplication"> <configuration name="AccountApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-account" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.AccountApplication" /> <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -278,6 +146,8 @@ <configuration name="CompetitionApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-competition" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.CompetitionApplication" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -292,6 +162,9 @@ <configuration name="ManagementApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot"> <module name="mb-cloud-management" /> <option name="SPRING_BOOT_MAIN_CLASS" value="com.dsh.ManagementApplication" /> + <option name="ENABLE_JMX_AGENT" value="false" /> + <option name="ALTERNATIVE_JRE_PATH" /> + <option name="SHORTEN_COMMAND_LINE" value="MANIFEST" /> <method v="2"> <option name="Make" enabled="true" /> </method> @@ -324,185 +197,234 @@ <option name="presentableId" value="Default" /> <updated>1686653431962</updated> <workItem from="1686653433491" duration="2267000" /> + <workItem from="1690190039038" duration="16883000" /> + <workItem from="1690333209172" duration="23458000" /> </task> + <task id="LOCAL-00001" summary="后台代码删除"> + <created>1690249807612</created> + <option name="number" value="00001" /> + <option name="presentableId" value="LOCAL-00001" /> + <option name="project" value="LOCAL" /> + <updated>1690249807612</updated> + </task> + <task id="LOCAL-00002" summary="后台代码删除"> + <created>1690254629455</created> + <option name="number" value="00002" /> + <option name="presentableId" value="LOCAL-00002" /> + <option name="project" value="LOCAL" /> + <updated>1690254629455</updated> + </task> + <task id="LOCAL-00003" summary="后台代码删除"> + <created>1690254749862</created> + <option name="number" value="00003" /> + <option name="presentableId" value="LOCAL-00003" /> + <option name="project" value="LOCAL" /> + <updated>1690254749862</updated> + </task> + <task id="LOCAL-00004" summary="后台代码"> + <created>1690334274202</created> + <option name="number" value="00004" /> + <option name="presentableId" value="LOCAL-00004" /> + <option name="project" value="LOCAL" /> + <updated>1690334274203</updated> + </task> + <task id="LOCAL-00005" summary="后台代码"> + <created>1690335913450</created> + <option name="number" value="00005" /> + <option name="presentableId" value="LOCAL-00005" /> + <option name="project" value="LOCAL" /> + <updated>1690335913450</updated> + </task> + <task id="LOCAL-00006" summary="后台代码"> + <created>1690338179876</created> + <option name="number" value="00006" /> + <option name="presentableId" value="LOCAL-00006" /> + <option name="project" value="LOCAL" /> + <updated>1690338179876</updated> + </task> + <task id="LOCAL-00007" summary="后台代码"> + <created>1690338325966</created> + <option name="number" value="00007" /> + <option name="presentableId" value="LOCAL-00007" /> + <option name="project" value="LOCAL" /> + <updated>1690338325966</updated> + </task> + <task id="LOCAL-00008" summary="后台代码"> + <created>1690341067099</created> + <option name="number" value="00008" /> + <option name="presentableId" value="LOCAL-00008" /> + <option name="project" value="LOCAL" /> + <updated>1690341067099</updated> + </task> + <task id="LOCAL-00009" summary="后台代码"> + <created>1690355617215</created> + <option name="number" value="00009" /> + <option name="presentableId" value="LOCAL-00009" /> + <option name="project" value="LOCAL" /> + <updated>1690355617215</updated> + </task> + <task id="LOCAL-00010" summary="后台代码删除"> + <created>1690362658673</created> + <option name="number" value="00010" /> + <option name="presentableId" value="LOCAL-00010" /> + <option name="project" value="LOCAL" /> + <updated>1690362658673</updated> + </task> + <option name="localTasksCounter" value="11" /> <servers /> </component> - <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="2267000" /> - </component> - <component name="ToolWindowManager"> - <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> - <editor active="true" /> - <layout> - <window_info id="Designer" /> - <window_info id="Image Layers" /> - <window_info id="UI Designer" /> - <window_info id="Favorites" side_tool="true" /> - <window_info id="Capture Tool" /> - <window_info id="Web" side_tool="true" /> - <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25" /> - <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> - <window_info anchor="bottom" id="Run Dashboard" weight="0.16938111" /> - <window_info anchor="bottom" id="Spring" /> - <window_info anchor="bottom" id="Terminal" /> - <window_info anchor="bottom" id="Event Log" side_tool="true" /> - <window_info anchor="bottom" id="Statistic" /> - <window_info anchor="bottom" id="Java Enterprise" /> - <window_info anchor="bottom" id="Database Changes" show_stripe_button="false" /> - <window_info anchor="bottom" id="Version Control" /> - <window_info anchor="bottom" id="Message" order="0" /> - <window_info anchor="bottom" id="Find" order="1" /> - <window_info anchor="bottom" id="Run" order="2" weight="0.32899022" /> - <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> - <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> - <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> - <window_info anchor="bottom" id="TODO" order="6" /> - <window_info anchor="right" id="Palette" /> - <window_info anchor="right" id="Capture Analysis" /> - <window_info anchor="right" id="Maven Projects" visible="true" weight="0.21801706" /> - <window_info anchor="right" id="Database" /> - <window_info anchor="right" id="Palette	" /> - <window_info anchor="right" id="Theme Preview" /> - <window_info anchor="right" id="Bean Validation" /> - <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> - <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> - <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> - </layout> - </component> <component name="TypeScriptGeneratedFilesManager"> - <option name="version" value="1" /> + <option name="version" value="2" /> </component> - <component name="VcsContentAnnotationSettings"> - <option name="myLimit" value="2678400000" /> + <component name="Vcs.Log.Tabs.Properties"> + <option name="TAB_STATES"> + <map> + <entry key="MAIN"> + <value> + <State /> + </value> + </entry> + </map> + </option> + <option name="oldMeFiltersMigrated" value="true" /> </component> - <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/account/controller/ImgController.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-174"> - <caret line="21" column="13" selection-start-line="21" selection-start-column="13" selection-end-line="21" selection-end-column="13" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/course/advice/ControllerException.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-285"> - <caret line="11" column="13" selection-start-line="11" selection-start-column="13" selection-end-line="11" selection-end-column="13" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/constant/AuthConstants.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="200"> - <caret line="8" column="17" selection-start-line="8" selection-start-column="17" selection-end-line="8" selection-end-column="17" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/bootstrap.properties"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="675"> - <caret line="27" lean-forward="true" selection-start-line="27" selection-end-line="27" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/logback-spring.xml"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/resources/redis.properties"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="300"> - <caret line="12" column="29" selection-start-line="12" selection-start-column="29" selection-end-line="12" selection-end-column="29" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/config/RedisConfig.java"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/config/RedisConfig.java"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-competition/src/main/java/com/dsh/CompetitionApplication.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="215"> - <caret line="25" column="32" selection-start-line="25" selection-start-column="21" selection-end-line="25" selection-end-column="32" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-competition/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="250"> - <caret line="10" column="36" selection-start-line="10" selection-start-column="36" selection-end-line="10" selection-end-column="36" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="325"> - <caret line="13" column="19" selection-start-line="13" selection-start-column="19" selection-end-line="13" selection-end-column="19" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-activity/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="350"> - <caret line="14" column="19" selection-start-line="14" selection-start-column="19" selection-end-line="14" selection-end-column="19" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-auth/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="325"> - <caret line="13" column="14" selection-start-line="13" selection-start-column="10" selection-end-line="13" selection-end-column="14" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-management/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="325"> - <caret line="13" column="14" selection-start-line="13" selection-start-column="14" selection-end-line="13" selection-end-column="14" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/config/RedisConfig.java"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-course/src/main/java/com/dsh/CourseApplication.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="239"> - <caret line="25" column="27" selection-start-line="25" selection-start-column="21" selection-end-line="25" selection-end-column="27" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-account/src/main/java/com/dsh/AccountApplication.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="68"> - <caret line="7" selection-start-line="7" selection-end-line="7" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-activity/src/main/java/com/dsh/ActivityApplication.java"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="650"> - <caret line="26" column="13" selection-start-line="26" selection-start-column="13" selection-end-line="26" selection-end-column="13" /> - <folding> - <element signature="imports" expanded="true" /> - </folding> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-course/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="425"> - <caret line="17" column="20" lean-forward="true" selection-start-line="17" selection-start-column="20" selection-end-line="17" selection-end-column="20" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/cloud-server-parent/pom.xml"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="500"> - <caret line="20" column="75" selection-start-line="20" selection-start-column="75" selection-end-line="20" selection-end-column="75" /> - </state> - </provider> - </entry> + <component name="VcsManagerConfiguration"> + <MESSAGE value="后台代码" /> + <MESSAGE value="后台代码删除" /> + <option name="LAST_COMMIT_MESSAGE" value="后台代码删除" /> + </component> + <component name="WindowStateProjectService"> + <state x="590" y="80" key="#<template>_of_Spring_Boot" timestamp="1690338437444"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="80" key="#<template>_of_Spring_Boot/0.0.1920.1032@0.0.1920.1032" timestamp="1690338437444" /> + <state x="590" y="0" width="753" height="1032" key="#AccountApplication" timestamp="1690363440283"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="0" width="753" height="1032" key="#AccountApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690363440283" /> + <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication" timestamp="1690342021698"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="0" width="753" height="1032" key="#CompetitionApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690342021698" /> + <state x="590" y="109" width="753" height="813" key="#ManagementApplication" timestamp="1690338483958"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="590" y="109" width="753" height="813" key="#ManagementApplication/0.0.1920.1032@0.0.1920.1032" timestamp="1690338483958" /> + <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser" timestamp="1690351593596"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="765" y="199" key="#com.intellij.ide.util.MemberChooser/0.0.1920.1032@0.0.1920.1032" timestamp="1690351593596" /> + <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog" timestamp="1690338381045"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="689" y="304" key="#com.intellij.ide.util.TreeClassChooserDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690338381045" /> + <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog" timestamp="1690337455729"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="504" y="438" key="#com.intellij.refactoring.move.MoveHandler.SelectRefactoringDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690337455729" /> + <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes" timestamp="1690338847091"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="674" y="382" width="571" height="274" key="#com.intellij.refactoring.move.moveClassesOrPackages.MoveClassesOrPackagesDialog.classes/0.0.1920.1032@0.0.1920.1032" timestamp="1690338847091" /> + <state x="519" y="82" key="CommitChangelistDialog2" timestamp="1690362656327"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="519" y="82" key="CommitChangelistDialog2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362656327" /> + <state width="464" height="466" key="DebuggerActiveHint" timestamp="1690354723383"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="464" height="466" key="DebuggerActiveHint/0.0.1920.1032@0.0.1920.1032" timestamp="1690354723383" /> + <state x="740" y="270" key="FileChooserDialogImpl" timestamp="1690249419357"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="740" y="270" key="FileChooserDialogImpl/0.0.1920.1032@0.0.1920.1032" timestamp="1690249419357" /> + <state width="1293" height="440" key="GridCell.Tab.0.bottom" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.0.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.0.center" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.0.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.0.left" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.0.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.0.right" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.0.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.1.bottom" timestamp="1690363241405"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.1.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241405" /> + <state width="1293" height="440" key="GridCell.Tab.1.center" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.1.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.1.left" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.1.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="440" key="GridCell.Tab.1.right" timestamp="1690363241404"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="440" key="GridCell.Tab.1.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690363241404" /> + <state width="1293" height="473" key="GridCell.Tab.2.bottom" timestamp="1690354799499"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="473" key="GridCell.Tab.2.bottom/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" /> + <state width="1293" height="473" key="GridCell.Tab.2.center" timestamp="1690354799499"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="473" key="GridCell.Tab.2.center/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" /> + <state width="1293" height="473" key="GridCell.Tab.2.left" timestamp="1690354799499"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="473" key="GridCell.Tab.2.left/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" /> + <state width="1293" height="473" key="GridCell.Tab.2.right" timestamp="1690354799499"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state width="1293" height="473" key="GridCell.Tab.2.right/0.0.1920.1032@0.0.1920.1032" timestamp="1690354799499" /> + <state x="461" y="160" key="SettingsEditor" timestamp="1690191509088"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="461" y="160" key="SettingsEditor/0.0.1920.1032@0.0.1920.1032" timestamp="1690191509088" /> + <state x="552" y="248" key="Vcs.Push.Dialog.v2" timestamp="1690362671126"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="552" y="248" key="Vcs.Push.Dialog.v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362671126" /> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog" timestamp="1690340014123"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.DirectoryHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" /> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog" timestamp="1690340014123"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="92" y="92" width="1736" height="848" key="com.intellij.history.integration.ui.views.FileHistoryDialog/0.0.1920.1032@0.0.1920.1032" timestamp="1690340014123" /> + <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1690362660961"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="754" y="428" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.0.1920.1032@0.0.1920.1032" timestamp="1690362660961" /> + <state x="661" y="224" width="646" height="584" key="find.popup" timestamp="1690358747900"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="661" y="224" width="646" height="584" key="find.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690358747900" /> + <state x="623" y="223" width="672" height="678" key="search.everywhere.popup" timestamp="1690338774328"> + <screen x="0" y="0" width="1920" height="1032" /> + </state> + <state x="623" y="223" width="672" height="678" key="search.everywhere.popup/0.0.1920.1032@0.0.1920.1032" timestamp="1690338774328" /> + </component> + <component name="XDebuggerManager"> + <breakpoint-manager> + <breakpoints> + <line-breakpoint enabled="true" type="java-line"> + <url>file://$PROJECT_DIR$/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java</url> + <line>145</line> + <option name="timeStamp" value="1" /> + </line-breakpoint> + </breakpoints> + </breakpoint-manager> </component> <component name="masterDetails"> <states> diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java new file mode 100644 index 0000000..0208ed9 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/CityController.java @@ -0,0 +1,70 @@ +package com.dsh.account.controller; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.account.entity.TAppUser; +import com.dsh.account.entity.TCityManager; +import com.dsh.account.feignclient.model.CityListQuery; +import com.dsh.account.model.AddAppUserVo; +import com.dsh.account.model.JoinPlayPaiVo; +import com.dsh.account.model.LoginSMSCodeVo; +import com.dsh.account.model.LoginWeChatVo; +import com.dsh.account.service.CityService; +import com.dsh.account.service.IVipPaymentService; +import com.dsh.account.service.TAppUserService; +import com.dsh.account.util.PayMoneyUtil; +import com.dsh.account.util.ResultUtil; +import com.dsh.account.util.TokenUtil; +import com.dsh.account.util.ToolUtil; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.PrintWriter; +import java.util.Map; + +/** + * @author zhibing.pu + * @date 2023/6/14 15:30 + */ +@RestController +@RequestMapping("") +public class CityController { + + @Autowired + private CityService cityService; + + + @PostMapping("/base/city/list") + public Page<TCityManager> list(@RequestBody CityListQuery listQuery){ + try { + Page<TCityManager> page = new Page<>(listQuery.getOffset(), listQuery.getLimit()); + LambdaQueryWrapper<TCityManager> tCityManagerLambdaQueryWrapper = new LambdaQueryWrapper<>(); + tCityManagerLambdaQueryWrapper.ne(TCityManager::getState,3); + if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){ + tCityManagerLambdaQueryWrapper.eq(TCityManager::getProvinceCode,listQuery.getProvinceCode()); + } + if(ToolUtil.isNotEmpty(listQuery.getCityCode())){ + tCityManagerLambdaQueryWrapper.eq(TCityManager::getCityCode,listQuery.getCityCode()); + } + if(ToolUtil.isNotEmpty(listQuery.getName())){ + tCityManagerLambdaQueryWrapper.like(TCityManager::getName,listQuery.getName()); + } + if(ToolUtil.isNotEmpty(listQuery.getPhone())){ + tCityManagerLambdaQueryWrapper.like(TCityManager::getPhone,listQuery.getPhone()); + } + Page<TCityManager> page1 = cityService.page(page, tCityManagerLambdaQueryWrapper); + return page1; + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java index 345666f..12bc776 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java @@ -409,14 +409,17 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"), + @ApiImplicitParam(value = "预约状态 0=全部 1=待上课 2=已完成 3=已取消", name = "appointStatus", required = false, dataType = "int"), + @ApiImplicitParam(value = "时间类型 0=全部 1=近一周 2=近一个月 3=近一年", name = "appointStatus", required = false, dataType = "int"), + @ApiImplicitParam(value = "课程名称", name = "appointStatus", required = false, dataType = "string"), }) - public ResultUtil<AppointmentRecordVo> cgeClassAppointmentRecordList(Integer stuId){ + public ResultUtil<AppointmentRecordVo> cgeClassAppointmentRecordList(Integer stuId,Integer appointStatus,Integer timeType,String search){ try { Integer appUserId = tokenUtil.getUserIdFormRedis(); if(null == appUserId){ return ResultUtil.tokenErr(); } - return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId)); + return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search)); }catch (Exception e){ return ResultUtil.runErr(); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java index 8f7f0df..16f1915 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java @@ -383,7 +383,7 @@ @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"), @ApiImplicitParam(value = "记录(1充值 2扣除)", name = "recordId", required = true, dataType = "int"), }) - public ResultUtil<IntegralDetailsResponse> pointDetails(String yearMonth, Integer recordId){ + public ResultUtil<List<IntegralsData>> pointDetails(String yearMonth, Integer recordId){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ diff --git a/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java b/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java new file mode 100644 index 0000000..3c3cd79 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/entity/TCityManager.java @@ -0,0 +1,22 @@ +package com.dsh.account.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("t_city_manager") +public class TCityManager { + private Integer id; + private String name; + private String phone; + private String password; + private String province; + @TableField("provinceCode") + private String provinceCode; + private String city; + @TableField("cityCode") + private String cityCode; + private Integer state; + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java index c788428..a0b66ac 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePackageClient.java @@ -17,6 +17,6 @@ * @param id * @return */ - @PostMapping("/coursePackage/queryCoursePackageById") + @PostMapping("/base/coursePackage/queryCoursePackageById") CoursePackage queryCoursePackageById(Integer id); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java new file mode 100644 index 0000000..3d658c0 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/model/CityListQuery.java @@ -0,0 +1,18 @@ +package com.dsh.account.feignclient.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CityListQuery { + private long limit; + private long offset; + private String provinceCode; + private String cityCode; + private String name; + private String phone; + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java b/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java new file mode 100644 index 0000000..0a43318 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/mapper/CityMapper.java @@ -0,0 +1,17 @@ +package com.dsh.account.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.account.entity.Coach; +import com.dsh.account.entity.TCityManager; + +/** + * <p> + * 教练 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CityMapper extends BaseMapper<TCityManager> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java index 296e9e7..d253b80 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/AppointmentRecordVo.java @@ -16,6 +16,9 @@ @ApiModelProperty(value = "当前学员姓名") private String stuName; + @ApiModelProperty(value = "预约状态 0=全部 1=待上课 2=已完成 3=已取消") + private Integer appointStatus; + @ApiModelProperty(value = "记录列表") private List<RecordAppoint> appointList; diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java deleted file mode 100644 index 32a6fed..0000000 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralDetailsResponse.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.dsh.account.model.vo.userBenefitDetail; - - -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -import java.util.List; - -@Data -public class IntegralDetailsResponse { - - @ApiModelProperty(value = "可用积分") - private Integer wpGold; - - @ApiModelProperty(value = "记录列表") - private List<IntegralsData> detailList; - - @Data - public static class IntegralsData{ - - @ApiModelProperty(value = "名称") - private String consumeName; - - @ApiModelProperty(value = "时间") - private String consumeTime; - - @ApiModelProperty(value = "金额 例如 -90 ") - private String consumeAmount; - - @ApiModelProperty(value = "1扣减 2增加") - private Integer detailsType; - - } - -} diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java new file mode 100644 index 0000000..0c4b2b2 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IntegralsData.java @@ -0,0 +1,22 @@ +package com.dsh.account.model.vo.userBenefitDetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class IntegralsData { + + @ApiModelProperty(value = "名称") + private String consumeName; + + @ApiModelProperty(value = "时间") + private String consumeTime; + + @ApiModelProperty(value = "金额 例如 -90 ") + private String consumeAmount; + + @ApiModelProperty(value = "1扣减 2增加") + private Integer detailsType; + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java index 237c23d..d644a90 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/PointDetailsVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -42,4 +43,19 @@ @ApiModelProperty(value = "兑换说明") private String contents; + @ApiModelProperty(value = "课包课时数") + private Integer classHours; + + @ApiModelProperty(value = "积分") + private Integer integral; + + @ApiModelProperty(value = "现金") + private BigDecimal cash; + + @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券") + private Integer goodType; + + @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金)") + private Integer exchangeType; + } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java b/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java new file mode 100644 index 0000000..d2ea2e4 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/CityService.java @@ -0,0 +1,17 @@ +package com.dsh.account.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.account.entity.Coach; +import com.dsh.account.entity.TCityManager; + +/** + * <p> + * 教练 服务类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +public interface CityService extends IService<TCityManager> { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java index 96f2359..508dd60 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java @@ -83,7 +83,7 @@ * @param appUserId * @return */ - AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId); + AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search); ResultUtil cancelReservationOfCourse( Integer courseStuRecordId); diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java index b45c68a..c753574 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/UserIntegralChangesService.java @@ -4,7 +4,7 @@ import com.dsh.account.entity.UserIntegralChanges; import com.dsh.account.model.SaveUserIntegralChangesVo; import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse; -import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse; +import com.dsh.account.model.vo.userBenefitDetail.IntegralsData; import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo; import java.util.List; @@ -19,7 +19,7 @@ */ public interface UserIntegralChangesService extends IService<UserIntegralChanges> { - IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis); + List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis); /** diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java new file mode 100644 index 0000000..6b7fa74 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/CityServiceImpl.java @@ -0,0 +1,23 @@ +package com.dsh.account.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.account.entity.Coach; +import com.dsh.account.entity.TCityManager; +import com.dsh.account.mapper.CityMapper; +import com.dsh.account.mapper.CoachMapper; +import com.dsh.account.service.CityService; +import com.dsh.account.service.CoachService; +import org.springframework.stereotype.Service; + +/** + * <p> + * 教练 服务实现类 + * </p> + * + * @author jqs + * @since 2023-07-05 + */ +@Service +public class CityServiceImpl extends ServiceImpl<CityMapper, TCityManager> implements CityService { + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java index c9e98a6..9a11a95 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java @@ -563,7 +563,7 @@ } @Override - public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId) { + public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search) { AppointmentRecordVo recordVo = new AppointmentRecordVo(); TStudent tStudent = this.baseMapper.selectOne(new QueryWrapper<TStudent>() .eq("id",stuId ) @@ -571,7 +571,72 @@ if (ToolUtil.isNotEmpty(tStudent)){ recordVo.setStuId(tStudent.getId()); recordVo.setStuName(tStudent.getName()); - recordVo.setAppointList(couPayClient.obtainStudentClassDetailsData(stuId)); + List<RecordAppoint> recordAppoints = couPayClient.obtainStudentClassDetailsData(stuId); + if (ToolUtil.isEmpty(appointStatus)){ + recordVo.setAppointStatus(0); + }else { + recordVo.setAppointStatus(appointStatus); + recordAppoints = recordAppoints.stream() + .filter(record -> record.getStatus().equals(appointStatus)) + .collect(Collectors.toList()); + } + if (ToolUtil.isNotEmpty(search)){ + recordVo.setAppointStatus(appointStatus); + recordAppoints = recordAppoints.stream() + .filter(record -> record.getCoursePackageName().contains(search)) + .collect(Collectors.toList()); + } + if (ToolUtil.isNotEmpty(timeType)){ + Date lastOfDate = DateUtil.getLastOfDate(); + switch (timeType){ + case 1: + Date lastWeekStartDate = DateUtil.getLastWeekStartDate(); + recordAppoints = recordAppoints.stream() + .filter(record -> { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date time = sdf.parse(record.getTimeFrame().substring(11)); + return !time.before(lastWeekStartDate) && !time.after(lastOfDate); + } catch (ParseException e) { + return false; + } + }) + .collect(Collectors.toList()); + break; + case 2: + Date lastMonthStartDate = DateUtil.getLastMonthStartDate(); + recordAppoints = recordAppoints.stream() + .filter(record -> { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + Date time = sdf.parse(record.getTimeFrame().substring(11)); + return !time.before(lastMonthStartDate) && !time.after(lastOfDate); + } catch (ParseException e) { + return false; + } + }) + .collect(Collectors.toList()); + break; + case 3: + Date lastYearStartDate = DateUtil.getLastYearStartDate(); + recordAppoints = recordAppoints.stream() + .filter(record -> { + try { + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + Date time = sdf.parse(record.getTimeFrame().substring(11)); + return !time.before(lastYearStartDate) && !time.after(lastOfDate); + } catch (ParseException e) { + return false; + } + }) + .collect(Collectors.toList()); + break; + default: + break; + + } + } + recordVo.setAppointList(recordAppoints); } return recordVo; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java index e04b185..68321ea 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java @@ -9,7 +9,7 @@ import com.dsh.account.mapper.UserIntegralChangesMapper; import com.dsh.account.model.SaveUserIntegralChangesVo; import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse; -import com.dsh.account.model.vo.userBenefitDetail.IntegralDetailsResponse; +import com.dsh.account.model.vo.userBenefitDetail.IntegralsData; import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo; import com.dsh.account.service.UserIntegralChangesService; import com.dsh.account.util.DateTimeHelper; @@ -43,9 +43,8 @@ private MerChandiseClient mcClient; @Override - public IntegralDetailsResponse queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) { - IntegralDetailsResponse vo = new IntegralDetailsResponse(); - List<IntegralDetailsResponse.IntegralsData> details = new ArrayList<>(); + public List<IntegralsData> queryUserPointsDetails(String yearMonth, Integer recordId, Integer userIdFormRedis) { + List<IntegralsData> details = new ArrayList<>(); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("MM-dd HH:mm"); Date monthStart = null; @@ -63,7 +62,7 @@ .orderByDesc("insertTime")); if (userIntegralChanges.size() > 0 ){ for (UserIntegralChanges userIntegralChange : userIntegralChanges) { - IntegralDetailsResponse.IntegralsData detail= new IntegralDetailsResponse.IntegralsData(); + IntegralsData detail= new IntegralsData(); switch (userIntegralChange.getType()){ case 1: detail.setConsumeAmount("+"+(userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral())); @@ -94,15 +93,12 @@ } if (null != recordId){ details = details.stream() - .filter(obj -> obj instanceof IntegralDetailsResponse.IntegralsData) + .filter(obj -> obj instanceof IntegralsData) .filter(obj -> Objects.equals(obj.getDetailsType(), recordId)) .collect(Collectors.toList()); } - TAppUser tAppUser = tauMapper.selectById(userIdFormRedis); - vo.setWpGold(tAppUser.getIntegral()); - vo.setDetailList(details); } - return vo; + return details; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java index a546553..9c752b6 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java +++ b/cloud-server-account/src/main/java/com/dsh/account/util/DateUtil.java @@ -368,4 +368,43 @@ return age; } + + // 获取近一周的开始时间 + public static Date getLastWeekStartDate() { + Calendar calendar = Calendar.getInstance(); + // 设置为当前日期的前一周 + calendar.add(Calendar.DAY_OF_YEAR, -7); + // 获取近一周的开始时间 + return calendar.getTime(); + } + + + // 获取近一个月的开始时间 + public static Date getLastMonthStartDate() { + Calendar calendar = Calendar.getInstance(); + // 设置为当前日期的前一个月 + calendar.add(Calendar.MONTH, -1); + // 获取近一个月的开始时间 + return calendar.getTime(); + } + + // 获取近一年的开始时间 + public static Date getLastYearStartDate() { + Calendar calendar = Calendar.getInstance(); + // 设置为当前日期的前一年 + calendar.add(Calendar.YEAR, -1); + // 获取近一年的开始时间 + return calendar.getTime(); + } + + + // 获取昨天的时间 + public static Date getLastOfDate() { + Calendar calendar = Calendar.getInstance(); + // 设置为当前日期的前一个月 + calendar.add(Calendar.DAY_OF_YEAR, -1); + // 获取近一个月的开始时间 + return calendar.getTime(); + } + } diff --git a/cloud-server-account/src/main/resources/mapper/CityMapper.xml b/cloud-server-account/src/main/resources/mapper/CityMapper.xml new file mode 100644 index 0000000..5c834d9 --- /dev/null +++ b/cloud-server-account/src/main/resources/mapper/CityMapper.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dsh.account.mapper.CityMapper"> + + +</mapper> diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java index caa6f0b..caaf629 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java @@ -327,6 +327,14 @@ UserPointsMerchandise byId = upmseService.getById(speMercharsId); if (ToolUtil.isNotEmpty(byId)){ PointsMerchandise pmdsServiceById = pmdsService.getById(byId.getPointsMerchandiseId()); + detailsVo.setExchangeType(pmdsServiceById.getRedemptionMethod()); + detailsVo.setGoodType(pmdsServiceById.getType()); + if (pmdsServiceById.getRedemptionMethod() == 1){ + detailsVo.setIntegral(pmdsServiceById.getIntegral()); + }else { + detailsVo.setCash(pmdsServiceById.getCash()); + detailsVo.setIntegral(pmdsServiceById.getIntegral()); + } detailsVo.setDetailsId(byId.getId()); switch (pmdsServiceById.getType()){ case 1: @@ -349,6 +357,8 @@ List<String> list1 = Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")); list1.add(coursePackage.getCoverDrawing()); detailsVo.setPics(list1); + CoursePackagePaymentConfig coursePackagePaymentConfig = cpClient.queryConfigCoursePackData(pmdsServiceById.getCoursePackageConfigId()); + detailsVo.setClassHours(coursePackagePaymentConfig.getClassHours()); Collections.sort(detailsVo.getPics(), (s1, s2) -> { if (s1.equals(coursePackage.getCoverDrawing())) { return -1; // s1排在前面 diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java index 9b1333e..698ac42 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/course/CoursePackageClient.java @@ -1,8 +1,10 @@ package com.dsh.activity.feignclient.course; import com.dsh.activity.feignclient.course.model.CoursePackage; +import com.dsh.activity.feignclient.course.model.CoursePackagePaymentConfig; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; /** * @author zhibing.pu @@ -17,6 +19,9 @@ * @param id * @return */ - @PostMapping("/coursePackage/queryCoursePackageById") - CoursePackage queryCoursePackageById(Integer id); + @PostMapping("/base/coursePackage/queryCoursePackageById") + CoursePackage queryCoursePackageById(@RequestBody Integer id); + + @PostMapping("/base/coursePackage/queryConfigCoursePackData") + CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId); } diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java index 8bf0fac..9949082 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/PointDetailsVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.List; @Data @@ -42,4 +43,20 @@ @ApiModelProperty(value = "兑换说明") private String contents; + + @ApiModelProperty(value = "课包课时数") + private Integer classHours; + + @ApiModelProperty(value = "积分") + private Integer integral; + + @ApiModelProperty(value = "现金") + private BigDecimal cash; + + @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券") + private Integer goodType; + + @ApiModelProperty(value = "兑换方式(1=积分,2=积分+现金)") + private Integer exchangeType; + } diff --git a/cloud-server-competition/mb-cloud-competition.iml b/cloud-server-competition/mb-cloud-competition.iml index 9c5ecce..1e7f40c 100644 --- a/cloud-server-competition/mb-cloud-competition.iml +++ b/cloud-server-competition/mb-cloud-competition.iml @@ -133,6 +133,9 @@ <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" /> @@ -147,17 +150,153 @@ <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> + <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" /> + <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> + <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" /> + <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.8.10.ALL" level="project" /> + <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.50" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" /> <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" /> - <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" /> @@ -170,7 +309,6 @@ <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" /> - <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" /> @@ -186,8 +324,6 @@ <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" /> @@ -207,7 +343,6 @@ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" /> @@ -222,10 +357,10 @@ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" /> @@ -237,7 +372,7 @@ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" /> diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java index a20ec4b..a83c0f5 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/controller/CompetitionController.java @@ -1,21 +1,28 @@ package com.dsh.competition.controller; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.competition.entity.Competition; +import com.dsh.competition.entity.Participant; import com.dsh.competition.entity.PaymentCompetition; import com.dsh.competition.entity.UserCompetition; +import com.dsh.competition.feignclient.model.GetPeopleQuery; import com.dsh.competition.feignclient.model.GetStuSourseList; +import com.dsh.competition.feignclient.model.ListQuery; import com.dsh.competition.feignclient.model.PurchaseRecordVo; import com.dsh.competition.model.CompetitionInfo; import com.dsh.competition.model.CompetitionListVo; import com.dsh.competition.model.PaymentCompetitionVo; import com.dsh.competition.service.CompetitionService; +import com.dsh.competition.service.IParticipantService; import com.dsh.competition.service.IPaymentCompetitionService; import com.dsh.competition.service.UserCompetitionService; import com.dsh.competition.util.PayMoneyUtil; import com.dsh.competition.util.ResultUtil; import com.dsh.competition.util.TokenUtil; +import com.dsh.competition.util.ToolUtil; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -61,6 +68,9 @@ @Autowired private IPaymentCompetitionService paymentCompetitionService; + + @Autowired + private IParticipantService participantService; @PostMapping("/base/competition/getPayedCompetitions") @@ -368,5 +378,96 @@ e.printStackTrace(); } } + + + @PostMapping("/base/competition/queryById") + public Competition queryById(Integer id){ + try { + return cttService.getById(id); + }catch (Exception e){ + e.printStackTrace(); + return null; + } + } + + + @PostMapping("/base/competition/list") + public Page<Competition> list(@RequestBody ListQuery listQuery){ + try { + Page<Competition> competitionPage = new Page<>(listQuery.getOffset(),listQuery.getLimit()); + LambdaQueryWrapper<Competition> wrapper = new LambdaQueryWrapper<>(); + if(ToolUtil.isNotEmpty(listQuery.getProvinceCode())){ + wrapper.eq(Competition::getProvinceCode,listQuery.getProvinceCode()); + } + if(ToolUtil.isNotEmpty(listQuery.getCityCode())){ + wrapper.eq(Competition::getProvinceCode,listQuery.getCityCode()); + } + if(ToolUtil.isNotEmpty(listQuery.getEventName())){ + wrapper.like(Competition::getName,listQuery.getEventName()); + } + if(ToolUtil.isNotEmpty(listQuery.getTime())){ + wrapper.gt(Competition::getStartTime,listQuery.getTime().split(" - ")[0]+" 00:00:00"); + wrapper.lt(Competition::getEndTime,listQuery.getTime().split(" - ")[1]+" 23:59:59"); + } + if(ToolUtil.isNotEmpty(listQuery.getState())){ + wrapper.eq(Competition::getState,listQuery.getState()); + } + if(ToolUtil.isNotEmpty(listQuery.getRegisterCondition())){ + wrapper.eq(Competition::getRegisterCondition,listQuery.getRegisterCondition()); + } + wrapper.in(Competition::getStoreId,listQuery.getIds()); + Page<Competition> page = cttService.page(competitionPage, wrapper); + return page; + }catch (Exception e){ + e.printStackTrace(); + return new Page<Competition>(); + } + } + + + @PostMapping("/base/competition/add") + public void add(@RequestBody Competition competition){ + try { + cttService.save(competition); + }catch (Exception e){ + e.printStackTrace(); + } + } + + @PostMapping("/base/competition/update") + public void update(@RequestBody Competition competition){ + try { + cttService.updateById(competition); + }catch (Exception e){ + e.printStackTrace(); + } + } + + @PostMapping("/base/competition/cancel") + public void cancel(@RequestBody Integer id){ + try { + Competition byId = cttService.getById(id); + byId.setStatus(4); + cttService.updateById(byId); + }catch (Exception e){ + e.printStackTrace(); + } + } + + +// @PostMapping("/base/competition/getPeopleFromId") +// public Page<Participant> getPeopleFromId(@RequestBody GetPeopleQuery getPeopleQuery){ +// try { +// Page<Participant> participantPage = new Page<>(); +// LambdaQueryWrapper<Participant> participantLambdaQueryWrapper = new LambdaQueryWrapper<>(); +// if(getPeopleQuery.getState()!=null){ +// participantLambdaQueryWrapper.eq(Participant::getState) +// } +// participantService.page() +// }catch (Exception e){ +// return null; +// } +// } + } diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java index b2b5548..8fe36d4 100644 --- a/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java +++ b/cloud-server-competition/src/main/java/com/dsh/competition/entity/Competition.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -68,11 +69,13 @@ * 开始时间 */ @TableField("startTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date startTime; /** * 结束时间 */ @TableField("endTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date endTime; /** * 报名结束时间 diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java new file mode 100644 index 0000000..1e77a9c --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/GetPeopleQuery.java @@ -0,0 +1,15 @@ +package com.dsh.competition.feignclient.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GetPeopleQuery { + private long limit; + private long offset; + private Integer id; + private Integer state; +} diff --git a/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java new file mode 100644 index 0000000..68bb178 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/competition/feignclient/model/ListQuery.java @@ -0,0 +1,25 @@ +package com.dsh.competition.feignclient.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class ListQuery { + private long limit; + + private long offset; + + private String provinceCode; + private String cityCode; + private String eventName; + private String time; + private Integer state; + private Integer registerCondition; + private List<Integer> ids; + +} diff --git a/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java b/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java new file mode 100644 index 0000000..da1fd33 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/page/HttpKit.java @@ -0,0 +1,202 @@ +/** + * Copyright (c) 2015-2016, Chill Zhuang 庄骞 (smallchill@163.com). + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.dsh.page; + +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLEncoder; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class HttpKit { + + public static String getIp(){ + return HttpKit.getRequest().getRemoteHost(); + } + + /** + * 获取所有请求的值 + */ + public static Map<String, String> getRequestParameters() { + HashMap<String, String> values = new HashMap<>(); + HttpServletRequest request = HttpKit.getRequest(); + Enumeration enums = request.getParameterNames(); + while ( enums.hasMoreElements()){ + String paramName = (String) enums.nextElement(); + String paramValue = request.getParameter(paramName); + values.put(paramName, paramValue); + } + return values; + } + + /** + * 获取 HttpServletRequest + */ + public static HttpServletResponse getResponse() { + HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse(); + return response; + } + + /** + * 获取 包装防Xss Sql注入的 HttpServletRequest + * @return request + */ + public static HttpServletRequest getRequest() { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + return new WafRequestWrapper(request); + } + + /** + * 向指定URL发送GET方法的请求 + * + * @param url 发送请求的URL + * @param param 请求参数 + * @return URL 所代表远程资源的响应结果 + */ + public static String sendGet(String url, Map<String, String> param) { + String result = ""; + BufferedReader in = null; + try { + StringBuffer query = new StringBuffer(); + + for (Map.Entry<String, String> kv : param.entrySet()) { + query.append(URLEncoder.encode(kv.getKey(), "UTF-8") + "="); + query.append(URLEncoder.encode(kv.getValue(), "UTF-8") + "&"); + } + if (query.lastIndexOf("&") > 0) { + query.deleteCharAt(query.length() - 1); + } + + String urlNameString = url + "?" + query.toString(); + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + //Establish the connection between the open URL and other relevant components. + URLConnection connection = realUrl.openConnection(); + // 设置通用的请求属性 + //Set universal request properties. + connection.setRequestProperty("accept", "*/*"); + connection.setRequestProperty("connection", "Keep-Alive"); + connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 建立实际的连接 + //Establishing a tangible connection + connection.connect(); + // 获取所有响应头字段 + //Retrieve all response header fields. + Map<String, List<String>> map = connection.getHeaderFields(); + // 遍历所有的响应头字段 + //Traverse all response header fields. + for (String key : map.keySet()) { + System.out.println(key + "--->" + map.get(key)); + } + // 定义 BufferedReader输入流来读取URL的响应 + //Define a BufferedReader input stream to read the response of the URL. + in = new BufferedReader(new InputStreamReader(connection.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送GET请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输入流 + //Use a 'finally' block to close the input stream. + finally { + try { + if (in != null) { + in.close(); + } + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return result; + } + + /** + * 向指定 URL 发送POST方法的请求 + * + * @param url 发送请求的 URL + * @param param 请求参数 + * @return 所代表远程资源的响应结果 + */ + public static String sendPost(String url, Map<String, String> param) { + PrintWriter out = null; + BufferedReader in = null; + String result = ""; + try { + String para = ""; + for (String key : param.keySet()) { + para += (key + "=" + param.get(key) + "&"); + } + if (para.lastIndexOf("&") > 0) { + para = para.substring(0, para.length() - 1); + } + String urlNameString = url + "?" + para; + URL realUrl = new URL(urlNameString); + // 打开和URL之间的连接 + URLConnection conn = realUrl.openConnection(); + // 设置通用的请求属性 + conn.setRequestProperty("accept", "*/*"); + conn.setRequestProperty("connection", "Keep-Alive"); + conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); + // 发送POST请求必须设置如下两行 + conn.setDoOutput(true); + conn.setDoInput(true); + // 获取URLConnection对象对应的输出流 + out = new PrintWriter(conn.getOutputStream()); + // 发送请求参数 + out.print(param); + // flush输出流的缓冲 + out.flush(); + // 定义BufferedReader输入流来读取URL的响应 + in = new BufferedReader(new InputStreamReader(conn.getInputStream())); + String line; + while ((line = in.readLine()) != null) { + result += line; + } + } catch (Exception e) { + System.out.println("发送 POST 请求出现异常!" + e); + e.printStackTrace(); + } + // 使用finally块来关闭输出流、输入流 + finally { + try { + if (out != null) { + out.close(); + } + if (in != null) { + in.close(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } + } + return result; + } + +} diff --git a/cloud-server-competition/src/main/java/com/dsh/page/Order.java b/cloud-server-competition/src/main/java/com/dsh/page/Order.java new file mode 100644 index 0000000..105a4a5 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/page/Order.java @@ -0,0 +1,26 @@ +package com.dsh.page; + +/** + * 数据库排序 + * + * @author fengshuonan + * @Date 2017年5月31日20:48:41 + */ +public enum Order { + + ASC("asc"), DESC("desc"); + + private String des; + + Order(String des) { + this.des = des; + } + + public String getDes() { + return des; + } + + public void setDes(String des) { + this.des = des; + } +} diff --git a/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java b/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java new file mode 100644 index 0000000..4035a85 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/page/PageFactory.java @@ -0,0 +1,31 @@ +package com.dsh.page; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.springframework.util.StringUtils; + +import javax.servlet.http.HttpServletRequest; + +/** + * BootStrap Table默认的分页参数创建 + * + * @author fengshuonan + * @date 2017-04-05 22:25 + */ +public class PageFactory<T> { + + public Page<T> defaultPage(Integer limit ,Integer offset) { + HttpServletRequest request = HttpKit.getRequest(); + String sort = request.getParameter("sort"); //排序字段名称 + String order = request.getParameter("order"); //asc或desc(升序或降序) + if (StringUtils.isEmpty(sort)) { + Page<T> page = new Page<>((offset / limit + 1), limit); + return page; + } else { + Page<T> page = new Page<T>((offset / limit + 1), limit); + if (Order.ASC.getDes().equals(order)) { + } else { + } + return page; + } + } +} diff --git a/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java b/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java new file mode 100644 index 0000000..337d021 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/page/WafKit.java @@ -0,0 +1,118 @@ +/** + * Copyright (c) 2011-2014, hubin (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package com.dsh.page; + +import java.util.regex.Pattern; + +/** + * Web防火墙工具类 + Web firewall tool category + * <p> + * @author hubin + * @Date 2014-5-8 + */ +public class WafKit { + + /** + * @Description 过滤XSS脚本内容 + Filtering XSS scripts content. + * @param value + * 待处理内容 + * @return + */ + public static String stripXSS(String value) { + String rlt = null; + + if (null != value) { + // NOTE: It's highly recommended to use the ESAPI library and uncomment the following line to + // avoid encoded attacks. + // value = ESAPI.encoder().canonicalize(value); + + // Avoid null characters + rlt = value.replaceAll("", ""); + + // Avoid anything between script tags + Pattern scriptPattern = Pattern.compile("<script>(.*?)</script>", Pattern.CASE_INSENSITIVE); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid anything in a src='...' type of expression + /*scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\'(.*?)\\\'", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + scriptPattern = Pattern.compile("src[\r\n]*=[\r\n]*\\\"(.*?)\\\"", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll("");*/ + + // Remove any lonesome </script> tag + scriptPattern = Pattern.compile("</script>", Pattern.CASE_INSENSITIVE); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Remove any lonesome <script ...> tag + scriptPattern = Pattern.compile("<script(.*?)>", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid eval(...) expressions + scriptPattern = Pattern.compile("eval\\((.*?)\\)", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid expression(...) expressions + scriptPattern = Pattern.compile("expression\\((.*?)\\)", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid javascript:... expressions + scriptPattern = Pattern.compile("javascript:", Pattern.CASE_INSENSITIVE); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid vbscript:... expressions + scriptPattern = Pattern.compile("vbscript:", Pattern.CASE_INSENSITIVE); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + + // Avoid onload= expressions + scriptPattern = Pattern.compile("onload(.*?)=", Pattern.CASE_INSENSITIVE + | Pattern.MULTILINE | Pattern.DOTALL); + rlt = scriptPattern.matcher(rlt).replaceAll(""); + } + + return rlt; + } + + /** + * @Description 过滤SQL注入内容 + Filter SQL injection content. + * @param value + * 待处理内容 + * @return + */ + public static String stripSqlInjection(String value) { + return (null == value) ? null : value.replaceAll("('.+--)|(--)|(%7C)", ""); //value.replaceAll("('.+--)|(--)|(\\|)|(%7C)", ""); + } + + /** + * @Description 过滤SQL/XSS注入内容 + Filter SQL/XSS injection content. + * @param value + * 待处理内容 + * @return + */ + public static String stripSqlXSS(String value) { + return stripXSS(stripSqlInjection(value)); + } + +} diff --git a/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java b/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java new file mode 100644 index 0000000..942f035 --- /dev/null +++ b/cloud-server-competition/src/main/java/com/dsh/page/WafRequestWrapper.java @@ -0,0 +1,150 @@ +/** + * Copyright (c) 2011-2014, hubin (jobob@qq.com). + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ +package com.dsh.page; + +import javax.servlet.http.Cookie; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletRequestWrapper; +import java.util.HashMap; +import java.util.Map; + +/** + * Request请求过滤包装 + Request for packaging filtration. + * <p> + * @author hubin + * @Date 2014-5-8 + */ +public class WafRequestWrapper extends HttpServletRequestWrapper { + + private boolean filterXSS = true; + + private boolean filterSQL = true; + + + public WafRequestWrapper(HttpServletRequest request, boolean filterXSS, boolean filterSQL) { + super(request); + this.filterXSS = filterXSS; + this.filterSQL = filterSQL; + } + + + public WafRequestWrapper(HttpServletRequest request) { + this(request, true, true); + } + + + /** + * @Description 数组参数过滤 + * @param parameter + * 过滤参数 + * @return + */ + @Override + public String[] getParameterValues(String parameter) { + String[] values = super.getParameterValues(parameter); + if ( values == null ) { + return null; + } + + int count = values.length; + String[] encodedValues = new String[count]; + for ( int i = 0 ; i < count ; i++ ) { + encodedValues[i] = filterParamString(values[i]); + } + + return encodedValues; + } + + @Override + @SuppressWarnings({ "rawtypes", "unchecked" }) + public Map getParameterMap() { + Map<String, String[]> primary = super.getParameterMap(); + Map<String, String[]> result = new HashMap<String, String[]>(primary.size()); + for ( Map.Entry<String, String[]> entry : primary.entrySet() ) { + result.put(entry.getKey(), filterEntryString(entry.getValue())); + } + return result; + + } + + protected String[] filterEntryString(String[] rawValue) { + for ( int i = 0 ; i < rawValue.length ; i++ ) { + rawValue[i] = filterParamString(rawValue[i]); + } + return rawValue; + } + + /** + * @Description 参数过滤 + * @param parameter + * 过滤参数 + * @return + */ + @Override + public String getParameter(String parameter) { + return filterParamString(super.getParameter(parameter)); + } + + + /** + * @Description 请求头过滤 + * @param name + * 过滤内容 + * @return + */ + @Override + public String getHeader(String name) { + return filterParamString(super.getHeader(name)); + } + + + /** + * @Description Cookie内容过滤 + * @return + */ + @Override + public Cookie[] getCookies() { + Cookie[] existingCookies = super.getCookies(); + if (existingCookies != null) { + for (int i = 0 ; i < existingCookies.length ; ++i) { + Cookie cookie = existingCookies[i]; + cookie.setValue(filterParamString(cookie.getValue())); + } + } + return existingCookies; + } + + /** + * @Description 过滤字符串内容 + * @param rawValue + * 待处理内容 + * @return + */ + protected String filterParamString(String rawValue) { + if (null == rawValue) { + return null; + } + String tmpStr = rawValue; + if (this.filterXSS) { + tmpStr = WafKit.stripXSS(rawValue); + } + if (this.filterSQL) { + tmpStr = WafKit.stripSqlInjection(tmpStr); + } + return tmpStr; + } +} diff --git a/cloud-server-course/mb-cloud-course.iml b/cloud-server-course/mb-cloud-course.iml index 9c5ecce..ae755d5 100644 --- a/cloud-server-course/mb-cloud-course.iml +++ b/cloud-server-course/mb-cloud-course.iml @@ -9,6 +9,16 @@ <webroots /> </configuration> </facet> + <facet type="jpa" name="JPA"> + <configuration> + <setting name="validation-enabled" value="true" /> + <setting name="provider-name" value="Hibernate" /> + <datasource-mapping> + <factory-entry name="entityManagerFactory" /> + </datasource-mapping> + <naming-strategy-map /> + </configuration> + </facet> </component> <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8"> <output url="file://$MODULE_DIR$/target/classes" /> @@ -28,7 +38,6 @@ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.alibaba:transmittable-thread-local:2.10.1" level="project" /> - <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-data:1.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.3.6.RELEASE" level="project" /> @@ -37,7 +46,6 @@ <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-undertow:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: io.undertow:undertow-core:2.1.4.Final" level="project" /> - <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" /> <orderEntry type="library" name="Maven: org.jboss.xnio:xnio-api:3.8.0.Final" level="project" /> <orderEntry type="library" name="Maven: org.wildfly.common:wildfly-common:1.5.2.Final" level="project" /> <orderEntry type="library" name="Maven: org.wildfly.client:wildfly-client-config:1.0.1.Final" level="project" /> @@ -55,7 +63,6 @@ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-redis:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.data:spring-data-redis:2.3.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.data:spring-data-keyvalue:2.3.5.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.5.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-oxm:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: io.lettuce:lettuce-core:5.3.5.RELEASE" level="project" /> @@ -69,7 +76,6 @@ <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring:2.0.3" level="project" /> <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-annotations:2.0.3" level="project" /> <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-core:2.0.3" level="project" /> - <orderEntry type="library" name="Maven: org.javassist:javassist:3.25.0-GA" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-bean-validators:2.9.2" level="project" /> <orderEntry type="library" name="Maven: com.github.xiaoymin:knife4j-spring-ui:2.0.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-validation:2.3.6.RELEASE" level="project" /> @@ -90,12 +96,10 @@ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.4.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.2.11.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-api:1.1.3" level="project" /> <orderEntry type="library" name="Maven: cn.mb.cloud:mb-cloud-common-feign:1.1.3" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-openfeign:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-openfeign-core:2.2.6.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form-spring:3.8.0" level="project" /> <orderEntry type="library" name="Maven: io.github.openfeign.form:feign-form:3.8.0" level="project" /> <orderEntry type="library" name="Maven: commons-fileupload:commons-fileupload:1.3.3" level="project" /> @@ -110,7 +114,6 @@ <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-annotation-aspectj:1.7.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-core:1.7.1" level="project" /> <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.6" level="project" /> - <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-circuitbreaker-sentinel:2.2.1.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-reactor-adapter:1.7.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.csp:sentinel-spring-webflux-adapter:1.7.1" level="project" /> @@ -132,7 +135,38 @@ <orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.2" level="project" /> <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" /> <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.velocity:velocity:1.7" level="project" /> + <orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.3.6.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.3.6.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.6" level="project" /> + <orderEntry type="library" name="Maven: jakarta.transaction:jakarta.transaction-api:1.3.3" level="project" /> + <orderEntry type="library" name="Maven: jakarta.persistence:jakarta.persistence-api:2.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.4.23.Final" level="project" /> + <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.4.1.Final" level="project" /> + <orderEntry type="library" name="Maven: org.javassist:javassist:3.24.0-GA" level="project" /> + <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.18" level="project" /> + <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" /> + <orderEntry type="library" name="Maven: org.jboss:jandex:2.1.3.Final" level="project" /> + <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.1.2.Final" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.3" level="project" /> + <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.3" level="project" /> + <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.11" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.activation:jakarta.activation:1.2.2" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.3.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.3.5.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.2.11.RELEASE" level="project" /> + <orderEntry type="library" name="Maven: org.freemarker:freemarker:2.3.30" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-swagger2:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.20" level="project" /> + <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-spi:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-core:2.9.2" level="project" /> <orderEntry type="library" name="Maven: io.springfox:springfox-schema:2.9.2" level="project" /> @@ -142,22 +176,155 @@ <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.5.1" level="project" /> <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" /> <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.2.11.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-context:5.2.11.RELEASE" level="project" /> - <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.2.11.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-metadata:1.2.0.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.2.0.Final" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.22" level="project" /> - <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.3" level="project" /> + <orderEntry type="library" name="Maven: io.springfox:springfox-swagger-ui:2.9.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> + <orderEntry type="library" name="Maven: commons-httpclient:commons-httpclient:3.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpmime:4.5.2" level="project" /> + <orderEntry type="library" name="Maven: org.gavaghan:geodesy:1.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-transaction-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-mysql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-core:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-resolver-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-codec-dns:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.vertx:vertx-sql-client:4.2.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sql92:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-engine:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.9.2" level="project" /> + <orderEntry type="library" name="Maven: com.github.ben-manes.caffeine:caffeine:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:3.7.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.4.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-postgresql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-oracle:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-sqlserver:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-parser-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-authority-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-single-table-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-route:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-common:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-util:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.groovy:groovy:4.0.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-binder:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-dialect-exception-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-traffic-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-context:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-distsql-statement:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-schedule-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-core:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-infra-common:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-registry-center:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-simple-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-executor-kernel:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-general:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-error-handler-spi:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-dataflow-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-script-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-http-executor:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-rdb:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-tracing-api:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.6" level="project" /> + <orderEntry type="library" name="Maven: org.quartz-scheduler:quartz:2.3.2" level="project" /> + <orderEntry type="library" name="Maven: com.mchange:mchange-commons-java:0.2.15" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere.elasticjob:elasticjob-lite-lifecycle:3.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-h2:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-standalone-mode-repository-jdbc-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-data-pipeline-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-cluster-mode-repository-zookeeper-curator:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-framework:4.0.1" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-client:5.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.zookeeper:zookeeper-jute:3.6.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.yetus:audience-annotations:0.5.0" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-epoll:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: io.netty:netty-transport-native-unix-common:4.1.54.Final" level="project" /> + <orderEntry type="library" name="Maven: log4j:log4j:1.2.17" level="project" /> + <orderEntry type="library" name="Maven: org.apache.curator:curator-recipes:2.12.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-rewrite:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sql-translator-native-provider:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-merge:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-linq4j:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-core:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite.avatica:avatica-metrics:1.22.0" level="project" /> + <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.5.1" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.client5:httpclient5:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5-h2:5.1.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents.core5:httpcore5:5.1.3" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-system-datetime:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-datetime-spi:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-cosid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: me.ahoo.cosid:cosid-core:1.14.4" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-sharding-nanoid:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: com.aventrix.jnanoid:jnanoid:2.0.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-readwrite-splitting-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-mysql:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-db-discovery-opengauss:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-encrypt-sm:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-shadow-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-executor:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-federation-optimizer:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.calcite:calcite-core:1.31.0" level="project" /> + <orderEntry type="library" name="Maven: com.esri.geometry:esri-geometry-api:2.2.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.11.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.google.uzaygezen:uzaygezen-core:0.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:sketches-core:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.yahoo.datasketches:memory:0.9.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.hydromatic:aggdesigner-algorithm:6.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.commons:commons-dbcp2:2.7.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:commons-compiler:3.1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.janino:janino:3.1.2" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-core:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-parser-api:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.shardingsphere:shardingsphere-infra-parser:5.2.0" level="project" /> + <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.4" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.h2database:h2:1.4.200" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> + <orderEntry type="library" name="Maven: dom4j:dom4j:1.6.1" level="project" /> + <orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" /> + <orderEntry type="library" name="Maven: com.alipay.sdk:alipay-sdk-java:4.8.10.ALL" level="project" /> + <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.50" level="project" /> + <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.62" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery:2.2.1.RELEASE" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-client:1.2.1" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-common:1.2.1" level="project" /> <orderEntry type="library" name="Maven: commons-io:commons-io:2.6" level="project" /> <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.10" level="project" /> <orderEntry type="library" name="Maven: com.alibaba.nacos:nacos-api:1.2.1" level="project" /> - <orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.58" level="project" /> - <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.14" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.11.3" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.11.3" level="project" /> <orderEntry type="library" name="Maven: io.prometheus:simpleclient:0.5.0" level="project" /> @@ -170,7 +337,6 @@ <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.security:spring-security-rsa:1.0.9.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.bouncycastle:bcpkix-jdk15on:1.59" level="project" /> - <orderEntry type="library" name="Maven: org.bouncycastle:bcprov-jdk15on:1.59" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-ribbon:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-netflix-archaius:2.2.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-starter-netflix-archaius:2.2.6.RELEASE" level="project" /> @@ -186,8 +352,6 @@ <orderEntry type="library" scope="RUNTIME" name="Maven: io.reactivex:rxnetty:0.4.9" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-core:2.3.0" level="project" /> <orderEntry type="library" name="Maven: com.netflix.ribbon:ribbon-httpclient:2.3.0" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> - <orderEntry type="library" scope="RUNTIME" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-client:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: com.sun.jersey:jersey-core:1.19.1" level="project" /> <orderEntry type="library" scope="RUNTIME" name="Maven: javax.ws.rs:jsr311-api:1.1.1" level="project" /> @@ -207,7 +371,6 @@ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.13.3" level="project" /> <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.13.3" level="project" /> - <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" /> <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.3.6.RELEASE" level="project" /> <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.3.6.RELEASE" level="project" /> @@ -222,12 +385,12 @@ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.3.6.RELEASE" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.3.6.RELEASE" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:json-smart:2.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:json-smart:2.3" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: net.minidev:accessors-smart:1.2" level="project" /> + <orderEntry type="library" scope="RUNTIME" name="Maven: org.ow2.asm:asm:5.0.4" level="project" /> + <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.3" level="project" /> + <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.16.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter:5.6.3" level="project" /> @@ -237,11 +400,10 @@ <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-params:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.vintage:junit-vintage-engine:5.6.3" level="project" /> - <orderEntry type="library" scope="TEST" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> + <orderEntry type="library" name="Maven: org.apiguardian:apiguardian-api:1.1.0" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.junit.platform:junit-platform-engine:1.6.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-core:3.3.3" level="project" /> - <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.10.18" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: net.bytebuddy:byte-buddy-agent:1.10.18" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.objenesis:objenesis:2.6" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.mockito:mockito-junit-jupiter:3.3.3" level="project" /> diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java index f8fe08d..9f060b1 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackageController.java @@ -60,7 +60,7 @@ * @return */ @ResponseBody - @PostMapping("/coursePackage/queryCoursePackageById") + @PostMapping("/base/coursePackage/queryCoursePackageById") public TCoursePackage queryCoursePackageById(@RequestBody Integer id){ try { TCoursePackage coursePackage = coursePackageService.getById(id); @@ -152,4 +152,15 @@ return courseVoList; } + /** + * 根据id获取课包 + * @param coursePackConfigId + * @return + */ + @ResponseBody + @PostMapping("/base/coursePackage/queryConfigCoursePackData") + public CoursePackagePaymentConfig queryConfigCoursePackData(@RequestBody Integer coursePackConfigId){ + return icppconfigService.getById(coursePackConfigId); + } + } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java new file mode 100644 index 0000000..07e6d3f --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/CityClient.java @@ -0,0 +1,15 @@ +package com.dsh.course.feignClient.account; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.course.feignClient.account.model.CityListQuery; +import com.dsh.course.feignClient.account.model.TCityManager; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; + +@FeignClient("mb-cloud-account") +public interface CityClient { + + @PostMapping("/base/city/list") + Page<TCityManager> list(CityListQuery listQuery); + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java new file mode 100644 index 0000000..0bb4599 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/CityListQuery.java @@ -0,0 +1,18 @@ +package com.dsh.course.feignClient.account.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class CityListQuery { + private long limit; + private long offset; + private String provinceCode; + private String cityCode; + private String name; + private String phone; + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java new file mode 100644 index 0000000..9c8ab92 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/account/model/TCityManager.java @@ -0,0 +1,22 @@ +package com.dsh.course.feignClient.account.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +@Data +@TableName("t_city_manager") +public class TCityManager { + private Integer id; + private String name; + private String phone; + private String password; + private String province; + @TableField("provinceCode") + private String provinceCode; + private String city; + @TableField("cityCode") + private String cityCode; + private Integer state; + +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java index ac09c0d..365ef77 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/CompetitionClient.java @@ -1,7 +1,10 @@ package com.dsh.course.feignClient.competition; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; import com.dsh.course.feignClient.competition.model.ListQuery; +import com.dsh.course.feignClient.competition.model.Participant; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -15,7 +18,19 @@ Competition queryById(Integer id); @PostMapping("/base/competition/list") - List<Competition> list(ListQuery listQuery); + Page<Competition> list(ListQuery listQuery); + + @PostMapping("/base/competition/add") + void add(Competition competition); + + @PostMapping("/base/competition/update") + void update(Competition competition); + + @PostMapping("/base/competition/cancel") + void cancel(Integer id); + @PostMapping("/base/competition/getPeopleFromId") + Page<Participant> getPeopleFromId(GetPeopleQuery getPeopleQuery); + } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java index 0a6fa17..4414b6b 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Competition.java @@ -1,7 +1,240 @@ package com.dsh.course.feignClient.competition.model; -public class Competition { +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * <p> + * + * </p> + * + * @author jqs + * @since 2023-06-26 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_competition") +public class Competition extends Model<Competition> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 省 + */ + @TableField("province") + private String province; + /** + * 省编号 + */ + @TableField("provinceCode") + private String provinceCode; + /** + * 市 + */ + @TableField("city") + private String city; + /** + * 市编号 + */ + @TableField("cityCode") + private String cityCode; + /** + * 门店id + */ + @TableField("storeId") + private Integer storeId; + /** + * 赛事名称 + */ + @TableField("name") + private String name; + /** + * 开始时间 + */ + @TableField("startTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date startTime; + /** + * 结束时间 + */ + @TableField("endTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private Date endTime; + /** + * 报名结束时间 + */ + @TableField("registerEndTime") + private Date registerEndTime; + /** + * 报名条件(1=全部用户,2=仅限年度会员参与,3=仅限学员参与) + */ + @TableField("registerCondition") + private Integer registerCondition; + /** + * 报名开始年龄 + */ + @TableField("startAge") + private Integer startAge; + /** + * 报名结束年龄 + */ + @TableField("endAge") + private Integer endAge; + /** + * 现金支付价格 + */ + @TableField("cashPrice") + private Double cashPrice; + /** + * 玩湃币支付价格 + */ + @TableField("playPaiCoin") + private Integer playPaiCoin; + /** + * 课时支付价格 + */ + @TableField("classPrice") + private Integer classPrice; + /** + * 参加地址 + */ + @TableField("address") + private String address; + /** + * 经度 + */ + @TableField("longitude") + private String longitude; + /** + * 纬度 + */ + @TableField("latitude") + private String latitude; + /** + * 报名人数 + */ + @TableField("applicantsNumber") + private Integer applicantsNumber; + /** + * 基础人数 + */ + @TableField("baseNumber") + private Integer baseNumber; + /** + * 是否需要实名(0=否,1=是) + */ + @TableField("realName") + private Integer realName; + /** + * 赛事封面图 + */ + @TableField("coverDrawing") + private String coverDrawing; + /** + * 赛事简介 + */ + @TableField("introduction") + private String introduction; + /** + * 赛事图片 + */ + @TableField("imgs") + private String imgs; + /** + * 报名须知 + */ + @TableField("registrationNotes") + private String registrationNotes; + /** + * 参赛省 + */ + @TableField("entryProvince") + private String entryProvince; + /** + * 参赛省编号 + */ + @TableField("entryProvinceCode") + private String entryProvinceCode; + /** + * 参赛市 + */ + @TableField("entryCity") + private String entryCity; + /** + * 参赛市编号 + */ + @TableField("entryCityCode") + private String entryCityCode; + /** + * 参赛地址 + */ + @TableField("entryAddress") + private String entryAddress; + /** + * 参赛经度 + */ + @TableField("entryLon") + private String entryLon; + /** + * 参赛纬度 + */ + @TableField("entryLat") + private String entryLat; + /** + * 审核状态(1=待审核,2=已通过,3=已拒绝) + */ + @TableField("auditStatus") + private Integer auditStatus; + /** + * 审核人id + */ + @TableField("auditUserId") + private Integer auditUserId; + /** + * 审核备注 + */ + @TableField("auditRemark") + private String auditRemark; + /** + * 状态(1=未开始,2=已开始,3=已结束,4=已取消) + */ + @TableField("status") + private Integer status; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("insertTime") + private Date insertTime; + + @TableField(exist = false) + private String storeName; + @Override + protected Serializable pkVal() { + return this.id; + } } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java new file mode 100644 index 0000000..a4c0807 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/GetPeopleQuery.java @@ -0,0 +1,15 @@ +package com.dsh.course.feignClient.competition.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class GetPeopleQuery { + private long limit; + private long offset; + private Integer id; + private Integer state; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java index 4b380af..e9bfbdd 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/ListQuery.java @@ -11,6 +11,10 @@ @NoArgsConstructor public class ListQuery { + private long limit; + + private long offset; + private String provinceCode; private String cityCode; private String eventName; diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java new file mode 100644 index 0000000..797e501 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/competition/model/Participant.java @@ -0,0 +1,73 @@ +package com.dsh.course.feignClient.competition.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @date 2023/7/6 16:46 + */ +@Data +@TableName("t_participant") +public class Participant { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("appUserId") + private Integer appUserId; + /** + * 姓名 + */ + @TableField("name") + private String name; + /** + * 生日 + */ + @TableField("birthday") + private Date birthday; + /** + * 性别(1=男,2=女) + */ + @TableField("gender") + private Integer gender; + /** + * 身高(CM) + */ + @TableField("height") + private Integer height; + /** + * 体重(KG) + */ + @TableField("weight") + private Double weight; + /** + * 联系电话 + */ + @TableField("phone") + private String phone; + /** + * 身份证号码 + */ + @TableField("idcard") + private String idcard; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("insertTime") + private Date insertTime; +} diff --git a/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java b/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java index 0bd44d9..44c909d 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java +++ b/cloud-server-management/src/main/java/com/dsh/course/mapper/CityMapper.java @@ -2,8 +2,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.dsh.course.entity.City; +import com.dsh.guns.modular.system.model.TCity; import org.apache.ibatis.annotations.Mapper; @Mapper -public interface CityMapper extends BaseMapper<City> { +public interface CityMapper extends BaseMapper<TCity> { } diff --git a/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java b/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java index dd8e9d5..a1ec94e 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java +++ b/cloud-server-management/src/main/java/com/dsh/course/service/ICityService.java @@ -2,6 +2,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.dsh.course.entity.City; +import com.dsh.guns.modular.system.model.TCity; -public interface ICityService extends IService<City> { +public interface ICityService extends IService<TCity> { } diff --git a/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java deleted file mode 100644 index 370d0f6..0000000 --- a/cloud-server-management/src/main/java/com/dsh/course/service/impl/CityServiceImpl.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.dsh.course.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsh.course.entity.City; -import com.dsh.course.mapper.CityMapper; -import com.dsh.course.service.ICityService; -import org.springframework.stereotype.Service; - -@Service -public class CityServiceImpl extends ServiceImpl<CityMapper, City> implements ICityService { -} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java index f4ce03f..7723950 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/SuccessTip.java @@ -1,20 +1,33 @@ package com.dsh.guns.core.base.tips; +import com.dsh.course.feignClient.competition.model.Competition; +import lombok.AllArgsConstructor; +import lombok.NoArgsConstructor; +import org.apache.poi.ss.formula.functions.T; + +import java.util.List; + /** * 返回给前台的成功提示 * * @author fengshuonan * @date 2016年11月12日 下午5:05:22 */ -public class SuccessTip extends Tip { +public class SuccessTip<T> extends Tip { public SuccessTip(){ super.code = 200; super.message = "操作成功"; + } + public SuccessTip(T data){ + super.code = 200; + super.message = "操作成功"; + super.data=data; } public SuccessTip(Integer code,String message){ super.code = code; super.message = message; } + } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java index 719907d..4fdf333 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/core/base/tips/Tip.java @@ -1,15 +1,26 @@ package com.dsh.guns.core.base.tips; +import org.apache.poi.ss.formula.functions.T; + /** * 返回给前台的提示(最终转化为json形式) * * @author fengshuonan * @Date 2017年1月11日 下午11:58:00 */ -public abstract class Tip { +public abstract class Tip<T> { protected int code; protected String message; + protected T data; + + public T getData() { + return data; + } + + public void setData(T data) { + this.data = data; + } public int getCode() { return code; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java new file mode 100644 index 0000000..bd85872 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCityController.java @@ -0,0 +1,139 @@ +package com.dsh.guns.modular.system.controller.code; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.dsh.course.entity.City; +import com.dsh.course.feignClient.account.CityClient; +import com.dsh.course.feignClient.account.model.CityListQuery; +import com.dsh.course.feignClient.account.model.TCityManager; +import com.dsh.course.feignClient.competition.CompetitionClient; +import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; +import com.dsh.course.feignClient.competition.model.ListQuery; +import com.dsh.course.feignClient.competition.model.Participant; +import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.core.common.constant.factory.PageFactory; +import com.dsh.guns.core.util.ToolUtil; +import com.dsh.guns.modular.system.model.TCity; +import com.dsh.guns.modular.system.model.TStore; +import com.dsh.guns.modular.system.service.IStoreService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; + +/** + * 车辆管理控制器 + * + * @author fengshuonan + * @Date 2020-06-05 17:25:12 + */ +@Controller +@RequestMapping("/tCity") +public class TCityController extends BaseController { + + private String PREFIX = "/system/tCity/"; + + @Autowired + private CompetitionClient competitionClient; + + @Autowired + private CityClient cityClient; + + @Autowired + private IStoreService storeService; + + + /** + * 跳转到车辆管理首页 + */ + @RequestMapping("") + public String index(Model model) { + return PREFIX + "TCity.html"; + } + + /** + * 跳转到添加车辆管理 + */ + @RequestMapping("/tCompetition_add") + public String tCompetitionAdd(Model model) { + return PREFIX + "TCompetition_add.html"; + } + + + /** + * 跳转到修改车辆管理 + */ + @RequestMapping("/tCompetition_update/{id}") + public String tCarUpdate(@PathVariable Integer id, Model model) { + Competition competition = competitionClient.queryById(id); + model.addAttribute("item",competition); + return PREFIX + "tCompetition_edit.html"; + } + + + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String provinceCode, String cityCode , String name, String phone) { + Page<Competition> page = new PageFactory<Competition>().defaultPage(); + CityListQuery listQuery = new CityListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,name,phone); + Page<TCityManager> competitions = cityClient.list(listQuery); + return super.packForBT(competitions); + } + + + @RequestMapping(value = "/add") + public Object list(Competition competition) { + try { + competitionClient.add(competition); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/update") + public Object update(Competition competition) { + try { + competitionClient.update(competition); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + @RequestMapping(value = "/cancel") + public Object cancel(Integer id) { + try { + competitionClient.cancel(id); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/getPeopleFromId") + public Object getPeopleFromId(Integer id,Integer state) { + try { + Page<Object> page = new PageFactory<>().defaultPage(); + Page<Participant> data = competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); + return super.packForBT(data); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java index bc7bd58..2bc4b7c 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCompetitionController.java @@ -4,29 +4,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.competition.CompetitionClient; import com.dsh.course.feignClient.competition.model.Competition; +import com.dsh.course.feignClient.competition.model.GetPeopleQuery; import com.dsh.course.feignClient.competition.model.ListQuery; -import com.dsh.course.feignClient.course.CourseClient; -import com.dsh.guns.config.UserExt; +import com.dsh.course.feignClient.competition.model.Participant; import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.core.base.tips.SuccessTip; import com.dsh.guns.core.common.constant.factory.PageFactory; -import com.dsh.guns.core.util.SinataUtil; +import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.TStore; import com.dsh.guns.modular.system.service.IStoreService; -import com.dsh.guns.modular.system.util.DateUtil; -import com.dsh.guns.modular.system.util.ExcelExportUtil; -import com.dsh.guns.modular.system.util.ResultUtil; -import com.dsh.guns.modular.system.warpper.RoleWarpper; -import org.apache.commons.lang.time.DateUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.text.DateFormat; -import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; @@ -37,10 +30,10 @@ * @Date 2020-06-05 17:25:12 */ @Controller -@RequestMapping("/TCompetition") +@RequestMapping("/tCompetition") public class TCompetitionController extends BaseController { - private String PREFIX = "/system/TCompetition/"; + private String PREFIX = "/system/tCompetition/"; @Autowired private CompetitionClient competitionClient; @@ -62,7 +55,7 @@ */ @RequestMapping("/tCompetition_add") public String tCompetitionAdd(Model model) { - return PREFIX + "tCompetition_add.html"; + return PREFIX + "TCompetition_add.html"; } @@ -79,22 +72,80 @@ @RequestMapping(value = "/list") @ResponseBody - public Object list(String provinceCode,String cityCode,String shopName,String eventName,String time,Integer state,Integer registerCondition) { + public Object list(String provinceCode, String cityCode, String shopName, String eventName, String time, Integer state, Integer registerCondition) { List<Integer> ids = new ArrayList<>(); + List<TStore> list = null; // 获取门店id if(ToolUtil.isNotEmpty(shopName)){ - List<TStore> list = storeService.list(new LambdaQueryWrapper<TStore>().like(TStore::getName, shopName)); + list = storeService.list(new LambdaQueryWrapper<TStore>().like(TStore::getName, shopName)); ids = list.stream().map(TStore::getId).collect(Collectors.toList()); }else { + list = storeService.list(); ids = storeService.list().stream().map(TStore::getId).collect(Collectors.toList()); } if(ids.size()==0){ ids.add(-1); } - ListQuery listQuery = new ListQuery(provinceCode,cityCode,eventName,time,state,registerCondition,ids); - List<Competition> competitions = competitionClient.list(listQuery); - return super.warpObject(null); + Page<Competition> page = new PageFactory<Competition>().defaultPage(); + ListQuery listQuery = new ListQuery(page.getSize(),page.getCurrent(),provinceCode,cityCode,eventName,time,state,registerCondition,ids); + Page<Competition> competitions = competitionClient.list(listQuery); + for (Competition competition : competitions.getRecords()) { + for (TStore tStore : list) { + if(competition.getStoreId().equals(tStore.getId())){ + competition.setStoreName(tStore.getName()); + } + } + } + return super.packForBT(competitions); } + @RequestMapping(value = "/add") + public Object list(Competition competition) { + try { + competitionClient.add(competition); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/update") + public Object update(Competition competition) { + try { + competitionClient.update(competition); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + @RequestMapping(value = "/cancel") + public Object cancel(Integer id) { + try { + competitionClient.cancel(id); + return SUCCESS_TIP; + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + @RequestMapping(value = "/getPeopleFromId") + public Object getPeopleFromId(Integer id,Integer state) { + try { + Page<Object> page = new PageFactory<>().defaultPage(); + Page<Participant> data = competitionClient.getPeopleFromId(new GetPeopleQuery(page.getSize(),page.getCurrent(),id,state)); + return super.packForBT(data); + }catch (Exception e){ + e.printStackTrace(); + return ERROR; + } + } + + + } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java index 789be56..88f8762 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/LoginController.java @@ -91,12 +91,6 @@ if (SinataUtil.isEmpty(user)){ String a ="请重新登录"; - if(language==2){ - a="Please log in again"; - }else if(language==3){ - a="Silakan log masuk lagi"; - } - model.addAttribute("tips", a); return "/login.html"; } @@ -108,12 +102,6 @@ Role role = roleService.getBaseMapper().selectById(roleList.get(0)); User byId = userService.getById(user.getId()); - String a = "您的密码已经90天未更换了,请及时更换密码!!!"; - if(language==2){ - a="Your password has not been changed for 90 days, please change your password in time!!"; - }else if(language==3){ - a="Kata sandi Anda belum diubah selama 90 hari, silakan merubah kata sandi Anda pada waktu!!"; - } //获取用户头像 Obtain user profile String avatar = byId.getAvatar(); model.addAttribute("roleNames", role.getName()); @@ -205,7 +193,7 @@ password = AESUtils.decrypt(password); String s = MD5.md5(password); if(!user.getPassword().equals(s)){ - model.addAttribute("tips", "Account password error"); + model.addAttribute("tips", "账号密码错误"); return "/login.html"; } diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java new file mode 100644 index 0000000..89425dd --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCity.java @@ -0,0 +1,20 @@ +package com.dsh.guns.modular.system.model; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.math.BigDecimal; + +@TableName("t_region") +@Data +public class TCity { + private Integer id; + private String name; + private String code; + private String citycode; + @TableField("parent_id") + private Integer parentId; + private String english; + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java index 4b57097..74a4f1d 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TStore.java @@ -1,5 +1,6 @@ package com.dsh.guns.modular.system.model; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; @@ -10,21 +11,30 @@ public class TStore { private Integer id; private String name; + @TableField("storeStaffId") private Integer storeStaffId; + @TableField("cityManagerId") private Integer cityManagerId; private String province; + @TableField("provinceCode") private String provinceCode; private String city; + @TableField("cityCode") private String cityCode; private String phone; private String address; private String lat; private String lon; + @TableField("startTime") private String startTime; + @TableField("endTime") private String endTime; + @TableField("coverDrawing") private String coverDrawing; + @TableField("realPicture") private String realPicture; private String introduce; + @TableField("welfarePicture") private String welfarePicture; private BigDecimal score; private Integer state; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java new file mode 100644 index 0000000..289a178 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/ICityService.java @@ -0,0 +1,17 @@ +package com.dsh.guns.modular.system.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.guns.modular.system.model.TCity; +import com.dsh.guns.modular.system.model.TStore; + + +/** + * 字典服务 + * + * @author fengshuonan + * @date 2017-04-27 17:00 + */ +public interface ICityService extends IService<TCity> { + + +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java new file mode 100644 index 0000000..79d21d5 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CityServiceImpl.java @@ -0,0 +1,15 @@ +package com.dsh.guns.modular.system.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.course.mapper.CityMapper; +import com.dsh.course.mapper.StoreMapper; +import com.dsh.guns.modular.system.model.TCity; +import com.dsh.guns.modular.system.model.TStore; +import com.dsh.guns.modular.system.service.ICityService; +import com.dsh.guns.modular.system.service.IStoreService; +import org.springframework.stereotype.Service; + +@Service +public class CityServiceImpl extends ServiceImpl<CityMapper, TCity> implements ICityService { + +} diff --git a/cloud-server-management/src/main/resources/mapper/CityMapper.xml b/cloud-server-management/src/main/resources/mapper/CityMapper.xml index e679ee9..f54cf34 100644 --- a/cloud-server-management/src/main/resources/mapper/CityMapper.xml +++ b/cloud-server-management/src/main/resources/mapper/CityMapper.xml @@ -2,12 +2,4 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.dsh.course.mapper.CityMapper"> - <!-- 通用查询映射结果 --> - <resultMap id="BaseResultMap" type="com.dsh.course.entity.City"> - <id column="id" property="id"/> - <result column="chineseName" property="chineseName"/> - <result column="englishName" property="englishName"/> - <result column="indonesianName" property="indonesianName"/> - <result column="pid" property="pid"/> - </resultMap> </mapper> \ No newline at end of file diff --git a/cloud-server-management/src/main/resources/mapper/MenuMapper.xml b/cloud-server-management/src/main/resources/mapper/MenuMapper.xml index 2c72b60..9a884ed 100644 --- a/cloud-server-management/src/main/resources/mapper/MenuMapper.xml +++ b/cloud-server-management/src/main/resources/mapper/MenuMapper.xml @@ -21,7 +21,7 @@ <sql id="Base_Column_List"> id, code, pcode, name, icon, url, num, levels,pcodes, - tips, status,isopen,ismenu,ename,bname + tips, status,isopen,ismenu </sql> <select id="selectMenus" resultType="map"> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/404.html b/cloud-server-management/src/main/webapp/WEB-INF/view/404.html index ebd6e25..d4dd79e 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/404.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/404.html @@ -7,7 +7,7 @@ <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>evmoto摩托 - 404 页面</title> + <title>玩湃生活 - 404 页面</title> <link rel="shortcut icon" href="${ctxPath}/log.ico"> <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet"> <link href="${ctxPath}/css/font-awesome.css?v=4.4.0" rel="stylesheet"> <link href="${ctxPath}/css/style.css?v=4.1.0" rel="stylesheet"> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html index fe16e86..c715826 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_right.html @@ -4,15 +4,14 @@ <div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a> <form role="search" class="navbar-form-custom" method="post" action="search_results.html"> <div class="form-group"> - <input type="text" placeholder="evmoto management system …" class="form-control" name="top-search" id="top-search" value="evmoto management system" disabled> + <input type="text" placeholder="请输入您需要查找的内容..." class="form-control" name="top-search" id="top-search" value="请输入您需要查找的内容..." disabled> </div> </form> - <h3 style="float: right;line-height: 50px;color: red;">${passwordHint}</h3> </div> <ul class="nav navbar-top-links navbar-right"> <li class="dropdown hidden-xs"> <a class="right-sidebar-toggle" aria-expanded="false"> - <i class="fa fa-tasks"></i> theme + <i class="fa fa-tasks"></i> 主题 </a> </li> </ul> @@ -23,7 +22,7 @@ </button> <nav class="page-tabs J_menuTabs"> <div class="page-tabs-content"> - <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">Home page</a> + <a href="javascript:;" class="active J_menuTab" data-id="${ctxPath}/blackboard">首页</a> </div> </nav> <!--<nav class="page-tabs J_menuTabs"> @@ -34,17 +33,26 @@ <button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i> </button> <div class="btn-group roll-nav roll-right"> - <button class="dropdown J_tabClose" data-toggle="dropdown">Close<span class="caret"></span> + <button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span> </button> + <ul role="menu" class="dropdown-menu dropdown-menu-right"> + <li class="J_tabShowActive"><a>定位当前选项卡</a> + </li> + <li class="divider"></li> + <li class="J_tabCloseAll"><a>关闭全部选项卡</a> + </li> + <li class="J_tabCloseOther"><a>关闭其他选项卡</a> + </li> + </ul> </div> - <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> Exit</a> + <a href="logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a> </div> <div class="row J_mainContent" id="content-main"> <iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="${ctxPath}/blackboard?type=${type}" frameborder="0" data-id="${ctxPath}/blackboard" seamless></iframe> </div> <div class="footer"> - <div class="pull-right">© 2019-2021 <a href="#" onclick="return false" target="_blank">evmoto</a> + <div class="pull-right">© 2019-2023 <a href="#" onclick="return false" target="_blank">玩湃</a> </div> </div> </div> \ No newline at end of file diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html index fd3bc07..b529b6a 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_tab.html @@ -19,14 +19,14 @@ </span> </a> <ul class="dropdown-menu m-t-xs"> - <li><a class="J_menuItem" href="${ctxPath}/mgr/user_info">personal data</a></li> - <li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">change password</a></li> + <li><a class="J_menuItem" href="${ctxPath}/mgr/user_info">个人资料</a></li> + <li><a class="J_menuItem" href="${ctxPath}/mgr/user_chpwd">修改密码</a></li> <li class="divider"></li> - <li><a href="${ctxPath}/logout">Exit</a> + <li><a href="${ctxPath}/logout">安全退出</a> </li> </ul> </div> - <div class="logo-element">MS + <div class="logo-element">玩湃 </div> </li> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html index be3e365..2479ac1 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/common/_theme.html @@ -3,7 +3,7 @@ <ul class="nav nav-tabs navs-3"> <li class="active"><a data-toggle="tab" href="#tab-1"> <i - class="fa fa-gear"></i> theme + class="fa fa-gear"></i> 主题 </a></li> </ul> @@ -11,15 +11,15 @@ <div id="tab-1" class="tab-pane active"> <div class="sidebar-title"> <h3> - <i class="fa fa-comments-o"></i> theme settings + <i class="fa fa-comments-o"></i> 主题设置 </h3> <small><i class="fa fa-tim"></i> - From here you can select and preview the layout and style of the theme. These Settings will be saved locally and applied directly the next time you open them。</small> + 你可以从这里选择和预览主题的布局和样式,这些设置会被保存在本地,下次打开的时候会直接应用这些设置。</small> </div> <div class="skin-setttings"> - <div class="title">theme settings</div> + <div class="title">主题设置</div> <div class="setings-item"> - <span>Drop the left menu</span> + <span>收起左侧菜单</span> <div class="switch"> <div class="onoffswitch"> <input type="checkbox" name="collapsemenu" @@ -32,7 +32,7 @@ </div> </div> <div class="setings-item"> - <span>Fixed top</span> + <span>固定顶部</span> <div class="switch"> <div class="onoffswitch"> @@ -46,7 +46,7 @@ </div> </div> <div class="setings-item"> - <span> Fixed Width </span> + <span> 固定宽度 </span> <div class="switch"> <div class="onoffswitch"> @@ -59,20 +59,20 @@ </div> </div> </div> - <div class="title">Use alternative skin</div> + <div class="title">皮肤选择</div> <div class="setings-item default-skin nb"> <span class="skin-name "> <a href="#" class="s-skin-0"> - Default </a> + 默认皮肤 </a> </span> </div> <div class="setings-item blue-skin nb"> <span class="skin-name "> <a href="#" class="s-skin-1"> - Blue theme </a> + 蓝色主题</a> </span> </div> <div class="setings-item yellow-skin nb"> <span class="skin-name "> <a href="#" class="s-skin-3"> - Yellow/purple theme </a> + 黄色/紫色主题 </a> </span> </div> </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/index.html b/cloud-server-management/src/main/webapp/WEB-INF/view/index.html index b2bc48b..6c33010 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/index.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/index.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="renderer" content="webkit"> - <title>evmoto - homepage</title> + <title>玩湃 - 主页</title> <link rel="shortcut icon" href="${ctxPath}/log.ico"> <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet"> <link href="${ctxPath}/css/font-awesome.min.css?v=4.4.0" rel="stylesheet"> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html index 0bd14be..0bfc1fc 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/login.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/login.html @@ -4,7 +4,7 @@ <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> - <title>evmoto - Login</title> + <title>玩湃-登录</title> <link rel="shortcut icon" href="${ctxPath}/log.ico"> <link href="${ctxPath}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet"> @@ -64,21 +64,22 @@ <form class="m-t" role="form" action="${ctxPath}/login" method="post"> <div class="item"> <img src="${ctxPath}/img/account.png" /> - <input class="itemInput" type="text" name="username" id="username" placeholder="Please enter account" required="" value=""> + <input class="itemInput" type="text" name="username" id="username" placeholder="请输入账号" required="" value=""> </div> <div class="item"> <img src="${ctxPath}/img/password.png" /> - <input class="itemInput" type="password" name="password" id="password" placeholder="Please enter password" required="" value=""> + <input class="itemInput" type="password" name="password" id="password" placeholder="请输入密码" required="" value=""> </div> <div class="item"> - <label>language</label> - <select name="language" id="language" class="itemInput"> - <option value="1">中文</option> - <option value="2">english</option> - <option value="3">IndonesiaName</option> - </select> + <img src="${ctxPath}/img/password.png" /> + <div class="col-sm-8" style="padding-left: 0px; width: 40%"> + <input class="form-control" type="text" name="kaptcha" placeholder="请输入验证码" required=""> + </div> + <div class="col-sm-4" style="padding-left: 0px; padding-right: 0px;margin-left: 25%"> + <img src="${ctxPath}/kaptcha" id="kaptcha" width="100%" height="100%"/> + </div> </div> - <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">Login</button> + <button onclick="login()" class="btn full-width m-b" style="background-color: #0573EA;color: white;">登 录</button> <button type="submit" id="submit" style="display: none;"></button> </p> </form> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html new file mode 100644 index 0000000..53ad69f --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity.html @@ -0,0 +1,52 @@ +@layout("/common/_container.html"){ +<div class="row"> + <div class="col-sm-12"> + <div class="ibox float-e-margins"> + + <div class="ibox-title"> + <h5>城市管理</h5> + </div> + <div class="ibox-content"> + <div class="row row-lg"> + <div class="col-sm-12"> + <div class="row"> + <div class="col-sm-3"> + </div> + <div class="col-sm-3"> + + </div> + <div class="col-sm-3"> + <#NameCon id="name" name="管理员姓名" /> + </div> + <div class="col-sm-3"> + <#NameCon id="phone" name="管理员手机号" /> + </div> + <div class="col-sm-3"> + <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/> + </div> + </div> + <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> + <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition()"/> + <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/> + <#button name="取消" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> + <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> + <#button name="已报名人员" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> + + </div> + <#table id="TCompetitionTable"/> + </div> + </div> + </div> +</div> +</div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity.js"></script> +<script> + laydate.render({ + elem: '#createTime' + ,range: true + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html new file mode 100644 index 0000000..e9a3212 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_add.html @@ -0,0 +1,81 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + + + <div class="form-horizontal" id="carInfoForm"> + + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">所在省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode"> + <option value="">选择省</option> + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">所在市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + </select> + </div> + </div> + <#input id="name" name="管理员姓名" type="text"/> + <#input id="phone" name="管理员手机号" type="text"/> + + + </div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCity/tCity_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html new file mode 100644 index 0000000..16f5070 --- /dev/null +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCity/TCity_edit.html @@ -0,0 +1,401 @@ +@layout("/common/_container.html"){ +<div class="ibox float-e-margins"> + <div class="ibox-content"> + <div class="form-horizontal" id="carInfoForm"> + <input type="hidden" id="id" name="id" value="${item.id}"> + <input hidden id="language" value="${language}"> + <input type="hidden" id="roleType" name="roleType" value="${roleType}"> + @if(language==1){ + <div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-3 control-label">所属机构:</label> + <div class="col-sm-9" style="display: flex;align-items: center;"> + @if(roleType == 1){ + <div class="radio radio-info radio-inline"> + <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)"> + <label for="companyType1"> 平台车辆 </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)"> + <label for="companyTyp2"> 加盟车辆 </label> + </div> + <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px"> + <option value="">选择所属分公司</option> + @for(obj in companyList!){ + <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;"> + <option value="">选择所属加盟商</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 2){ + <span class="control-label">${objectName!}</span> + <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> + <option value="">选择所属加盟商</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 3){ + <span class="control-label">${objectName!}</span> + @} + </div> + </div> + <div class="form-group"> + <fieldset> + <label class="col-sm-3 control-label">服务模式:</label> + <div class="col-sm-9"> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()"> + <label for="serverBox1"> 摩托车 </label> + </div> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}> + <label for="serverBox4"> 同城快送 </label> + </div> + </div> + </fieldset> + </div> + <div class="form-group" id="zcModelDiv"> + <label class="col-sm-3 control-label">摩托车车型:</label> + <div class="col-sm-9"> + <select class="form-control" id="zcModel" name="zcModel"> + <option value="">选择车型</option> + @for(obj in zcModelList){ + <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)"> + <option value="">选择车辆品牌</option> + @for(obj in brandList){ + <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </#select> + <#select id="carModelId" name="车辆类型:"> + <option value="">选择车辆类型</option> + @for(obj in modelList){ + <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </#select> + <#select id="carColor" name="车辆颜色:"> + <option value="">选择车辆颜色</option> + <option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>黑色</option> + <option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>银色</option> + <option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>白色</option> + <option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>红色</option> + <option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>黄色</option> + <option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>橙色</option> + <option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>蓝色</option> + </#select> + <#input id="carLicensePlate" name="车牌号" value="${item.carLicensePlate}"/> + <#avatar id="carPhoto" name="车辆照片:" avatarImg="${item.carPhoto}"/> + <#input id="drivingLicenseNumber" name="行驶证编号" value="${item.drivingLicenseNumber}"/> + <#avatar id="drivingLicensePhoto" name="行驶证照片:" avatarImg="${item.drivingLicensePhoto}"/> + <#input id="annualInspectionTime" name="年检到期时间" type="text" value="${item.annualInspectionTime}"/> + <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text" value="${item.commercialInsuranceTime}"/> + </div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="提交" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + @} + @if(language==2){ +<div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-3 control-label">Affiliated organization:</label> + <div class="col-sm-9" style="display: flex;align-items: center;"> + @if(roleType == 1){ + <div class="radio radio-info radio-inline"> + <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)"> + <label for="companyType1"> Platform vehicle </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)"> + <label for="companyTyp2"> Franchised vehicles </label> + </div> + <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px"> + <option value="">Select Branch</option> + @for(obj in companyList!){ + <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;"> + <option value="">Select the franchisee</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 2){ + <span class="control-label">${objectName!}</span> + <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> + <option value="">Select the franchisee</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 3){ + <span class="control-label">${objectName!}</span> + @} + </div> + </div> + <div class="form-group"> + <fieldset> + <label class="col-sm-3 control-label">Service mode:</label> + <div class="col-sm-9"> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()"> + <label for="serverBox1"> motorcycle </label> + </div> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}> + <label for="serverBox4"> Intra-city express delivery </label> + </div> + </div> + </fieldset> + </div> + <div class="form-group" id="zcModelDiv"> + <label class="col-sm-3 control-label">Motorcycle model setting:</label> + <div class="col-sm-9"> + <select class="form-control" id="zcModel" name="zcModel"> + <option value="">Select vehicle type</option> + @for(obj in zcModelList){ + <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="kcModelDiv"> + <label class="col-sm-3 control-label">Cross city travel model:</label> + <div class="col-sm-9"> + <select class="form-control" id="kcModel" name="kcModel"> + <option value="">Select vehicle type</option> + @for(obj in kcModelList){ + <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <#select id="carBrandId" name="Vehicle brand:" onchange="TCarInfoDlg.brandChange(this)"> + <option value="">Select vehicle brand</option> + @for(obj in brandList){ + <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </#select> + <#select id="carModelId" name="Vehicle type:"> + <option value="">Select vehicle type</option> + @for(obj in modelList){ + <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option> + @} +</#select> +<#select id="carColor" name="Vehicle color:"> +<option value="">Select vehicle color</option> +<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>black</option> +<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>silvery</option> +<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>white</option> +<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>red</option> +<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>yellow</option> +<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>orange</option> +<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>blue</option> +</#select> +<#input id="carLicensePlate" name="License plate number" value="${item.carLicensePlate}"/> +<#avatar id="carPhoto" name="Vehicle photos:" avatarImg="${item.carPhoto}"/> +<#input id="drivingLicenseNumber" name="Driving license number" value="${item.drivingLicenseNumber}"/> +<#avatar id="drivingLicensePhoto" name="Photo of driving license:" avatarImg="${item.drivingLicensePhoto}"/> +<#input id="annualInspectionTime" name="Annual inspection expiration time" type="text" value="${item.annualInspectionTime}"/> +<#input id="commercialInsuranceTime" name="Expiration time of commercial insurance" type="text" value="${item.commercialInsuranceTime}"/> +</div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="Submit" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + @} + @if(language==3){ +<div class="row"> + <div class="col-sm-11"> + <div class="form-group"> + <label class="col-sm-3 control-label">Organisasi Afiliasi:</label> + <div class="col-sm-9" style="display: flex;align-items: center;"> + @if(roleType == 1){ + <div class="radio radio-info radio-inline"> + <input type="radio" id="companyType1" value="1" name="companyType" ${1 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(1)"> + <label for="companyType1"> Kendaraan platform </label> + </div> + <div class="radio radio-success radio-inline"> + <input type="radio" id="companyTyp2" value="2" name="companyType" ${2 == companyType ? 'checked=checked' : ''} onclick="TCarInfoDlg.companyTypeClick(2)"> + <label for="companyTyp2"> Kendaraan waralaba </label> + </div> + <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px"> + <option value="">Pilih Branch</option> + @for(obj in companyList!){ + <option value="${obj.id}" ${obj.id == item.companyId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;"> + <option value="">Pilih pemilik franchise</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 2){ + <span class="control-label">${objectName!}</span> + <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> + <option value="">Pilih pemilik franchise</option> + @for(obj in franchiseeList!){ + <option value="${obj.id}" ${obj.id == item.franchiseeId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + @}else if(roleType == 3){ + <span class="control-label">${objectName!}</span> + @} + </div> + </div> + <div class="form-group"> + <fieldset> + <label class="col-sm-3 control-label">Mode Layanan:</label> + <div class="col-sm-9"> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox1" value="1" ${2 == one ? 'checked=checked' : ''} onclick="TCarInfoDlg.zcServerClick()"> + <label for="serverBox1"> sepeda motor </label> + </div> + <div class="checkbox checkbox-success checkbox-inline"> + <input type="checkbox" name="serverBox" id="serverBox4" value="4" ${2 == four ? 'checked=checked' : ''}> + <label for="serverBox4"> Pengiriman Ekspres Dalam Kota </label> + </div> + </div> + </fieldset> + </div> + <div class="form-group" id="zcModelDiv"> + <label class="col-sm-3 control-label">Pengaturan model sepeda motor:</label> + <div class="col-sm-9"> + <select class="form-control" id="zcModel" name="zcModel"> + <option value="">Pilih Jenis Kendaraan</option> + @for(obj in zcModelList){ + <option value="${obj.id}" ${obj.id == zcModel ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <div class="form-group" id="kcModelDiv"> + <label class="col-sm-3 control-label">Model perjalanan melintasi kota:</label> + <div class="col-sm-9"> + <select class="form-control" id="kcModel" name="kcModel"> + <option value="">Pilih Jenis Kendaraan</option> + @for(obj in kcModelList){ + <option value="${obj.id}" ${obj.id == kcModel ? 'selected=selected' : ''}>${obj.name}</option> + @} + </select> + </div> + </div> + <#select id="carBrandId" name="Merek kendaraan:" onchange="TCarInfoDlg.brandChange(this)"> + <option value="">Pilih Merek Kendaraan</option> + @for(obj in brandList){ + <option value="${obj.id}" ${obj.id == item.carBrandId ? 'selected=selected' : ''}>${obj.name}</option> + @} + </#select> + <#select id="carModelId" name="Jenis Kendaraan:"> + <option value="">Pilih Jenis Kendaraan</option> + @for(obj in modelList){ + <option value="${obj.id}" ${obj.id == item.carModelId ? 'selected=selected' : ''}>${obj.name}</option> + @} +</#select> +<#select id="carColor" name="车辆颜色:"> +<option value="">选择车辆颜色</option> +<option value="1" ${'1' == item.carColor ? 'selected=selected' : ''}>hitam</option> +<option value="2" ${'2' == item.carColor ? 'selected=selected' : ''}>perak</option> +<option value="3" ${'3' == item.carColor ? 'selected=selected' : ''}>putih</option> +<option value="4" ${'4' == item.carColor ? 'selected=selected' : ''}>merah</option> +<option value="5" ${'5' == item.carColor ? 'selected=selected' : ''}>kuning</option> +<option value="6" ${'6' == item.carColor ? 'selected=selected' : ''}>oranye</option> +<option value="7" ${'7' == item.carColor ? 'selected=selected' : ''}>biru</option> +</#select> +<#input id="carLicensePlate" name="Nomor plat nomor" value="${item.carLicensePlate}"/> +<#avatar id="carPhoto" name="Foto kendaraan:" avatarImg="${item.carPhoto}"/> +<#input id="drivingLicenseNumber" name="Nomor SIM Mengemudi" value="${item.drivingLicenseNumber}"/> +<#avatar id="drivingLicensePhoto" name="Foto SIM:" avatarImg="${item.drivingLicensePhoto}"/> +<#input id="annualInspectionTime" name="Waktu Kedaluwarsa Inspeksi Tahunan" type="text" value="${item.annualInspectionTime}"/> +<#input id="commercialInsuranceTime" name="Waktu kedaluwarsa asuransi komersial" type="text" value="${item.commercialInsuranceTime}"/> +</div> +</div> + +<div class="row btn-group-m-t"> + <div class="col-sm-10 col-sm-offset-5"> + <#button btnCss="info" name="Kirim" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.editSubmit()"/> + <#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> + </div> +</div> + @} + + </div> + + </div> +</div> +<script src="${ctxPath}/modular/system/tCar/tCar_info.js"></script> +<script> + laydate.render({ + elem: '#annualInspectionTime' + ,lang:"en" + }); + laydate.render({ + elem: '#commercialInsuranceTime' + ,lang:"en" + }); + laydate.render({ + elem: '#certifyDateA' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStart' + ,lang:"en" + }); + laydate.render({ + elem: '#transDateStop' + ,lang:"en" + }); + laydate.render({ + + elem: '#certifyDateB' + ,lang:"en" + }); + laydate.render({ + elem: '#nextFixDate' + ,lang:"en" + }); + laydate.render({ + elem: '#GPSInstallDate' + ,lang:"en" + }); + laydate.render({ + elem: '#registerDate' + ,lang:"en" + }); +</script> +<script type="application/javascript"> + $(function() { + var companyType = $("input[name='companyType']:checked").val(); + if (1 == companyType){ + $(".companyDiv").hide(); + } else if (2 == companyType){ + $(".companyDiv").show(); + } + + TCarInfoDlg.zcServerClick(); + TCarInfoDlg.kcServerClick(); + + }); +</script> +@} diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html index d2cf885..248a0c5 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition.html @@ -42,22 +42,19 @@ </#SelectCon> </div> <div class="col-sm-3"> - <#button name="搜索" icon="fa-search" clickFun="TCar.search()"/> - <#button name="重置" icon="fa-trash" clickFun="TCar.resetSearch()" space="true"/> - </div> - <div class="col-sm-3"> - <input type="file" name="file" style="width:0px;height:0px;" id="uploadEventFile" onchange="TCar.exportCar()"> + <#button name="搜索" icon="fa-search" clickFun="TCompetition.search()"/> + <#button name="重置" icon="fa-trash" clickFun="TCompetition.resetSearch()" space="true"/> </div> </div> - <div class="hidden-xs" id="TCarTableToolbar" role="group"> - <#button name="添加" icon="fa-plus" clickFun="TCar.openAddTCar()"/> - <#button name="编辑" icon="fa-edit" clickFun="TCar.openTCarDetail()" space="true"/> - <#button name="取消" icon="fa-remove" clickFun="TCar.delete()" space="true"/> - <#button name="查看详情" icon="fa-remove" clickFun="TCar.delete()" space="true"/> - <#button name="已报名人员" icon="fa-remove" clickFun="TCar.delete()" space="true"/> + <div class="hidden-xs" id="TCompetitionTableToolbar" role="group"> + <#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition()"/> + <#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail()" space="true"/> + <#button name="取消" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> + <#button name="查看详情" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> + <#button name="已报名人员" icon="fa-remove" clickFun="TCompetition.delete()" space="true"/> </div> - <#table id="TCarTable"/> + <#table id="TCompetitionTable"/> </div> </div> </div> diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html index 9f9e6a9..05014a6 100644 --- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html +++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tCompetition/TCompetition_add.html @@ -1,110 +1,113 @@ @layout("/common/_container.html"){ <div class="ibox float-e-margins"> <div class="ibox-content"> - <div class="form-horizontal" id="carInfoForm"> - <input type="hidden" id="roleType" name="roleType" value="${roleType}"> - <input hidden id="language" value="${language}"> - @if(language==1){ - <div class="row"> - <div class="col-sm-11"> - <div class="form-group"> - <label class="col-sm-3 control-label">所属机构:</label> - <div class="col-sm-9" style="display: flex;align-items: center;"> - @if(roleType == 1){ - <div class="radio radio-info radio-inline"> - <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)"> - <label for="companyType1"> 平台车辆 </label> - </div> - <div class="radio radio-success radio-inline"> - <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)"> - <label for="companyTyp2"> 加盟车辆 </label> - </div> - <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;"> - <option value="">选择所属分公司</option> - @for(obj in companyList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;display: none;"> - <option value="">选择所属加盟商</option> - </select> - @}else if(roleType == 2){ - <span class="control-label">${objectName!}</span> - <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> - <option value="">选择所属加盟商</option> - @for(obj in franchiseeList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - @}else if(roleType == 3){ - <span class="control-label">${objectName!}</span> - @} - </div> - </div> - <div class="form-group"> - <fieldset> - <label class="col-sm-3 control-label">服务模式:</label> - <div class="col-sm-9"> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()"> - <label for="serverBox1"> 摩托车 </label> - </div> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox4" value="4"> - <label for="serverBox4"> 同城快送 </label> - </div> - </div> - </fieldset> - </div> - <div class="form-group" style="display: none;" id="zcModelDiv"> - <label class="col-sm-3 control-label">摩托车车型:</label> - <div class="col-sm-9"> - <select class="form-control" id="zcModel" name="zcModel"> - <option value="">选择车型</option> - @for(obj in zcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - <div class="form-group" style="display: none;" id="kcModelDiv"> - <label class="col-sm-3 control-label">同城快送车型:</label> - <div class="col-sm-9"> - <select class="form-control" id="kcModel" name="kcModel"> - <option value="">选择车型</option> - @for(obj in kcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - <#select id="carBrandId" name="车辆品牌:" onchange="TCarInfoDlg.brandChange(this)"> - <option value="">选择车辆品牌</option> - @for(obj in brandList){ - <option value="${obj.id}">${obj.name}</option> - @} - </#select> - <#select id="carModelId" name="车辆类型:"> - <option value="">选择车辆类型</option> - </#select> - <#select id="carColor" name="车辆颜色:"> - <option value="">选择车辆颜色</option> - <option value="1">黑色</option> - <option value="2">银色</option> - <option value="3">白色</option> - <option value="4">红色</option> - <option value="5">黄色</option> - <option value="6">橙色</option> - <option value="7">蓝色</option> - </#select> - <#input id="carLicensePlate" name="车牌号" /> - <#avatar id="carPhoto" name="车辆照片:" /> - <#input id="drivingLicenseNumber" name="行驶证编号" /> - <#avatar id="drivingLicensePhoto" name="行驶证照片:" /> - <#input id="annualInspectionTime" name="年检到期时间" type="text"/> - <#input id="commercialInsuranceTime" name="商业保险到期时间" type="text"/> - </div> + + <div class="form-horizontal" id="carInfoForm"> + + <div class="form-group" id="provinceCode"> + <label class="col-sm-3 control-label">举办省:</label> + <div class="col-sm-9"> + <select class="form-control" id="pCode" name="pCode"> + <option value="">选择省</option> + </select> + </div> + </div> + <div class="form-group" id="cityCode"> + <label class="col-sm-3 control-label">举办市:</label> + <div class="col-sm-9"> + <select class="form-control" id="cCode" name="cCode"> + <option value="">选择市</option> + </select> + </div> + </div> + <div class="form-group" id="shop"> + <label class="col-sm-3 control-label">举办门店:</label> + <div class="col-sm-9"> + <select class="form-control" id="shopId" name="shopId"> + <option value="">选择门店</option> + </select> + </div> + </div> + <#input id="name" name="赛事名称" type="text"/> + <#input id="startTime" name="开始时间" type="text"/> + <#input id="endTime" name="结束时间" type="text"/> + <#input id="registerEndTime" name="截止报名时间" type="text"/> + <div class="form-group"> + <label class="col-sm-3 control-label">报名条件:</label> + <div class="col-sm-9"> + <input type="radio" name="registerCondition" value="1" checked> 全部用户 + <input type="radio" name="registerCondition" value="2">仅限年度会员参与 + <input type="radio" name="registerCondition" value="3">仅限学员参与 + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">报名年龄:</label> + <div class="col-sm-9" style="display: flex"> + <input class="form-control" style="width: 100px;" type="text" id="startAge"> ~ <input class="form-control" style="width: 100px;" type="text" id="endAge"> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">支付方式:</label> + <div class="col-sm-9"> + <input type="checkbox"> 现金支付 + <input type="checkbox"> 玩湃币支付 + <input type="checkbox"> 课时支付 + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">现金支付:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="cashPrice"> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">玩湃币支付:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="playPaiCoin"> + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">课时支付:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 200px;" type="text" id="classPrice"> + </div> + </div> + <div class="form-group"> + <label class="col-sm-3 control-label">参加地点:</label> + <div class="col-sm-9"> + <input class="form-control" style="width: 500px;" type="text" id="address"> + </div> + </div> + + <#input id="applicantsNumber" name="报名人数" type="text"/> + <#input id="baseNumber" name="基础报名人数" type="text"/> + + <div class="form-group"> + <label class="col-sm-3 control-label">是否实名:</label> + <div class="col-sm-9"> + <input type="radio" name="realName" value="1" checked> 是 + <input type="radio" name="realName" value="0"> 否 + </div> + </div> + + <div class="form-group"> + <label class="col-sm-3 control-label">赛事简介:</label> + <div class="col-sm-9"> + <textarea id="introduction"></textarea> + </div> + </div> + + <#avatar id="coverDrawing" name="赛事封面(推荐像素:210*280px):" /> + <#avatar id="imgs" name="赛事图片(推荐像素:780*440px):" /> + <#avatar id="registrationNotes" name="报名须知(推荐像素:宽780px):" /> + + </div> </div> <div class="row btn-group-m-t"> @@ -113,233 +116,12 @@ <#button btnCss="danger" name="取消" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> </div> </div> - @} - @if(language==2){ -<div class="row"> - <div class="col-sm-11"> - <div class="form-group"> - <label class="col-sm-3 control-label">Affiliated organization:</label> - <div class="col-sm-9" style="display: flex;align-items: center;"> - @if(roleType == 1){ - <div class="radio radio-info radio-inline"> - <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)"> - <label for="companyType1"> Platform vehicle </label> - </div> - <div class="radio radio-success radio-inline"> - <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)"> - <label for="companyTyp2"> Franchised vehicles </label> - </div> - <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;"> - <option value="">Select Branch</option> - @for(obj in companyList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;display: none;"> - <option value="">Select the franchisee</option> - </select> - @}else if(roleType == 2){ - <span class="control-label">${objectName!}</span> - <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> - <option value="">Select the franchisee</option> - @for(obj in franchiseeList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - @}else if(roleType == 3){ - <span class="control-label">${objectName!}</span> - @} - </div> - </div> - <div class="form-group"> - <fieldset> - <label class="col-sm-3 control-label">Service mode:</label> - <div class="col-sm-9"> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()"> - <label for="serverBox1"> motorcycle </label> - </div> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox4" value="4"> - <label for="serverBox4"> Intra-city express delivery </label> - </div> - </div> - </fieldset> - </div> - <div class="form-group" style="display: none;" id="zcModelDiv"> - <label class="col-sm-3 control-label">Motorcycle model:</label> - <div class="col-sm-9"> - <select class="form-control" id="zcModel" name="zcModel"> - <option value="">Select vehicle type</option> - @for(obj in zcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - <div class="form-group" style="display: none;" id="kcModelDiv"> - <label class="col-sm-3 control-label">Local express delivery model:</label> - <div class="col-sm-9"> - <select class="form-control" id="kcModel" name="kcModel"> - <option value="">Select vehicle type</option> - @for(obj in kcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - - <#select id="carBrandId" name="Vehicle brand:" onchange="TCarInfoDlg.brandChange(this)"> - <option value="">Select vehicle brand</option> - @for(obj in brandList){ - <option value="${obj.id}">${obj.name}</option> - @} - </#select> - <#select id="carModelId" name="Vehicle type:"> - <option value="">Vehicle type</option> -</#select> -<#select id="carColor" name="Vehicle color:"> -<option value="">Select vehicle color</option> -<option value="1">black</option> -<option value="2">silvery</option> -<option value="3">white</option> -<option value="4">red</option> -<option value="5">yellow</option> -<option value="6">orange</option> -<option value="7">blue</option> -</#select> -<#input id="carLicensePlate" name="License plate number" /> -<#avatar id="carPhoto" name="Vehicle photos:" /> -<#input id="drivingLicenseNumber" name="Driving license number" /> -<#avatar id="drivingLicensePhoto" name="Photo of driving license:" /> -<#input id="annualInspectionTime" name="Annual inspection expiration time" type="text"/> -<#input id="commercialInsuranceTime" name="Expiration time of commercial insurance" type="text"/> -</div> -</div> - -<div class="row btn-group-m-t"> - <div class="col-sm-10 col-sm-offset-5"> - <#button btnCss="info" name="Submit" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/> - <#button btnCss="danger" name="Cancel" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> - </div> -</div> - @} - @if(language==3){ -<div class="row"> - <div class="col-sm-11"> - <div class="form-group"> - <label class="col-sm-3 control-label">Organisasi Afiliasi:</label> - <div class="col-sm-9" style="display: flex;align-items: center;"> - @if(roleType == 1){ - <div class="radio radio-info radio-inline"> - <input type="radio" id="companyType1" value="1" name="companyType" checked="" onclick="TCarInfoDlg.companyTypeClick(1)"> - <label for="companyType1"> Kendaraan platform </label> - </div> - <div class="radio radio-success radio-inline"> - <input type="radio" id="companyTyp2" value="2" name="companyType" onclick="TCarInfoDlg.companyTypeClick(2)"> - <label for="companyTyp2"> Kendaraan waralaba </label> - </div> - <select class="form-control companyDiv" id="oneId" onchange="TCarInfoDlg.oneChange(this)" style="width: 200px;display: none;"> - <option value="">Pilih Branch</option> - @for(obj in companyList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - <select class="form-control companyDiv" id="twoId" style="width: 200px;margin-left: 30px;display: none;"> - <option value="">Pilih pemilik franchise</option> - </select> - @}else if(roleType == 2){ - <span class="control-label">${objectName!}</span> - <select class="form-control" id="franchiseeId" style="width: 200px;margin-left: 30px;"> - <option value="">Pilih pemilik franchise</option> - @for(obj in franchiseeList!){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - @}else if(roleType == 3){ - <span class="control-label">${objectName!}</span> - @} - </div> - </div> - <div class="form-group"> - <fieldset> - <label class="col-sm-3 control-label">Mode Layanan:</label> - <div class="col-sm-9"> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox1" value="1" onclick="TCarInfoDlg.zcServerClick()"> - <label for="serverBox1"> sepeda motor </label> - </div> - <div class="checkbox checkbox-success checkbox-inline"> - <input type="checkbox" name="serverBox" id="serverBox4" value="4"> - <label for="serverBox4"> Pengiriman Ekspres Dalam Kota </label> - </div> - </div> - </fieldset> - </div> - <div class="form-group" style="display: none;" id="zcModelDiv"> - <label class="col-sm-3 control-label">Pengaturan model sepeda motor:</label> - <div class="col-sm-9"> - <select class="form-control" id="zcModel" name="zcModel"> - <option value="">Pilih Jenis Kendaraan</option> - @for(obj in zcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - <div class="form-group" style="display: none;" id="kcModelDiv"> - <label class="col-sm-3 control-label">Model pengiriman ekspres lokal:</label> - <div class="col-sm-9"> - <select class="form-control" id="kcModel" name="kcModel"> - <option value="">Pilih Jenis Kendaraan</option> - @for(obj in kcModelList){ - <option value="${obj.id}">${obj.name}</option> - @} - </select> - </div> - </div> - - <#select id="carBrandId" name="Merek kendaraan:" onchange="TCarInfoDlg.brandChange(this)"> - <option value="">Pilih Merek Kendaraan</option> - @for(obj in brandList){ - <option value="${obj.id}">${obj.name}</option> - @} - </#select> - <#select id="carModelId" name="Jenis Kendaraan:"> - <option value="">Pilih Jenis Kendaraan</option> -</#select> -<#select id="carColor" name="Warna kendaraan:"> - <option value="">Pilih Warna Kendaraan</option> - <option value="1">hitam</option> - <option value="2">perak</option> - <option value="3">putih</option> - <option value="4">merah</option> - <option value="5">kuning</option> - <option value="6">oranye</option> - <option value="7">biru</option> -</#select> -<#input id="carLicensePlate" name="车牌号" /> -<#avatar id="carPhoto" name="Nomor SIM Mengemudi:" /> -<#input id="drivingLicenseNumber" name="Nomor SIM Mengemudi" /> -<#avatar id="drivingLicensePhoto" name="Foto SIM:" /> -<#input id="annualInspectionTime" name="Waktu Kedaluwarsa Inspeksi Tahunan" type="text"/> -<#input id="commercialInsuranceTime" name="Waktu kedaluwarsa asuransi komersial" type="text"/> -</div> -</div> - -<div class="row btn-group-m-t"> - <div class="col-sm-10 col-sm-offset-5"> - <#button btnCss="info" name="Kirim" id="ensure" icon="fa-check" clickFun="TCarInfoDlg.addSubmit()"/> - <#button btnCss="danger" name="Batal" id="cancel" icon="fa-eraser" clickFun="TCarInfoDlg.close()"/> - </div> -</div> - @} </div> </div> </div> -<script src="${ctxPath}/modular/system/tCar/tCar_info.js"></script> +<script src="${ctxPath}/modular/system/tCompetition/tCompetition_info.js"></script> <script> laydate.render({ elem: '#annualInspectionTime' diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js index 12291b0..2226725 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/tCompetition/tCompetition.js @@ -1,8 +1,8 @@ /** * 车辆管理管理初始化 */ -var TCar = { - id: "TCarTable", //表格id +var TCompetition = { + id: "TCompetitionTable", //表格id seItem: null, //选中的条目 table: null, layerIndex: -1 @@ -11,23 +11,26 @@ /** * 初始化表格的列 */ -TCar.initColumn = function () { +TCompetition.initColumn = function () { return [ {field: 'selectItem', radio: true}, - {title: '所在省', field: 'insertTime', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '所在省', field: 'province', visible: true, align: 'center', valign: 'middle',width:'8%', }, - {title: '所在市', field: 'id', visible: true, align: 'center', valign: 'middle'}, - {title: '举办门店', field: 'companyName', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '所在市', field: 'city', visible: true, align: 'center', valign: 'middle'}, + {title: '举办门店', field: 'storeName', visible: true, align: 'center', valign: 'middle',width:'8%', }, - {title: '赛事名称', field: 'brandName', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '赛事名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'8%', }, - {title: '开始时间', field: 'modelName', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',width:'8%', }, - {title: '结束时间', field: 'carColor', visible: true, align: 'center', valign: 'middle',width:'5%', + {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle',width:'5%', }, - {title: '最大人数-已报名人数', field: 'serverStr', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '最大人数-已报名人数', field: 'applicantsNumber', visible: true, align: 'center', valign: 'middle',width:'8%', }, - {title: '报名条件', field: 'carLicensePlate', visible: true, align: 'center', valign: 'middle',width:'8%', + {title: '报名条件', field: 'registerCondition', visible: true, align: 'center', valign: 'middle',width:'8%', + formatter:function (data) { + return {1:"全部用户",2:"仅限年度会员参与",3:"仅限学员参与"}[data] + } }, ]; }; @@ -67,13 +70,13 @@ /** * 检查是否选中 */ -TCar.check = function () { +TCompetition.check = function () { var selected = $('#' + this.id).bootstrapTable('getSelections'); if(selected.length == 0){ Feng.info("请先选中表格中的某一记录!"); return false; }else{ - TCar.seItem = selected[0]; + TCompetition.seItem = selected[0]; return true; } }; @@ -81,14 +84,14 @@ /** * 点击添加车辆管理 */ -TCar.openAddTCar = function () { +TCompetition.openAddTCompetition = function () { var index = layer.open({ type: 2, title: '添加', area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, - content: Feng.ctxPath + '/tCar/tCar_add' + content: Feng.ctxPath + '/tCompetition/tCompetition_add' }); this.layerIndex = index; }; @@ -96,7 +99,7 @@ /** * 打开查看车辆管理详情 */ -TCar.openTCarDetail = function () { +TCompetition.openTCompetitionDetail = function () { if (this.check()) { var index = layer.open({ type: 2, @@ -104,7 +107,7 @@ area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, - content: Feng.ctxPath + '/tCar/tCar_update/' + TCar.seItem.id + content: Feng.ctxPath + '/TCompetition/TCompetition_update/' + TCompetition.seItem.id }); this.layerIndex = index; } @@ -113,9 +116,9 @@ /** * 删除车辆管理 */ -TCar.delete = function () { +TCompetition.delete = function () { if (this.check()) { - var nickname = TCar.seItem.carLicensePlate; + var nickname = TCompetition.seItem.carLicensePlate; if (nickname == "" || nickname == null || nickname == undefined){ nickname = "该车辆"; }else{ @@ -130,7 +133,7 @@ confirmButtonText: language==1?"删除":(language==2?'Delete':'Hapus'), closeOnConfirm: true }, function () { - var ajax = new $ax(Feng.ctxPath + "/tCar/delete", function (data) { + var ajax = new $ax(Feng.ctxPath + "/TCompetition/delete", function (data) { if(language==1){ swal("删除成功", "您已经成功删除了" + nickname + "。", "success"); }else if(language==2){ @@ -138,7 +141,7 @@ }else { swal("Hapus berhasil!", "Anda berhasil menghapus" + nickname + "。", "success"); } - TCar.table.refresh(); + TCompetition.table.refresh(); }, function (data) { if(language==1){ swal("删除失败", data.responseJSON.message + "!", "warning"); @@ -149,14 +152,14 @@ } }); - ajax.set("tCarId",TCar.seItem.id); + ajax.set("TCompetitionId",TCompetition.seItem.id); ajax.start(); }); } }; -TCar.carInsurance = function () { +TCompetition.carInsurance = function () { if (this.check()) { var index = layer.open({ type: 2, @@ -164,7 +167,7 @@ area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, - content: Feng.ctxPath + '/tCar/carInsurance?carId=' + TCar.seItem.id + content: Feng.ctxPath + '/TCompetition/carInsurance?carId=' + TCompetition.seItem.id }); this.layerIndex = index; } @@ -175,47 +178,27 @@ /** * 查询车辆管理列表 */ -TCar.search = function () { +TCompetition.search = function () { var queryData = {}; - queryData['createTime'] = $("#createTime").val(); - queryData['id'] = $("#id").val(); - queryData['brandName'] = $("#brandName").val(); - queryData['modelName'] = $("#modelName").val(); - queryData['carColor'] = $("#carColor").val(); - queryData['serverStr'] = $("#serverStr").val(); - queryData['carLicensePlate'] = $("#carLicensePlate").val(); - queryData['driverName'] = $("#driverName").val(); - queryData['companyName'] = $("#companyName").val(); - queryData['franchiseeName'] = $("#franchiseeName").val(); - TCar.table.refresh({query: queryData}); + TCompetition.table.refresh({query: queryData}); }; -TCar.resetSearch = function () { - $("#createTime").val(""); - $("#id").val(""); - $("#brandName").val(""); - $("#modelName").val(""); - $("#carColor").val(""); - $("#serverStr").val(""); - $("#carLicensePlate").val(""); - $("#driverName").val(""); - $("#companyName").val(""); - $("#franchiseeName").val(""); - TCar.search(); +TCompetition.resetSearch = function () { + TCompetition.search(); }; $(function () { - var defaultColunms = TCar.initColumn(); - var table = new BSTable(TCar.id, "/tCompetition/list", defaultColunms); + var defaultColunms = TCompetition.initColumn(); + var table = new BSTable(TCompetition.id, "/tCompetition/list", defaultColunms); table.setPaginationType("server"); - TCar.table = table.init(); + TCompetition.table = table.init(); }); /** * 下载模板 */ -TCar.uploadCarModel = function () { - window.location.href = Feng.ctxPath + "/tCar/uploadCarModel"; +TCompetition.uploadCarModel = function () { + window.location.href = Feng.ctxPath + "/TCompetition/uploadCarModel"; } var agreement = function(){ @@ -229,7 +212,7 @@ /** * 导入合同 */ -TCar.exportCar = function () { +TCompetition.exporTCompetition = function () { var uploadEventFile = $("#uploadEventFile").val(); if(uploadEventFile == ''){ if(language==1){ @@ -248,7 +231,7 @@ Feng.info("Hanya berkas Excel yang dapat diunggah"); } }else{ - var url = Feng.ctxPath + '/tCar/exportCar'; + var url = Feng.ctxPath + '/TCompetition/exporTCompetition'; var file = document.querySelector('input[name=file]').files[0]; var reader = new FileReader(); if (file) { @@ -258,7 +241,7 @@ } } } -TCar.sendAjaxRequest = function(url,type,data){ +TCompetition.sendAjaxRequest = function(url,type,data){ $.ajax({ url : url, type : type, @@ -275,7 +258,7 @@ Feng.success("Import berhasil!"); } } - TCar.table.refresh(); + TCompetition.table.refresh(); }, error : function() { if(language==1){ @@ -301,9 +284,9 @@ /** * 导出车辆操作 */ -TCar.outCar = function () { +TCompetition.ouTCompetition = function () { var operation = function() { - window.location.href = Feng.ctxPath + "/tCar/outCar"; + window.location.href = Feng.ctxPath + "/TCompetition/ouTCompetition"; }; if(language==1){ Feng.confirm("是否确认导出车辆信息?", operation); -- Gitblit v1.7.1